前一段时间,深度学习中译版已经正式出版并得到广泛的关注,我们在阅读中译版时可能需要查阅各种额外的扩展知识并整理成笔记以便进一步复习。但是近日有很多读者在深度学习中译版项目的 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