多层人工神经网络的实现与手写数字分类
1. 前向传播激活神经网络
前向传播是计算多层感知器(MLP)模型输出的过程。MLP的学习过程可总结为以下三个步骤:
1. 从输入层开始,将训练数据的模式通过网络前向传播以生成输出。
2. 根据网络的输出,使用成本函数计算需要最小化的误差。
3. 反向传播误差,找到网络中每个权重的导数,并更新模型。
重复这三个步骤多个周期,学习MLP的权重后,使用前向传播计算网络输出,并应用阈值函数以获得独热编码表示的预测类别标签。
前向传播生成输出的具体步骤如下:
由于隐藏层中的每个单元都与输入层中的所有单元相连,首先计算隐藏层的激活单元 $a_1^{(h)}$:
$z_1^{(h)} = a_0^{(ii)}w_{0,1}^{(h)} + a_1^{(ii)}w_{1,1}^{(h)} + \cdots + a_m^{(ii)}w_{m,1}^{(h)}$
$a_1^{(h)} = \phi(z_1^{(h)})$
其中,$z_1^{(h)}$ 是净输入,$\phi(\cdot)$ 是激活函数,为了使用基于梯度的方法学习连接神经元的权重,激活函数必须是可微的。为了解决复杂问题,如图像分类,MLP模型中需要非线性激活函数,例如Sigmoid(逻辑)激活函数:
$\phi(z) = \frac{1}{1 + e^{-z}}$
Sigmoid函数是一个S形曲线,将净输入z映射到0到1范围内的逻辑分布,在z = 0处与y轴相交。
MLP是前馈人工神经网络的典型示例,前馈指的是每个层作为下一层的输入,没有循环。为了提高代码效率和可读性,
超级会员免费看
订阅专栏 解锁全文
3200

被折叠的 条评论
为什么被折叠?



