Part 3 改进神经网络的方法
3-0 交叉熵代价函数
在神经元的输出接近于1时,代价函数对w和b的偏导很小,因此学习速率下降。为了解决这个问题引入交叉熵代价函数。
上述算式表明权重的学习速度受到输出中的误差的控制,与S型函数的导数无关。
类似地,
3-1 过度拟合和规范化
(1)过拟合
下图为分类准确率在测试集上的表现,看到在280迭代期左右分类准确率停止增长,我们说网络在280迭代期后就过度训练了。
检测过度拟合的方法:将全部数据分为test_data,validation_data,train_data,使用validation_data作测试,一旦验证数据的分类准确率已经饱和我们便停止训练,这个策略称为提前停止。
Q: 为什么不用test_data而是validation_data?
A: 如果我们设置超参数是基于test_data,最终我们得到过度拟合于test_data的超参数,但网络的性能并不能泛化到其他数据集合上,因此借助validation_data来克服这个问题。这种寻找好的超参数的方法称为hold out方法,因为validation data是从training_data拿出的一部分。
(2)规范化
减轻过拟合的方法有:增加训练样本数量、降低网络的规模等。
即使我们只有一个固定的网络和固定的训练集,我们可以利用规范化技术。最常用的为L2规范化(权重衰减):即增加一个额外的项到代价函数上。
两者均可以写成:
Q: 规范化项为什么可以降低过拟合?
A: 联想噪声线性模型某些情况下比多项式模型具有更强大广泛的预测,但这样的优势不是绝对的。
规范化的其他技术:
L1规范化:
Dropout:弃权
人为扩展训练数据
3-2 权重初始化
假设我们有Nin个输入权重的神经元,使用均值为0,方差为1/Nin的高斯随机分布初始化权重;使用均值为0,标准差为1的高斯分布初始化偏置。
Part 4 神经网络可以计算任何函数
(1)通用逼近性质
http://www.dartmouth.edu/~gvc/Cybenko_MCSS.pdf
(2)某个即时反馈神经网络训练模型结果的网站
http://cs.stanford.edu/people/karpathy/convnetjs/demo/regression.html
Part 5 深度神经网络
5-0 消失的梯度
(某些深度神经网络中,我们隐藏层BP的时候梯度倾向于变小,意味着前面隐藏层中神经元的学习速度小于后面的隐藏层)
5-1 卷积神经网络
5-2 其他深度学习模型
RNN、Boltzmann Machine、生成式
模型、迁移学习、强化学习等。