- 随机梯度下降
- 神经网络模型
- 反向传播算法
随机梯度下降
通过多次的随机选择某一个样本进行梯度下降,其均值依然能够反应出正确的下降方向,这就是GD的随机版本,SGD
SGD的优点
- 计算方便
因为在GD中,每次迭代都要用到全部训练数据。
在SGD中,每次迭代可以只用一个训练数据来更新参数。 - 随机性
SGD的随机性可以使得在迭代的过程中有机会不陷入局部最优
- 原理简单
SGD的应用
以电影评分为例:
每个点表示电影中不同的方面信息。我们需要匹配电影元素和用户的口味。其目标的使得我们的推测尽可能的接近用户的评分。
神经网络
感知器模型
单层的感知器可以完成一些简单的问题
对于单层感知器无法完成的问题,我们使用多层感知器的组合来实现单一的功能。
所以,越多的感知器的添加,可以使我们更好的拟合所给的数据内容。但是,需要注意泛化与优化的问题。
在单个感知器模型的优化问题中,处理线性不可分数据对模型造成的问题都很困难,需要使用组合优化。所以当多层感知器交叠在一起的时候,优化问题就变得非常难以处理。
神经网络模型
神经网络中的阈值函数选择为软阈值函数,其主要作用在于避免硬阈值函数“一刀切”带来的剧烈抖动, 可以用于处理一些优化问题。
神经网络中的权重是多层次的,所以显得更加复杂:
下一层的输入将会是上一层的输出经过阈值函数转换后的结果:
反向传播算法
将SGD运用于模型中:
e(w) 与 w 之间无法直接相关,所以通过总的上层输入s作为中间层。
反向传播
反向的原因在于,最后在最后模型输出结果后,我们才能将模型的结果与实际的y值想比较,进而向前递进的修改w。
j = 1 是因为最终的输出只有一个。而中间层的输出可以有多个。
θ是任意一个软阈值函数。此处为tanh。
上一层的δ由下一层的δ反向求取。
算法伪代码如下: