神經網路優化(一)

2022-06-15 09:06:11 字數 993 閱讀 5198

一、損失函式(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為指數型下降)

神經網路優化(一)

使用反向傳播演算法和梯度下降演算法調整神經 網路中引數的取值。神經網路的優化過程分為兩個階段 1.1第一階段 先通過前向傳播演算法計算得到 值,並將 值和真實值做對比得出兩者之間的差距。1.2第二階段 通過反向傳播演算法計算損失函式對每乙個引數的梯度,再根據梯度和學習率使用梯度下降演算法更新每乙個引...

神經網路優化

import tensorflow as tf from tensorflow.examples.tutorials.mnist import input data 載入資料集 mnist input data.read data sets mnist data one hot true 每個批次的...

神經網路優化器

神經網路陷阱 1 區域性極小值 優化器極易陷入區域性極小值從而無法找到全域性最優解。2 鞍點 當成本函式值幾乎不再變化時,就會形成平原 plateau 在這些點上,任何方向的梯度都幾乎為零,使得函式無法逃離該區域。梯度下降 公式如下 超引數 表示學習率,代表演算法每次迭代過程的前進步長。學習率的選擇...