5月班第5次课caffe TensorFlow使用与CNN训练注意事项
CNN训练注意事项与框架使用
Mini-batch SGD
不断循环:
① 采样一个batch数据(比如32张,可以做镜像对称)
② 前向计算得到损失loss
③ 反向传播计算梯度(一个 batch上的)
④ 用这部分梯度迭代更新权重参数
训练注意点
2种方式去均值
不要做标准化、PCA和白化
权重初始化
对于层次不深的神经网络OK
深层网络容易带来整个网络(激活传递)的不对称性
权重初始化
10层神经网络(500神经元),使用tanh作为激励函数
关于Batch Normalization
① 期望激励过后的结果是高斯分布的,那我们就手动修一下
通常在全连接层后,激励层前做
关于Batch Normalization好处
梯度传递(计算)更为顺畅
学习率设高一点也没关系
对于初始值的依赖减少了!!!
说起来,其实这里也可以看做一种正则化,减少了对dropout
的需求。
Dropout
Life is short, but I have a cat.