五月综合激情婷婷六月,日韩欧美国产一区不卡,他扒开我内裤强吻我下面视频 ,无套内射无矿码免费看黄,天天躁,日日躁,狠狠躁

新聞動態(tài)

一小時學會TensorFlow2之大幅提高模型準確率

發(fā)布日期:2022-01-15 16:22 | 文章來源:CSDN

過擬合

當訓練集的的準確率很高, 但是測試集的準確率很差的時候就, 我們就遇到了過擬合 (Overfitting) 的問題. 如圖:

過擬合產生的一大原因是因為模型過于復雜. 下面我們將通過講述 5 種不同的方法來解決過擬合的問題, 從而提高模型準確度.

Regulation

Regulation 可以幫助我們通過約束要優(yōu)化的參數(shù)來防止過擬合.

公式

未加入 regulation 的損失:

加入 regulation 的損失:

λ 和 lr (learning rate) 類似. 如果 λ 的值越大, regularion 的力度也就越強, 權重的值也就越小.

例子

添加了 l2 regulation 的網(wǎng)絡:

network = tf.keras.Sequential([
 tf.keras.layers.Dense(256, kernel_regularizer=tf.keras.regularizers.l2(0.001), activation=tf.nn.relu),
 tf.keras.layers.Dense(128, kernel_regularizer=tf.keras.regularizers.l2(0.001), activation=tf.nn.relu),
 tf.keras.layers.Dense(64, kernel_regularizer=tf.keras.regularizers.l2(0.001), activation=tf.nn.relu),
 tf.keras.layers.Dense(32, kernel_regularizer=tf.keras.regularizers.l2(0.001), activation=tf.nn.relu),
 tf.keras.layers.Dense(10)
])

動量

動量 (Momentum) 是指運動物體的租用效果. 在梯度下降的過程中, 通過在優(yōu)化器中加入動量, 我們可以減少擺動從而達到更優(yōu)的效果.

未添加動量:

添加動量:

公式

未加動量的權重更新:

  • w: 權重 (weight)
  • k: 迭代的次數(shù)
  • α: 學習率 (learning rate)
  • ∇f(): 微分

添加動量的權重更新:

  • β: 動量權重
  • z: 歷史微分

例子

添加了動量的優(yōu)化器:

optimizer = tf.keras.optimizers.SGD(learning_rate=0.02, momentum=0.9)
optimizer = tf.keras.optimizers.RMSprop(learning_rate=0.02, momentum=0.9)

注: Adam 優(yōu)化器默認已經(jīng)添加動量, 所以無需自行添加.

學習率遞減

簡單的來說, 如果學習率越大, 我們訓練的速度就越大, 但找到最優(yōu)解的概率也就越小. 反之, 學習率越小, 訓練的速度就越慢, 但找到最優(yōu)解的概率就越大.

過程

我們可以在訓練初期把學習率調的稍大一些, 使得網(wǎng)絡迅速收斂. 在訓練后期學習率小一些, 使得我們能得到更好的收斂以獲得最優(yōu)解. 如圖:

例子

learning_rate = 0.2  # 學習率
optimizer = tf.keras.optimizers.SGD(learning_rate=learning_rate, momentum=0.9)  # 優(yōu)化器
# 迭代
for epoch in range(iteration_num):
 optimizer.learninig_rate = learning_rate * (100 - epoch) / 100  # 學習率遞減

Early Stopping

之前我們提到過, 當訓練集的準確率仍在提升, 但是測試集的準確率反而下降的時候, 我們就遇到了過擬合 (overfitting) 的問題.

Early Stopping 可以幫助我們在測試集的準確率下降的時候停止訓練, 從而避免繼續(xù)訓練導致的過擬合問題.

Dropout

Learning less to learn better

Dropout 會在每個訓練批次中忽略掉一部分的特征, 從而減少過擬合的現(xiàn)象.

dropout, 通過強迫神經(jīng)元, 和隨機跳出來的其他神經(jīng)元共同工作, 達到好的效果. 消除減弱神經(jīng)元節(jié)點間的聯(lián)合適應性, 增強了泛化能力.

例子:

network = tf.keras.Sequential([
 tf.keras.layers.Dense(256, activation=tf.nn.relu),
 tf.keras.layers.Dropout(0.5),  # 忽略一半
 tf.keras.layers.Dense(128, activation=tf.nn.relu),
 tf.keras.layers.Dropout(0.5),  # 忽略一半
 tf.keras.layers.Dense(64, activation=tf.nn.relu),
 tf.keras.layers.Dropout(0.5),  # 忽略一半
 tf.keras.layers.Dense(32, activation=tf.nn.relu),
 tf.keras.layers.Dense(10)
])

到此這篇關于一小時學會TensorFlow2之大幅提高模型準確率的文章就介紹到這了,更多相關TensorFlow2模型準確率內容請搜索本站以前的文章或繼續(xù)瀏覽下面的相關文章希望大家以后多多支持本站!

版權聲明:本站文章來源標注為YINGSOO的內容版權均為本站所有,歡迎引用、轉載,請保持原文完整并注明來源及原文鏈接。禁止復制或仿造本網(wǎng)站,禁止在非maisonbaluchon.cn所屬的服務器上建立鏡像,否則將依法追究法律責任。本站部分內容來源于網(wǎng)友推薦、互聯(lián)網(wǎng)收集整理而來,僅供學習參考,不代表本站立場,如有內容涉嫌侵權,請聯(lián)系alex-e#qq.com處理。

相關文章

實時開通

自選配置、實時開通

免備案

全球線路精選!

全天候客戶服務

7x24全年不間斷在線

專屬顧問服務

1對1客戶咨詢顧問

在線
客服

在線客服:7*24小時在線

客服
熱線

400-630-3752
7*24小時客服服務熱線

關注
微信

關注官方微信
頂部