【深度学习与深层次神经网络结构】
【什么是深度学习】
通过 多层 非线性 变换对高复杂度数据建模的算法的合集。
【什么是神经网络】
【前馈神经网络】
【神经网络的训练】
【线性模型的局限性】
1 多层线性模型/线性网络的组合,仍然是线性的——只通过线性变换,多层的全连接线性神经网络与单层神经网络的作用是相同的。如果一个问题可以用一条直线划分,那么这个问题可以用线性模型解决。对于线性不可分问题无法处理。
2 异或问题 不是线性可分问题,感知机(单层神经网络-线性分类器),无法解决线性问题。同样多层的线性网络组合也不能解决异或问题。
【激活函数实现去线性化】:实质上是对线性模型的结果再进行变换处理
激活函数可以曲线型
【多层网络解决异或问题】
多层网络,去线性后可以解决异或问题。可在TensorFlow游乐场中测试。
【疑问】x1*x2 引入,单层神经网络也可解决异或问题?- 参考《机器学习》
【常用激活函数】
【自定义激活函数】
【损失函数】:神经网络的训练过程即是寻找使损失函数最小的参数组的过程!
【经典损失函数】
【分类问题-交叉熵】:神经网络解决分类问题输出为一个 n维向量,n为类别数。理想的分类结果为 【0,1,0,0,0】,实际预测结果为【0.1,0.8,0.05,0.05,0】
评估实际预测结果与理想结果之间的接近程度的方法:交叉熵。交叉熵刻画两个概率分布之间的距离。
SoftMax函数,将神经网络前向传输结果转换为概率分布,即【0.1,0.8,0.05,0.05,0】
【回归问题-MSE】
【自定义损失函数】
3【网络优化】
【反向传播与梯度下降算法】
梯度下降算法:用于优化单个参数的取值。梯度下降算法会的带式更新参数,沿着梯度的反方向让参数最小。
反向传播:所有参数上使用梯度下降算法。
【基础优化方法】
【学习率】:每完整的迭代一遍训练数据,学习率就减少一次。训练过程中会对数据完整迭代多轮。
初始学习率:初始值
衰减系数:系数
衰减速度:步长
4 【过拟合】
【正则化】:在损失函数中加入权重项
【滑动平均模型】:模型参数更新过程中会维护一个影子参数组。每一轮迭代时更新影子参数组,当前参数值与影子参数相同。
衰减率:一般会设置成非常接近1,例如:0.999
【Droupout】
【验证集、测试集】
【经验风险最小化】
【结构风险最小化】