iT邦幫忙

第 11 屆 iThome 鐵人賽

DAY 26
0
AI & Data

Python零基礎到Kaggle 系列 第 26

Python零基礎到kaggle-Day25

今日目標

貝葉斯方法,反向傳播
注意:請搭配每日課程觀看以達到最好效果
Faster.ai

看完文章您將學到什麼

近一步理解深度學習,貓狗之外的東西

內文

Slides1

深度學習的優缺點

概念簡單且高度模組化,資料跟工具夠多,社群討論度也高,還對現實世界有極高影響力

隱藏層是不可解釋的黑盒子,需要大量經驗與資料,不知道該用哪個模型,用了還不一定得到正確結果

機率模型的不確定因素與處理辦法

  • Confidence calibration: 讓我們知道能否信賴預測結果
  • Regularization: 避免模型過擬合
  • Ensembling: 以多種可能模型平均平滑預測結果
  • Model selection: 決定哪個模型適合呈現資料的樣子
  • Sparsification: 用少量bit編碼消去關聯
  • Adversarial robustness: 當資料被擾動還能保有良好預測
  • Active Learning: 決定哪個測試資料標注的最差
  • Bandits: 由系統回饋增進效能

類神經網路的預測與校正

https://ithelp.ithome.com.tw/upload/images/20190927/20114906Wt1Yi2IKKg.png

處理不確定因素

不確定因素有三種,各有特點

隨機不確定

天氣,光線...
無法重現,也可能是捕捉到雜訊,但可以學習

對背景知識缺乏造成的不確定

環境,季節...
可以增加樣本學習

分佈外的不確定

在狗訓練集中提供貓的圖片...
增加資料多樣性

貝葉斯方法與集成

貝氏定理:
https://ithelp.ithome.com.tw/upload/images/20190927/201149063JbbNikhUu.png

機率模型

一種系統中描述觀察到資料的模型,如果單純用機率理論描述模型會學到很多噪聲,所以需要反轉機率,像貝葉斯方法,才可以推論未知

類神經網路

https://ithelp.ithome.com.tw/upload/images/20190927/20114906r6boTMnQSn.png

傳統類神經網路與貝葉斯類神經網路比較

傳統:
節點間參數是單一固定的值
訓練方式可以用貝氏方法(就像MLP,MAP估計)

https://ithelp.ithome.com.tw/upload/images/20190927/20114906NtducdNysr.png

Dropout

前向傳播的時候,讓某個神經元的激活值以一定的概率p停止工作,這樣可以使模型泛化性更強,因為它不會太依賴某些局部的特徵,減少神經元相依性,增加魯棒性,避免過擬合

如何使用

1.隨機刪去隱藏層部分神經元
2.針對剩下神經元前向傳導獲得損失,再反向傳導,用隨機梯度下降更新權重
3.恢復被刪去神經元
4.不斷重複刪去與更新權重過程

更多集成方法

二元神經網路(Binary Neural Network,BNN)缺點:
改程式碼很困難,算速度慢,貝葉斯後驗預測的質量取決於先前的規範和後驗近似

分佈外的偵測

回到只有狗的訓練集出現貓的問題,可以觀察Softmax分佈,最大預測類別是否分類錯誤或其實在分類之外

Slides2

還記得Day24提過GAN嗎

高維生成模型

GAN由兩個神經網路組成:

生成網路Generator G(z)

符合固定分佈,盡可能欺騙D,輸入符合高斯分佈的隨機樣本z,輸出生成虛假樣本

判別網路Discriminator D(x)

辨別生成樣本是真實或虛假的,輸入x,輸出x是真實樣本的機率
GD互相學習,D最後一層是Sigmoid,D何時結束取決於 Binary Cross-Entropy Loss
https://ithelp.ithome.com.tw/upload/images/20190927/20114906oVLflWdw6H.png

Deep convolutional generative adversarial networks,DC-GAN 的一些規則

1.D中池化層用strided convolutions取代,也可以考慮最大池化,G中使用跨步卷積
2.D,G都使用batchnorm加速收斂,增加穩定性
3.在隱藏層中不要有全連接層
4.激活函數G中隱藏層用ReLU,輸出層用Tanh
5.激活函數G中隱藏層用LeakyReLU,輸出層用Sigmoid

實際操作

高斯混合尺度模型
Dropout
GAN程式撰寫

Softmax分類溫度
混合密度網路
貝葉斯反向傳播
GAN

反思回顧

程式部分有更簡單實現方式 Pyro, BoTorch , Edward
機率,條件機率與貝葉斯方法是反向傳播很重要的基礎

參考資料

GAN
https://mlelarge.github.io/dataflowr-web/cea_edf_inria.html
https://zhuanlan.zhihu.com/p/38200980


上一篇
Python零基礎到kaggle-Day24
下一篇
Python零基礎到kaggle-Day26
系列文
Python零基礎到Kaggle 31
圖片
  直播研討會
圖片
{{ item.channelVendor }} {{ item.webinarstarted }} |
{{ formatDate(item.duration) }}
直播中

尚未有邦友留言

立即登入留言