好久没更了,不过这回是学完了整本书,一下子更新4章完事儿。

欢迎大家给出意见和建议呀!!!

1. 误差反向传播法:

是能够高效计算权重参数的梯度方法,可以通过反向传播高效计算导数。
正确理解该方法:一是基于数学式:严密简洁;二是基于计算图(该章重点):直观。

2. 计算图:

大致如下图所示,虚灰线代表正向传播,黑实线代表反向传播:将局部导数从右向左传递,原理是基于链式法则的(可以通过黑实线下面数字高效计算导数)。
在这里插入图片描述
反向传播导数运算原理如下:
在这里插入图片描述

3. 链式法则:

引入复数运算来解释,如下图所示:
在这里插入图片描述
下面是对上图的解释,主要还是根据复数运算来的。
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

4. 计算图中加法(加法结点:加法层 AddLayer)、乘法运算(乘法结点:乘法层MulLayer):

在这里插入图片描述
在这里插入图片描述
下满是自己填的数字,大家也可以尝试一下哦~
在这里插入图片描述

5. 简单层的实现:

“层”是神经网络中功能的单位,如:负责sigmoid函数的Sigmoid、负责矩阵乘积的Affine等。
(1)Sigmoid层:
在这里插入图片描述
简化版:
在这里插入图片描述
在这里插入图片描述
(2)Affine层:
神经网络的正向传播中进行的乘积运算在几何学领域被称为:“仿射变换”,即1次线性变换(神经网络的加权运算),1次平移(加偏置运算)。
正向传播:
在这里插入图片描述
反向传播:
在这里插入图片描述
图片中左边公式之所以这样写主要是保证:矩阵乘积等号两边维度的一致性(线性代数知识)。

7.复杂层,Softmax-with-Loss层:

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
神经网络的学习的目的就是通过调整权重参数,使神经网络的输出(softmax)的输出接近监督标签。所以,必须将神经网络的输出与监督标签的误差高效的传递给前面的层(即y1-t1,y2-t2,y3-t3部分)。
之所以使用交叉熵函数(Cross Entroypy Error)作为损失函数,也是因为能反向传播得到(y1-t1,y2-t2,y3-t3)这样的结果,同理,使用“平方和误差”作为“恒等函数”的损失函数,反向传播也会得到相同的结果,主要是为了反向传播结果简单才使用这样的损失函数。

Logo

魔乐社区(Modelers.cn) 是一个中立、公益的人工智能社区,提供人工智能工具、模型、数据的托管、展示与应用协同服务,为人工智能开发及爱好者搭建开放的学习交流平台。社区通过理事会方式运作,由全产业链共同建设、共同运营、共同享有,推动国产AI生态繁荣发展。

更多推荐