1、激活函数
1.1 Linear Activation function:直接输出 pre-activation的结果
特点:
- No bound
- Useless
使用情况:
神经网络的最后一层
如果每一层的叠加都是线性转换的话,那么最后输出的结果就只是每一层weight的乘积和,所以神经网络需要非线性转换的activation function
1.2 Sigmoid 函数
特点:
- 1、可以将输入值映射到(0,1)区间
- 2、严格递增的函数
1.3 Tanh 函数
- 映射到(-1,1)区间
- 严格递增
1.4 Rectifier linear activation function
将小于0的部分强制设置为0
特点:
- bounded by 0
- 避免gradient vanishing
- 过滤掉non- positive samplings
- 严格递增
逻辑回归是神经网络的special case
2、 Multiple layers perception
2.1 单层感知机
2.2 Multiple outputs—— 分类和loss
对于分类问题,把最后一层结果经过softmax,得到的输出结果使得它们累加为1,满足概率分布的要求。选择概率最大的作为分类结果
计算loss:计算经过softmax回归后的结果和label值,使用交叉熵。
2.3 多层感知机
3、万能近似定理
4、神经网络的损失函数
使用反向传播算法计算每一层的参数(梯度下降)
cross-entropy
5、BP算法
- 损失依赖于最后一层的输出
- 每个隐藏层都有激活前和激活后两个部分
5.1 对于输出层的梯度计算
5.2 对于隐含层的梯度计算
根据chain rule 计算,对于之前的隐藏层,导数为经过它的weight
6、深度学习的优化/ Plateau
6.1 深度学习网络是匪徒函数
深度学习是非凸函数,很难得到全局最优解。
Highly Non-convex function
如何去寻找最好的局部最优解是关键
深度学习的Plateau
在梯度下降时,当loss函数趋于平稳时,gradient 会停止下降。
加入惯性(Momentum)来避免gradient在平滑区域的停滞
7、SGD with Converge
希望学习率在梯度更新较慢时学习率也会同步变小
- 先使用fixed learning rate
- 再慢慢调整学习率
8、Early stopping
early stopping 可以有效地避免过拟合
训练的越多,模型拟合的能力越强
gap:训练数据和测试数据之间的差距,当模型复杂度增大时,gap可能会越来越大