初探深度學習使用 Keras part 2



CSDN - 對 Dropout 的詮釋

  • 組合派 (Ensemble)
        overfitting → 參數量過多 → 找到一個比較瘦的網路可能可以降低 overfitting 的程度 → 手動或使用 Grid-                
        Search? 太慢 → 使用 Dropout 使學習時隨機打斷一些連結 → 可以解決費時的問題,把重要的連結權重增
        加;不重要的減輕 → 重新組合起來後 (Inference phase) 自然會是一個以權重定義後的瘦網路。

  • 動機論 (有豬隊友)
        overfitting →  有人 (參數/連結) 濫竽充數 → 隨機將某些人 (神經元) 分成數組 → 各組學會懂得自立自強 
        → 重新組合後 (Inference phase) 會比原本更強大。


參考連結:



知乎 - BatchNorm 的原理與實戰


  • 背景:
         為什麼神經網路這麼不穩定 → 神經網路各層間的映射頻繁的變換 (Internal Covariate Shift)
  • Internal Covariate Shift 的問題
    • 網路在初期需要透過不斷大幅調整來適應輸入的分布變化
    • 深層網路的梯度消失/爆炸問題使分布更加不穩
  • 解法
         在各層網路中的各特徵軸 (channel) 單獨進行標準化,使其變為分布平均為 0, 變異數為 1 的分布,再加上
         平移與縮放,就可以表示原本的分布。

參考連結:


CSDN - Earlystopping 的使用與技巧


為何要使用 EarlyStopping:繼續訓練會導致測試集準確率下降。
  • 過度擬合
  • 學習率過大導致不收斂
  • 使用 Regulizers 時,Loss 減少未必是準確率上升,可能是 weights 變少而已。

EarlyStopping 可以監控的項目
  • acc, val_acc, loss, val_loss, ...etc 等 loss 與 metrics

有時候要監控的項目不是越小越好 (“min”),這時候要可以手動將 mode 設成 “max”

參考連結:


莫煩 Python - 儲存與載回模型


  • 儲存模型:前面的課程內容已經提過
    • 載回模型:
      • 儲存整個模型的話
                  -> keras.models.load_model(path_to_your_model)
  • 只儲存權重的話
                  -> model = build_model(...)
                  -> model.load_weights(path_to_your_weight_file)

              
參考連結:



Github 原碼:LearningRateScheduler 與 ReduceLR


A. LearningRateScheduler
  1. 在每個 epoch 開始前,得到目前 lr
  2. 根據 schedule function 重新計算 lr,比如 epoch = n 時, new_lr = lr * 0.1
  3. 將 optimizer 的 lr 設定為 new_lr
  4. 根據 shhedule 函式,假設要自訂的話,它應該吃兩個參數:epoch & lr

B. ReduceLR
  1. 在每個 epoch 結束時,得到目前監控目標的數值
  2. 如果目標比目前儲存的還要差的話,wait+1;若否則 wait 設為 0,目前監控數值更新新的數值
  3. 如果 wait >= patient,new_lr = lr * factor,將 optimizer 的 lr 設定為 new_lr,並且 wait 設回 0



參考連結:

CSDN - Keras 自定義 Loss 函數


有時候我們想根據任務調整損失函數,Keras 可以在 compile model 時使用自定義函數。

最常用的方式
  • 自定義函數必須至少要有兩個參數:y_true, y_pred。其他參數則可視狀況自行加入。

較不常用的方式
  • 定義一個 loss_layer
  • 在 call function 中用 self.add_loss 加其加入


  1. 圖像分類 | 深度學習PK傳統機器學習
  2. OpenCV - 直方圖

進階參考資料: 
  1. OpenCV 教學文檔
  2. Udacity free course: Introduction To Computer Vision


  1. Sobel 運算子 wiki 
  2. 基於傳統圖像處理的目標檢測與識別(HOG+SVM附代碼)
  3. 知乎 - 什麼是 SVM
  4. 程式碼範例的來源,裡面用的是 mnist 來跑 

留言

搜尋

本月熱門文章

中國國民黨政治人物參與中國共產黨統戰學習?

日本旅行 去東京可以在哪邊買羽球相關用品?WEMBLEY/WINDSOR/梭家/Victoria/Alpen TOKYO/

[台海危機] 中國軍機擾台問題 2023/09/17-18 單日破百架次飛機 創新高

[台海危機] 2024/10/15 聯合利劍—2024B「153共機34共艦」圍台破單日紀錄 東南空域配合遼寧艦聯演

[社會觀察] 一生順遂與命途乖舛

堪比林益世李朝卿的前台北市長柯文哲

台灣只有兩種小孩

水電行介紹---台北市北投區的實踐街上的義憶水電行----很艋舺的台詞.

水電行介紹---台北市南港區研究院路二段30號的志興水電行---是水電行也是水電材料行

金融犯罪調查師 車禍身亡 疑點重重 金融正義的代價:陳梅慧離奇車禍死亡背後的疑雲

Agoda

熱門文章

[社會觀察] 一生順遂與命途乖舛

中華民國2024 總統、副總統選舉公告發布 連署參選門檻28萬9667人 可以推薦候選人的政黨包括民進黨、國民黨、民眾黨和時力

[FAANG面試] 如何準備Google Technical Program Manager (TPM) 面試

關於中國:202X年

[HMD Global] Nokia 2020 新手機發布 首款 5G 手機 Nokia 8.3 預計夏季開賣 !

[音樂] 霖霖 新單曲:給你了

[表特][Passion Sisters] 中信兄弟PS女孩 浮誇甜心 凱蒂 炸裂全場~ 小許瑋甯

[棒球] 2023 台灣大賽G5 威能帝13K飆破紀錄 猿3轟搶聽牌優勢