Upgrade to Pro — share decks privately, control downloads, hide ads and more …

人工智慧介紹

 人工智慧介紹

這是幾次分享深度學習演講的投影片:

2019 淡江大學、高雄科技大學、開南大學
2020 東吳大學
2020 清華大學

[email protected]
PRO

November 21, 2019
Tweet

Other Decks in Technology

Transcript

  1. 深度學習的原
    理與實務
    蔡炎龍
    清華大學工業工程系
    政治大學應用數學系

    View Slide

  2. 2
    http://bit.ly/2020intro_AI
    演講投影片

    View Slide

  3. 3
    吳恩達 (Andrew Ng)
    AI for Everyone
    AI 大師深信人人都可以做 AI
    蔡炎龍
    人人都可參一咖
    的人工智慧
    Coursera 課程

    View Slide

  4. 4
    美國爾灣加州大學數學博士
    政大應數系教師
    曾任政大副學務長
    政大新生書院總導師、數理資訊
    社、愛愛會、咖啡社指導老師
    人工智慧學校講師、鴻海《人工
    智慧導論》前兩章主筆
    政大數理資訊學程召集人, 推廣
    Python 超過十年
    關於我

    View Slide

  5. 5
    高中寫遊戲程式出版。

    View Slide

  6. 6
    碩士班就是研究神經
    網路的。

    View Slide

  7. 7
    業界、學校面對技術型與
    一般大眾多次人工智慧分
    享。

    View Slide

  8. 8
    【珊蒂微AI】專訪

    View Slide

  9. 9
    鴻海《人工智慧導論》
    (給高中生的 AI 補充教
    材) 前兩章主筆。

    View Slide

  10. 10
    AI 不過就是問個好問題
    AI 核心技術—神經網路的原理
    設計思考, 創意解決問題
    怎麼在政大實現你的 AI 夢想
    大綱

    View Slide

  11. 1
    AI 不過就是
    問個好問題
    11

    View Slide

  12. 12
    很多人說人工智慧會取代我們

    View Slide

  13. 13
    有些事的確在發生、或會發生
    ⾃動駕駛
    近 100% 機會會實現
    無人駕駛
    協助醫生診斷
    無人商店
    協助音樂創作
    Alex da Kid “Not Easy”
    自動交易

    View Slide

  14. 14
    哆啦a夢
    不過我們還有 93 年的時間
    2112 年 9 月 3 日
    近期內不可能
    AGI
    通用型 AI

    View Slide

  15. 15
    No, No.
    應該叫
    Human Level Intelligence
    Yann LeCun
    被稱為 deep learning
    三巨頭之一、CNN 之
    父。

    View Slide

  16. 16
    今天的解說之後, 你會發現 AI
    其實沒那麼神祕, 甚至可能有
    點失望它好像不那麼萬能...

    View Slide

  17. 17
    人工智慧
    機器學習
    深度學習
    基本上就是用
    不同的方式,
    去學函數!

    View Slide

  18. 18
    我們試著用一
    個例子來說明
    個中的不同。

    View Slide

  19. 19
    我想知道某個人是
    否有特定政黨傾向
    或是中間選民。

    View Slide

  20. 20
    f
    社群媒體、
    部落格文章
    有政黨傾向
    中間選民
    or
    問題化為函數
    不管什麼 AI, 就是要去學這個函數, 但風格不同。

    View Slide

  21. 21
    古典 AI 法
    1
    可能有個專家說, 如果文章出
    現自稱「中立客觀」, 「沒有
    特定政黨傾向」...
    通常就是有政黨傾
    向的。
    專家

    View Slide

  22. 22
    古典 AI 法
    1
    f
    社群媒體、
    部落格文章
    文章出現「我向來
    都是沒有政黨傾向
    的」。
    有政黨傾向

    View Slide

  23. 23
    古典 AI 法
    1
    簡單的說, 就是規則基本上是
    我們告訴電腦的。也許比我們
    例子更複雜, 也許比我們例子
    更簡單 (比如說一個公式就可
    以算出來的問題)。

    View Slide

  24. 24
    傳統機器學習
    2
    但有些「中立客觀」類
    的文章, 從頭到尾不會
    出現這個字眼, 但文章
    暗示作者是這樣。

    View Slide

  25. 25
    傳統機器學習
    2
    f
    社群媒體、
    部落格文章
    有點難...
    基本上, 我們想直接把文章放進電腦, 讓它
    自己想辦法分辨。

    View Slide

  26. 26
    傳統機器學習
    2
    於字是我們想辦法把文章的特徵找出來, 比如
    說最重要 500 個詞出現次數。
    [5, 16, 4, 3, 0, 7, …]
    1 2 3 4 5
    500維向量

    View Slide

  27. 27
    傳統機器學習
    2
    [5, 16, 4, 3, 0, 7, …]
    1 2 3 4 5
    500維向量
    500 維可能還是太多了! 於是我們會用各種降
    維 (dimension reduction) 的方式, 把輸入縮
    小到 (例如) 10 維向量。
    x
    10維向量

    View Slide

  28. 28
    傳統機器學習
    2
    一般我們會花不少時間去做所謂的 feature
    engineering, 找到輸入資料較好的表現方
    式。
    然後不管用 SVM
    啦, KMeans 啦等
    等, 我都知道電腦
    在做什麼。

    View Slide

  29. 29
    深度學習
    3
    f
    社群媒體、
    部落格文章
    有政黨傾向
    中間選民
    or
    就把一篇篇我們知道分類的文章放進去...
    The End?

    View Slide

  30. 30
    深度學習
    3
    f
    社群媒體、
    部落格文章
    中立客觀
    明顯立場
    我們可能會發現, 這樣訓練效果不好, 或是提供
    給我們的資訊太少, 說不定應該訓練這種分類,
    甚至多類別型的分類!
    我以前都是

    View Slide

  31. 31
    深度學習
    3
    深度學習會專注在
    「我們怎麼問這個問題?」
    整個判斷由電腦做, 所以
    一般要大量資料!

    View Slide

  32. 32
    小結論
    例子不是真實專案, 領域專家
    可能會覺得這樣分析很外行。
    我們「中立客觀」的分析了三
    類人工智慧方法的異同。
    有時界線沒有這麼明顯, 甚至
    我們也會混用三種方式。
    不需要特別獨尊哪種方式, 每
    種方式都有適合的應用場景。

    View Slide

  33. 33
    函數其實是一個解答本
    所有的問題, 都有一個答案

    View Slide

  34. 34
    在野外看到一隻動物,
    我想知道是什麼?

    View Slide

  35. 35
    想成函數就是
    f “台灣黑熊”
    輸入一張動物的照片, 輸出就是這是什麼動物

    View Slide

  36. 36
    問題 答案
    台灣黑熊
    蟒蛇
    我們有部份解答

    View Slide

  37. 37
    問題 答案
    台灣黑熊
    蟒蛇
    但我們還沒碰過的情況可能有無限多題
    ?

    View Slide

  38. 38
    f
    我們打造一個「函數學習機」, 把這個函數學起來!
    (方法是不斷做「考古題」)

    View Slide

  39. 39
    f
    成功的話, 沒看過的也可以合理推論出來!
    (所以叫「人工智慧」)
    “台灣黑熊”

    View Slide

  40. 40
    人工智慧中要打造的函數學習機叫「神經網路」!

    View Slide

  41. 41
    深度學習 (神經網路)
    三大天王
    標準 NN CNN RNN

    View Slide

  42. 42
    我們先問一個問題
    1
    在野外看到一隻動物,
    我想知道是什麼?

    View Slide

  43. 43
    f 台灣黑熊
    2 化成函數的形式

    View Slide

  44. 44
    注意輸入輸出都要
    是固定長像的數字
    (矩陣, tensor 等等)

    View Slide

  45. 45
    G
    R
    B
    數位相片本來就是一堆數字

    View Slide

  46. 46
    輸出不是數字, 我們就給一個數字!
    台灣黑熊 豬 蠎蛇
    1 2 3

    View Slide

  47. 47
    台灣黑熊 豬 蠎蛇
    1 2 3
    [
    1
    0
    0
    ] [
    0
    1
    0
    ] [
    0
    0
    1
    ]
    我們常把它做成 one-hot encoding

    View Slide

  48. ( , "台灣黑熊") ( , "蠎蛇")
    , , ...
    x
    k+1
    , y
    k+1
    x
    k
    , y
    k
    x1
    , y1 x
    n
    , y
    n
    訓練資料 測試資料
    3 準備歷史資料

    View Slide

  49. 49
    要注意是否有夠多
    (常常是上萬筆) 歷
    史資料。

    View Slide

  50. 50
    還要注意資料是否
    在合理的努力下可
    取得。

    View Slide

  51. വᏐላ
    शػ
    51
    不管我們用了什麼阿貓
    阿狗法, 打造了一台函
    數學習機。
    就會有一堆參數要調。
    完成!
    {wi
    , bj
    }
    θ
    4 打造我們的神經網路

    View Slide

  52. 52
    決定好這些參數的值, 就會出現一個函數。

    白話文就是, 「這個神經網路可以動了」...

    View Slide

  53. 53
    fθ “台灣藍鵲”
    只是, 很有可能發生...
    唬爛也要有個限度, 這該怎麼辦呢?

    View Slide

  54. 54
    我們會定義個 loss function, 看看
    我們的神經網路考考古題的時候,
    和正確答案差多少?

    5 學習

    View Slide

  55. 55
    目標是找到一組
    θ*
    這組參數代入 loss function
    L(θ*)
    值是最小的 (也就是誤差最小)。

    View Slide

  56. 56
    基本上就是用
    gradient descent
    因神經網路的特性, 叫
    backpropagation

    View Slide

  57. 57
    f
    成功的話, 沒看過的也可以合理推論出來!
    (所以叫「人工智慧」)
    >台灣黑熊C
    CNN

    View Slide

  58. 58
    問問題的各種可能

    View Slide

  59. 59
    我想知道某支股票
    某個有開盤的日子
    的收盤價。

    View Slide

  60. 60
    f
    日期 x
    某股票 x 當天
    的收盤價 
    不合理的是, 日期這個資訊太少, 不太能推出收盤價...

    View Slide

  61. 61
    f
    NN, CNN, RNN
    用前 1 週的情況預
    測下一期。

    View Slide

  62. 62
    我想知道某位 MLB
    選手 2020 球季可以
    打幾隻全壘打?

    View Slide

  63. 63
    第 t-1 年資料
    [Age, G, PA, AB, R, H, 2B, 3B, HR,
    RBI, SB, BB, SO, OPS+, TB]
    15 個 features!
    f 第 t 年全壘打數
    RNN
    結果不準!

    View Slide

  64. 64
    不要猜精確數目, 猜區
    間即可!
    分五段: 0-9, 10-19, 20-29, 30-39, 40+

    View Slide

  65. 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

    View Slide

  66. 66
    我想知道病人有沒有
    感染某種流感病毒?

    View Slide

  67. 67
    f
    CNN
    有 or 沒有
    看 我 有 沒
    有在裡面?
    67

    View Slide

  68. 68
    我喜歡的字型有缺
    字, 我想要這個字!

    View Slide

  69. 69
    f
    字型A 字型B
    字型 A 有完整字型, 字型 B 有缺字。

    View Slide

  70. 70
    對話機器人
    【事件篇】

    View Slide

  71. 71
    f
    客戶說的話 客服機器人回應
    這樣會有問題!

    View Slide

  72. 72
    f
    目前的字 下一個字

    View Slide

  73. 73
    注意這樣的模式, 每次輸入和輸出都不是固定的長度!
    字1 字2
    回1
    EOS 回1
    回2
    回k
    EOS

    View Slide

  74. 74
    我想讓電腦和我一樣
    會創作。

    View Slide

  75. 75
    f 一段音樂
    ???
    到底是要輸入什麼呢?

    View Slide

  76. 76
    G 一小段曲子
    靈感
    D
    一小段曲子
    像 or 不像
    首曲子
    這就是所謂的生成對抗網路 (GAN)!
    結果是做了兩個神經網路

    View Slide

  77. 77
    這攏係假ㄟ啦 (1024x1024 明星照)
    (2018 NVIDIA 團隊)
    GAN 的另一個應用

    View Slide

  78. 78
    我想讓 AI 自己玩遊
    戲。

    View Slide

  79. 79
    π 最好的動作
    這樣做通常不行!
    どうして?

    View Slide

  80. 80
    我那麼會我就世界
    冠軍了啊!

    View Slide

  81. 81
    Q
    CNN + NN
    +
    這就是強化學習 (reinforcement learning)
    嚴格來說, 是強化學習
    中的 Q-Learning。
    直接學哪個動作最好不容易。於是我們學習
    給每個動作「評分」, 通常是計算做了這個
    動作後「得分的期望值」。

    View Slide

  82. 82
    Montezuma™s Revenge StarCraft (星海爭霸) II
    Quake (雷神之鎚 ) III
    Arena Capture the Flag
    2019 AI 重大突破!
    以前玩不好的, 再繼續玩...

    View Slide

  83. 83
    我想把文字編碼, 於
    是電腦可以處理。

    View Slide

  84. 84
    f
    一個詞 這個詞的編碼
    這個人的個性有點天天。
    我天天都會喝一杯咖啡。
    傳統的 word embedding
    可是一個字、一個
    詞, 在不同的地方可
    能有不一樣的意思。

    View Slide

  85. 85
    f
    一個語意 這個語意的編碼
    這要怎麼做啊?

    View Slide

  86. 86
    ELMO BERT
    結果很多和芝麻街角色有關。這裡的技巧超過今天的
    範圍, 不過有興趣的可以查一下這兩位芝麻街角色。
    尤其是 BERT, 到底怎麼問問題的呢?

    View Slide

  87. 2
    AI 核心技術—
    神經網路
    87

    View Slide

  88. 88
    現代 AI 主軸是深度學習

    View Slide

  89. 89
    深度學習的核心是神經網路

    View Slide

  90. 記得我們就是要學個函數
    90
    f
    x1
    x2
    xn
    y1
    y2
    ym

    View Slide

  91. 91
    函數學習三部曲
    真實世界我們要問的問題化做函數。
    收集我們知道「正確答案」的訓練資料。
    找出這個函數!

    View Slide

  92. 暗黑學習法
    真的有學任意函數的技法
    92

    View Slide

  93. 就是「神經網路」!
    93

    View Slide

  94. 在 1980-1990 左右是
    很潮的東西
    94

    View Slide

  95. 厲害的是神經網路什麼都
    學得會!
    而且你完全不用告訴它函數應該長什麼樣子: 線性
    啦、二次多項式啦等等。
    95

    View Slide

  96. 96
    Hidden
    Layer
    Output
    Layer
    Input
    Layer
    暗黑魔法

    View Slide

  97. 97
    然後它就死掉了...

    View Slide

  98. 98
    複雜的軟體 電腦計算能⼒ ⼤量的數據
    Yann LeCun 說主要是因為神經網路要成功,
    需要的三大要件當時不具足。

    View Slide

  99. 99
    直到...

    View Slide

  100. 100
    Human-level control
    through deep
    reinforcement
    learning ”
    “ DeepMind
    2015-2-26
    Deep Q-
    Learning
    letter
    玩電動上《Nature》!

    View Slide

  101. 101
    Deep Learning”
    “ LeCun-Bengio-Hinton
    2015-5-28
    http://bit.ly/ai_history
    介紹 Deep Learning「三巨頭」
    的故事。
    延申閱讀
    走過黑暗時光的 deep learning 三巨頭

    View Slide

  102. 102
    Mastering the game
    of Go with deep
    neural networks and
    tree search”
    “ DeepMind
    2016-2-26
    當然還有 AlphaGo!

    View Slide

  103. 打開暗黑世界
    103

    View Slide

  104. 104
    Fully Connected Neural
    Networks
    1980 年代就火紅的 model
    標準 (全連結) NN

    View Slide

  105. 105

    View Slide

  106. 106
    基本上我們要決定的只有
    要用幾層隱藏層。
    每層要用幾個神經元。
    用什麼激發函數。

    View Slide

  107. 每個神經元動作基本上是
    一樣的!
    107

    View Slide

  108. 108
    每個神經元就是接
    受若干個輸入, 然後
    送出一個輸出。

    View Slide

  109. 109
    輸入做加權和。

    View Slide

  110. 110
    加上偏值 (bias)。

    View Slide

  111. 111
    再⽤激活函數作⽤上去,
    即為輸出。

    View Slide

  112. 112
    幾個 activation functions
    ReLU Sigmoid Gaussian

    View Slide

  113. 113
    變數就是 weights, biases

    View Slide

  114. 114
    「學成的」神經網路
    1
    2
    1
    2
    1 1

    View Slide

  115. 115
    假設輸入
    2
    1 1
    (x1
    ,x2
    ) = (1,3)
    1
    3
    1 3
    8
    1
    2
    1

    View Slide

  116. 116
    假設用 ReLU
    1
    3
    1
    2
    1

    View Slide

  117. 3
    神經網路的
    學習原理
    117

    View Slide

  118. 當⼀個神經網路結構決定、activation functions
    也決定, 那可以調的就是 weights, biases。我們把
    這些參數的集合叫 , 每⼀個 就定義⼀個函數, 我
    們把它看成⼀個集合。
    固定結構神經網路的函數空間
    118

    View Slide

  119. 我們就是要找
    使得   和目標函數最接近
    119

    View Slide

  120. 「最近」是什麼意思
    就是 “loss function” 的值最小
    120

    View Slide

  121. 121
    假設我們有訓練資料
    {(x1
    , y1
    ), (x2
    , y2
    ), …, (xk
    , yk
    )}

    View Slide

  122. 122
    f
    xi
    ̂
    yi
    我們打造的函數學習機會答一個問題。
    yi
    正確答案 看差多遠

    (xi
    ) = ̂
    yi

    View Slide

  123. 123
    Loss Function (損失函數)
    我們會用一個「誤差
    函數」, 看我們函數學
    習機的答案和正確答
    案差多遠。

    View Slide

  124. 124
    1 常用 Loss Function
    1
    這什麼啊?
    L(θ) =
    1
    2
    k

    i=1
    ∥yi
    − Fθ
    (xi
    )∥2

    View Slide

  125. 125
    1 常用 Loss Function
    1
    L(θ) =
    1
    2
    k

    i=1
    ∥yi
    − Fθ
    (xi
    )∥2
    我們希望差越少越好!
    正確答案
    函數學習機
    給的答案

    View Slide

  126. 126
    基本上這樣調
    learning rate

    View Slide

  127. 這可怕的東西是什麼意思?
    127

    View Slide

  128. 記得 L 是 w1
    , w2
    , b1
    , …
    的函數
    128
    希望數值越小越好

    View Slide

  129. 為了簡化, 我們先把 L 想
    成只有一個變數 w
    129

    View Slide

  130. 130
    w 目前的值
    如何走到最小值?

    View Slide

  131. 131
    w 目前的值
    我知道, a 點
    要向右移動!

    View Slide

  132. 132
    電腦怎麼「看」出來?

    View Slide

  133. 133
    切線是關鍵!

    View Slide

  134. 134
    切線斜率 < 0

    View Slide

  135. 135
    切線斜率 > 0

    View Slide

  136. 切線斜率指向 (局部) 最大
    值的方向!!
    136

    View Slide

  137. 137
    符號
    切線斜率
    切線斜率

    View Slide

  138. 138
    切線斜率是變化率
    切線斜率
    切線斜率

    View Slide

  139. 139
    對任意的 w, 我們會寫成:
    切線斜率函數
    切線斜率合理的符號
    符號
    簡潔就是潮!

    View Slide

  140. 140
    正負指向 (局部) 極大
    切線斜率
    切線斜率

    View Slide

  141. 141
    往 (局部) 極小值移動
    我們想調整 w 的值, 往極小值移動, 應該讓新的
    w 變成:
    重點

    View Slide

  142. 142
    往 (局部) 極小值移動
    比如現在在 w=a, 要調整為
    重點

    View Slide

  143. 143
    調整示意圖
    切線斜率

    View Slide

  144. 144
    有時會跑過頭!
    切線斜率

    View Slide

  145. 145
    往 (局部) 極小值移動
    為了不要一次調太大, 我們會乘上一個小小的數,
    叫 Learning Rate:
    重點

    View Slide

  146. 146
    求切線斜率的動作, 就是
    微分

    View Slide

  147. 147
    可是, 變數不只一個...

    View Slide

  148. 148
    假設這時我們在:
    一樣準備往 (局部) 極小值移動。
    例子

    View Slide

  149. 149
    假裝只有⼀個變數!
    ⽐如說 w1

    View Slide

  150. 150
    如果除了 w1, 其他變數不動...
    一個變數的函數!
    例子

    View Slide

  151. 151
    同理,
    例子

    View Slide

  152. 152
    於是我們又會調整 w1, w2, b1, 讓 L 慢慢走向 (局
    部) 極小。
    w1
    w2
    b1
    例子

    View Slide

  153. 153
    寫在一起看來更有學問!
    新的 這叫 L 的 gradient
    例子

    View Slide

  154. 154
    但這符號有點⿇煩
    還要新創函數

    View Slide

  155. 155
    偏微分
    我們有 L(w1, w2, b1) 這三個變數的函數, 當我們
    只把 w1 當變數, 其他 w2, b1 當常數的微分。
    定義

    View Slide

  156. 156
    同理,
    偏微分
    定義

    View Slide

  157. 157
    梯度 (gradient)
    函數 L 的 gradient 就變成:
    符號

    View Slide

  158. 158
    Gradient 當然要有很酷的符號:
    梯度 (gradient)
    符號

    View Slide

  159. 159
    我們調整 w1, w2, b1 的方法就變成:
    梯度 (gradient)
    符號

    View Slide

  160. 這「學習法」有個很潮的名字
    (SBEJFOU%FTDFOU
    160
    梯度下降

    View Slide

  161. 161
    Deep Learning
    三大天王
    NN CNN RNN

    View Slide

  162. 3
    打造神經網路
    162

    View Slide

  163. 163
    現在我們準備一起打造一個神經網路, 我們準
    備用有名的 TensorFlow 這個 Python 套件。

    View Slide

  164. 164
    f 6
    手寫辨識
    放進一張 28x28 大小的手寫數字影像, 然後希望
    我們打造的神經網路可以正確辨別!

    View Slide

  165. 165
    MNIST
    這其實是有名的資料集。
    Modified
    美國國家標準暨技術研究院

    View Slide

  166. 166
    f 6
    還有兩件小事
    這要「拉平」
    * 這是因為我們要用標準 NN 才需要。
    0
    0
    0
    0
    0
    0
    1
    0
    0
    0
    One-hot encoding
    反正老師會幫你做...

    View Slide

  167. 167
    暗黑魔法
    { }
    784 10
    神經網路函
    數學習機

    View Slide

  168. 168
    基本上我們要決定的只有
    要用幾層隱藏層。
    每層要用幾個神經元。
    用什麼激發函數。

    View Slide

  169. 169
    Q1 隱藏層要幾層?

    View Slide

  170. 170
    Q2 每層幾個神經元?
    Q2

    View Slide

  171. 171
    Activation
    Function?
    ReLU Sigmoid
    or
    Q3

    View Slide

  172. 172
    為大家準備好了
    訓練資料
    測試資料
    x_train
    y_train
    x_test
    y_test
    用到的套件也都讀進來了...

    View Slide

  173. 重點 打開一個函數學習機
    打開一個神經網路函數學習機。
    model = Sequential()
    173

    View Slide

  174. 重點 第一層隱藏層
    填入同學指定的神經元個數、選用的激發函數。
    model.add(Dense(?, input_dim=784,
    activation='??'))
    174

    View Slide

  175. 重點 第二層隱藏層
    如果有第二層, 一樣指定多少個神經元、激發函數
    model.add(Dense(?,
    activation='??'))
    175

    View Slide

  176. 重點 輸出層
    10 維, 唯一指定 softmax 當 activation function!
    model.add(Dense(10,
    activation='softmax'))
    176

    View Slide

  177. 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

    View Slide

  178. 178
    αj
    =
    ezj
    ∑9
    i=0
    ezi
    這就叫 softmax

    View Slide

  179. 179
    Deep Learning
    三大天王
    標準 NN CNN RNN

    View Slide

  180. 4
    卷積神經網路
    CNN
    180

    View Slide

  181. 181
    Convolutional Neural Network
    圖形辨識的超級天王
    CNN

    View Slide

  182. 182
    台灣黑熊
    圖形辨識
    f ( ) =

    View Slide

  183. 183
    電腦打電動
    目前狀態 「最佳」動作
    π ( ) =
    搭配 reinforcement learning

    View Slide

  184. 184
    filter 1
    filter 2
    input
    每個 filter 看⼀個特徵, 掃過每
    ⼀個點, 紀錄該點附近的「特
    徵強度」。
    Convolutional Neural Network (CNN)

    View Slide

  185. 185
    Hinton LeCun Bengio
    博⼠後學⽣ 博⼠後共事
    深度學習三巨頭

    View Slide

  186. 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

    View Slide

  187. 187
    大約 1995 年,
    大家對神經網路
    失去了興趣...
    LeCun

    View Slide

  188. 188
    只要別的方法更好、
    甚至一様好, 大家就
    不想用神經網路!
    Hinton

    View Slide

  189. 189
    圖形辨識
    SVM 強強的!
    比如 2011 ImageNet 大型圖
    形辨識比賽冠軍 XRCE。

    View Slide

  190. 190
    AlexNet
    2012 ImageNet 大型圖形辨識
    比賽冠軍, 狂勝 XRCE!
    圖形辨識進入
    CNN 時代!

    View Slide

  191. 191
    自 2012 以降, 歷屆 ImageNet
    冠軍都是 CNN 的天下!
    InceptionV3 GoogLeNet, V1 是 2014 冠軍
    VGG16/VGG19 2014 亞軍
    ResNet50 2015 冠軍
    * 這些都是 TensorFlow 準備好可以給你用的!

    View Slide

  192. 192
    Convolutional Layer
    1

    View Slide

  193. 193
    例如 3x3 的大小
    我們要做 filters

    View Slide

  194. 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

    View Slide

  195. 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

    View Slide

  196. 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=

    View Slide

  197. 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=

    View Slide

  198. 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=

    View Slide

  199. 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 會很多!

    View Slide

  200. 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"

    View Slide

  201. 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"

    View Slide

  202. 202
    神經元是這樣看的

    View Slide

  203. 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
    圖片上的點是一個個輸
    入層神經元

    View Slide

  204. 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 層也是一個個神經元

    View Slide

  205. 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=

    View Slide

  206. 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=

    View Slide

  207. 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 會很多!

    View Slide

  208. 208
    Max-Pooling Layer
    2

    View Slide

  209. 209
    看我們要多大區選一個代表, 例如 2x2
    基本上就是「投票」

    View Slide

  210. 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
    每區投出最大的!!

    View Slide

  211. 211
    convolution, max-pooling, convolution,
    max-pooling…
    可以不斷重覆

    View Slide

  212. 212
    做完再送到「正常的」
    神經網路

    View Slide

  213. 213
    Conv Max-
    Pooling
    Conv Max-
    Pooling
    Conv Max-
    Pooling
    Dense
    Conv 層的 filter 要
    越來越多還越來越少
    呢?

    View Slide

  214. 5
    遞迴神經網路
    RNN
    214

    View Slide

  215. 215
    Recurrent Neural Network
    「有記憶」的神經網路
    RNN

    View Slide

  216. 216
    一般的神經網路一筆輸入和下一筆是
    沒有關係的...
    x1
    x2
    ̂
    y1
    ̂
    y2

    View Slide

  217. 217
    意思是輸入次序換了, 每次輸出的結
    果是一様的!
    x1
    x2
    ̂
    y1
    ̂
    y2

    View Slide

  218. 218
    RNN 會偷偷把上一次的輸出也當這一
    次的輸入。
    x1
    ̂
    y1
    也就是 RNN
    「記得」前面
    發生的事!

    View Slide

  219. 219
    符號說明。
    wx
    ij
    wh
    ij
    ht
    i
    t 時的第 i 個
    hidden state
    對輸入的權重
    對 hidden state
    的權重

    View Slide

  220. 220
    注意 也有類似的公式。
    ht
    2
    ht
    2
    = σ(wx
    12
    xt
    1
    + wx
    22
    xt
    2
    + wh
    12
    ht−1
    1
    + wh
    22
    ht−1
    2
    + b2
    )

    View Slide

  221. 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 寫成向量形式。
    這看來好
    可怕!

    View Slide

  222. 222
    WT
    x
    = [
    wx
    11
    wx
    21
    wx
    12
    wx
    22
    ]
    權重矩陣
    x
    1號 RNN
    神經元
    xt =
    [
    xt
    1
    xt
    2
    ]

    View Slide

  223. 223
    WT
    x
    ⋅ xt =
    [
    w11
    xt
    1
    + w21
    xt
    2
    w12
    xt
    1
    + w22
    xt
    2
    ]
    加權和
    x
    同時算了兩
    個神經元的!

    View Slide

  224. 224
    ht−1 =
    [
    ht−1
    1
    ht−1
    2
    ]
    hidden states
    也寫成
    向量。

    View Slide

  225. 225
    WT
    x
    ⋅ xt + WT
    h
    ⋅ ht−1 + b
    b = [
    b1
    b2
    ]
    計算「總刺
    激」的部份。

    View Slide

  226. 226
    ht = σ(WT
    x
    ⋅ xt + WT
    h
    ⋅ ht−1 + b)
    最後美美的公式 (?)
    長這樣。

    View Slide

  227. 227
    很多人畫成這樣。
    x1
    ̂
    y1
    x2
    ̂
    y2
    xm
    ̂
    ym

    View Slide

  228. 228
    對話機器人
    【解決篇】

    View Slide

  229. 229
    f
    客戶說的話 客服機器人回應
    這樣會有問題!
    前情提要...

    View Slide

  230. 230
    f
    目前的字 下一個字
    結果我們是用...

    View Slide

  231. 231
    f(“今”) = “天”
    f(“天”) = “天”
    f(“天”) = “氣”
    f(“氣”) = “很”
    f(“很”) = “好” 比如說, “今天天氣很好。” 這句話...
    這根本不
    是函數啊!

    View Slide

  232. 232
    f
    目前的字 下一個字
    不過其實我們不只前一個字, 還偷偷輸入...
    上一次的輸出
    也就是我們上次的
    hidden states

    View Slide

  233. 233
    注意這樣的模式, 每次輸入和輸出都不是固定的長度!
    字1 字2
    回1
    EOS 回1
    回2
    回k
    EOS

    View Slide

  234. 234
    其實輸入不一定要文字, 是影
    片 (一張一張的圖) 也是可以
    的! 輸出還是可以為文字, 最常
    見的大概是讓電腦說影片中發
    生什麼事。

    View Slide

  235. 235
    翻譯。
    Video Captioning 生成影片敘述。
    生成一段文字。
    畫一半的圖完成它。
    同樣型式的應用

    View Slide

  236. 236
    Andrej Karpathy 生出代數幾何介紹 "Stacks" 的文字
    http://karpathy.github.io/2015/05/21/rnn-
    effectiveness/

    View Slide

  237. 237
    潘達洛斯:
    唉,我想他應該過來接近一天
    當小的小麥變成從不吃的時候,
    誰是他的死亡鏈條和臣民,
    我不應該睡覺。
    第二位參議員:
    他們遠離了我心中產生的這些苦難,
    當我滅亡的時候,我應該埋葬和堅強
    許多國家的地球和思想。
    電腦仿的莎士比
    亞作品。

    View Slide

  238. 238
    一般的神經網路一筆輸入和下一筆是
    沒有關係的...

    View Slide

  239. 239
    RNN 會偷偷把上一次的輸出也當這一
    次的輸入。

    View Slide

  240. 240
    很多人畫成這樣。

    View Slide

  241. 241
    Recurrent Neural Network (RNN)
    ht
    1
    = σ (w1
    xt
    1
    + w2
    xt
    2
    + w3
    h3
    t−1 + w4
    h4
    t−1 + b1
    )
    會加入上⼀次的
    outputs 當這次的
    inputs。

    View Slide

  242. 242
    注意
    為了讓大家更容易瞭解, 我們會用較簡
    單的圖示。請注意輸入都是個向量、會
    有權重; 輸出都是純量。
    xt =





    xt,1
    xt,2
    .
    .
    .
    xt,n





    可能長這樣

    View Slide

  243. 243
    注意
    為了讓大家更容易瞭解, 我們會用較簡
    單的圖示。請注意輸入都是個向量、會
    有權重; 輸出都是純量。
    實際輸入長這樣

    View Slide

  244. 244
    注意
    為了讓大家更容易瞭解, 我們會用較簡
    單的圖示。請注意輸入都是個向量、會
    有權重; 輸出都是純量。
    同理 h 也是這樣

    View Slide

  245. 245
    對同一層第 k 個 cell,
    就一個輸出。
    輸入可能是向
    量。
    第 k 號 RNN
    Cell

    View Slide

  246. 246
    真正連結的樣子, 注意 RNN
    Cell 會把記憶傳給同一層其
    他 RNN Cells。

    View Slide

  247. 247
    標準 RNN 一個
    Cell 的輸出

    View Slide

  248. 248
    LSTM
    GRU
    Long Short Term Memory
    Gated Recurrent Unit
    事實上現在⼤家說到 RNN 是想到...

    View Slide

  249. 249
    LSTM
    Long Short Term Memory
    RNN 系的王牌救援

    View Slide

  250. 250
    編號 k 的
    LSTM
    多一個「cell 狀態」

    View Slide

  251. 251
    Gate
    控制閥
    重要概念

    View Slide

  252. 252
    輸出 0 到 1 間的一個數
    sigmoid
    只是決定「閥」要開多大

    View Slide

  253. 253
    LSTM 有三個 Gates

    View Slide

  254. 254
    忘記門 輸入門 輸出門

    View Slide

  255. 255
    插播
    tanh
    sigmoid

    View Slide

  256. 256
    -1
    1

    View Slide

  257. 257
    0
    1
    σ(x) =
    1
    1 + e−x

    View Slide

  258. 258
    編號 k 的
    LSTM
    LSTM 再一次 多出來的 cell state
    是屬於這個 cell 的
    一個 cell 的
    output 還是會和
    同一層分享

    View Slide

  259. 259
    「新的」狀態資訊

    View Slide

  260. 260

    View Slide

  261. 261
    真要弄得那麼複雜?
    要忘多少和要記多少難道不能一起...

    View Slide

  262. 262
    GRU
    Gated Recurrent Unit
    LSTM 的簡化版

    View Slide

  263. 263
    雖然名稱有 gated
    只留兩個 Gates

    View Slide

  264. 264
    記憶門 重設門

    View Slide

  265. 265
    input 可不考慮從前

    View Slide

  266. 266

    View Slide

  267. 267
    重點 RNN 的名字
    現在說到 RNN, 其實包括原始 RNN,
    LSTM, GRU 等各種變形。
    特別要叫原始的 RNN, 我們習慣叫它
    Vanilla RNN, 在 Keras 中是
    SimpleRNN。

    View Slide

  268. 268
    我想知道某位 MLB
    選手 2020 球季可以
    打幾隻全壘打?

    View Slide

  269. 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

    View Slide

  270. 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+

    View Slide

  271. 271
    運用 LSTM, 輸入 10 年的資料猜下一年
    只有一層 LSTM 層!

    View Slide

  272. 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 ⽉預測)

    View Slide

  273. 6
    273
    深度學習心法

    View Slide

  274. 274
    同理 定義 發想 原型 測試
    Standford d.school 風的設計思考步驟
    Empathize Define Ideate Prototype Test

    View Slide

  275. 275
    我們的 model 很少第
    一次就成功。
    —清華大學陳宜欣老師
    “ ”
    心法一

    View Slide

  276. 276
    數據量大的時候, 深度學
    習通常比一般方法好。
    “ ”
    心法二
    * 甚至常常只有深度學習可以「學」。
    276

    View Slide

  277. 277
    要相信神經網路
    一定學得會!
    —東華大學魏澤人老師
    “ ”
    心法三
    277

    View Slide

  278. 278
    學不好的時候考慮一些
    「正則化」
    (regularization) 的方法。


    心法四
    * Drop out, L1/L2 regularization, SELU 等等
    278

    View Slide

  279. 279
    超展開的問問題方式

    View Slide

  280. 280
    NN CNN RNN
    Transformer
    VAE
    Reinforcement Learning
    GAN
    神經網路軍團

    View Slide

  281. 7
    生成對抗網路
    GAN
    281

    View Slide

  282. 282
    生成對抗網路 (Generative
    Adversarial Network)
    Yann LeCun 稱為最有潛力的
    model
    GAN

    View Slide

  283. 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

    View Slide

  284. 284
    The GAN Zoo
    https://github.com/hindupuravinash/
    the-gan-zoo

    View Slide

  285. 285
    生成器
    generator
    Noise
    鑑別器
    discriminator
    真的 or 假的
    GAN 是兩個神經網路, 一個生
    成、一個判斷, 相互對抗!
    z
    x
    G
    D
    G(z)

    View Slide

  286. 286
    希望
    接近 1
    希望
    接近 0
    接近 1
    生成 判斷
    D, G 大對抗!

    View Slide

  287. 287
    朱俊彦等人 (ECCV 2016)
    “Generative Visual Manipulation on the Natural Image Manifold”
    iGAN
    https://arxiv.org/abs/1609.03552

    View Slide

  288. 288
    人人都是大畫家!
    https://youtu.be/9c4z6YsBGQ0

    View Slide

  289. 289
    Karras 等 NVIDIA 團隊 (ICLR 2018)
    “Progressive Growing of GANs for Improved Quality, Stability, and Variation”
    Progressive GAN
    https://arxiv.org/abs/1710.10196

    View Slide

  290. 290
    Karras-Aila-Laine-Lehtinen
    NVIDIA 團隊最近很有名的⽂章
    ⽤ Theano (不是快退出了), Python 2, 單 GPU
    Progressive Growing of GANs for Improved
    Quality, Stability, and Variation

    View Slide

  291. 291
    這攏係假ㄟ啦 (1024x1024 明星照)

    View Slide

  292. 292
    Isola, 朱俊彦等人 (CVPR 2017)
    “Image-to-Image Translation with Conditional Adversarial Networks”
    Pix2Pix
    https://arxiv.org/abs/1611.07004

    View Slide

  293. 293
    * 來自 Isola, 朱俊彦等人的原始論文 (2017)
    Pix2pix 把衛星圖變地圖。

    View Slide

  294. 294
    * 來自 Isola, 朱俊彦等人的原始論文 (2017)
    Pix2pix 隨手畫畫變街景。

    View Slide

  295. 295
    * Christopher Hesse 依原論文做出
    Pix2pix 線上版。
    https://affinelayer.com/pixsrv/

    View Slide

  296. 296
    朱俊彦等人 (ICCV 2017)
    “Unpaired Image-to-Image Translation using Cycle-Consistent Adversarial Networks”
    CycleGAN
    https://arxiv.org/abs/1703.10593

    View Slide

  297. 297
    G
    生成器
    F
    生成器
    Domain
    A
    Domain
    B
    鑑別器
    B
    鑑別器
    A
    CycleGAN

    View Slide

  298. 298
    資料「不需要」配對!
    於是有無限可能...

    View Slide

  299. 299
    全世界的人都驚呆了的馬變斑馬。
    https://youtu.be/9reHvktowLY

    View Slide

  300. 300
    CycleGAN 作者自己提到的失敗例子。

    View Slide

  301. 301
    Goodfellow 也關注的變臉 (魏澤人老師)。
    https://youtu.be/Fea4kZq0oFQ

    View Slide

  302. 8
    強化學習
    Reinforcement
    Learning
    302

    View Slide

  303. 303
    Reinforcement Learning
    AlphaGo 核心技術
    強化學習

    View Slide

  304. 304
    Agent
    (電腦)
    環境
    動作 action
    獎勵 reward
    r
    t

    View Slide

  305. 305
    我們以玩打磚塊為例

    View Slide

  306. 306
    π 左
    1 Policy Based

    or
    狀態 動作
    policy function

    View Slide

  307. 307
    通常直接學不容易...

    View Slide

  308. 308
    Q 評分
    +
    動作
    2 Value Based
    (通常估計
    reward)
    Value function

    View Slide

  309. 309
    2017 年台灣人工智慧年慧
    AlphaGo 創始人之一黃士傑博士演講
    AlphaGo 的故事

    View Slide

  310. 310
    AlphaGo
    Lee
    AlphaGo
    Master
    AlphaGo
    Zero
    中國烏鎮
    圍棋會
    4:1 擊敗世界
    棋王李世乭
    神秘高手網路
    60 連勝
    與柯潔對奕,
    人工智慧與人
    的合作
    完全自學的人
    工智慧, 擊敗
    之前版本
    2016.3
    2016.12.29
    —2017.1.4 2017.5 2017.10

    View Slide

  311. 311
    Netflix AlphaGo 紀錄片 (大推)
    故事感人不輸電影, 而且都是真人。

    View Slide

  312. 312
    還有人人都在做的自動駕駛

    View Slide

  313. 313
    陳非霆
    卷積深度 Q-學習之
    ETF 自動交易系統

    View Slide

  314. 314
    選定一支 ETF
    開始 20,000 美金
    經過一年 (最後手上還有 ETF 就全賣)
    使用 reinforcement learning
    * ETF 資料由全球智能提供

    View Slide

  315. 315
    過去 20 天的資料
    (20x6 的矩陣)
    f
    1
    2
    3
    4
    5
    買 20 單位
    買 10 單位
    不做交易
    賣 10 單位
    賣 20 單位
    五種 actions

    View Slide

  316. 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%
    交易結果
    * 「無腦法」正確的名稱是「買入持有策略」

    View Slide

  317. 9
    打造深度
    學習環境
    317

    View Slide

  318. 318
    Python 程式語言

    View Slide

  319. 319
    https://www.anaconda.com/download/
    下載 Anaconda
    請裝 Python 3
    的版本。

    View Slide

  320. 320
    安裝 deep learning 套件
    > conda install tensorflow
    > conda install keras
    在 Terminal 或 Anaconda Prompt 之下
    * 使用 GPU, TensorFlow 請安裝 tensorflow-gpu

    View Slide

  321. 321
    打開終端機, 進入你的工作資料夾。

    View Slide

  322. 322
    > jupyter notebook
    接著執行:

    View Slide

  323. 323
    PyTorch TensorFlow
    fast.ai
    Keras

    View Slide

  324. 324
    開啟 Python 3 Notebook

    View Slide

  325. 325
    %tensorflow_version
    先確認 TensorFlow 版本!
    Currently selected TF version: 1.x
    Available versions:
    * 1.x
    * 2.x

    View Slide

  326. 326
    %tensorflow_version 2.x
    指定使用 TensorFlow 2!

    View Slide

  327. 327
    !pip install --upgrade keras
    更新 Keras, 以配合
    TensorFlow 2。

    View Slide

  328. 328
    可是我的資料要放在
    哪呢?

    View Slide

  329. 329
    from google.colab import drive
    drive.mount('/content/drive')
    這時會要求你登入
    Google 帳號, 有個授權
    金鑰要 copy 貼過來!

    View Slide

  330. 330
    %cd '/content/drive/My Drive'
    這樣就會在你的
    Google Drive 裡面!

    View Slide