以 Python 实现无监督深度学习

Theano / Tensorflow:Autoencoders、受限玻尔兹曼机器( Restricted Boltzmann )、深度神经网络、t-SNE 和 PCA

从这 6 小时的课程,你会学到

  • 了解主成份分析(Principal Components Analysis,PCA)背后的理论
  • 知道为什么 PCA 可用于降维( diemnsionality reduction )、可视化( visualization )、去相关( de-correlation )和去噪( denoising )
  • 手工推导 PCA 算法
  • 编写 PCA 的代码
  • 了解 t-SNE 背后的理论
  • 在代码中使用 t-SNE
  • 了解 PCA 和 t-SNE 的局限性
  • 理解 autoencoders 背后的理论
  • 在 Theano 和 Tensorflow 中编写一个自动编码器
  • 了解堆叠式自动编码器( autoencoders )如何用于深度学习
  • 在 Theano 和 Tensorflow 中编写一个堆叠的去噪自动编码器
  • 了解受限玻尔兹曼机器(Restricted Boltzmann Machines,RBM)背后的理论
  • 了解为什么 RBM 难以训练
  • 理解对比分歧(contrastive divergence )算法来训练 RBM
  • 在 Theano 和 Tensorflow 中编写你自己的 RBM 和深层信念网络(Deep Belief Network,DBN)
  • 可视化并解释以自动编码器和 RBM 学习过的特征( features )。

要求

  • 微积分和线性代数的知识
  • Python 编程技能
  • 有关 Numpy、Theano 和 Tensorflow 的一些经验
  • 知道如何使用梯度下降来训练机器学习模型
  • 安装 Python、Numpy 和 Theano
  • 一些机率和统计知识
  • 在 Theano 或 Tensorflow 中编写过前馈神经网络(  feedforward neural network )

课程说明

本课程是我深度学习、数据科学和机器学习系列的下一个合理步骤。 我已经完成了很多关于深度学习的课程,并且我刚刚发布了一门关于无监督学习的课程 以 Python 实践群聚分析与无监督机器学习,讨论群聚( clustering )和密度估算( density estimation ) 。 所以当你把这两个放在一起时你会获得无监督深度学习全貌!

在这些课程中,我们将从一些非常基本的东西开始 – 主成份分析(PCA)和一种流行的非线性降维技术,称为 t-SNE(t-distributed stochastic neighbor embedding,t-分布式随机邻居嵌入)。

接下来,我们将看看一种称为 autoencoder 的特殊类型的无监督神经网络。 在介绍一个自动编码器的工作原理之后,我会告诉你如何将它们连接在一起形成一堆深度的自动编码器,从而提高监督深度神经网络的性能。 自动编码器就像 PCA 的非线性形式。

最后,我们将看看受限制的玻尔兹曼机器(RBMs)。这些再次是个流行的无监督神经网络,你可以像使用自动编码器一样使用,以预先训练你的受监督的深度神经网络。我将向你展示一种训练受限玻尔兹曼机器的有趣方式,称为吉布斯采样( Gibbs sampling )马可夫链蒙特卡罗( Markov Chain Monte Carlo )的一个特例,我将展示如何做,即使这种方法只是一个粗略的近似,它仍然会减少其他成本函数( cost functions ),如用于自动编码器的函数。这种方法也被称为对比分歧( Contrastive Divergence 或 CD-k )。当在实体系统,我们定义了一个称为自由能量( free energy )的概念,并试图将这个量最小化。

最终,我们将把所有这些概念结合在一起,然后我将向你展示当你运用 PCA 和 t-SNE 于在自动编码器和 RBM 已学习的特征上,视觉上会发生什么情况,我们将看到即使没有标签,结果也告诉你有一种模式被发现。

本课程使用的所有材料均为免费。由于本课程是深度学习系列中的第四个,所以我会假设你已经知道微积分、线性代数和 Python 编程。你需要为此课程安装 Numpy、Theano 和 Tensorflow。这些是数据分析工具箱中的重要项目。

如果你对深度学习感兴趣,并且想要了解现代深度学习发展,超越简单的反向传播,包括使用无监督神经网络来解释在深度学习系统中可以自动和分层次学习哪些特征,本课程适合你。

本课程著重于“如何构建和理解”,而不仅仅是“如何使用”。读完一些文档后,任何人都可以在 15 分钟内学会使用 API​​。 这不是关于“记住事实”,而是关于通过实验“亲眼看到”。它会教你如何可视化模型内部发生的事情。如果你不仅仅需要对机器学习模型进行肤浅的考察,本课程对你将很有帮助。

注意:

所有的课程中的代码都可以从我的github下载:

/lazyprogrammer/machine_learning_examples

在目录中:unsupervised_class2

确保你总是用“ git pull ”,如此你总是拿到最新版本!

必要条件 / 假设你已具备以下知识 :

  • 微积分
  • 线性代数
  • 机率
  • Python 编程 : if/else, loops, lists, dicts, sets
  • Numpy 编程:矩阵和矢量操作,加载一个 CSV 档
  • 可以在 Theano 或 Tensorflow 中编写前馈神经网络

提示(通过课程):

  • 以 2x 观看。
  • 拿手写笔记。 这将大大增加你记住消息的能力。
  • 写下方程。 如果你不这样做,我保证它看起来像乱码。
  • 在讨论板上提出许多问题。 越多越好!
  • 意识到大多数练习将需要几天或几周才能完成。
  • 自己编写代码,不要只是坐在那里看我写程序。

修课顺序

  • 查看讲座 “ What order should I take your courses in?” (可在我的任何课程的附录中找到,包括免费的 Numpy 课程)

目标受众

  • 希望提高他们的深度学习曲目的学生和专业人士
  • 希望提高深度神经网络训练能力的学生和专业人员
  • 希望了解深度学习中更现代化发展的学生和专业人士

讲师简介

Lazy Programmer Inc 数据科学家和大数据工程师

我是一名数据科学家、大数据工程师和全端软件工程师。

我有电脑工程的硕士,专长为机器学习和模式辨识。

我曾在网络广告和数字媒体企业担任过数据科学家和大数据工程师,围绕所谓的数据建构各种高流量的 web 服务。我曾经使用 Hadoop / Pig / MapReduce 创建新的大数据管道,也曾创建机器学习模型来预测点击率,使用线性回归、Bayesian Bandits 和协同过滤 ( collaborative filtering )创建新闻推荐系统,并使用A / B测试验证结果。

我曾在大学部与研究所教授数据科学、统计学、机器学习、算法、微积分、电脑图学和物理学,任职的学校如哥伦比亚大学、纽约大学、Hunter 学院和 The New School。

有多家企业已从我的 Web 编程专业知识中受益。我做所有的后端(服务器)、前端(HTML / JS / CSS)和运营/布署工作。 我使用的技术包含:Python、Ruby / Rails、PHP、Bootstrap、jQuery ( Javascript )、Backbone 和  Angular。至于保存/数据库,我采用 MySQL、Postgres、Redis、MongoDB等。

英文字幕:有

  • 想要了解如何将英文字幕文? 请参考这篇 How-To

课程网址   ♥找优惠折扣码?

Sponsored by Udemy

♥欢迎关注 Soft & Share 微博

发表评论

Powered by WordPress.com.

Up ↑

%d 博主赞过: