本文于2020-10-10更新。 如发现问题或者有建议,欢迎提交 Issue
整合之前梯度下降的文章。
1 梯度下降和
这是梯度下降的公式
这里的和都是训练集给定的,如果要减小只能通过不断变动向量的值,从而得到最小的。
2 三种梯度下降方式
- 批量梯度下降法BGD: 全量
- 随机梯度下降法SGD: 一个
- min-batch 小批量梯度下降法MBGD: 若干个
三者的区别在于梯度下降时使用样本的大小。、
这是每个更新的方式。 这里以批量梯度下降法BGD的方式,进行推导。
- 批量梯度下降法BGD: 全量
- 随机梯度下降法SGD: 一个
- min-batch 小批量梯度下降法MBGD: 若干个
# 神经网络的bias的定义
bias
其实就是每个方程的截距。
每个节点都有一个bias,一次一共有16个bias。 因此到目前为止,个和个bias。 (3Blue1Brown 2018a)
这是全部弄下来的bias数量和数量。
于是转化成了线性代数的问题。 这个地方对线性代数的解释非常到位(14:26) 。
这里表示第几层。
Relu
其实一点都不简单,关键是为了描述突变,描述。
3 梯度下降一定是按照最陡的方向 (忆臻 2018)
假设,空间点从A点移动到B点。 空间两个特征变量和,是损失函数,。 假设,是移动的向量,那么,
使用泰勒公式,近似得到,
是各种偏导集合的矩阵1。不理解的话,就当成一阶导数理解吧。 并且这句是梯度下降公式中的梯度。 注意这里和是两个向量,显然是x点的切线方向, 是移动向量方向。
要下降最快,就是说,
因此当移动方向是切线方向是下降最快的。
4 神经网络的过程 (3Blue1Brown 2018b)
无隐藏层的神经网络就是一般线性方程。
最形象的图, 输入层784个节点, 第一层隐藏层16个,相当于每个输入层的节点都跟第一层隐藏层的节点链接。 第二个隐藏层16个, 输出层10个。 因此有。
定义好后,梯度下降,找最合适的,使得损失最小。
这里有13000个,但是都是一个列向量而已,用
表示。
13000个分力最后会给出一个合力。
最后这张图解释了,虽然在点但是明显最快方向为也就是说,梯度下降不一定是直线的,会拐弯。 因此梯度下降一定是按照最陡的方向(3)。
参考文献
3Blue1Brown. 2018a. “深度学习之神经网络的结构 Part 1.” 2018. https://www.bilibili.com/video/av15532370/.
———. 2018b. “深度学习之神经网络的结构 Part 2.” 2018. https://www.bilibili.com/video/av6731067/.
忆臻. 2018. “为什么梯度的负方向是局部下降最快的方向?.” 2018. http://mp.weixin.qq.com/s/k4VkZG9QYHeXiBiNuWdKnA.
因为导数满足adding和scaling的性质,因此用矩阵来表达。↩