入门深度学习的必备数学知识

Posted turingbooks

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了入门深度学习的必备数学知识相关的知识,希望对你有一定的参考价值。

作者:徐洲更

中科院在读遗传学博士。出于对计算机科学的兴趣,蜻蜓点水式自学了大量编程相关知识,现在对深度学习很感兴趣,正在恶补相关知识。此外,还负责帮忙管理生信媛,一个热衷于分享生物信息学知识的公众号。

我浅薄的理解,深度学习是机器学习的一个子集。想要入门深度学习,可以先从最基础的神经网络开始。

神经网络也称之为多层感知机(multi-layer perceptron, MLP),由输入层,隐藏层,输出层构成。最简单的神经网络只需要3层,拥有数百到数千个参数,而现代复杂的神经网络则可能有成千万上百万层,拥有数万,数十万,数百万的参数,例如人工智能公司OpenAI在2020年7月发布的GPT-3拥有1750亿个参数。对于那么多层的神经网络的训练,我们就称之为深度学习(deep learning).

目前关于深度学习的框架很多,包括但不限于MXNET, PyTorch, TensorFlow等,因此利用这些框架训练一个手写数字识别,猫和狗分类的神经网络并不算特别困难。但是如果我们有更高的追求,就得了解下它背后的数学基础。

目前阅读到大部分课程,虽然都会提到深度学习所需要的数学知识,例如线性代数,微积分,概率论和信息论,但是要么受限于篇幅没有详细介绍,要么是因为“知识诅咒”,会直接使用高阶的抽象的数学符号介绍原理,使得我迷失各种符号定义中。

之前推荐的Python神经网络编程虽然也涉及到数学,但比较浅显,在此基础上直接去阅读动手学习深度学习这类书,还是会有很大压力,于是我找到了另一本缓冲书籍,深度学习的数学

深度学习的数学

我个人觉得这本书最大的亮点在于,它创建了一个Excel就能训练的神经网络数据集。这个数据集一共64张图片,记录数字0和1。神经网络一共三层,输入层是12个节点,对应输入图像的12个像素点,隐藏层只有一层,3个节点,输出层是2个节点对应0和1,总计 12 x 3 + 3 + 3 x 2 + 2 = 47个参数。

由于参数少,所以作者就可以展开所有的公式,即 ,而不必使用线性代数中的矩阵和向量乘法, 即

虽然前者看起来很繁琐,不如后者简洁。但,就我而言,我更喜欢前者的直观,因为我可以自己在脑中将前者转换成后者,建立两者的联系,那么,以后看到矩阵乘法的形式,就能自动展开。

同样由于参数少,我们既可以使用Excel以线性模型的方式对代价函数优化,也可以使用Excel采取(随机)梯度下降的方式对代价函数优化。相对于使用Python根据原理手动搭建简单的神经网络,使用Excel让我们对数据有了更多的掌控感。

这本书的另一个亮点是,它涉及到数学知识刚好是我能够得上的水平。例如,在我学习「动手学习深度学习」的4.7节时,我搞不懂为什么损失函数对权重参数求导式子是下面这个样子

看了「深度学习的数学」的2.8节才知道这是多变量函数的链式法则。

学习就相当于探险,一本合适的书会告诉我们需要了解哪些知识,这就相当于在探险过程中拿到了地图,虽然我们还没有真正抵达目的地,但起码我们知道该怎么走了,心里就有底了。

↓来这看作者更多文章

以上是关于入门深度学习的必备数学知识的主要内容,如果未能解决你的问题,请参考以下文章

深度学习/机器学习入门基础数学知识整理:数学上supinf含义,和maxmin的区别

深度学习/机器学习入门基础数学知识整理:Hoeffding不等式,

深度学习预备知识

深度学习/机器学习入门基础数学知识整理:中心极限定理,一元和多元高斯分布

深度学习/机器学习入门基础数学知识整理:Jensen不等式简单理解,共轭函数

深度学习都需要学习那些内容?