1. 優化器(tensorflow)
1.1 tf.train.gradientdescentoptimizer --梯度下降
表示式:
# 傳入學習率,目標優化損失
tf.train.gradientdescentoptimizer(learning_rate).minimize(loss)
1.2 tf.train.momentumoptimizer--動量梯度下降
表示式:
# 優化損失函式
tf.train.momentumoptimizer(learning_rate).minimize(loss)
1.3 tf.train.adamoptimizer--自適應學習率變化
表示式:
# 自適應梯度下降
tf.train.adamoptimizer(learning_rate).minimize(loss)
1.4 總結:
a . tensorflow中的優化器
tf.train.gradientdescentoptimizer --
tf.train.adadeltaoptimizer --
tf.train.adagradoptimizer
tf.train.adagraddaoptimizer
tf.train.momentumoptimizer --
tf.train.adamoptimizer --
tf.train.ftrloptimizer
tf.train.proximalgradientdescentoptimizer
tf.train.proximaladagradoptimizer
tf.train.rmspropoptimizer --
b. 各種優化器對比:
1)標準梯度下降法:
標準梯度下降先計算所有樣本彙總誤差,然後根據總誤差來更新權值
2)隨機梯度下降法:
隨機梯度下降隨機抽取乙個樣本來計算誤差,然後更新權值
3)批量梯度下降法:
批量梯度下降算是一種折中的方案,從總樣本中選取乙個批次(比如一共有10000個樣本,隨機選取100個樣本作為乙個batch),然後計算這個batch的總誤差,根據總誤差來更新權值。
2. 學習率動態變化
在模型不斷學習的過程中,訓練後期中模型的表現能力很強,此時應該降低學習率,使得模型能夠快速的接近目標。
學習率指數遞減:
# 學習率指數遞減
learning_rate = tf.train.exponential_decay(learning_rate,global_step,decay_steps,decay_rate)
'''引數說明:
learning_rate:學習率初始值,預設為0.1
global_step:當前訓練輪數,在定義時需要設定為不可訓練
decay_steps:批次大小
decay_rate:多少次更新一次學習率(總樣本/批次大小)
'''
3. 欠擬合與過擬合
1) 欠擬合
現象:模型不能夠捕捉資料的特徵,從而不能夠準確**
方法:① 新增特徵項,使得模型擁有更多了解資料的可能性;
② 減少正則化引數,構造複雜模型來**結果
2) 過擬合
現象:模型在訓練集上擁有非常好的表現,但在**集上表現不理想;
方法:① 增加資料集,降低模型的錯誤率;
② 正則化方法(代價函式增加正則項)
# 為引數w新增l2正則化項,命名為losses
tf.add_to_collection('losses',tf.contrib.layers.l2_regularizer(regularizer)(w))
# 計算損失
ce = tf.reduce_mean(tf.nn.sparse_softmax_cross_entropy_with_logits(logits=y,labels=tf.arg_max(y_predict,1)))
# 新增正則化項,構成最終的模型損失
loss = ce + tf.add_n(tf.get_collection('losses'))
③ dropout(部分神經元工作)
# 在一層網路傳播中dropout應用
w1 = tf.variable(tf.truncated_normal([784,2000],stddev=0.1))
b1 = tf.variable(tf.zeros([2000])+0.1)
l1 = tf.nn.tanh(tf.matmul(x,w1)+b1)#啟用函式
l1_drop = tf.nn.dropout(l1,keep_prob)
# 注:在訓練中使用dropout,但在測試集上必須保證全部的神經元工作,即 keep_prob=1.0
深度學習六
接上 9.3 restricted boltzmann machine rbm 限制波爾茲曼機 假設有乙個二部圖,每一層的節點之間沒有鏈結,一層是可視層,即輸入資料層 v 一層是隱藏層 h 如果假設所有的節點都是隨機二值變數節點 只能取0或者1值 同時假設全概率分布p v,h 滿足boltzmann...
深度學習優化
二 損失函式 三 深度學習中遇到的問題 區域性最優 定義 對於目標函式f x 如果f x 在x上的值比在x鄰近的其他點的值更小,那麼f x 可能是乙個區域性最小值 local minimum 如果f x 在x上的值是目標函式在整個定義域上的最小值,那麼f x 是全域性最小值 global minim...
深度學習 優化方法
仍然是讀完deep learning之後的筆記和知識梳理,這些內容其實是偏理論層面的,後續的話可以結合 進行講解。dl關注的優化問題 尋找神經網路上的一組引數 顯著降低代價函式j j 通常包括整個訓練集上效能評估 er 經驗風險 和額外的正則化項 sr 結構風險 對於偏應用層面的可以直接看基本演算法...