目录
-
-
- 1 问题
-
- 1.1 梯度问题
- 1.2 局部最小值 鞍点
- 1.3 退化
- 1.4 过拟合
- 2 激活函数
- 3 损失函数
- 4 训练过程
-
- 4.1 批量梯度下降 BGD
- 4.2 随机梯度下降 SGD
- 4.3 小批量梯度下降 MBGD
- 5 优化方法
- 6 输入输出
-
- 6.1 输入 x
- 6.2 输出 y
- 7 权重初始化及学习率的设定
-
1 问题
1.1 梯度问题
▽ulL=(Wl+1)T[▽ul+1L]?f′(ul)\bigtriangledown _{u^l}L=(W^{l+1})^T[\bigtriangledown _{u^{l+1}}L]\bigodot f^{\prime}(u^l)▽ul?L=(Wl+1)T[▽ul+1?L]?f′(ul)
- 梯度消失:激活函数导数<1 多次连乘 前面层权重梯度接近0 参数无法有效更新
- 梯度爆炸:激活函数导数》1 多次连乘 前面层权重梯度很大
1.2 局部最小值 鞍点
梯度下降能尽量保证下降到梯度为0的点 但不能保证这个点是全局最优
1.3 退化
- 退化:在训练集和测试集误差都很大
神经网络层数越多,训练误差和测试误差越大
1.4 过拟合
-
①增加数据量
-
②正则化
-
③droupout:训练时随机忽略一些神经元
2 激活函数
- sigmoid
f(x)=11+e?xf(x)=\cfrac {1}{1+e^{-x}}f(x)=1+e?x1? - relu
f(x)=max(0,x)f(x)=max(0,x)f(x)=max(0,x) - tanh
f(x)=ex?e?xex+e?xf(x)=\cfrac {e^x-e^{-x}}{e^x+e^{-x}}f(x)=ex+e?xex?e?x?
3 损失函数
分类:交叉熵好于欧氏距离
回归:欧式距离
4 训练过程
4.1 批量梯度下降 BGD
每一次迭代时使用所有样本来进行梯度的更新
- 代表样本总体 更准确的朝向极值点
- 样本数量多的时候 训练速度慢
4.2 随机梯度下降 SGD
每次迭代使用一个样本来对参数进行更新
- 迭代速度很快(只使用一个样本就更新参数)
- 最终准确度下降
4.3 小批量梯度下降 MBGD
相比于以上两种 的折中方法
每次迭代使用batch_size个样本对参数进行更新
- 加快训练速度的同时尽可能保证准确率
5 优化方法
6 输入输出
6.1 输入 x
归一化 缩放至[0,1]或[-1,1]区间
6.2 输出 y
分类:[0,0,预测类1,0,0] one-hot编码
回归:缩放至[0,1]或[-1,1]
7 权重初始化及学习率的设定
权重服从某种分布
学习率多次尝试 可以逐次减小