传统神经网络
神经网络起源:线性回归
线性回归:
线性关系来描述从输入到输出的映射关系
从线性到非线性
- 非线性激励:
考量标准
正向对输入的调整->变成0~1
反向梯度损失 - sigmoid:
1/1+e^-x
求导: y(1-y )
映射到【0,1】
容易发生梯度消失 - tanh:
1-e-2x/1+e-2x
求导:1-f(x)^2
映射到【-1,1】
容易发生梯度消失 - ReLu0
0 X<0
X X>=0
损失大量特征,正向截断负值
反向梯度没有损失:不会发生梯度消失 - Leaky ReLu
0.01x x<0
x x>=0
保留更多参数,少量梯度反向传播
神经网络的配件
- loss损失函数:
影响深度学习性能最重要的因素之一,是外部世界对神经网络模型训练
softmax:
e^j / Σe^k
分类问题的预测结果更明显,最大值更明显
cross entropy:
L(w) = -1/n(ylogy_pre+ (1-y)log(1-y_pre))
[0,1]分类
自定义:
看重某一个属性,单独将某一些预测值取出或者赋予不同大小的参数
合并多个loss:
多目标训练任务,设置合理的loss结合方式(各种运算)
神经网络融合:
不同神经网络loss结合,共同loss对网络进行训练指导 - 学习率
数值大收敛快
数值小精度高
如何选择:
固定:一直以固定值
step:到一定迭代步数就改变
自定义:根据参数值设置学习率 - 动量
x += -learning_ratedx
沿着已经得到的优化方向前进,不用重新找方向,只需要微调
加入惯性:
v = mmuv - learning_rate*dx
x += v - 过拟合:
参数多数据有限
正则化
dropout:
随机选出一部分神经元不采用其结果
50%效果最好
Fine-tuning/Data Augmentation:
对图片进行旋转,评议,切割,增加图片数量
面试题
- 有线性回归的网络吗
没有,多层相当于一层,没有意义 - 动量和直接调大学习率有什么区别
在原来方向上,考虑梯度新的变化,矢量相加
直接调大
方向不同找的更准确 - 什么叫weight decay和正则化有什么关系
一样的