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

今天開始我的 AI 人工智慧冒險之旅

今天開始我的 AI 人工智慧冒險之旅

這是在政治大學為同學介紹人工智慧入門的工作坊。

第 1 版是 2019 年 5 月 15 日, 應政治大學職涯中心邀請, 分享人工智慧基本原理。
第 2 版 (本版) 是 2019 年 9 月 4 日, 在新生書院「焦點工作坊」介紹人工智慧。

除了介紹最基本的 NN, CNN, RNN, 到進階的生成對抗網路、增強學習之外, 還有為政大同學介紹, 如果想要學習 AI, 可以有什麼樣的資源。

從今天起, 開始自己的 AI 專案!

[email protected]
PRO

May 15, 2019
Tweet

Other Decks in Technology

Transcript

  1. 我的AI人工智慧
    冒險之旅
    應數系 炎龍老師

    2019 政大新生焦點工作坊
    政大新生書院
    今天開始

    View Slide

  2. !2
    課程講義
    http://bit.ly/2019nccuAI

    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 日
    近期內不可能

    View Slide

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

    View Slide

  16. !16
    問題化為函數
    f
    然後用深度學習找到這個函數

    View Slide

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

    View Slide

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

    View Slide

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

    View Slide

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

    View Slide

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

    View Slide

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

    View Slide

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

    View Slide

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

    View Slide

  25. !25
    深度學習 (神經網路) 

    三大天王
    標準 NN CNN RNN

    View Slide

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

    View Slide

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

    View Slide

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

    View Slide

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

    View Slide

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

    View Slide

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

    View Slide

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

    View Slide

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

    View Slide

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

    View Slide

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

    View Slide

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

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

    View Slide

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

    View Slide

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

    5 學習

    View Slide

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

    View Slide

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

    View Slide

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

    View Slide

  42. !42
    問問題的各種可能

    View Slide

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

    View Slide

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

    View Slide

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

    View Slide

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

    View Slide

  47. !47
    第 t-1 年資料


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

    View Slide

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

    View Slide

  49. !49
    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 月預測)
    !49

    View Slide

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

    View Slide

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

    View Slide

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

    View Slide

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

    View Slide

  54. !54
    對話機器人
    【事件篇】

    View Slide

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

    View Slide

  56. !56
    f
    目前的字 下一個字

    View Slide

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

    View Slide

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

    View Slide

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

    View Slide

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

    View Slide

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

    View Slide

  62. !62
    我想讓 AI 自己玩遊
    戲。

    View Slide

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

    View Slide

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

    View Slide

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

    View Slide

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

    View Slide

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

    View Slide

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

    View Slide

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

    View Slide

  70. !70
    ELMO BERT
    結果很多和芝麻街角色有關。這裡的技巧超過今天的
    範圍, 不過有興趣的可以查一下這兩位芝麻街角色。


    尤其是 BERT, 到底怎麼問問題的呢?

    View Slide

  71. !71
    你的第一個函數
    任務 01

    View Slide

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

    View Slide

  73. !73
    現代 AI 主軸是深度學習

    View Slide

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

    View Slide

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

    View Slide

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

    View Slide

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

    View Slide

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

    View Slide

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

    View Slide

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

    View Slide

  81. !81
    Hidden
    Layer
    Output
    Layer
    Input
    Layer
    暗黑魔法

    View Slide

  82. !82
    然後它就死掉了...

    View Slide

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

    View Slide

  84. !84
    直到...

    View Slide

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

    View Slide

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

    View Slide

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

    View Slide

  88. !88
    重點就是神經網路三大天王
    NN CNN RNN

    View Slide

  89. 打開暗黑世界
    !89

    View Slide

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

    View Slide

  91. !91

    View Slide

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

    View Slide

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

    View Slide

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

    View Slide

  95. !95
    輸入做加權和。

    View Slide

  96. !96
    加上偏值 (bias)。

    View Slide

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

    View Slide

  98. !98
    幾個 activation functions
    ReLU Sigmoid Gaussian

    View Slide

  99. !99
    神經元的輸出
    任務 02

    View Slide

  100. !100
    變數就是 weights, biases

    View Slide

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

    View Slide

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

    View Slide

  103. !103
    假設用 ReLU
    1
    3
    1
    2
    1

    View Slide

  104. 3
    打造神經網路
    !104

    View Slide

  105. !105
    現在我們準備一起打造一個神經網路, 我們準
    備用一個叫 Keras 的超好用 Python 套件。

    View Slide

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

    View Slide

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

    View Slide

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

    View Slide

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

    View Slide

  110. !110
    打造你神經網路
    任務 03

    View Slide

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

    View Slide

  112. !112
    Q1 隱藏層要幾層?

    View Slide

  113. !113
    Q2 每層幾個神經元?
    Q2

    View Slide

  114. !114
    Activation
    Function?
    ReLU Sigmoid
    or
    Q3

    View Slide

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

    View Slide

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

    View Slide

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

    View Slide

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

    View Slide

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

    View Slide

  120. !120
    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

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

    View Slide

  122. !122
    Deep Learning 

    三大天王
    標準 NN CNN RNN

    View Slide

  123. 4
    卷積神經網路
    CNN
    !123

    View Slide

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

    View Slide

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

    View Slide

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

    View Slide

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

    View Slide

  128. !128
    Convolutional Layer
    1

    View Slide

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

    View Slide

  130. !130
    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

  131. !131
    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

  132. !132
    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

  133. !133
    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

  134. !134
    神經元是這樣看的

    View Slide

  135. !135
    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

  136. !136
    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

  137. !137
    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

  138. !138
    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

  139. !139
    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

  140. !140
    Max-Pooling Layer
    2

    View Slide

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

    View Slide

  142. !142
    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

  143. !143
    convolution, max-pooling, convolution, 

    max-pooling…
    可以不斷重覆

    View Slide

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

    View Slide

  145. 5
    遞迴神經網路
    RNN
    !145

    View Slide

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

    View Slide

  147. !147
    對話機器人
    【解決篇】

    View Slide

  148. !148
    f
    目前的字 下一個字

    View Slide

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

    View Slide

  150. !150
    f
    目前的字 下一個字

    View Slide

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

    View Slide

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

    View Slide

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

    View Slide

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

    View Slide

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

    View Slide

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

    View Slide

  157. !157
    很多人畫成這樣。

    View Slide

  158. !158
    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

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





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





    可能長這樣

    View Slide

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

    View Slide

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

    View Slide

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

    View Slide

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

    View Slide

  164. !164
    標準 RNN 一個
    Cell 的輸出

    View Slide

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

    View Slide

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

    View Slide

  167. !167
    編號 k 的

    LSTM
    多一個「cell 狀態」

    View Slide

  168. !168
    Gate
    控制閥
    重要概念

    View Slide

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

    View Slide

  170. !170
    LSTM 有三個 Gates

    View Slide

  171. !171
    忘記門 輸入門 輸出門

    View Slide

  172. !172
    插播
    tanh
    sigmoid

    View Slide

  173. !173
    -1
    1

    View Slide

  174. !174
    0
    1
    σ(x) =
    1
    1 + e−x

    View Slide

  175. !175
    編號 k 的

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

    View Slide

  176. !176
    「新的」狀態資訊

    View Slide

  177. !177

    View Slide

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

    View Slide

  179. !179
    GRU
    Gated Recurrent Unit
    LSTM 的簡化版

    View Slide

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

    View Slide

  181. !181
    記憶門 重設門

    View Slide

  182. !182
    input 可不考慮從前

    View Slide

  183. !183

    View Slide

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

    View Slide

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

    View Slide

  186. !186
    第 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+
    !186

    View Slide

  187. !187
    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

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

    View Slide

  189. !189
    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

  190. 6
    !190
    深度學習心法

    View Slide

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

    View Slide

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

    View Slide

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

    View Slide

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

    View Slide

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


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

    View Slide

  196. !196
    超展開的問問題方式

    View Slide

  197. !197
    NN CNN RNN
    Transformer
    Auto Encoder
    Reinforcement Learning
    GAN
    神經網路軍團

    View Slide

  198. 7
    生成對抗網路

    GAN
    !198

    View Slide

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

    View Slide

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

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

    View Slide

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

    View Slide

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

    View Slide

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

    View Slide

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

    View Slide

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

    View Slide

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

    View Slide

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

    View Slide

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

    View Slide

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

    View Slide

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

    View Slide

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

    View Slide

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

    View Slide

  214. !214
    G

    生成器
    F

    生成器
    Domain
    A
    Domain
    B
    鑑別器
    B
    鑑別器
    A
    CycleGAN

    View Slide

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

    View Slide

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

    View Slide

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

    View Slide

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

    View Slide

  219. 8
    強化學習

    Reinforcement
    Learning
    !219

    View Slide

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

    View Slide

  221. !221
    Agent

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

    View Slide

  222. !222
    我們以玩打磚塊為例

    View Slide

  223. !223
    π 左
    1 Policy Based

    or
    狀態 動作
    policy function

    View Slide

  224. !224
    通常直接學不容易...

    View Slide

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

    View Slide

  226. !226
    2017 年台灣人工智慧年慧

    AlphaGo 創始人之一黃士傑博士演講
    AlphaGo 的故事

    View Slide

  227. !227
    AlphaGo

    Lee
    AlphaGo

    Master
    AlphaGo

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

    —2017.1.4 2017.5 2017.10

    View Slide

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

    View Slide

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

    View Slide

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

    View Slide

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

    View Slide

  232. !232
    過去 20 天的資料

    (20x6 的矩陣)
    f
    1
    2
    3
    4
    5
    買 20 單位
    買 10 單位
    不做交易
    賣 10 單位
    賣 20 單位
    五種 actions

    View Slide

  233. !233
    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

  234. !234
    課程篇 (實體 + 線上)
    魔法程式家+數理資訊社
    學長姐作品
    實現你的 AI 夢

    View Slide

  235. !235
    一年課程。AI 達人
    數學軟體應用
    三234
    計算機程式設計
    1081 1082
    Python 數據分析基礎 人工智慧程式
    蔡炎龍老師

    View Slide

  236. !236
    設計思考與人工智慧
    陳宜秀老師 蔡炎龍老師
    1081 推出預定: 三D56
    台灣難得一見、
    具業界實務經驗
    設計思考一流老
    師!
    用人工智慧真真實實解決一個實務的問題!

    View Slide

  237. !237
    自學線上課程

    View Slide

  238. !238
    eWant 正式開課 (9/9 起)

    View Slide

  239. !239
    fb.me/nccumit
    魔法程式家 FB 社團
    政大數理資訊社

    View Slide

  240. !240
    其實我也在 FB 上啊
    fb.me/yenlung
    你不要夾帶!

    View Slide

  241. !241
    2018 年 4 月政大數理資訊社成立

    View Slide

  242. !242
    新生書院 x 數理資訊社
    每週二晚上 7:00
    魔法程式家

    View Slide

  243. !243
    經濟碩 經濟
    傳院
    應數
    經濟
    上海實習

    View Slide

  244. !244
    政大學長姐的成果
    政大數理資訊學程/數理資訊社

    View Slide

  245. !245
    Deep Learning 讀書會獲教發中心
    「自主學習讀書行動小組」第一名

    View Slide

  246. !246
    政大專屬的風格轉移
    陳先灝,吳柏寬,黃梓育,林奕勳, 廖原豪,邢恆毅

    View Slide

  247. !247
    很少的訓練資料達成任務!
    我們想用神經網路, 生出一
    個字型中欠缺的字。
    舊字型 新字型
    創造新字型
    應用
    f ( ) =
    * 莊喻能、黃梓育 (政大應數)
    * 論文發表於國際研討會

    View Slide

  248. !248
    π GAN
    * 方宜晟、陳先灝、黄平、林澤佑 (政大應數)
    * 科技部 AI 推動中心「GAN」大賽佳作

    View Slide

  249. !249
    科技部科技部AI 推動中心「GAN 大賽」

    View Slide

  250. !250
    中⽂基本字的 encoding
    中⽂約有 300 個基本字型 (感謝 justfont 專業指導)
    我們想做這 300 字「適合的」標碼
    之後⽤這 300 字可⽣所有字

    View Slide

  251. !251
    ⽤ VAE 做出 300 個字編碼

    View Slide

  252. !252
    ⿂ ⽷


    View Slide

  253. !253
    股價的預測
    智慧路燈
    文青機器人
    跌倒判斷
    火車車牌辨識
    … 還有更多
    進行中方案

    View Slide

  254. !254
    實現你的AI夢
    任務 04

    View Slide