机器之心报道
参与:蒋思源
前一段时间,深度学习中译版已经正式出版并得到广泛的关注,我们在阅读中译版时可能需要查阅各种额外的扩展知识并整理成笔记以便进一步复习。但是近日有很多读者在深度学习中译版项目的 GitHub 目录下创建了一个新项目,该项目旨在记录和整理 Deep Learning 这本书的学习笔记和实现代码。机器之心将简要介绍该项目,并希望能与各位读者共同学习并完善该书的学习资源。
项目地址:https://github.com/exacity/simplified-deeplearning
Deep Learning 这本书的中译版给我们的感觉是质量非常高,例如在英文原版中的第四章「Numerical Computation」中,出现了很多「maximum」和「minimum」,这两个词在中译版中都有十分正确的翻译。因为「maximum」可以表示最大值也可以表示极大值,这两个概念在数学上是不同的,而中译本根据语境很好地区分了这两个术语。这只是很小的一个细节,但让我们感受到了中译本的严谨与高质量。
机器之心的小伙伴们也在阅读这本书籍,在阅读的过程中可能需要增加很多的额外知识以完成笔记例如在第三章概率与信息论中,我们可能需要查找各种离散型和连续型概率分布函数、确定概率质量函数与以前我们熟悉的概率分布函数有什么关系、确定独立性的分布函数条件和数字特征之间的运算关系等等,这样我们才能整理出比较完善的笔记以便于以后的复习。
但是在近日开展的这个 GitHub 项目中,我们可以轻易地找到各种精要知识与代码实现,比如在第三章的笔记中比较了各种分布在不同参数下的情况:
上图展示了高斯分布(正态分布)在不同均值μ和标准差σ下的概率密度函数,这样我们可以对高斯分布及参数的影响有一个直观的概念。
同样上图为拉普拉斯分布在不同参数下的概率密度函数,这些资源不仅有助于我们理解 Deep Learning 这本书的内容,同时还有助于我们根据这些知识点进行复习。
除此之外,还有很多实现代码更是理解相关概念的不二选择,例如我们在该 GitHub 项目的第一章节中发现了很多有助于理解矩阵运算的实现:
>>> A
array([[0, 1],
[2, 3],
[4, 5]])
>>> B
array([[0, 1, 2],
[3, 4, 5]])
>>> np.matmul(A,B)
array([[ 3, 4, 5],
[ 9, 14, 19],
[15, 24, 33]])
在上面的代码中,我们可以清楚地了解矩阵乘法是如何进行的,首先 A 是一个 2×3 矩阵,B 是一个 3×2 矩阵,使用 Numpy 库的矩阵乘法函数可以相乘得出 3×3 的矩阵。
>>> A
array([[0, 1],
[2, 3]])
>>> np.linalg.inv(A)
array([[-1.5, 0.5],
[ 1. , 0. ]])
在上面的代码中,我们能了解如何对可逆矩阵执行求逆操作。设 A 为 2×2 可逆矩阵(即矩阵 A 的行列式不为零),我们可以使用 Numpy 库的矩阵求逆函数对 A 执行求逆操作。
除此之外,机器学习章节也会介绍 TensorFlow 的实战,读者在理解理论知识的同时可以了解实现方面的基础,如下该部分简要介绍了 TensorFlow:
x_1 = tf.random_normal((2,3,4), name = "x_1")
x_2 = tf.random_normal((2,3,4), name = "x_2")
y_1 = x_1 + x_2
y_2 = x_1 * x_2
上面一段代码定义了两个计算,即随机生成 x_1、x_2(服从正态分布)之后分别做加法和乘法,在 TensorFlow 中,这就定义了一个计算图,这个计算图可表示如下:
当然,还有很多的模型实现代码,不过这一部分并不是很全,还需要大家共同努力以完善这些代码与整个项目。这一部分模型的代码很多都是引用自十分流行的 GitHub 项目,例如 LSTM 章节中就引用了 Jipeng Huang 完成的 LSTM 唐诗生成器。
这一个 GitHub 项目对于 Deep Learning 中译本读者有十分重要的作用,我们不仅可以从上面获取相应的知识,同时还可以贡献我们的笔记和扩展理解,这对于各位读者来说可以是一个相互交流的平台。虽然深度学习读书笔记这一项目已经搭建起来了,但还有很多内容和理解需要我们去补充和完善。所以,我们希望能与各位读者共同促进该项目的茁壮成长!
以下是该项目的前言和贡献者:
前言
作为人工智能领域目前的最大研究热点,同时也是近年来为各种智能任务带来最大突破的技术方向 – 深度学习或者说神经网络正吸引着无数研究人员的眼球。事实上,传统的神经网络结构和算法早在上个世纪就已经被提出,但由于当时的任务需求仍远未达到传统机器学习算法的瓶颈,同时神经网络算法也受限于计算和数据资源,因此并未被普遍关注。
近些年来,依靠人工设计高质量特征的传统机器学习算法在语音识别、自然语言处理以及图像处理等方面逐渐达到瓶颈,人们开始将目光重新转向神经网络,利用已经积累的大量数据资源在这一系列智能任务上取得了突破性的进展。包括语音识别、语义理解、图像识别等在内的研究领域中目前 state-of-the-art 的结果几乎清一色的都是采用了基于深度学习的方法。同时,GPU 强大的并行计算能力以及包括 TensorFlow、MXNet、Pytorch 等在内的一系列深度学习框架的推出也为研究者和应用开发者提供了极大便利。
DeepLearningBook 是目前第一本系统和完整的介绍深度学习的书籍,其作者包括深度学习领域的奠基人、处于研究生涯中期的领域中坚、更有近年来涌现的新星,非常适合搭建理论基础。但是直至去年,本书只有英文原版,对于大多数开发者来说,啃一本 800 页 7*9 英寸的书籍,难度可想而知。好消息是,在翻译人员的不懈努力下,DeepLearningBook 中文版也已在 GitHub 上公开,中文翻译版已经由人民邮电出版社出版。
这个项目记录了我们对 DeepLearningBook 的学习笔记,我们按照全书的脉络对 Deep Learning 的基础框架进行了梳理和学习,同时将会附上使用 TensorFlow 实现的相关代码。
GitHub 的 markdown 不再支持 tex 公式的解析显示,使用 Chrome 的同学可以安装 GitHub with MathJax 添加 MathJax 的解析以对公式正常显示。
持续更新中,欢迎贡献简单易懂便于理解的代码示例,推荐使用 Tensorflow 和 Jupyter Notebook 提交代码和说明,详见:如何贡献代码。
本文为机器之心报道,转载请联系本公众号获得授权。
✄------------------------------------------------
加入机器之心(全职记者/实习生):hr@jiqizhixin.com
投稿或寻求报道:content@jiqizhixin.com
广告&商务合作:bd@jiqizhixin.com