Upgrade to Pro
— share decks privately, control downloads, hide ads and more …
Speaker Deck
Features
Speaker Deck
PRO
Sign in
Sign up for free
Search
Search
今天開始我的 AI 人工智慧冒險之旅
Search
[email protected]
September 06, 2020
Education
0
480
今天開始我的 AI 人工智慧冒險之旅
這是 2020 年 9 月 9日在政治大學新生訓練期間, 我們舉辦的「焦點工作坊」中的一場。這場是介紹 AI 深度學習的基本概念, 還有怎麼樣在政大能開始學習 AI, 甚至做出自己的 AI 專案。
[email protected]
September 06, 2020
Tweet
Share
More Decks by
[email protected]
See All by
[email protected]
【深度學習】08 強化學習
yenlung
0
350
Contrastive Self-Supervised Learning
yenlung
0
420
【深度學習】07 生成模式和 GAN
yenlung
0
370
【深度學習】06 RNN 實務與 Transformers
yenlung
0
320
【深度學習】05 有記憶的神經網路 RNN
yenlung
0
140
【深度學習】04 圖形辨識的天王 CNN
yenlung
0
250
【深度學習】03 神經網路是怎麼學的
yenlung
0
180
【深度學習】02 AI 就是問個好問題
yenlung
0
190
咖啡沖煮簡介
yenlung
0
1.2k
Other Decks in Education
See All in Education
Flinga
matleenalaakso
2
13k
Ch2_-_Partie_2.pdf
bernhardsvt
0
110
HCI and Interaction Design - Lecture 2 - Human-Computer Interaction (1023841ANR)
signer
PRO
0
820
Web Architectures - Lecture 2 - Web Technologies (1019888BNR)
signer
PRO
0
2.7k
Ch2_-_Partie_3.pdf
bernhardsvt
0
100
Medicare 101 for 2025
robinlee
PRO
0
240
お仕事図鑑pitchトーク
tetsuyaooooo
0
2.3k
ACT FAST 20240830
japanstrokeassociation
0
320
1106
cbtlibrary
0
420
開発終了後こそ成長のチャンス!プロダクト運用を見送った先のアクションプラン
ohmori_yusuke
2
160
Flip-videochat
matleenalaakso
0
14k
Semantic Web and Web 3.0 - Lecture 9 - Web Technologies (1019888BNR)
signer
PRO
1
2.5k
Featured
See All Featured
The Language of Interfaces
destraynor
154
24k
実際に使うSQLの書き方 徹底解説 / pgcon21j-tutorial
soudai
169
50k
The Pragmatic Product Professional
lauravandoore
31
6.3k
"I'm Feeling Lucky" - Building Great Search Experiences for Today's Users (#IAC19)
danielanewman
226
22k
What's in a price? How to price your products and services
michaelherold
243
12k
The Cost Of JavaScript in 2023
addyosmani
45
6.8k
KATA
mclloyd
29
14k
5 minutes of I Can Smell Your CMS
philhawksworth
202
19k
Rebuilding a faster, lazier Slack
samanthasiow
79
8.7k
10 Git Anti Patterns You Should be Aware of
lemiorhan
655
59k
Git: the NoSQL Database
bkeepers
PRO
427
64k
Designing on Purpose - Digital PM Summit 2013
jponch
115
7k
Transcript
AI ⼈⼯智慧 蔡炎⿓ 應⽤數學系⽼師 新⽣書院總導師 政⼤新⽣訓練。焦點⼯作坊 今天開始我的 冒險之旅
度學習 2 程式碼 http://bit.ly/yenlung 工作坊的示範程式在 AI-Demo AI 的程式在 Python-3-Data-Analysis-Basics
度學習 3 關於我的介紹 Topic
度學習 4 蔡炎⿓⽼師 美國爾灣加州⼤學 (UC Irvine) 數學博⼠ 政治⼤學應⽤數學系副教授 政治⼤學新⽣書院總導師 台灣⼈⼯智慧學校講師
著有《少年Py的⼤冒險: 成為Python數 據分析達⼈的第⼀⾨課》、《⼈⼯智慧導 論》(合著) 等書 錄製 Python 及 Deep Learning 政⼤磨 課師課程
度學習 5 國中開始學寫程式 高中寫遊戲程式出版。 密
度學習 6 上個世紀開始研究 AI 碩⼠班就是研究 神經網路的。
度學習 7 新⽣書院總導師 把政⼤打造成你的 學習冒險樂園! 政⼤新⽣都是我們「新⽣書院」成員, 我們的⼝號是...
度學習 8 三個社團的指導⽼師 咖啡社 愛愛會 數理資訊社
度學習 9 最近出了⼀本 Python 的書 少年Py的⼤冒險 成為Python數據分析達⼈的第⼀⾨課 作者: 蔡炎⿓, 季佳琪,
陳先灝 出版: 全華圖書
度學習 10 多次介紹⼈⼯智慧 業界、學校⾯對技 術型與⼀般⼤眾多 次⼈⼯智慧分享。
度學習 11 總結就是不務正業的形象深值⼈⼼ 【珊蒂微AI】專訪
度學習 12 合寫過⼀本 AI 的書 鴻海《⼈⼯智慧導論》 (給⾼中⽣的 AI 補充教材) 前兩章主筆。
度學習 13 關於 AI 的種種傳聞 Topic
度學習 14 傳聞說... 很多人都說 AI 會取代我們
度學習 15 AI 事實上也沒那麼可怕... 無人駕駛 協助醫生診斷 無人商店 協助音樂創作 Alex da
Kid nNot Easyu 自動交易 近 100% 機會會實現
度學習 16 何況近期內還做不到... 不過我們還有 92 年的時間 2112 年 9 ⽉
3 ⽇ 哆啦 A 夢 AGI 通用型 AI
度學習 17 雖然 Yann LeCun 對通⽤型 AI 這個詞有意⾒... No, No.
應該叫 Human Level Intelligence Yann LeCun 被稱為 deep learning 三巨頭之 ⼀、CNN 之⽗。
度學習 18 不論如何, AI 不像許多⼈說得那麼誇張... 現代的 AI 核⼼是神經網路、 其實沒什麼神奇的地⽅...
度學習 19 甚⾄可能會有點令⼈失望... AI 會泡沬化。 * 因 AI 大規模失業的事件已不斷在發生中... *
當然有人整天用吹牛做 AI 的是很可能泡沬化。 很多⼈太過低估 AI 的影響。
度學習 20 其實現在的 AI 技術已可以做到很多事...
度學習 21 AI 的重點在「預測」 The current wave of advances in
artificial intelligence doesn’t actually bring us intelligence but instead a critical component of intelligence: prediction. ” “ —Agrawal-Gans-Goldfarb, “Prediction Machines”
度學習 22 這裡的預測並不只是對未來的預測 歷史資料 未來 ⽤時間序列歷史資料預測未來 的當然叫預測。
度學習 23 還沒碰過的狀況也能正確判斷也叫「預測」 問題 答案 台灣⿊熊 蟒蛇 歷史資料 f 以前沒看過這張
照⽚, 但我知道是 台灣⿊熊!
度學習 24 深度學習其實⼈⼈可以做, 也該⼈⼈都來做! 吳恩達 (Andrew Ng) AI for Everyone
Coursera 課程
度學習 25 AI 實作就是打造函數學習機 Topic
度學習 26 AI 的類型 ⼈⼯智慧 機器學習 深度學習 基本上就是⽤不 同的⽅式, 去學
函數!
度學習 27 函數是什麼? 函數其實是一個解答本 所有的問題, 都有⼀個答案
度學習 28 所以我們的問題都要化為函數的形式 然後⽤深度學習的⽅式打造⼀個函數學習機, 找出這個函數! f 輸⼊ 輸出 x y
度學習 29 想個問題 在野外看到⼀隻動物, 我想知道是什麼?
度學習 30 想成函數就是... f n台灣黑熊u 輸⼊⼀張動物的照⽚, 輸出就是這是什麼動物
度學習 31 我們有部份解答... 問題 答案 台灣⿊熊 蟒蛇 注意這個例⼦, 我們不可 能收集到所有的情況!
度學習 32 也就是我們還沒碰過的情況可能有無限多題 ! 問題 答案 台灣⿊熊 蟒蛇 ? 像我剛拍到的當然是
全新的照⽚!
度學習 33 打造「函數學習機」, 把函數完全學會! f 我們打造⼀個「函數學習機」, 把這個函數學起來! (⽅法是不斷做「考古題」)
度學習 34 ⼈⼯智慧 f 成功的話, 沒看過的照⽚也可以合理推論出來! (所以叫「⼈⼯智慧」) n台灣黑熊u
度學習 35 深度學習 f 深度學習就是⽤深度學習的 ⽅式去打造「函數學習機」, 把這個函數完整的學起來!
度學習 36 深度學習 (神經網路) 的三⼤天王 DNN CNN RNN 神經網路其實很簡單, 主要只有三種模式。
度學習 37 AI 實作六部曲 Topic
度學習 38 AI 實作六部曲 1. 先問一個問題 2. 把問題化為函數的形式 3. 準備訓練資料
4. 打造「函數學習機」 5. 訓練學習 6. 預測 實作 AI 很簡單的!
度學習 39 01 先問⼀個問題 在野外看到⼀隻 動物, 我想知道 是什麼?
度學習 40 02 把問題化成函數的形式 f n台灣黑熊u
度學習 41 02 把問題化成函數的形式 注意輸⼊輸出都要是 固定⻑像的數字 (矩 陣, tensor 等等)
為了要讓電腦算, 我們會要求...
度學習 42 02 把問題化成函數的形式 還有輸⼊、輸出的「⼤⼩」基本上是固定的。 X ∈ ℝn Y ∈
ℝm 輸⼊ 輸出
度學習 43 02 把問題化成函數的形式 ⼩事⼀件, 都叫 tensor (張量)。 x =
9487 x = [9,4,8,7] x = [ 9 4 8 7] 純量 向量 矩陣 0階 tensor 1階 tensor 2階 tensor
度學習 44 02 把問題化成函數的形式 G R B 數位相⽚本來就是⼀堆數字
度學習 45 02 把問題化成函數的形式 台灣⿊熊 豬 蠎蛇 輸出不是數字, 我 們就⾃⼰編號,
給 ⼀個數字!
度學習 46 02 把問題化成函數的形式 台灣⿊熊 豬 蠎蛇 [ 1 0
0 ] [ 0 1 0 ] [ 0 0 1 ] 我們常把它做成 one-hot encoding [ 1 0 0 ] 台灣⿊熊 豬 蠎蛇
度學習 47 02 把問題化成函數的形式 f 我們的例⼦, 化成 one-hot encoding 時,
函數學習機會要學輸 ⼊⼀張照⽚, 輸出三個數字的函數。⽐如說像這樣的輸出。 y1 y2 y3 1.9 1.1 0.2 於是我們會知道, 電腦判斷最有可能是台灣⿊熊。
度學習 48 02 把問題化成函數的形式 f 我們甚⾄可以經過⼀個運算, ⽐⽅說 softmax, 讓三個輸出的 數字加起來合為
1。 y1 y2 y3 1.9 1.1 0.2 於是我們知道, 我們的神經網路判斷 61% 的可能是台灣⿊熊, 28% 的可能是豬, 只有 11% 的可能是蠎蛇。 0.61 0.28 0.11
度學習 49 03 準備訓練資料 ( , "台灣⿊熊") ( , "蠎蛇")
, , ... x1 x2 y2 y1 x k+1 , y k+1 x k , y k x1 , y1 x n , y n 訓練資料 測試資料 我們需要準備測試資料, 不 參數訓練。⽬的是確認電腦 沒有在「背答案」也就是沒 有過度擬合 (over fitting) 的情況!
度學習 50 03 準備訓練資料 1. 是否有夠多 (常常是上萬 筆) 的歷史資料。 2.
是否在合理努力下可以 取得這些資料。 資料蒐集要注意...
度學習 51 04 打造「函數學習機」 DNN CNN RNN Transformer Autoencoder Reinforcement
Learning GAN 深度學習就是我們⽤深 度學習的⽅式, 打造⼀台 函數學習機。
度學習 52 04 打造「函數學習機」 വᏐ ላशػ 完成! {wi , bj
} θ 不管我們⽤了什麼阿貓阿狗 法, 打造了⼀台函數學習機, 就會有⼀堆參數要調。
度學習 53 04 打造「函數學習機」 決定好這些參數的值, 就會出現⼀個函數。 ⽩話⽂就是, 「這個神經網路可以動了」... f
度學習 54 04 打造「函數學習機」 只是, 很有可能會發⽣這種情況... 唬爛也要有個限度, 這該怎麼辦呢? f n台灣黑熊u
度學習 55 05 訓練 (學習) 注意我們的參數, 也就是 決 定了, 我們的函數學習機學出
的函數就固定了 (也就是每張 照⽚會回答什麼就決定了)。 θ fθ
度學習 56 05 訓練 (學習) 我們會定義個 loss function, 看看我們的神經網路考考古題 的時候,
和正確答案差多少? fθ
度學習 57 05 訓練 (學習) ⽬標是找到⼀組 θ* 這組參數代⼊ loss function
L(θ*) 值是最⼩的 (也就是誤差最⼩)。
度學習 58 05 訓練 (學習) 基本上就是⽤ 因神經網路的特性, 也叫 gradient descent
梯度下降法 backpropagation 反向傳播法
度學習 59 05 訓練 (學習) fθ* n台灣黑熊u 成功的話, 沒看過的也可以合理推論出來! (所以叫「⼈⼯智慧」)
度學習 60 問問題的各種可能 Topic
度學習 61 01 股價預測 我想知道某⽀股 票某個有開盤的 ⽇⼦的收盤價。
度學習 62 01 股價預測 f 化成函數的形式, 我們當然可以很天真的這麼做... 輸⼊ 輸出 ⽇期
x 某股票 x 當天的收盤價 不合理的是, 輸⼊⽇期這個資訊太少, 不太可能這樣就推出收盤價!
度學習 63 01 股價預測 f ⽤前 1 週的收盤價預測下⼀次的收盤價就合理得多。 輸⼊ 輸出
當然還有很多其他可能的⽅式! DNN, CNN, RNN
度學習 64 02 流感病毒篩檢 我想知道病⼈有 沒有感染某種流 感病毒?
度學習 65 02 流感病毒篩檢 f 輸⼊ 輸出 有 or 沒有
看我有沒 有在裡⾯? CNN
度學習 66 03 全壘打預測 我想知道某位 MLB 選⼿ 2020 球季可 以打幾隻全壘打?
度學習 67 03 全壘打預測 f 輸⼊ 輸出 RNN 某選⼿第 t-
年資料 第 t 年全壘打數 [Age, G, PA, AB, R, H, 2B, 3B, HR, RBI, SB, BB, SO, OPS+, TB] 每位選⼿都有 15 個 features!
度學習 68 03 全壘打預測 可惜結果不準! 不要猜精確數⽬, 猜區間即可! 分五段: 0-9, 10-19,
20-29, 30-39, 40+
度學習 69 04 對話機器⼈ 對話機器⼈ 或是⾃動翻譯
度學習 70 04 對話機器⼈ f 輸⼊ 輸出 客⼾說的話 客服機器⼈回應 這樣會有問題!
注意函數輸⼊和輸出需要⼀樣的⻑度!
度學習 71 04 對話機器⼈ f 輸⼊ 輸出 ⽬前的字 下⼀個字 令⼈驚呆的是,
最常⾒的居然是化這這樣的函數... RNN
度學習 72 04 對話機器⼈ ⽐如說, “今天天氣很好。” 這句話, 輸⼊我們的函數就應該是... f(“今”) =
“天” f(“天”) = “天” f(“天”) = “氣” f(“氣”) = “很” f(“很”) = “好” 這根本不是函 數啊!
度學習 73 04 對話機器⼈ 結果⽤有記憶能⼒的 RNN 做, 它可以是函數的原因是不只輸⼊⼀個 字, 還有之前的綜合資訊!
f 輸⼊ 輸出 ⽬前的字 下⼀個字 RNN 還有前幾次的「記憶」
度學習 74 04 對話機器⼈ 然後就可以做出對話 (翻譯) 機器⼈! 字1 字2 回1
EOS 回1 回2 回k EOS
度學習 75 05 創作機器⼈ 我想讓電腦和我⼀樣 會創作。
度學習 76 05 創作機器⼈ f 輸⼊ 輸出 ???? ⼀段⾳樂 到底是要輸⼊什麼呢?
度學習 77 05 創作機器⼈ 結果是訓練兩個神經網路! G D ⽣成器 鑑別器 ⼀⼩段曲⼦
像 or 不像 ⼀⼩段曲⼦ 靈感 ⼀⼩段曲⼦ 這就是所謂的⽣成對抗網路 (GAN)!
度學習 78 Progressive GAN ⽣成明星照⽚ 這攏係假ㄟ啦 (1024x 明星照)
度學習 79 06 「⾃學型」的 AI 我想讓電腦⾃⼰學會 玩遊戲!
度學習 80 06 「⾃學型」的 AI π 輸⼊ 輸出 最好的動作 這樣做通常不⾏!
どうして?
度學習 81 06 「⾃學型」的 AI 原因是訓練資料很難準備! 變化太多很難各種 情境都有訓練資料! 以下圍棋為例, 我那
麼會的話... 我那麼會我就 世界冠軍了啊!
度學習 82 06 「⾃學型」的 AI 直接學哪個動作最好不容易。於 是我們學習給每個動作「評分」, 通常是計算做了這個動作後「得 分的期望值」。 Q
輸⼊ 輸出 預期的 reward DNN, CNN, RNN + 這就是強化學習 (reinforcement learning)
度學習 83 ⼩結論 對我們想解決的問題, 可能有許多不同的問法!
度學習 84 ⼩結論 f 輸⼊ 輸出 x y (再⼀次) 重點是⼀次要⾮常
明確化成函數的形式, 也就 是要知確實說清楚輸⼊、輸 出是什麼。
度學習 85 常⾒問題 ⾝為兔⼦, 當然很關⼼... 我想知道怎麼樣紅蘿葡 會⻑得更快? 滿。⼼。期。待
度學習 86 常⾒問題 光這樣問是不⾏的! 為什麼!? 我有數據! 不⾏的原因是沒有把問題化為函 數的形勢。⼤家做 AI 經驗多了,
遲早會出現這樣對話的場景...
度學習 87 神經網路 Topic
度學習 88 深度學習和神經網路 現在 AI ⼤紅的原因是 深度學習有很多突破性 的發展, ⽽深度學習的 核⼼是神經網路。
度學習 89 假設我們確定要學哪個函數了 f x x xn y y ym
也就是我們輸⼊和輸出都很 明確, 明確到輸⼊輸出的⼤⼩ 當然也都確定了!
度學習 90 接下來就是要打造函數學習機 我們要⽤深度學習 (神 經網路) 的⽅法, 打造 ⼀台函數學習機! വᏐ
ላशػ
度學習 91 神經網路暗⿊學習法! 這個世界有個近乎全能 的暗⿊函數學習法 神經網路
度學習 92 神經網路暗⿊學習法! 還有數學定理證明 「⼀個隱藏層」的神 經網路就能學會你要 學的函數! Universal Approximation Theorem
度學習 93 神經網路暗⿊學習法! ⽽且我們不⽤知道函 數⻑什麼樣⼦ (線性 啦、多項式樣啦等 等)!
度學習 94 神經網路暗⿊學習法! Hidden Layer Output Layer Input Layer 暗黑魔法
如同魔法般的, 你問好問 題 、準備好資料, 神經網 路就告訴你函數應該⻑ 什麼樣⼦!
度學習 95 神經網路暗⿊學習法! 在 1980-1990 年代可以說紅極一時!
度學習 96 魔法光茫不再!? 有⼀陣⼦如果研究計畫說要 研究「神經網路」, 那計畫還 沒送出就可以確定不會通過! 然後它就死掉了...
度學習 97 為什麼上個世紀神經網路沒有預期成功? 複雜的軟體 電腦計算能⼒ ⼤量的數據 三⼤要件當時不具⾜。 Yann LeCun
度學習 98 到了現在, 情況完全不⼀樣了! ⽐起上個世紀, 要寫個 強強的深度學習程式, 真的太容易了!
度學習 99 神經網路新時代! Human-level control through deep reinforcement learning ”
“ DeepMind 2015-2-26 Deep Q- letter 原來電腦可以⾃已學 會做⼀些複雜的任務!
度學習 100 神經網路新時代! Deep Learning “ LeCun-Bengio-Hinton 2015-5-28 http://bit.ly/ai_history 介紹
Deep Learning「三巨頭」 的故事。 延申閱讀 度過神經網路寒冬的 三巨頭, ⼀起宣告 deep learning 時代 的來臨! ”
度學習 101 神經網路新時代! Deep Learning 打敗 世界棋王, 讓⼤家⼤ ⼤期待 deep
learning 的能⼒! ” Mastering the game of Go with deep neural networks and tree search” “ DeepMind 2016-2-26
度學習 102 再⼀次, 就這三⼤天王改變了全世界! DNN CNN RNN 我們會來⼀⼀介紹這 些神經網路架構有什 麼特點。
度學習 103 神經網路標準版 DNN Topic
度學習 104 全連結神經網路 (DNN) Fully Connected Neural Networks 1980 年代就火紅的
model
度學習 105 全連結神經網路 (DNN) 只需要決定兩組數字, 神經網路 就決定了! 1. 幾層隱藏層 2.
每層幾個神經元 層層之間的神經元是完全連結 的。
度學習 106 深度學習就是建⼀層層「隱藏層」 x ̂ y input layer hidden layers
output layer DNN, CNN, RNN 嚴格說是每⼀ 層都可以決定是要⽤三種之中, 哪⼀種⽅式做隱藏層的設計。
度學習 107 深度學習就是建⼀層層「隱藏層」 x1 x2 xn h1 h2 hk x
h ℱ1 全連結層 (Dense) 卷積層 (Conv) 遞歸層 (LSTM, GRU) 差不多就是決定 幾個神經元就結 束了。 隱藏層基本上就三種選擇: DNN CNN RNN
度學習 108 神經元怎麼運作 不管哪種神經網路, 神 經元就是基本的運算 單元, ⽽每個神經元的 運算⽅式是⼀樣的!
度學習 109 神經元怎麼運作 每個神經元就是接受 若⼲個刺激輸⼊, 然後 送出⼀個刺激輸出。
度學習 110 神經元怎麼運作 我們先要這個神經元接受到的 總刺激。 3 ∑ i=1 wi xi
度學習 111 神經元怎麼運作 接著加上偏值 (bias), 做⼀個基 準的調整。不管是權重、偏值 都是要經過學習得到的! 這裡我 們估且稱調整後的總刺激。
3 ∑ i=1 wi xi 3 ∑ i=1 wi xi + b b
度學習 112 神經元怎麼運作 ⽬前的計算都是線性的, 即使經所 有神經元算還是線性的, 因此我們 需經⼀個激發函數 (activation function)
轉換再送出。 φ( 3 ∑ i=1 wi xi + b) = h φ( ) = h
度學習 113 激發函數 以下我們介紹幾個有名的激發函數。 ReLU Sigmoid Gaussian 本世紀新寵! 感覺應該很接近⼈ 類神經元的動作。
舊時代的懷念, 已 很少使⽤。
度學習 114 把⾃⼰當⼀個神經元! 現在把⾃⼰當成⼀個 神經元, ⽤ ReLU 做我 們的激發函數。
度學習 115 把⾃⼰當⼀個神經元! 權重和偏值都是學來 的, 但⼀開始我們會隨 機給⼀個值。 假設初始化得到: w1 =
1 w2 = 2 b1 = 1
度學習 116 把⾃⼰當⼀個神經元! 記得我們神經元的計算⽅式。現 在有任何輸⼊我們都應該知道該 怎麼輸出了。
度學習 117 把⾃⼰當⼀個神經元! ⽐如說我們接到 的輸⼊, 輸出應該是多少呢? x = (x1 ,
x2 ) = (1,3)
度學習 118 把⾃⼰當⼀個神經元! 計算調整後 的加權和。 × ×
度學習 119 把⾃⼰當⼀個神經元! 因為⽤了可愛 的 ReLU, 會得 到輸出正是 8! φ(8)
= 8
度學習 120 函數學習機建造完成! 我們會把所有要學習的參數, 包括所有的權重、所有的偏 值, 合併起來叫做: θ
度學習 121 函數學習機建造完成! 當決定了權重、參數, 也就是 ⼀組 的值, 我們輪⼊任意的 數值, 神經網路就會吐出⼀個
輸出給我們了! θ വᏐ ላशػ 完成!
度學習 122 神經網路怎麼學的 Topic
度學習 123 訓練我們的神經網路 神經網路需要經過訓練! ⽅式是 把我們的「考古題」(訓練資料) ⼀次次拿給神經網路學。學習法 叫 backpropagation。
度學習 124 函數空間 fθ 當我們⽤神經網路的⽅式, 打造了⼀台 函數學習機之後, 決定⼀組參數 (包 括權重、偏值)
就會決定⼀個函數。 因為我們的函數學習機可以⽣出無限 多個函數, 我們把所有可能⽣出的函數 收集起來, 成為⼀個函數空間。 θ {fθ }
度學習 125 函數空間 fθ 我們的⽬標是要挑出⼀組最好的 , 意思就是這樣做出來的 和⽬標函數 最接近。 θ*
fθ* θ*
度學習 126 Loss Function 我們會⽤⼀個叫 loss function 的, 計算訓練資料中, 我們的神經
網路輸出和正確答案有多⼤的差 距。 ⾃然我們希望 loss function 的 值是越⼩越好。
度學習 127 Loss Function 假設我們有訓練資料 {(x1 , y1 ), (x2
, y2 ), …, (xk , yk )} 意思是輸⼊ , 正確答案應該是 。 xi yi f 輸⼊ 輸出 xi yi
度學習 128 Loss Function 輸⼊ 輸出 xi ̂ yi fθ
fθ (xi ) = ̂ yi 任何⼀組參數 , 就會給定⼀個函數 。這個函數 對任意的輸⼊ 都會給出⼀個值 。 θ fθ fθ xi ̂ yi
度學習 129 Loss Function 輸⼊ 輸出 xi ̂ yi fθ
fθ (xi ) = ̂ yi 我們當然希望神經網路給出的 , 和正確答案 差距是越⼩越好! ̂ yi yi yi 正確答案 看差多遠
度學習 130 Loss Function L(θ) = 1 2 k ∑
i=1 ∥yi − fθ (xi )∥2 Loss function 就是計算神經網路給的答 案, 和正確答案差距多少的函數。例如說 以下是常⾒的 loss function: 這什麼啊!?
度學習 131 Loss Function L(θ) = 1 2 k ∑
i=1 ∥yi − fθ (xi )∥2 其實就是計算和正確答案的差距! 我們希望誤差 越⼩越好! 正確答案 函數學習機 給的答案
度學習 132 參數調整 那是怎麼調整的呢? 對於某個參數 來 說, 其實就是⽤這「簡單的」公式: w 這可怕的東西
是什麼意思? −η ∂L ∂w
度學習 133 參數調整 記得 loss function 是所有權重和偏值 等等參數的函數。 L w1
, w2 , b1 , … 我們來破解函 數學習機學習 的秘密!
度學習 134 假裝只有⼀個參數! 數學家都會先簡化問題。 假設我們⽤深度學 習打造的函數學習 機只有 ⼀個參數! w 真的可以嗎!?
度學習 135 假裝只有⼀個參數! ⽬前的值 w 如 何⾛到最⼩
度學習 136 假裝只有⼀個參數! ⽬前的值 w 我知道, 點要向右移動! w = a
度學習 137 電腦怎麼知道要往哪⾛? 電腦是怎麼「看」 出來的?
度學習 138 電腦怎麼知道要往哪⾛? 切線是關鍵!
度學習 139 電腦怎麼知道要往哪⾛? 切線斜率是負 的, 指的⽅向是 負向。 切線斜率 < 0
度學習 140 電腦怎麼知道要往哪⾛? 切線斜率 > 0 切線斜率是正 的, 指的⽅向是 正向。
度學習 141 電腦怎麼知道要往哪⾛? 切線斜率指的⽅向和我們應 該要⾛的極⼩值⽅向是相反 的! 事實上切線斜率指的⽅向正 是 (局部) 極⼤值的⽅向!
度學習 142 切線斜率炫炫的符號 在 點的切線斜率符號是這樣: w = a 對任意的 點來說,
我們寫成函數形 式是這樣: w L′ (w) = dL dw L′ (a) 我們在微積分很會 算這些!
度學習 143 往 (局部) 極⼩移動! 在 我們可以調整新的 值為: w =
a w a − L′ (a) 對任意的 點來說, 我們會有這樣⼦ 的公式去調整 的值。 w w w − dL dw 是不是真的可以 呢? 有點緊張。
度學習 144 往 (局部) 極⼩移動! 切線斜率 真的更靠近 極⼩值!
度學習 145 往 (局部) 極⼩移動! 切線斜率 這次跑過頭 了!
度學習 146 Learning Rate w − η dL dw 為了不要跑過頭,
我們 不要⼀次調太⼤, 我們 會乘上⼀個⼩⼩的數, 叫 Learning Rate。
度學習 147 不只⼀個參數怎麼辦呢? 看起來很美好。 可是參數不只⼀個 該怎麼辦呢?
度學習 148 數學家⽐我們想像中邪惡 還是假裝只有⼀個參數!
度學習 149 假裝只有⼀個參數 L(w1 , w2 , b1 ) =
(b1 + 2w1 − w2 − 3)2 假設我們的神經網路有三個參數 , ⽽ loss function ⻑這樣: w1 , w2 , b1 設我們把這個神經網路初始化, 各參數的值 如下: w1 = 1,w2 = − 1,b1 = 2 假設⼀個簡單、多 參數的狀況!
度學習 150 假裝只有⼀個參數 我們現在假裝只有 ⼀個參數! w1 不要問我為什麼...
度學習 151 假裝只有⼀個參數 中只要保留 這 個變數, 其他值都直 接代⼊! 於是 當場
只剩⼀個參數! L w1 L L(w1 , w2 , b1 ) = (b1 + 2w1 − w2 − 3)2 w1 = 1,w2 = − 1,b1 = 2 Lw1 (w1 ) = L(w1 , − 1,2) = 4w2 1
度學習 152 假裝只有⼀個參數 然後我們就可以⽤ ⼀個變數調整的⽅ 式, 去調整我們的權 重! w1 −
η dLw1 dw1 w1
度學習 153 偏微分 多變數函數, 假裝只 有⼀個變數的微分 ⽅式就叫偏微分。 ∂L ∂w1 =
dLw1 dw1 意思是我們會把 調整為 w1 w1 − η ∂L ∂w1
度學習 154 其實就是⼀⼀調整! 和之前⼀個變 數⼀樣的⽅法! w1 − η ∂L ∂w1
w2 − η ∂L ∂w2 b1 − η ∂L ∂b1 w1 w2 b1
度學習 155 三個式⼦寫在⼀起 我們把三個式 ⼦寫在⼀起是 這樣! w1 w2 b1 w1
w2 b1 − η ∂L ∂w1 ∂L ∂w2 ∂L ∂b1
度學習 156 Gradient 梯度 w1 w2 b1 − η ∂L
∂w1 ∂L ∂w2 ∂L ∂b1 這關鍵的向量我們稱為 的梯度 (gradient), 記為: L ∇L
度學習 157 Gradient Descent w1 w2 b1 − η∇L 調整參數的公式就可以寫成這
樣, 我們稱這個⽅法為: Gradient Descent
度學習 158 Gradient Descent 不管你的深度學習函數學習機 是怎麼架的, 不管你選什麼 loss function, 你都可以使⽤
gradient descent 去訓練你的 神經網路!
度學習 159 打造第⼀個神經網路 Topic
度學習 160 TensorFlow 現在我們準備⼀起打造⼀個神經網路, 我們準備 ⽤有名的 TensorFlow 這個 Python 套件。
度學習 161 MNIST 數據集 MNIST 我們介紹一個非常有名的數據集。 Modified 美國國家標準暨技術研究院 這是⼿寫數字 辨識的資料。
度學習 162 把我們的問題, 化為函數 f 6 把我們的問題, 化為函數。⽐如說我們想做⼿寫辨識, 就是輸⼊⼀個掃描 的⼿寫數字,
輸⼊電腦, 希望電腦輸出這個數字是什麼。
度學習 163 One-hot encoding f 我們在做分類問題時, 常會⽤ one-hot encoding。 0
0 0 0 0 0 1 0 0 0 6
度學習 164 確⽴函數的樣⼦ 暗黑魔法 { } 784 10 神經網路 函數學習機
輸⼊是⼀張 的圖, 「拉平」是 784 維的向量。 輸出 10 個類別, 也就是 10 維的向量。 28 × 28
度學習 165 Softmax 若⼲個數字, 我們希望經過⼀個轉換, 加起來等於 1。但⼤的 還是⼤的, ⼩的還是⼩的, 該怎麼做呢?
a b c α β γ α + β + γ = 1
度學習 166 Softmax a b c 很⾃然我們會這麼做: ea eb ec
毎個數字經 指數轉換 按⽐例 ea/T eb/T ec/T T = ea + eb + ec 這就叫 softmax
TensorFlow 2 度學習 167 01 讀⼊基本套件 這裡⼤概是所有數 據分析共通的。
TensorFlow 2 度學習 168 02 打造深度學習函數學習機的函式 做 one-hot encoding 的⼯具
Sequential: 標準打造一台深度學習 函數學習機的方式。 Dense: 做全連結的隱藏層。 SGD: 標準的 gradient descent。
TensorFlow 2 度學習 169 03 讀⼊ MNIST 數據集 讀⼊ MNIST
數據 集, 注意訓練資 料、測試資料已幫 我們準備好!
TensorFlow 2 度學習 170 04 整理訓練、測試資料 整理⼀下資料! 訓練資料: 拉平、nomalization。 測試資料:
做 one-hot encoding。
TensorFlow 2 度學習 171 Step : 打造我們的函數學習機 假設我們做兩個隱藏層, 都是 100
個神經元、都⽤ ReLU 做 activation function。 輸出 10 維, 做 softmax。 就差不多只是告訴電 腦, 我們怎麼設計神 經網路的就結束了!
TensorFlow 2 度學習 172 Step : 打造我們的函數學習機 loss: 用哪個 loss
function。 optimizer: 我們用 SGD, 設 learning rate。 metrics: 這裡是顯示目前正確率。
TensorFlow 2 度學習 173 Step : fit 訓練 batch_size: mini
batch 的大小。 epochs: 訓練次數。 深度學習 的重頭戲!
TensorFlow 2 度學習 174 Step : Predict 這樣 predict 就會
是對所有測試資料 的預測結果。
度學習 175 圖形辨識天王 CNN Topic
度學習 176 卷積神經網路 CNN Convolutional Neural Networks 圖形辨識的超級天王
度學習 177 圖形辨識有太多的應⽤ f n台灣黑熊u 動物識別。
度學習 178 圖形辨識有太多的應⽤ π 往左 ⽤電腦玩遊戲。
度學習 179 深度學習三巨頭 Geoffrey Hinton Yann LeCun Yoshua Bengio 博⼠後學⽣
博⼠後共事
度學習 180 Yann LeCun 1987 Universite Pierre et Marie Curie
(巴黎第六大學) 資訊科學博士 University of Toronto 博士後研究 1988- Bell 實驗室 2003 NYU 教授 2013 Facebook AI Director Yann LeCun 博⼠就研究 ConvNet (不全連結的神經網路)
度學習 181 救了神經網路功⾂之⼀ CNN ⼤約 1995 年, ⼤家 對神經網路失去了 興趣...
LeCun
度學習 182 救了神經網路功⾂之⼀ CNN 只要別的⽅法更好、 甚⾄⼀様好, ⼤家就 不想⽤神經網路! Hinton 神經網路吃虧的地⽅...
度學習 183 救了神經網路功⾂之⼀ CNN 圖形辨識 SVM 強強的! ⽐如 2011 ImageNet
⼤型 圖形辨識⽐賽冠軍: XRCE
度學習 184 救了神經網路功⾂之⼀ CNN 圖形辨識進⼊ CNN 時代! AlexNet ImageNet ⼤型
圖形辨識⽐賽冠軍, 狂勝 XRCE!
度學習 185 CNN 經典作品 這些都是 Tensorflow 準備 好可以給你⽤的! InceptionV GoogLeNet,
V 是 2014 冠軍 VGG /VGG 2014 亞軍 ResNet 2015 冠軍
度學習 186 CNN 的兩種隱藏層 卷積層 (convolutional layer) 池化層 (pooling layer)
CNN 特有兩種隱 藏層的形式, ⼀般 兩種都會⽤到。
度學習 187 卷積層 Convolutional Layer Convolutional Layer 卷積層 CNN 的核⼼!
度學習 188 設計卷積層 設計⼀層卷積層, 我們只需要... 幾個 filter 每個 filter 的⼤⼩
(⽐如 ) 3 × 3 簡單!
度學習 189 Filter 的作⽤ 每個 filter 看⼀個特徵, 掃過每⼀個 點, 紀錄該點附近的「特徵強度」。於
是紀錄在⾃⼰的「記分板」上。 filter filter input 記分板 記分板
度學習 190 Filter 卷積的運算 d11 d12 d13 d14 d21 d22
d23 d24 d31 d32 d33 d34 d41 d42 d43 d44 input [ 0 1 0 0 1 0 0 1 0 ] * filter ⼀個 filter 就像個權重做加 權和, 也就是內積 (dot product)。 d11 × 0 + d12 × 1 + d13 × 0 + d21 × 0 + d22 × 1 + d23 × 0 + d31 × 0 + d32 × 1 + d33 × 0 =
度學習 191 Filter 卷積的運算 2 5 5 2 5 2
0 1 2 3 4 0 4 2 1 5 4 3 1 3 5 5 4 3 5 3 4 5 0 2 1 5 2 3 1 1 1 0 1 3 4 4 1 1 5 1 1 4 2 3 2 2 0 4 2 4 0 5 4 5 3 4 1 4 35 想成這是⼀張圖所成的矩陣 filter 內積 這學來的 W= ⼀個 filter 就看 ⼀個特徵, 紀錄在 記分板上。 記分板
度學習 192 Filter 卷積的運算 同⼀個 filter, 當 然矩陣 (權重) 是
⼀樣的。 記分板 2 5 5 2 5 2 0 1 2 3 4 0 4 2 1 5 4 3 1 3 5 5 4 3 5 3 4 5 0 2 1 5 2 3 1 1 1 0 1 3 4 4 1 1 5 1 1 4 2 3 2 2 0 4 2 4 0 5 4 5 3 4 1 4 35 27 filter 右移⼀格 還是一樣的矩陣 W=
度學習 193 Filter 卷積的運算 掃到最後, 完成這個 filter 的計分板。 要注意的是, 這內積的
部份只有我們原本的加 權和, 事實上還是要加 上偏值、經激發函數轉 換送出! 記分板 2 5 5 2 5 2 0 1 2 3 4 0 4 2 1 5 4 3 1 3 5 5 4 3 5 3 4 5 0 2 1 5 2 3 1 1 1 0 1 3 4 4 1 1 5 1 1 4 2 3 2 2 0 4 2 4 0 5 4 5 3 4 1 4 35 27 44 32 36 38 36 36 37 36 36 43 37 37 23 26 17 35 29 25 22 18 14 27 27 25 24 21 24 32 31 38 27 34 25 40 filter ⼀路到最後 W=
度學習 194 為什麼卷積會抽取特徵? [ 0 1 0 0 1 0
0 1 0 ] 0 1 0 0 1 0 0 1 0 [ 1 0 0 0 1 0 0 0 1 ] 3分 1分 Filter Filter 圖 我們來看同⼀張圖,對兩 個不同的 filter 運算的 結果。 可以看出⼀樣的會得⾼ 分!
度學習 195 為什麼卷積會抽取特徵? [ 0 1 0 0 1 0
0 1 0 ] 1 0 0 0 1 0 0 0 1 [ 1 0 0 0 1 0 0 0 1 ] Filter Filter 圖 3分 1分 換另⼀張圖發現, 真的 像的會得到⾼分!
度學習 196 卷積層其實神經元動作是⼀樣的! 我們⾺上會發現, 卷積層其 實只是「不完全連結」的 神經網路, 神經元的運算⽅ 式是⼀樣的!
度學習 197 輸⼊的圖每個像素可當成⼀個神經元 2 5 5 2 5 2 0
1 2 3 4 0 4 2 1 5 4 3 1 3 5 5 4 3 5 3 4 5 0 2 1 5 2 3 1 1 1 0 1 3 4 4 1 1 5 1 1 4 2 3 2 2 0 4 2 4 0 5 4 5 3 4 1 4 35 27 44 32 36 38 36 36 37 36 36 43 37 37 23 26 17 35 29 25 22 18 14 27 27 25 24 21 24 32 31 38 27 34 25 40 filter 圖片上的點是一個個輸入層 神經元 W=
度學習 198 記分板也是⼀個個神經元組成 2 5 5 2 5 2 0
1 2 3 4 0 4 2 1 5 4 3 1 3 5 5 4 3 5 3 4 5 0 2 1 5 2 3 1 1 1 0 1 3 4 4 1 1 5 1 1 4 2 3 2 2 0 4 2 4 0 5 4 5 3 4 1 4 35 27 44 32 36 38 36 36 37 36 36 43 37 37 23 26 17 35 29 25 22 18 14 27 27 25 24 21 24 32 31 38 27 34 25 40 filter Conv 層也是⼀個個神經元 W= 記分板每⼀個分數的位 ⼦也是⼀個神經元。
度學習 199 不是完全連結的神經網路 記分板⼀個數字 (⼀個 神經元) 只和輸⼊的九 個神經元相連。 2 5
5 2 5 2 0 1 2 3 4 0 4 2 1 5 4 3 1 3 5 5 4 3 5 3 4 5 0 2 1 5 2 3 1 1 1 0 1 3 4 4 1 1 5 1 1 4 2 3 2 2 0 4 2 4 0 5 4 5 3 4 1 4 35 27 44 32 36 38 36 36 37 36 36 43 37 37 23 26 17 35 29 25 22 18 14 27 27 25 24 21 24 32 31 38 27 34 25 40 filter 兩層中沒有完全相連 W=
度學習 200 權重是相同的 (對同⼀個 filter) 2 5 5 2 5
2 0 1 2 3 4 0 4 2 1 5 4 3 1 3 5 5 4 3 5 3 4 5 0 2 1 5 2 3 1 1 1 0 1 3 4 4 1 1 5 1 1 4 2 3 2 2 0 4 2 4 0 5 4 5 3 4 1 4 35 27 44 32 36 38 36 36 37 36 36 43 37 37 23 26 17 35 29 25 22 18 14 27 27 25 24 21 24 32 31 38 27 34 25 40 filter 再來 share 同樣的 weights W=
度學習 201 記分板的⼤⼩ 注意⼀張原本 的圖, 經⼀個 ⼤⼩的 filter 卷積, 會得到差
不多⼤⼩ 記分板! ⽽且再來我們會討論到, 我們甚⾄ 更喜歡把記分板做成和原本圖的⼤ ⼩⼀樣。 那要是我們有 10 個記分板, 不就⼗ 倍的數據量!? 8 × 8 3 × 3 6 × 6 35 27 44 32 36 38 36 36 37 36 36 43 37 37 23 26 17 35 29 25 22 18 14 27 27 25 24 21 24 32 31 38 27 34 25 40
度學習 202 記分板的⼤⼩ 1 0 0 0 0 1 0
0 0 0 1 0 0 0 0 1 0 0 0 0 1 0 0 0 0 [ 0 1 0 0 1 0 0 1 0 ] padding="valid" 如前述的掃描⽅式, 記分板 ⽐原來圖略⼩, 但邊緣常會 掃不到 (像本例中的直線)。
度學習 203 記分板的⼤⼩ 我們喜歡把原圖外⾯加圈 0, 讓記分板和原圖⼤⼩⼀ 樣! 注意這次有「看到」直線 了。 0
0 0 0 0 0 0 0 1 0 0 0 0 0 0 1 0 0 0 0 0 0 1 0 0 0 0 0 0 1 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 [ 0 1 0 0 1 0 0 1 0 ] padding="same" 外⾯加圈 0! 注意和原 圖⼀樣⼤!
度學習 204 池化層 Pooling Layer Max-Pooling Layer 最⼤池化層 決定區域特性
度學習 205 設計池化層 設計⼀層池化層, 我們只需要... 決定多⼤的池化區域 (⽐如 ) 2 ×
2 ⽤哪種池化⽅式 (最常⽤取極⼤值)
度學習 206 Max-Pooling 35 27 44 32 36 38 36
36 37 36 36 43 37 37 23 26 17 35 29 25 22 18 14 27 27 25 24 21 24 32 31 38 27 34 25 40 36 44 43 37 26 35 38 34 40 每區選出最⼤的!! 這樣記分板 瞬間變⼩!
度學習 207 常⾒ CNN 設計架構 Conv Max- Pooling Dense Max-
Pooling Max- Pooling Conv Conv 可以不斷重覆卷積、池化、卷積、池化... 最後再 接全連結神經網路總結。
度學習 208 重要問題 Conv 層的 filter 要 越來越多還越來越 少呢?
度學習 209 標準 CNN 應⽤ f 感染/未感染 Differentiation of Cytopathic
Effects Induced by Influenza Virus Infection Using Deep Convolutional Neural Networks Ting-En Wang, Tai-Ling Chao, Hsin-Tsuen Tsai, Pi-Han Lin, Yen-Lung Tsai, Sui-Yuan Chang 流感檢測。
度學習 210 有記憶的 RNN Topic
度學習 211 遞歸神經網路 RNN Recurrent Neural Networks 有「記憶」的神經網路
度學習 212 RNN 的特⾊ x1 ̂ y1 x2 ̂ y2
⼀般的神經網路⼀筆輸⼊ 和下⼀筆是沒有關係的...
度學習 213 RNN 的特⾊ 也就是說輸⼊的順序變 了, 輸出還是⼀樣的! x1 ̂ y1
x2 ̂ y2
度學習 214 RNN 的特⾊ RNN 會偷偷把上⼀次的 輸出也當這⼀次的輸⼊。
度學習 215 RNN 的特⾊ 很多⼈畫成這樣, 也就是 前⾯的資訊會傳遞下去。 傳遞的神秘資訊是放在 hidden states
裡⾯! hi h1 h2 hm−1
度學習 216 設計遞歸層 RNN 核⼼遞歸層, 我們基本上只要決定... 就這樣神經網 路三⼤架構我 全都會設計了 啊!
要⽤幾個 RNN 神經元! 這和 DNN 的狀況⼀樣, 實在太簡單了啊!
度學習 217 遞歸層原理 xt 1 xt 2 xt n ht
1 ht 2 ht k xt ht 遞歸層 遞歸神經網路的特點是, 遞歸層每個 神經元的輸出我們會收集起, 來成⼀ 個向量 , 我們叫 hidden state: ht ht = ht 1 ht 2 ⋮ hk t 這個 hidden state 向量下次會當成 輸⼊的⼀部份。 ht−1
度學習 218 遞歸層原理 ht 1 = σ(wX 1 xt 1
+ wX 2 xt 2 + wH 1 ht−1 1 + wH 2 ht−1 2 + b1 ) 我們⽤有兩個輸⼊, 兩個 RNN 神經 元的遞歸層來說明。 每⼀次遞歸層輸出的 2 維 hidden state, 下次會再回傳。 計算⽅式可以看出, 基本上就是 4 個輸⼊的標準全連結神經網路!
度學習 219 重要應⽤: 對話機器⼈ ሣػثਓ 目前的字 下一個字 f ( )
= RNN 最重要的應⽤之⼀, ⼤概 就是可以⽤⾃然語⾔交談的對 話機器⼈。 我們前⾯有說過, 函數學習機 就是要⽤前⼀個字 (詞), 去預 測下⼀個字 (詞)。
度學習 220 重要應⽤: 對話機器⼈ f ⽬前的字 下⼀個字 上次遞歸層輸出 的 hidden
state
度學習 221 重要應⽤: 對話機器⼈ 字1 字2 回1 EOS 回1 回2
回k EOS 相信⼤家還記得, 對話機器⼈的原理。 h1 h2 hT s1 s2 sk−1
度學習 222 其實對話機器⼈模式可以做更多! 輸⼊不⼀定要⽂字, 是影⽚ (⼀張⼀張的圖) 也是可以 的! 輸出還是可以為⽂字, 最常⾒的⼤概是讓電腦說
影⽚中發⽣什麼事。
度學習 223 其實對話機器⼈模式可以做更多! ⾃動翻譯 ⽣成⽂章 video captioning
度學習 224 AI 數學家 Andrej Karpathy ⽣出代數幾何介紹 "Stacks" 的⽂字! http://karpathy.github.io/2015/05/21/rnn-effectiveness/
電腦覺得 ⾃⼰是個 數學家!
度學習 225 AI 莎⼠⽐亞 電腦覺得⾃⼰ 是莎⼠⽐亞! 潘達洛斯: 唉,我想他應該過來接近⼀天 當⼩的⼩⿆變成從不吃的時候, 誰是他的死亡鏈條和⾂⺠,
我不應該睡覺。 第⼆位參議員: 他們遠離了我⼼中產⽣的這些苦難, 當我滅亡的時候,我應該埋葬和堅強 許多國家的地球和思想。
度學習 226 RNN 的訓練 BPTT RNN 的訓練有個很炫的名 字, 叫 backpropagation
through time (BBPT), 其 實和⼀般神經網路的訓練 沒有什麼不同!
度學習 227 RNN 的訓練 BPTT x3 x4 x5 ̂ y3
xm x2 x1 ̂ y1 ̂ y2 ̂ y4 ̂ y5 ̂ ym 我們假設我們的 RNN 函數學習機有個參數叫 , 記得每個時間 點都有這個參數在。雖然是同⼀個參數, 但依時間不同叫 。 w wt w1 w2 w3 w4 w5 wm
度學習 228 RNN 的訓練 BPTT x3 x4 x5 ̂ y3
xm x2 x1 ̂ y1 ̂ y2 ̂ y4 ̂ y5 ̂ ym 訓練的時間我們先把整個過程看成⼀個很深的神經網路, 把每個 時間點的 看成不同的參數去調整。每⼀個參數要調多少再平 均, 就得到 要調整的⼤⼩。 wt w w1 w2 w3 w4 w5 wm
度學習 229 RNN 訓練上的問題 x3 x4 x5 ̂ y3 xm
x2 x1 ̂ y1 ̂ y2 ̂ y4 ̂ y5 ̂ ym w1 w2 w3 w4 w5 wm backpropagation RNN ⾃然變成「很深的神經網路」成為⼀個訓練上的問題! ∂L ∂wm ∂w6 ∂w5 ∂w5 ∂w4 ∂w4 ∂w3 ∂w3 ∂w2 ∂w2 ∂w1 × × × × × ×
度學習 230 RNN 訓練上的問題 x3 x4 x5 ̂ y3 xm
x2 x1 ̂ y1 ̂ y2 ̂ y4 ̂ y5 ̂ ym w1 w2 w3 w4 w5 wm backpropagation 在做 backpropagation 時, 還沒乘到最前⾯, 往往就變成 0 了! 這個問題叫梯度消失 (vanishing gradient)! ∂L ∂wm ∂w6 ∂w5 ∂w5 ∂w4 ∂w4 ∂w3 ∂w3 ∂w2 ∂w2 ∂w1 × × × × × × . . . . . .
度學習 231 RNN 兩⼤救星 LSTM GRU Long Short Term Memory
Gated Recurrent Unit 解決 RNN 訓練問 題的兩⼤王牌。
度學習 232 說⽤ RNN, 其實是⽤ LSTM/GRU 現在說到 RNN, 其實包括原始 RNN,
LSTM, GRU 等各種變形。 特別要叫原始的 RNN, 我們習慣叫 它 Vanilla RNN, 在 TensorFlow 中是 SimpleRNN。
度學習 233 RNN 預測全壘打數 我想知道某位 MLB 選⼿新的球季可以 打幾隻全壘打?
度學習 234 RNN 預測全壘打數 f 第 t- 年資料 第 t
年全壘打數 [Age, G, PA, AB, R, H, 2B, 3B, HR, RBI, SB, BB, SO, OPS+, TB] 輸⼊有 15 個 features: 輸出是分五個區間: 0-9, 10-19, 20-29, 30-39, 40+
度學習 235 RNN 預測全壘打數 1 3 2 4 5 10-19
0 1 0 0 0 ⎡ ⎣ ⎢ ⎢ ⎢ ⎢ ⎢ ⎢ ⎤ ⎦ ⎥ ⎥ ⎥ ⎥ ⎥ ⎥ 0-9 10-19 20-29 30-39 40+ 輸出⼀樣做 one- hot encoding。
度學習 236 RNN 預測全壘打數 f 輸入 15 維向量, 輸出 5
維向量 (區間)。 一層 LSTM 隱藏層。 輸出層做 softmax。 訓練時每次用 10 年資料。 神經網路函數學習機的設計:
度學習 237 RNN 預測全壘打數 Mike Trout (LAA) 預測 30-39 實際
33 Mookie Betts (BOS) 預測 20-29 實際 24 Jose Altuve (HOU) 預測 20-29 實際 24 Kris Bryant (CHC) 預測 30-39 (第二高 20-29) 實際 29 Daniel Murphy (WSH) 預測 20-29 實際 23 Corey Seager (LAD) 預測 20-29 實際 22 2017 預測結果 (2017 年 6 月預測)
度學習 238 在政⼤怎麼開始學 AI? Topic
度學習 239 政⼤數理資訊社/數理資訊學程 fb.me/nccumit 魔法程式家 FB 社團 政⼤數理資訊社
度學習 240 數理資訊社。專題⼩組 Deep Learning 讀書會獲教發中⼼ 「⾃主學習讀書⾏動⼩組」第⼀名 新的學期, 數理資訊社除了 社課介紹
Python, 還開始 包括⾦融、影像辨識等等 各種 AI 運⽤專題⼩組。
度學習 241 海外 AI 實習計畫 經濟碩 經濟 傳院 應數 經濟
上海實習 241 暑假到上海、美國、 越南實習, 都是做⼀ 個 AI 的專案。
度學習 242 AI 競賽 科技部科技部AI 推動中⼼ 「GAN ⼤賽」
度學習 243 ⽼師的 MOOC 課程 Python 深度學習
度學習 244 安裝 Anaconda 附錄 1
度學習 245 找到 Anaconda Download 點 https://www.anaconda.com/products/individual 也可以 Google 搜尋
Anaconda
度學習 246 選擇適合你的 OS 執⾏安裝程式, 請就按下⼀步、下⼀步, 完全依預設安裝!
度學習 247 找到你適合的終端機 我們來試試剛開始可能有點可怕的終端機。 > Windows 使⽤者請⽤ Anaconda Prompt
度學習 248 建議使⽤虛擬環境 深度學習或其它 Python 套 件不斷更新, 時不時會有版本 相衝的問題, 安裝建議直接跳
到「虛擬環境安裝」篇。
度學習 249 安裝 TensorFlow > conda install tensorflow
度學習 250 安裝 TensorFlow GPU 版 > conda install tensorflow-gpu
要先更新 NVIDIA GPU 顯卡 Driver
度學習 251 cd 進⼊你的⼯作資料夾 > cd <⼯作資料夾路徑>
度學習 252 拖拉神技出現⼯作資料夾 ⽤拖拉的⽅式,可以找到完整路徑!
度學習 253 執⾏ Jupyter Notebook > jupyter notebook
度學習 254 虛擬環境安裝 虛擬環境安裝 為⻑久之計...
度學習 255 建⼀個乾淨的 Anaconda 虛擬環境 > conda create -n tf2-py37
python=3.7 anaconda ⾃⼰取的虛擬 環境名稱。 指定 Python 版本。 裝完整的 anaconda (⾼⼿很不喜, 但建議 初學這樣做。)
度學習 256 讓 Jupyter Notebook 找到所有虛擬環境的 Python > conda install
nb_conda 這樣以後執⾏ Jupyter Notebook 都不⽤再進 去某個虛擬環境! * conda install 是未來我們在 Anaconda 安裝套件的指令。
度學習 257 進⼊⼀個虛擬環境 > conda activate tf2-py37 以後除⾮安裝新套件, 不然我們不太常需要 進來。
接著和之前⼀樣了...
度學習 258 安裝 TensorFlow > conda install tensorflow
度學習 259 安裝 TensorFlow GPU 版 > conda install tensorflow-gpu
要先更新 NVIDIA GPU 顯卡 Driver
度學習 260 離開虛擬環境 > conda deactivate 離開⽬前的虛擬環境, 所以名稱不⽤再輸⼊! 以後直接打開終端機 (Anaconda
Prompt Powershell), 直接做以後⼀直會做的標準動作...
度學習 261 cd 進⼊你的⼯作資料夾 > cd <⼯作資料夾路徑>
度學習 262 拖拉神技出現⼯作資料夾 ⽤拖拉的⽅式,可以找到完整路徑!
度學習 263 執⾏ Jupyter Notebook > jupyter notebook
度學習 264 Anaconda 重裝 Anaconda 其實無⽐好裝, 但萬⼀真的出問題, 你可以 ⽤我們介紹的重裝⽅式!
度學習 265 Anaconda 重裝 anaconda3 anaconda3_old 把家⽬錄中叫 anaconda3 (之類的) 資料夾更名。然後重新
安裝 Anaconda 就好!
度學習 266 ⽤ Colab 免安裝 附錄 2
度學習 267 其實也可以直接⽤ Colab Colab 不⽤安裝, ⽤ Google 帳號登⼊, 免費
使⽤ GPU 或 TPU。
TensorFlow 2 度學習 268 檢查 TensorFlow 版本 檢查 TensorFlow 版本
(現在應該預設就是 2.x)
度學習 269 打開 GPU 在編輯 > 筆記本設定中, 打開 GPU 或
TPU。
TensorFlow 2 度學習 270 Mount 你的 Google Drive, 存取資料 要點網址
copy ⾦鑰 你會需要點網址, 選擇你的 Google 帳號授 權, 然後 copy 出現的⾦鑰, 回來貼在這裡。
TensorFlow 2 度學習 271 進⼊你的資料夾 你可以 cd 進⼊任何你 Colab 的資料夾。前⾯的部份我們沒有耍可愛,
Google 真的把你的 Google Drive 家⽬錄叫 My Drive。
度學習 272 Q & A 有問題嗎?