深度学习的种种
@(深度学习理论)
我们主要分三个部分来讲解神经网络,第一个部分为神经网络的总论,也就是抛开各个部分的功能及原理,而关注神经网络整体的原理及功能,这部分可能放在本文的最后来讲解,然后第二个部分是神经网络的各个部件:主要有前向传播部分和反向传播部分。最后是神经网络的后处理,也就是神经网络的压缩。
1. 神经网络总论
所谓总论也就是不知道该放在其他什么地方的东西,好像是在说神经网络的一些杂化,但是还是很有用的。
1. 神经网络的分布式学习:每个语义概念由许多分布在不同神经元中被激活的模式表示,而每个神经元又可以参与到许多不同的语义概念的表示中去。
2. 表征神经网络复杂度的两个核心元素:深度和宽度;
3. 为什么随着网络的增加,网络的训练会逐渐变得非常困难:因为基于随机梯度下降的网络训练过程中,误差信号的多层反向传播非常容易引发梯度“弥散”(梯度过小会使得回传的训练误差极其微弱)或者“爆炸”(梯度过大导致模型训练出现“NaN”).
4. 网络正则化:网络正则化(为降低过拟合的有效工具):正则化是机器学习中通过显式的控制模型复杂度来避免过拟合,确保泛化能力的一种有效方式。如果把模型的原始空间比作“天空”,那么天空中自由飞翔的鸟就是模型中可能收敛的一个个最优解。在实施了模型正则化后,就好比将原假想空间缩小到一定的空间范围,这样一来,可能得到的最优解能搜寻到的假设空间也变得相对比较有限。
6. 复杂协同效应:传统神经网络中,由于神经元之间的互联,对于某单个神经元来说,其反向传导来的梯度信息也受到其他神经元的影响,可谓“牵一发而动全身”。
7. 微调神经网络:也就是利用目标数据在原先训练模型的基础之上继续训练模型。需要注意一下方面:
- 因为网络在原来的数据上已经收敛,因此应当设置较小的学习率在目标数据上微调,如10^-4;
- 神经网络的层数不同,所表达的东西也不同,应对不同的神经网络设置不同的学习率,网络深层的学习率可大于浅层学习率;
- 根据目标数据与原始数据相似程度采用不同微调策略,当数据较少且与原始数据非常相似时,可仅微调靠近目标函数的后基层,当数据充足且靠近目标函数时,可微调更多网络层也可全部微调,当目标数据充足且与原始数据相差较大时,必须调节更多网络层,当目标数据较少,且与原始数据有较大差异时,则应当视情况而定。
8. 深度学习两个非常重要的信息为:非线性和多层。非线性依靠隐藏层来实现,而多层的实现则依靠减小参数数量,也就是权重共享来实现。神经网络隐