神经网络构建与语言分类实战
1. 输出层
输出层与输入层类似,不过其中包含神经元。这里是数据从模型输出的地方,和输入层一样,输出的数据可以是对称的或标准的。输出层决定了输出神经元的数量,这取决于我们所构建的模型。例如,对于一个判断交通信号灯是红色、绿色还是黄色的函数,我们会有三个输出(每种颜色对应一个输出),每个输出都会包含我们所需结果的近似值。
2. 训练算法
每个神经元的权重由训练算法确定,常见的训练算法有:
- 反向传播(Back propagation)
- 快速传播(QuickProp)
- 弹性传播(RProp)
这些算法都通过迭代(也称为周期,epoch)来为每个神经元找到最优权重。在每个周期中,训练算法会遍历整个神经网络,并将其输出与预期输出进行比较,从过去的错误计算中学习。
这些算法的共同点是,它们都试图在凸误差表面上找到最优解。可以将凸误差表面想象成一个有最小值的碗。就像站在山顶想前往山谷,但山谷中树木茂密,只能根据局部信息前进并猜测下一步的方向,这就是梯度下降算法(通过向山谷下行来确定最小误差)。训练算法也是利用局部信息来最小化误差。
2.1 德尔塔规则(Delta Rule)
虽然我们可以求解大量方程,但迭代会更快。德尔塔规则不计算误差函数关于权重的导数,而是计算每个神经元权重的变化,公式如下:
[
\Delta w_{ji} = \alpha (t_j - \phi (h_j)) \phi’ (h_j) x
超级会员免费看
订阅专栏 解锁全文
13万+

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



