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

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



