一文读懂神经网络
目录
1前向传播
1.1由简单函数到复杂函数
图1 正比例函数图像
<x标量,y标量>一维简单函数:e.g.(此为一个一维标量x,对应一个一维标量y值)
<x向量,y向量>多维复杂函数:e.g.(此公式表示,一个三维向量x,对应一个三维向量y值)
<多维,多值向量>多维多值复杂函数:e.g.(此公式表示,n个三维向量x,对应n个三维向量y)
1.2复杂函数衍生到神经网络
图2 神经网络图像
图2为一个四层的神经网络,分别为输入层,隐藏层*2,和输出层。神经网络主要由输入层,输出层和隐藏层组成。
先上公式:
(1-1)
再解释:在这个公式中,和是一样的,只不过标量统一变成向量,符号对应(
,
,
)。
代表第
层的输入(ps.第0层的输入是
,随着神经网络的向后进行,第1层的输出就为
,然后第2层的输入就是
);
代表第
层的第
个神经元连接到第
层第
个神经元的权重;
代表第
层的第
个神经元的偏置;
代表第
层的第
个神经元的输入。
(1-2)
代表第
层的第
个神经元的输出;
代表
**函数,下面有专门一章将**函数。
2**函数
2.1softmax**函数
(2-1)
代表第
层(通常为最后一层)第
个神经元输入,
代表第
层第
个神经元输出,
代表第
层所有神经元输入之和。
图3 softmax函数图解
从图3可以看出,函数将每个神经元的输入占当前所有神经元输入之和的比值,将多个神经元的输出映射到(0,1)区间,当做该神经元的输出,这也就可以理解为,神经元输出值越大,该神经元对应的类别是真是类别的可能性越高,进而用来进行多分类。
2.2softmax函数求导
图4 softmax函数求导步骤
2.3sigmoid**函数
(2-2)
代表第
层(通常为最后一层)第
个神经元输入,
代表第
层第
个神经元输出。
**函数可以作为输出单元用来解决二分类问题。
图5 sigmoid函数图像
2.4sigmoid函数求导
图6 sigmoid函数求导步骤
3代价函数
3.1二次代价函数
一元二次函数:
(3-1)
当a>0时候,y有最小值;
由此来看二次代价函数:
(3-2)
这个是多值(多样本)的时候代价函数。简单起见,用一个样本为例说明:
(3-3)
此函数二次项系数必大于0,所有C有最小值。
3.2交叉熵代价函数
(3-4)
参数的梯度计算:
图7 梯度计算步骤
4反向传播
反向传播就是从代价函数开始对权重w和偏值b求导。