初探深度學習使用 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 來跑 

留言

Google Search

推薦內容橫式

本月熱門文章

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

[FAANG面試] Amazon/AWS 領導力準則 14 Amazon Leadership Principles

PM到底在做什麼 ? Project Manager, Product Manager 以及 Program Manager的差別

ComfyUI搭配各個Stable Diffusion模型版本的介紹、檔案名稱及相應的目錄結構。

蔣經國時代 1979年 美麗島事件 回顧

Netflix 勁爆女子監獄 Orange is the New Black /OINTB 成立了 Poussey Washington Fund 這個基金將會幫助更生人及移民人權問題 !!

快速上手的ComfyUI與Stable Diffusion生成圖片的cheat sheet

許多深藍人士懷念的兩蔣時代

日本女子搖滾樂團=Hölderlins的吉他手 高橋聖子 Shoko Takahashi 可能要單飛啦 讓搖滾,性感和舞蹈音樂可以很好地融合在一起

川普第二次擔任美國總統

這個網誌中的熱門文章

Android應用開發豆知識:利用 adb 安裝 apk 到裝置上

Android 中文輸入法 官方版 ! Gboard - Google 鍵盤 開始支援注音輸入啦

Google Play 推薦Android app 誠徵App排行榜

北京故宮首訪,一窺清宮秘史 大玉兒 & 甄嬛

[家教][社會觀察] 建中教我的事 沒上建中被父母親折磨? 在建中到底是如何 ...

[FAANG面試] Amazon/AWS 領導力準則 14 Amazon Leadership Principles

Acer ICONIA Smart S300 更新後越來越好 Acer也有出手機?!

[品質控制] 什麼是Sanity test ? 軟體測試常見名詞整理 包含不同部門的測試人員負責範圍

新鮮人找工作:職場名詞解釋 AE FAE Pre-sales Post-sales