神经网络优化

Posted brillant-ordinary

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了神经网络优化相关的知识,希望对你有一定的参考价值。

一、损失函数(loss) [前向传播的预测值y与已知答案y_的差距]:

  1.优化目标:使loss达到最小值。

  2.优化方法:均方误差(mse)

        交叉熵(ce)

        自定义

详解:

1.均方误差mse:

公式:

技术分享图片

函数:loss_mse = tf.reduce_mean(tf.square(y_ - y))

tf.reduce_mean(x)  :表示计算所有元素的平均值。

2.交叉熵cs: 表征两个概率分布之间的距离

公式:

技术分享图片

函数:ce = -tf.reduce_mean(y_*tf.log(tf.clip_by_value(y, 1e-12, 1.0)))

也可以写成:ce = tf.nn.sparse_softmax_cross_entropy_with_logits(logits = y, labels = tf.argmax(y_,1))

      cem = tf.reduce_mean(ce)

 

二、学习率:每次更新的幅度

公式:

技术分享图片

优化目的:找到损失函数最小点。

注意:学习率设置大了,不收敛,设置小了收敛速度慢

指数衰减学习率:

global_step = tf.Variable(0, trainable = False)    //记录运行了多少轮,设置为不可训练参数

learning_rate = tf.train.exponential_decay(LEARNING_RATE_BASE,global_step,LEARNING_RATE_STEP,LEARNING_RATE_DECAY,staircase = Ture)

参数:学习率基数,训练轮数,学习率多少次更新一次,(Ture为梯形下降,false为指数型下降)

 

以上是关于神经网络优化的主要内容,如果未能解决你的问题,请参考以下文章

独家 | 如何手动优化神经网络模型(附链接)

用粒子群群算法优化BP神经网络的参数,进行极值寻优?

如何手动优化神经网络模型

基于蜜蜂优化算法优化的卷积神经网络(CNN)图像分类

神经网络基础部件-优化算法详解

神经网络中的优化算法