神经网络与深度学习笔记

1、代价函数:C=\frac{1}{n}\sum _xC_x,它是遍及每个训练样本代价C_x=\frac{\left \| y(x)-a \right \|^2}{2}的平均值。在实践中,利用梯度下降,需要为每个训练输入x单独地计算梯度值\bigtriangledown C_x,然后求平均值\bigtriangledown C=\frac{1}{n}\sum _x\bigtriangledown C_x。但训练输入数量过大时会花费很长时间,借助随机梯度下降的算法能加速学习。其思想是:通过随机选取小量训练输入样本(mini-batch)X_1,X_2,...,X_m计算\bigtriangledown C_x,进而估算梯度\bigtriangledown C:

                              \frac{\sum _{j=1}^{m}\bigtriangledown C_{X_j}}{m}\approx \frac{\sum _x\bigtriangledown C_x}{n}=\bigtriangledown C

在当前小批量数据中的所有训练样本X_j上训练结束,再挑选另一随机选定的小批量数据去训练,直到用完所有的训练输入,这被称为完成了一个训练迭代期(epoch)。

2、改进神经网络的学习方法:更好的代价函数的选择:交叉熵代价函数;四种“规范化”方法:L1和L2规范化,弃权和训练数据的人为扩展,让我们的网络在训练集之外的数据上更好地泛化。

3、在错误不是很好地定义时,学习过程会变得很缓慢。但在犯错时也存在学习缓慢情况,实际上是因为二次代价函数的偏导数很小。为解决这个问题,使用交叉熵代价函数替换二次代价函数。

                      C=-\frac{1}{n}\sum _x\left [ ylna+(1-y)ln(1-a) \right ]

其中,n是训练数据的总数,y是对应目标的输出。交叉熵代价函数比二次代价函数更好的特性就是它避免了学习速度下降的问题。

一般,S型输出层和交叉熵代价组合使用,柔性最大值输出和对数似然代价组合使用。

4、检测过度拟合的明显方法是:跟踪测试数据集合上的准确率随训练变化情况。如果看到测试数据上的准确率不再提升,就停止训练。即从traning_data训练集中留出或拿出一部分作为validation_data,这种利用验证集寻找好的超参数的方法被称为hold out方法。

最好的降低过度拟合的方式之一是增加训练样本的量。有了足够的训练数据,就算是一个规模非常大的网络也不大容易过度拟合。

另一种减轻过度拟合可行的方式是降低网络的规模。

规范化也能够缓解过度拟合。

5、L2规范化或权重衰减:增加一个额外的项到代价函数上,这个项叫做规范化项。

   C=C_0+\frac{\lambda }{2n}\sum _ww^2

C_0是原始化代价函数。\lambda越小,就偏向最小化原始代价函数,反之,倾向小的权重。规范化的效果是让网络倾向学习小一点的权重,小的权重意味着更低的复杂性,可以对数据给出一种简单却更强大的解释。

    神经网络大多数有很小的权重,这最可能出现在规范化的网络中。更小的权重意味着网络的行为不会因为我们随意改变了一个输入而改变太大,这会让规范化网络学习局部噪声的影响更加困难。

6、L1规范化:C=C_0+\frac{\lambda }{n}\sum _w\left | w \right |

在L1规范化中,权重通过一个常量向0进行缩小。在L2规范化中,权重通过一个和w成比例的量进行缩小。

当权重绝对值很大时,L1规范化的权重缩小的远比L2规范化小的多。当权重绝对值很小时,L1规范化的权重缩小的要比L2规范化大得多。

7、弃权(drop out)也是减轻过度拟合的方法。弃权改变了网络本身,会随机地删除网络中一部分隐藏神经元。当弃权掉不同的神经元集合,就像在训练不同的神经网络。所以弃权过程就如同大量不同网络的效果的平均那样。

8、卷积神经网络:将输入层到隐藏层的映射称为一个特征映射,共享权重和偏置经常被称为一个卷积核或滤波器。卷积神经网络也包含混合层,混合层通常紧接着在卷积层之后使用,它要做的是简化从卷积层输出的信息。混合层常用的方法有最大值混合,L2混合。

 

你可能感兴趣的:(神经网络与深度学习笔记)