神经网络优化(一)

一、损失函数(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为指数型下降)

猜你喜欢

转载自www.cnblogs.com/brillant-ordinary/p/9700407.html