【深度学习入门基础】深度学习和微积分视角下的神经网络
这是介绍深度学习的系列文章。我们尽量用最简洁的语言和最干净的表达方式,让读者快速得到想要的东西。本系列文章不断更新。一些网上能找到的基础知识,比如激活函数有哪些,就不介绍了。
前言
大多数介绍深度学习的资料,一开始就从生物神经元、轴突、树突、刺激等等讲起,本来很简单的东西,却被介绍得云里雾里。本文将从矩阵乘法和导数的角度入手,让你一下子 get 到什么是神经网络。
矩阵乘法参见神经网络
问题是这样一个问题:假设有一个列向量,我们希望它经过一个“黑盒”操作后,得到的向量和另一个已知的等长向量
尽可能“接近”,如何衡量“亲近度””?后面听介绍。
这里的“黑匣子”是一个网络,可以简单理解为矩阵乘法向量的嵌套,即:
这里是参数矩阵,里面的元素是一些未知参数,
这里是参数列向量。
的比例总是使上述公式合理。
是一个函数,人们喜欢称它为激活函数,它作用于一个向量来表示分别作用于向量的每个分量。
中的元素都是未知量,我们统称为参数。
举个简单的例子。令。取激活函数为 sigmoid 函数:
所以,,这就是逻辑回归的输出形式。逻辑回归是最简单的神经网络之一。
从微积分的角度训练
从上面可以看出,本质上是一个带参数的表达式。神经网络需要做的是调整参数,使得对于已知的
和
,
和
尽可能接近。度量向量之间的距离有很多度量,例如欧几里得距离:
表示向量 2 范数。我们也称 $\mathcal{L} $ 为损失函数。显然,这里的
只是一个关于参数的函数,优化上称之为目标函数,我们想做的就是关于这个函数的参数极小化目标函数。
给定一个目标函数,我们希望相对于参数最小化它,这是一个无约束的优化问题,有很多数值解,神经网络使用梯度下降。梯度下降的步长,称为“学习率”。
要使用梯度下降,需要损失函数的梯度。梯度是由目标函数的每个参数的推导组成的向量。因此,需要对每个参数进行推导。从
的表达式可以看出,不同层的参数之间存在嵌套关系。微积分告诉我们,复杂类型函数的推导需要使用链式法则。链式法则在神经网络中的应用深受人们的喜爱。称之为“反向传播”。
上面提到的只是一组输入和输出的情况。当有多组输入输出时,我们定义损失函数如下:
训练的优化过程同上。
版权声明:本文为博主陆嵩原创文章,版权归属原作者,如果侵权,请联系我们删除!
原文链接:https://blog.csdn.net/lusongno1/article/details/123156975