优化网络方法:
梯度优化:优化一个函数的最终取值,假设w是函数的输入参数,j(w)是需要优化的函数,那么基于梯度的优化指的是改变w以得到最小化或最大化的j(w)。
梯度下降算法:沿着函数下坡方向(导数增大的反方向)移动w而获得更小的j(w)的技术在深度学习领域被称为梯度下降。w泛指神经网络中的参数,j(w)表示训练数据集上的损失函数。
随机梯度下降:大规模数据训练大型线性模型必须要用到的方。在实际应用中一般会计算一小部分训练数据的总和损失函数,这一小部分就是一个batch。
反向传播算法:梯度下降优化了单个参数的取值,那么反向传播算法则给出了一种高效地在所有参数上使用梯度下降算法的方式。
自适应学习率算法:对每个参与训练的参数设置不同的学习率,在整个学习的过程中通过一些算法自动适应这些参数的学习率。
AdaGrad:当参数的损失偏导值比较小时,它应该有一个较小的学习率。反之亦然。
RMSProp:基于AdaGrad算法采用了指数衰减平均的方式淡化遥远过去的历史对当前步骤参数更新量的影响。用以控制历史梯度值的衰减速率。
Adam:改良RMSProp算法的自适应算法。
Tensorflow优化器:
train.Optimizer:基本的优化器类
tran.GradienDescentOptimizer:梯度下降优化器
train.AdagradOptimizer:Adagrad自适应学习率优化器。
train.RMSPropOptimizer:RMSProp自适应学习率优化器。
train.AdamOptimizer:Adam自适应优化器
train.AdagadDAOptimizer:Adagad优化器升级版。多了正则化内容。
train.AdadeltaOptimizer:adadelta算法优化器。
train.ProximalGradientDescentOpeimizer和train.ProximalAdaradOptimizer都是Optimizer的子类。
train.FtrlOptimizer:FTRL算法优化函数。
学习率的独立设置:学习率控制梯度下降中的参数更新的幅度。
指数衰减train.exponential_deccy函数可以对学习率指数形式的衰减。
其他优化学习率的方法:
反时限学习率衰减:train.inverse_time_decay。
自然指数学习率衰减:train.natural_exp_decay函数。
分片常数学习率衰减:train,piecewise_constant函数。
多项式学习率衰减:train.pplynomial_decay函数。
拟合:
欠拟合:是指模型在训练集上获取足够低的误差。过拟合:是指训练误差和测试误差之间差距太大。
模型的容量是指其拟合各种函数的能力,解决过拟合通常的方法是正则化。
L2正则化函数:contrb.laters.l2_regularizer
Bagging技术:降低泛华误差,Bagging会分别训练几个不同的模型,之后使用相同的测试集在这些模型上进行测试。
Dropout:解决过拟合问题,在训练时,将神经网络某一层的单元数据随机丢弃一部分。dropout函数