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
人工智慧介紹
Search
[email protected]
November 21, 2019
Technology
2
1.5k
人工智慧介紹
這是幾次分享深度學習演講的投影片:
2019 淡江大學、高雄科技大學、開南大學
2020 東吳大學
2020 清華大學
[email protected]
November 21, 2019
Tweet
Share
More Decks by
[email protected]
See All by
[email protected]
【深度學習】08 強化學習
yenlung
0
350
Contrastive Self-Supervised Learning
yenlung
0
410
【深度學習】07 生成模式和 GAN
yenlung
0
370
【深度學習】06 RNN 實務與 Transformers
yenlung
0
310
【深度學習】05 有記憶的神經網路 RNN
yenlung
0
140
【深度學習】04 圖形辨識的天王 CNN
yenlung
0
240
【深度學習】03 神經網路是怎麼學的
yenlung
0
180
【深度學習】02 AI 就是問個好問題
yenlung
0
180
咖啡沖煮簡介
yenlung
0
1.2k
Other Decks in Technology
See All in Technology
Jr. Championsになって、強く連携しながらAWSをもっと使いたい!~AWSに対する期待と行動~
amixedcolor
0
190
20241031_AWS_生成AIハッカソン_GenMuck
tsumita
0
110
[JAWS-UG金沢支部×コンテナ支部合同企画]コンテナとは何か
furuton
3
260
30万人が利用するチャットをFirebase Realtime DatabaseからActionCableへ移行する方法
ryosk7
5
350
Fargateを使った研修の話
takesection
0
120
「最高のチューニング」をしないために / hack@delta 24.10
fujiwara3
21
3.5k
話題のGraphRAG、その可能性と課題を理解する
hide212131
4
1.5k
スプリントゴールにチームの状態も設定する背景とその効果 / Team state in sprint goals why and impact
kakehashi
2
100
最速最小からはじめるデータプロダクト / Data Product MVP
amaotone
5
740
Gradle: The Build System That Loves To Hate You
aurimas
2
150
生成AIと知識グラフの相互利用に基づく文書解析
koujikozaki
1
140
WINTICKETアプリで実現した高可用性と高速リリースを支えるエコシステム / winticket-eco-system
cyberagentdevelopers
PRO
1
190
Featured
See All Featured
Scaling GitHub
holman
458
140k
Fontdeck: Realign not Redesign
paulrobertlloyd
81
5.2k
What's in a price? How to price your products and services
michaelherold
243
12k
Principles of Awesome APIs and How to Build Them.
keavy
126
17k
The Straight Up "How To Draw Better" Workshop
denniskardys
232
140k
A Philosophy of Restraint
colly
203
16k
The Cult of Friendly URLs
andyhume
78
6k
Easily Structure & Communicate Ideas using Wireframe
afnizarnur
191
16k
Building an army of robots
kneath
302
42k
Building a Scalable Design System with Sketch
lauravandoore
459
33k
We Have a Design System, Now What?
morganepeng
50
7.2k
ReactJS: Keep Simple. Everything can be a component!
pedronauck
664
120k
Transcript
深度學習的原 理與實務 蔡炎龍 清華大學工業工程系 政治大學應用數學系
2 http://bit.ly/2020intro_AI 演講投影片
3 吳恩達 (Andrew Ng) AI for Everyone AI 大師深信人人都可以做 AI
蔡炎龍 人人都可參一咖 的人工智慧 Coursera 課程
4 美國爾灣加州大學數學博士 政大應數系教師 曾任政大副學務長 政大新生書院總導師、數理資訊 社、愛愛會、咖啡社指導老師 人工智慧學校講師、鴻海《人工 智慧導論》前兩章主筆 政大數理資訊學程召集人, 推廣
Python 超過十年 關於我
5 高中寫遊戲程式出版。
6 碩士班就是研究神經 網路的。
7 業界、學校面對技術型與 一般大眾多次人工智慧分 享。
8 【珊蒂微AI】專訪
9 鴻海《人工智慧導論》 (給高中生的 AI 補充教 材) 前兩章主筆。
10 AI 不過就是問個好問題 AI 核心技術—神經網路的原理 設計思考, 創意解決問題 怎麼在政大實現你的 AI 夢想
大綱
1 AI 不過就是 問個好問題 11
12 很多人說人工智慧會取代我們
13 有些事的確在發生、或會發生 ⾃動駕駛 近 100% 機會會實現 無人駕駛 協助醫生診斷 無人商店 協助音樂創作
Alex da Kid “Not Easy” 自動交易
14 哆啦a夢 不過我們還有 93 年的時間 2112 年 9 月 3
日 近期內不可能 AGI 通用型 AI
15 No, No. 應該叫 Human Level Intelligence Yann LeCun 被稱為
deep learning 三巨頭之一、CNN 之 父。
16 今天的解說之後, 你會發現 AI 其實沒那麼神祕, 甚至可能有 點失望它好像不那麼萬能...
17 人工智慧 機器學習 深度學習 基本上就是用 不同的方式, 去學函數!
18 我們試著用一 個例子來說明 個中的不同。
19 我想知道某個人是 否有特定政黨傾向 或是中間選民。
20 f 社群媒體、 部落格文章 有政黨傾向 中間選民 or 問題化為函數 不管什麼 AI,
就是要去學這個函數, 但風格不同。
21 古典 AI 法 1 可能有個專家說, 如果文章出 現自稱「中立客觀」, 「沒有 特定政黨傾向」...
通常就是有政黨傾 向的。 專家
22 古典 AI 法 1 f 社群媒體、 部落格文章 文章出現「我向來 都是沒有政黨傾向
的」。 有政黨傾向
23 古典 AI 法 1 簡單的說, 就是規則基本上是 我們告訴電腦的。也許比我們 例子更複雜, 也許比我們例子
更簡單 (比如說一個公式就可 以算出來的問題)。
24 傳統機器學習 2 但有些「中立客觀」類 的文章, 從頭到尾不會 出現這個字眼, 但文章 暗示作者是這樣。
25 傳統機器學習 2 f 社群媒體、 部落格文章 有點難... 基本上, 我們想直接把文章放進電腦, 讓它
自己想辦法分辨。
26 傳統機器學習 2 於字是我們想辦法把文章的特徵找出來, 比如 說最重要 500 個詞出現次數。 [5, 16,
4, 3, 0, 7, …] 1 2 3 4 5 500維向量
27 傳統機器學習 2 [5, 16, 4, 3, 0, 7, …]
1 2 3 4 5 500維向量 500 維可能還是太多了! 於是我們會用各種降 維 (dimension reduction) 的方式, 把輸入縮 小到 (例如) 10 維向量。 x 10維向量
28 傳統機器學習 2 一般我們會花不少時間去做所謂的 feature engineering, 找到輸入資料較好的表現方 式。 然後不管用 SVM
啦, KMeans 啦等 等, 我都知道電腦 在做什麼。
29 深度學習 3 f 社群媒體、 部落格文章 有政黨傾向 中間選民 or 就把一篇篇我們知道分類的文章放進去...
The End?
30 深度學習 3 f 社群媒體、 部落格文章 中立客觀 明顯立場 我們可能會發現, 這樣訓練效果不好,
或是提供 給我們的資訊太少, 說不定應該訓練這種分類, 甚至多類別型的分類! 我以前都是
31 深度學習 3 深度學習會專注在 「我們怎麼問這個問題?」 整個判斷由電腦做, 所以 一般要大量資料!
32 小結論 例子不是真實專案, 領域專家 可能會覺得這樣分析很外行。 我們「中立客觀」的分析了三 類人工智慧方法的異同。 有時界線沒有這麼明顯, 甚至 我們也會混用三種方式。
不需要特別獨尊哪種方式, 每 種方式都有適合的應用場景。
33 函數其實是一個解答本 所有的問題, 都有一個答案
34 在野外看到一隻動物, 我想知道是什麼?
35 想成函數就是 f “台灣黑熊” 輸入一張動物的照片, 輸出就是這是什麼動物
36 問題 答案 台灣黑熊 蟒蛇 我們有部份解答
37 問題 答案 台灣黑熊 蟒蛇 但我們還沒碰過的情況可能有無限多題 ?
38 f 我們打造一個「函數學習機」, 把這個函數學起來! (方法是不斷做「考古題」)
39 f 成功的話, 沒看過的也可以合理推論出來! (所以叫「人工智慧」) “台灣黑熊”
40 人工智慧中要打造的函數學習機叫「神經網路」!
41 深度學習 (神經網路) 三大天王 標準 NN CNN RNN
42 我們先問一個問題 1 在野外看到一隻動物, 我想知道是什麼?
43 f 台灣黑熊 2 化成函數的形式
44 注意輸入輸出都要 是固定長像的數字 (矩陣, tensor 等等)
45 G R B 數位相片本來就是一堆數字
46 輸出不是數字, 我們就給一個數字! 台灣黑熊 豬 蠎蛇 1 2 3
47 台灣黑熊 豬 蠎蛇 1 2 3 [ 1 0
0 ] [ 0 1 0 ] [ 0 0 1 ] 我們常把它做成 one-hot encoding
( , "台灣黑熊") ( , "蠎蛇") , , ... x
k+1 , y k+1 x k , y k x1 , y1 x n , y n 訓練資料 測試資料 3 準備歷史資料
49 要注意是否有夠多 (常常是上萬筆) 歷 史資料。
50 還要注意資料是否 在合理的努力下可 取得。
വᏐላ शػ 51 不管我們用了什麼阿貓 阿狗法, 打造了一台函 數學習機。 就會有一堆參數要調。 完成! {wi
, bj } θ 4 打造我們的神經網路
52 決定好這些參數的值, 就會出現一個函數。 fθ 白話文就是, 「這個神經網路可以動了」...
53 fθ “台灣藍鵲” 只是, 很有可能發生... 唬爛也要有個限度, 這該怎麼辦呢?
54 我們會定義個 loss function, 看看 我們的神經網路考考古題的時候, 和正確答案差多少? fθ 5 學習
55 目標是找到一組 θ* 這組參數代入 loss function L(θ*) 值是最小的 (也就是誤差最小)。
56 基本上就是用 gradient descent 因神經網路的特性, 叫 backpropagation
57 f 成功的話, 沒看過的也可以合理推論出來! (所以叫「人工智慧」) >台灣黑熊C CNN
58 問問題的各種可能
59 我想知道某支股票 某個有開盤的日子 的收盤價。
60 f 日期 x 某股票 x 當天 的收盤價 不合理的是, 日期這個資訊太少,
不太能推出收盤價...
61 f NN, CNN, RNN 用前 1 週的情況預 測下一期。
62 我想知道某位 MLB 選手 2020 球季可以 打幾隻全壘打?
63 第 t-1 年資料 [Age, G, PA, AB, R, H,
2B, 3B, HR, RBI, SB, BB, SO, OPS+, TB] 15 個 features! f 第 t 年全壘打數 RNN 結果不準!
64 不要猜精確數目, 猜區 間即可! 分五段: 0-9, 10-19, 20-29, 30-39, 40+
65 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 月預測) 65
66 我想知道病人有沒有 感染某種流感病毒?
67 f CNN 有 or 沒有 看 我 有 沒
有在裡面? 67
68 我喜歡的字型有缺 字, 我想要這個字!
69 f 字型A 字型B 字型 A 有完整字型, 字型 B 有缺字。
70 對話機器人 【事件篇】
71 f 客戶說的話 客服機器人回應 這樣會有問題!
72 f 目前的字 下一個字
73 注意這樣的模式, 每次輸入和輸出都不是固定的長度! 字1 字2 回1 EOS 回1 回2 回k
EOS
74 我想讓電腦和我一樣 會創作。
75 f 一段音樂 ??? 到底是要輸入什麼呢?
76 G 一小段曲子 靈感 D 一小段曲子 像 or 不像 首曲子
這就是所謂的生成對抗網路 (GAN)! 結果是做了兩個神經網路
77 這攏係假ㄟ啦 (1024x1024 明星照) (2018 NVIDIA 團隊) GAN 的另一個應用
78 我想讓 AI 自己玩遊 戲。
79 π 最好的動作 這樣做通常不行! どうして?
80 我那麼會我就世界 冠軍了啊!
81 Q CNN + NN + 這就是強化學習 (reinforcement learning) 嚴格來說,
是強化學習 中的 Q-Learning。 直接學哪個動作最好不容易。於是我們學習 給每個動作「評分」, 通常是計算做了這個 動作後「得分的期望值」。
82 Montezuma™s Revenge StarCraft (星海爭霸) II Quake (雷神之鎚 ) III
Arena Capture the Flag 2019 AI 重大突破! 以前玩不好的, 再繼續玩...
83 我想把文字編碼, 於 是電腦可以處理。
84 f 一個詞 這個詞的編碼 這個人的個性有點天天。 我天天都會喝一杯咖啡。 傳統的 word embedding 可是一個字、一個
詞, 在不同的地方可 能有不一樣的意思。
85 f 一個語意 這個語意的編碼 這要怎麼做啊?
86 ELMO BERT 結果很多和芝麻街角色有關。這裡的技巧超過今天的 範圍, 不過有興趣的可以查一下這兩位芝麻街角色。 尤其是 BERT, 到底怎麼問問題的呢?
2 AI 核心技術— 神經網路 87
88 現代 AI 主軸是深度學習
89 深度學習的核心是神經網路
記得我們就是要學個函數 90 f x1 x2 xn y1 y2 ym
91 函數學習三部曲 真實世界我們要問的問題化做函數。 收集我們知道「正確答案」的訓練資料。 找出這個函數!
暗黑學習法 真的有學任意函數的技法 92
就是「神經網路」! 93
在 1980-1990 左右是 很潮的東西 94
厲害的是神經網路什麼都 學得會! 而且你完全不用告訴它函數應該長什麼樣子: 線性 啦、二次多項式啦等等。 95
96 Hidden Layer Output Layer Input Layer 暗黑魔法
97 然後它就死掉了...
98 複雜的軟體 電腦計算能⼒ ⼤量的數據 Yann LeCun 說主要是因為神經網路要成功, 需要的三大要件當時不具足。
99 直到...
100 Human-level control through deep reinforcement learning ” “ DeepMind
2015-2-26 Deep Q- Learning letter 玩電動上《Nature》!
101 Deep Learning” “ LeCun-Bengio-Hinton 2015-5-28 http://bit.ly/ai_history 介紹 Deep Learning「三巨頭」
的故事。 延申閱讀 走過黑暗時光的 deep learning 三巨頭
102 Mastering the game of Go with deep neural networks
and tree search” “ DeepMind 2016-2-26 當然還有 AlphaGo!
打開暗黑世界 103
104 Fully Connected Neural Networks 1980 年代就火紅的 model 標準 (全連結)
NN
105
106 基本上我們要決定的只有 要用幾層隱藏層。 每層要用幾個神經元。 用什麼激發函數。
每個神經元動作基本上是 一樣的! 107
108 每個神經元就是接 受若干個輸入, 然後 送出一個輸出。
109 輸入做加權和。
110 加上偏值 (bias)。
111 再⽤激活函數作⽤上去, 即為輸出。
112 幾個 activation functions ReLU Sigmoid Gaussian
113 變數就是 weights, biases
114 「學成的」神經網路 1 2 1 2 1 1
115 假設輸入 2 1 1 (x1 ,x2 ) = (1,3)
1 3 1 3 8 1 2 1
116 假設用 ReLU 1 3 1 2 1
3 神經網路的 學習原理 117
當⼀個神經網路結構決定、activation functions 也決定, 那可以調的就是 weights, biases。我們把 這些參數的集合叫 , 每⼀個 就定義⼀個函數,
我 們把它看成⼀個集合。 固定結構神經網路的函數空間 118
我們就是要找 使得 和目標函數最接近 119
「最近」是什麼意思 就是 “loss function” 的值最小 120
121 假設我們有訓練資料 {(x1 , y1 ), (x2 , y2 ),
…, (xk , yk )}
122 f xi ̂ yi 我們打造的函數學習機會答一個問題。 yi 正確答案 看差多遠 Fθ
(xi ) = ̂ yi
123 Loss Function (損失函數) 我們會用一個「誤差 函數」, 看我們函數學 習機的答案和正確答 案差多遠。
124 1 常用 Loss Function 1 這什麼啊? L(θ) = 1
2 k ∑ i=1 ∥yi − Fθ (xi )∥2
125 1 常用 Loss Function 1 L(θ) = 1 2
k ∑ i=1 ∥yi − Fθ (xi )∥2 我們希望差越少越好! 正確答案 函數學習機 給的答案
126 基本上這樣調 learning rate
這可怕的東西是什麼意思? 127
記得 L 是 w1 , w2 , b1 , …
的函數 128 希望數值越小越好
為了簡化, 我們先把 L 想 成只有一個變數 w 129
130 w 目前的值 如何走到最小值?
131 w 目前的值 我知道, a 點 要向右移動!
132 電腦怎麼「看」出來?
133 切線是關鍵!
134 切線斜率 < 0
135 切線斜率 > 0
切線斜率指向 (局部) 最大 值的方向!! 136
137 符號 切線斜率 切線斜率
138 切線斜率是變化率 切線斜率 切線斜率
139 對任意的 w, 我們會寫成: 切線斜率函數 切線斜率合理的符號 符號 簡潔就是潮!
140 正負指向 (局部) 極大 切線斜率 切線斜率
141 往 (局部) 極小值移動 我們想調整 w 的值, 往極小值移動, 應該讓新的 w
變成: 重點
142 往 (局部) 極小值移動 比如現在在 w=a, 要調整為 重點
143 調整示意圖 切線斜率
144 有時會跑過頭! 切線斜率
145 往 (局部) 極小值移動 為了不要一次調太大, 我們會乘上一個小小的數, 叫 Learning Rate: 重點
146 求切線斜率的動作, 就是 微分
147 可是, 變數不只一個...
148 假設這時我們在: 一樣準備往 (局部) 極小值移動。 例子
149 假裝只有⼀個變數! ⽐如說 w1
150 如果除了 w1, 其他變數不動... 一個變數的函數! 例子
151 同理, 例子
152 於是我們又會調整 w1, w2, b1, 讓 L 慢慢走向 (局 部)
極小。 w1 w2 b1 例子
153 寫在一起看來更有學問! 新的 這叫 L 的 gradient 例子
154 但這符號有點⿇煩 還要新創函數
155 偏微分 我們有 L(w1, w2, b1) 這三個變數的函數, 當我們 只把 w1
當變數, 其他 w2, b1 當常數的微分。 定義
156 同理, 偏微分 定義
157 梯度 (gradient) 函數 L 的 gradient 就變成: 符號
158 Gradient 當然要有很酷的符號: 梯度 (gradient) 符號
159 我們調整 w1, w2, b1 的方法就變成: 梯度 (gradient) 符號
這「學習法」有個很潮的名字 (SBEJFOU%FTDFOU 160 梯度下降
161 Deep Learning 三大天王 NN CNN RNN
3 打造神經網路 162
163 現在我們準備一起打造一個神經網路, 我們準 備用有名的 TensorFlow 這個 Python 套件。
164 f 6 手寫辨識 放進一張 28x28 大小的手寫數字影像, 然後希望 我們打造的神經網路可以正確辨別!
165 MNIST 這其實是有名的資料集。 Modified 美國國家標準暨技術研究院
166 f 6 還有兩件小事 這要「拉平」 * 這是因為我們要用標準 NN 才需要。 0
0 0 0 0 0 1 0 0 0 One-hot encoding 反正老師會幫你做...
167 暗黑魔法 { } 784 10 神經網路函 數學習機
168 基本上我們要決定的只有 要用幾層隱藏層。 每層要用幾個神經元。 用什麼激發函數。
169 Q1 隱藏層要幾層?
170 Q2 每層幾個神經元? Q2
171 Activation Function? ReLU Sigmoid or Q3
172 為大家準備好了 訓練資料 測試資料 x_train y_train x_test y_test 用到的套件也都讀進來了...
重點 打開一個函數學習機 打開一個神經網路函數學習機。 model = Sequential() 173
重點 第一層隱藏層 填入同學指定的神經元個數、選用的激發函數。 model.add(Dense(?, input_dim=784, activation='??')) 174
重點 第二層隱藏層 如果有第二層, 一樣指定多少個神經元、激發函數 model.add(Dense(?, activation='??')) 175
重點 輸出層 10 維, 唯一指定 softmax 當 activation function! model.add(Dense(10,
activation='softmax')) 176
177 z1 z2 z3 z4 z5 z7 z8 z9 z0
z6 α0 α1 α2 α3 α4 α5 α6 α7 α8 α9 有 10 個數字, 怎麼轉換, 可以變成加起來等於 1? 9 ∑ i=0 αi = 1
178 αj = ezj ∑9 i=0 ezi 這就叫 softmax
179 Deep Learning 三大天王 標準 NN CNN RNN
4 卷積神經網路 CNN 180
181 Convolutional Neural Network 圖形辨識的超級天王 CNN
182 台灣黑熊 圖形辨識 f ( ) =
183 電腦打電動 目前狀態 「最佳」動作 π ( ) = 搭配 reinforcement
learning
184 filter 1 filter 2 input 每個 filter 看⼀個特徵, 掃過每
⼀個點, 紀錄該點附近的「特 徵強度」。 Convolutional Neural Network (CNN)
185 Hinton LeCun Bengio 博⼠後學⽣ 博⼠後共事 深度學習三巨頭
186 博士就研究 ConvNet (不全連結的神經網路) Ph.D. in CS, Universite Pierre et
Marie Curie (巴黎第六大學), 1987 postdoc at the University of Toronto 1988- Bell 實驗室 2003 NYU 教授 2013 Facebook AI Director Yann LeCun
187 大約 1995 年, 大家對神經網路 失去了興趣... LeCun
188 只要別的方法更好、 甚至一様好, 大家就 不想用神經網路! Hinton
189 圖形辨識 SVM 強強的! 比如 2011 ImageNet 大型圖 形辨識比賽冠軍 XRCE。
190 AlexNet 2012 ImageNet 大型圖形辨識 比賽冠軍, 狂勝 XRCE! 圖形辨識進入 CNN
時代!
191 自 2012 以降, 歷屆 ImageNet 冠軍都是 CNN 的天下! InceptionV3
GoogLeNet, V1 是 2014 冠軍 VGG16/VGG19 2014 亞軍 ResNet50 2015 冠軍 * 這些都是 TensorFlow 準備好可以給你用的!
192 Convolutional Layer 1
193 例如 3x3 的大小 我們要做 filters
194 為什麼 filter 能看出「特性」 [ 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 1 Filter 2 圖
195 為什麼 filter 能看出「特性」 [ 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 ] 1分 3分 Filter 1 Filter 2 圖
196 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=
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 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 一路到最後 W=
199 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 最後就是一個 6x6 的矩陣 有時我們會把它弄成還是 8x8 基本上和原矩陣一樣大 而且我們通常 filter 會很多!
200 「記分板」大小 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 ] Filter 1 0 0 0 0 0 0 0 0 0 圖 記分板 padding="valid"
201 「記分板」大小 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 ] Filter 1 2 0 0 0 0 3 0 0 0 0 3 0 0 0 0 3 0 0 0 0 2 0 0 0 0 圖 記分板 外面加圈 0! 注意和原圖 一樣大! padding=“same"
202 神經元是這樣看的
203 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 圖片上的點是一個個輸 入層神經元
204 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 層也是一個個神經元
205 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=
206 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=
207 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 最後就是一個 6x6 的矩陣 有時我們會把它弄成還是 8x8 基本上和原矩陣一樣大 而且我們通常 filter 會很多!
208 Max-Pooling Layer 2
209 看我們要多大區選一個代表, 例如 2x2 基本上就是「投票」
210 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 每區投出最大的!!
211 convolution, max-pooling, convolution, max-pooling… 可以不斷重覆
212 做完再送到「正常的」 神經網路
213 Conv Max- Pooling Conv Max- Pooling Conv Max- Pooling
Dense Conv 層的 filter 要 越來越多還越來越少 呢?
5 遞迴神經網路 RNN 214
215 Recurrent Neural Network 「有記憶」的神經網路 RNN
216 一般的神經網路一筆輸入和下一筆是 沒有關係的... x1 x2 ̂ y1 ̂ y2
217 意思是輸入次序換了, 每次輸出的結 果是一様的! x1 x2 ̂ y1 ̂ y2
218 RNN 會偷偷把上一次的輸出也當這一 次的輸入。 x1 ̂ y1 也就是 RNN 「記得」前面
發生的事!
219 符號說明。 wx ij wh ij ht i t 時的第
i 個 hidden state 對輸入的權重 對 hidden state 的權重
220 注意 也有類似的公式。 ht 2 ht 2 = σ(wx 12
xt 1 + wx 22 xt 2 + wh 12 ht−1 1 + wh 22 ht−1 2 + b2 )
221 ht = [ ht 1 ht 2 ] =
[ σ(wx 11 xt 1 + wx 21 xt 2 + wh 11 ht−1 1 + wh 21 ht−1 2 + b1 ) σ(wx 12 xt 1 + wx 22 xt 2 + wh 12 ht−1 1 + wh 22 ht−1 2 + b2 )] 重要的 hidden states 寫成向量形式。 這看來好 可怕!
222 WT x = [ wx 11 wx 21 wx
12 wx 22 ] 權重矩陣 x 1號 RNN 神經元 xt = [ xt 1 xt 2 ]
223 WT x ⋅ xt = [ w11 xt 1
+ w21 xt 2 w12 xt 1 + w22 xt 2 ] 加權和 x 同時算了兩 個神經元的!
224 ht−1 = [ ht−1 1 ht−1 2 ] hidden
states 也寫成 向量。
225 WT x ⋅ xt + WT h ⋅ ht−1
+ b b = [ b1 b2 ] 計算「總刺 激」的部份。
226 ht = σ(WT x ⋅ xt + WT h
⋅ ht−1 + b) 最後美美的公式 (?) 長這樣。
227 很多人畫成這樣。 x1 ̂ y1 x2 ̂ y2 xm ̂
ym
228 對話機器人 【解決篇】
229 f 客戶說的話 客服機器人回應 這樣會有問題! 前情提要...
230 f 目前的字 下一個字 結果我們是用...
231 f(“今”) = “天” f(“天”) = “天” f(“天”) = “氣”
f(“氣”) = “很” f(“很”) = “好” 比如說, “今天天氣很好。” 這句話... 這根本不 是函數啊!
232 f 目前的字 下一個字 不過其實我們不只前一個字, 還偷偷輸入... 上一次的輸出 也就是我們上次的 hidden states
233 注意這樣的模式, 每次輸入和輸出都不是固定的長度! 字1 字2 回1 EOS 回1 回2 回k
EOS
234 其實輸入不一定要文字, 是影 片 (一張一張的圖) 也是可以 的! 輸出還是可以為文字, 最常 見的大概是讓電腦說影片中發
生什麼事。
235 翻譯。 Video Captioning 生成影片敘述。 生成一段文字。 畫一半的圖完成它。 同樣型式的應用
236 Andrej Karpathy 生出代數幾何介紹 "Stacks" 的文字 http://karpathy.github.io/2015/05/21/rnn- effectiveness/
237 潘達洛斯: 唉,我想他應該過來接近一天 當小的小麥變成從不吃的時候, 誰是他的死亡鏈條和臣民, 我不應該睡覺。 第二位參議員: 他們遠離了我心中產生的這些苦難, 當我滅亡的時候,我應該埋葬和堅強 許多國家的地球和思想。
電腦仿的莎士比 亞作品。
238 一般的神經網路一筆輸入和下一筆是 沒有關係的...
239 RNN 會偷偷把上一次的輸出也當這一 次的輸入。
240 很多人畫成這樣。
241 Recurrent Neural Network (RNN) ht 1 = σ (w1
xt 1 + w2 xt 2 + w3 h3 t−1 + w4 h4 t−1 + b1 ) 會加入上⼀次的 outputs 當這次的 inputs。
242 注意 為了讓大家更容易瞭解, 我們會用較簡 單的圖示。請注意輸入都是個向量、會 有權重; 輸出都是純量。 xt =
xt,1 xt,2 . . . xt,n 可能長這樣
243 注意 為了讓大家更容易瞭解, 我們會用較簡 單的圖示。請注意輸入都是個向量、會 有權重; 輸出都是純量。 實際輸入長這樣
244 注意 為了讓大家更容易瞭解, 我們會用較簡 單的圖示。請注意輸入都是個向量、會 有權重; 輸出都是純量。 同理 h 也是這樣
245 對同一層第 k 個 cell, 就一個輸出。 輸入可能是向 量。 第 k
號 RNN Cell
246 真正連結的樣子, 注意 RNN Cell 會把記憶傳給同一層其 他 RNN Cells。
247 標準 RNN 一個 Cell 的輸出
248 LSTM GRU Long Short Term Memory Gated Recurrent Unit
事實上現在⼤家說到 RNN 是想到...
249 LSTM Long Short Term Memory RNN 系的王牌救援
250 編號 k 的 LSTM 多一個「cell 狀態」
251 Gate 控制閥 重要概念
252 輸出 0 到 1 間的一個數 sigmoid 只是決定「閥」要開多大
253 LSTM 有三個 Gates
254 忘記門 輸入門 輸出門
255 插播 tanh sigmoid
256 -1 1
257 0 1 σ(x) = 1 1 + e−x
258 編號 k 的 LSTM LSTM 再一次 多出來的 cell state
是屬於這個 cell 的 一個 cell 的 output 還是會和 同一層分享
259 「新的」狀態資訊
260
261 真要弄得那麼複雜? 要忘多少和要記多少難道不能一起...
262 GRU Gated Recurrent Unit LSTM 的簡化版
263 雖然名稱有 gated 只留兩個 Gates
264 記憶門 重設門
265 input 可不考慮從前
266
267 重點 RNN 的名字 現在說到 RNN, 其實包括原始 RNN, LSTM, GRU
等各種變形。 特別要叫原始的 RNN, 我們習慣叫它 Vanilla RNN, 在 Keras 中是 SimpleRNN。
268 我想知道某位 MLB 選手 2020 球季可以 打幾隻全壘打?
269 第 t-1 年資料 [Age, G, PA, AB, R, H,
2B, 3B, HR, RBI, SB, BB, SO, OPS+, TB] 15 個 features! f 第 t 年全壘打數 RNN 分五段: 0-9, 10-19, 20-29, 30-39, 40+ 269
270 1 3 2 4 5 10-19 One-Hot encoding 0
1 0 0 0 ⎡ ⎣ ⎢ ⎢ ⎢ ⎢ ⎢ ⎢ ⎤ ⎦ ⎥ ⎥ ⎥ ⎥ ⎥ ⎥ 0-9 10-19 20-29 30-39 40+
271 運用 LSTM, 輸入 10 年的資料猜下一年 只有一層 LSTM 層!
272 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 ⽉預測)
6 273 深度學習心法
274 同理 定義 發想 原型 測試 Standford d.school 風的設計思考步驟 Empathize
Define Ideate Prototype Test
275 我們的 model 很少第 一次就成功。 —清華大學陳宜欣老師 “ ” 心法一
276 數據量大的時候, 深度學 習通常比一般方法好。 “ ” 心法二 * 甚至常常只有深度學習可以「學」。 276
277 要相信神經網路 一定學得會! —東華大學魏澤人老師 “ ” 心法三 277
278 學不好的時候考慮一些 「正則化」 (regularization) 的方法。 “ ” 心法四 * Drop
out, L1/L2 regularization, SELU 等等 278
279 超展開的問問題方式
280 NN CNN RNN Transformer VAE Reinforcement Learning GAN 神經網路軍團
7 生成對抗網路 GAN 281
282 生成對抗網路 (Generative Adversarial Network) Yann LeCun 稱為最有潛力的 model GAN
283 There are many interesting recent development in deep learning…
The most important one, in my opinion, is adversarial training (also called GAN for Generative Adversarial Networks). ” “ —Yan LeCun (楊立昆), 2016
284 The GAN Zoo https://github.com/hindupuravinash/ the-gan-zoo
285 生成器 generator Noise 鑑別器 discriminator 真的 or 假的 GAN
是兩個神經網路, 一個生 成、一個判斷, 相互對抗! z x G D G(z)
286 希望 接近 1 希望 接近 0 接近 1 生成
判斷 D, G 大對抗!
287 朱俊彦等人 (ECCV 2016) “Generative Visual Manipulation on the Natural
Image Manifold” iGAN https://arxiv.org/abs/1609.03552
288 人人都是大畫家! https://youtu.be/9c4z6YsBGQ0
289 Karras 等 NVIDIA 團隊 (ICLR 2018) “Progressive Growing of
GANs for Improved Quality, Stability, and Variation” Progressive GAN https://arxiv.org/abs/1710.10196
290 Karras-Aila-Laine-Lehtinen NVIDIA 團隊最近很有名的⽂章 ⽤ Theano (不是快退出了), Python 2, 單
GPU Progressive Growing of GANs for Improved Quality, Stability, and Variation
291 這攏係假ㄟ啦 (1024x1024 明星照)
292 Isola, 朱俊彦等人 (CVPR 2017) “Image-to-Image Translation with Conditional Adversarial
Networks” Pix2Pix https://arxiv.org/abs/1611.07004
293 * 來自 Isola, 朱俊彦等人的原始論文 (2017) Pix2pix 把衛星圖變地圖。
294 * 來自 Isola, 朱俊彦等人的原始論文 (2017) Pix2pix 隨手畫畫變街景。
295 * Christopher Hesse 依原論文做出 Pix2pix 線上版。 https://affinelayer.com/pixsrv/
296 朱俊彦等人 (ICCV 2017) “Unpaired Image-to-Image Translation using Cycle-Consistent Adversarial
Networks” CycleGAN https://arxiv.org/abs/1703.10593
297 G 生成器 F 生成器 Domain A Domain B 鑑別器
B 鑑別器 A CycleGAN
298 資料「不需要」配對! 於是有無限可能...
299 全世界的人都驚呆了的馬變斑馬。 https://youtu.be/9reHvktowLY
300 CycleGAN 作者自己提到的失敗例子。
301 Goodfellow 也關注的變臉 (魏澤人老師)。 https://youtu.be/Fea4kZq0oFQ
8 強化學習 Reinforcement Learning 302
303 Reinforcement Learning AlphaGo 核心技術 強化學習
304 Agent (電腦) 環境 動作 action 獎勵 reward r t
305 我們以玩打磚塊為例
306 π 左 1 Policy Based 右 or 狀態 動作
policy function
307 通常直接學不容易...
308 Q 評分 + 動作 2 Value Based (通常估計 reward)
Value function
309 2017 年台灣人工智慧年慧 AlphaGo 創始人之一黃士傑博士演講 AlphaGo 的故事
310 AlphaGo Lee AlphaGo Master AlphaGo Zero 中國烏鎮 圍棋會 4:1
擊敗世界 棋王李世乭 神秘高手網路 60 連勝 與柯潔對奕, 人工智慧與人 的合作 完全自學的人 工智慧, 擊敗 之前版本 2016.3 2016.12.29 —2017.1.4 2017.5 2017.10
311 Netflix AlphaGo 紀錄片 (大推) 故事感人不輸電影, 而且都是真人。
312 還有人人都在做的自動駕駛
313 陳非霆 卷積深度 Q-學習之 ETF 自動交易系統
314 選定一支 ETF 開始 20,000 美金 經過一年 (最後手上還有 ETF 就全賣)
使用 reinforcement learning * ETF 資料由全球智能提供
315 過去 20 天的資料 (20x6 的矩陣) f 1 2 3
4 5 買 20 單位 買 10 單位 不做交易 賣 10 單位 賣 20 單位 五種 actions
316 CDQN 無腦法 CDQN 無腦法 ETF1 17.71% 10.89% ETF11 10.76%
5.26% ETF2 16.53% 12.6% ETF12 10.19% 13.17% ETF3 16.3% 0.35% ETF13 7.8% 1.42% ETF4 14.4% 13.25% ETF14 6.23% 3.56% ETF5 14.3% 12.7% ETF15 5.73% 4.61% ETF6 13.91% 13.37% ETF16 3.78% -12.76% ETF7 13.17% 10.52% ETF17 2.85% 5.83% ETF8 12.35% 17.07% ETF18 1.59% -4.45% ETF9 11.68% 10.81% ETF19 1.07% -18.09% ETF10 11.09% 8.14% ETF20 -0.59% -0.75% 交易結果 * 「無腦法」正確的名稱是「買入持有策略」
9 打造深度 學習環境 317
318 Python 程式語言
319 https://www.anaconda.com/download/ 下載 Anaconda 請裝 Python 3 的版本。
320 安裝 deep learning 套件 > conda install tensorflow >
conda install keras 在 Terminal 或 Anaconda Prompt 之下 * 使用 GPU, TensorFlow 請安裝 tensorflow-gpu
321 打開終端機, 進入你的工作資料夾。
322 > jupyter notebook 接著執行:
323 PyTorch TensorFlow fast.ai Keras
324 開啟 Python 3 Notebook
325 %tensorflow_version 先確認 TensorFlow 版本! Currently selected TF version: 1.x
Available versions: * 1.x * 2.x
326 %tensorflow_version 2.x 指定使用 TensorFlow 2!
327 !pip install --upgrade keras 更新 Keras, 以配合 TensorFlow 2。
328 可是我的資料要放在 哪呢?
329 from google.colab import drive drive.mount('/content/drive') 這時會要求你登入 Google 帳號, 有個授權
金鑰要 copy 貼過來!
330 %cd '/content/drive/My Drive' 這樣就會在你的 Google Drive 裡面!