深度学习 : 以 Python 实践递归神经网络

GRU、LSTM + 更现代的深度学习、机器学习和串行数据科学

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

  • 了解简单的递归单位(Elman 单位)
  • 了解 GRU(Gated Recurrent Unit,门控递归单元)
  • 了解 LSTM(Long Short-term Memory Unit,长远短期记忆单元)
  • 在 Theano 写下各种递归网络
  • 通过时间了解反向传播( backpropagation )
  • 了解如何减轻消失梯度问题
  • 使用递归神经网络解决 XOR 和奇偶性( parity )问题
  • 使用递归神经网络进行语言建模
  • 使用 RNNs 生成文本,如诗歌
  • 可视化词嵌入( word embeddings )并查找词矢量( word vectors )表示中的模式

要求

  • 微积分
  • 线性代数
  • Python、Numpy、Matplotlib
  • 在 Theano 写一个神经网络
  • 了解反向传播( backpropagation )
  • 机率(有条件和联合分布)
  • 使用 Tensorflow 写一个神经网络

课程说明

就像我在隐马可夫模型课所说,递归神经网络都是关于学习串行的 – 但是,马可夫模型受马尔可夫假设的限制,递归神经网络不是 – 结果,它们更具表现力、更强大,相较任何我们几十年来采用但没有在任务上取得进展。

那么在这门课程将会有什么?它将如何创建在以前的神经网络课程和隐马尔可夫模型上?

在课程的第一部分中,我们将添加时间概念到我们的神经网络。

我将向你介绍简单递归单位( Simple Recurrent Unit ),也称 Elman 单位

我们将重新讨论 XOR 问题,但我们将扩展它以使它成为奇偶性( parity )问题 – 你会看到一般的前馈神经网络 ( feedforward neural networks  ) 将无法解决此问题,但递归网络将起作用,因为关键是将输入视为一个串行。

在本课程的下一部分,我们将重新审视递归神经网络最流行的应用之一 – 语言建模( language modeling )

当我们研究马可夫模型时,我们可以看到此可生成诗歌,且看起来还不错。 我们甚至可以根据他们使用的词性标签( tag )的顺序来区分这是 2 个不同的诗人所做。

在本课程中,我们将扩展我们的语言模型,使其不再做马可夫假设。

神经网络另一种流行的语言应用是词矢量( word vectors )词嵌入( word embeddings )。 最常用的技术叫做 Word2Vec,但我会告诉你如何使用递归神经网络来创建词矢量。

在接下来的部分中,我们将看看非常受欢迎的 LSTM ( Long Short-term Memory Unit ,长远短期记忆单元),以及更加现代化和高效的 GRU ( Gated Recurrent Unit,门控递归单元 ),它们已被证明具有相当的性能。

我们会将这些应用于一些更实际的问题,例如从维基百科数据中学习语言模型并将结果中的词嵌入可视化。

所有这门课程所需的材料都可以免费下载和安装。 我们将在 Numpy、Matplotlib 和 Theano 中完成大部分工作。 我随时可以回答你的问题,并在你的数据科学旅程中提供帮助。

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

我们在课堂中见!

注意:

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

/lazyprogrammer/machine_learning_examples

在目录中:rnn_class

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

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

  • 微积分
  • 线性代数
  • 机率(有条件和联合分配)
  • Python 编程 : if/else, loops, lists, dicts, sets
  • Numpy 编程:矩阵和矢量操作,加载一个 CSV 档
  • 深度学习:反向传播( backpropagation ),XOR 问题
  • 可以在 Theano 和 Tensorflow 中编写一个神经网络

提示(通过课程):

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

修课顺序

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

目标受众

  • 如果你想升级深度学习,请参加这门课程。
  • 如果你是一名学生或专业人士,希望将深度学习应用于时间串行或串行数据,请参加本课程。
  • 如果你想了解单词嵌入和语言建模,请参加这门课程。
  • 如果你想提高你使用隐马尔可夫模型( HMM )的表现,请参加这门课程。
  • 如果你对引发机器翻译新发展的技术感兴趣,请参加本课程。
  • 如果你不知道深度学习,不要修这门课,请查本课程要求的必修课。

讲师简介

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 博主赞过: