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

【深度學習】02 AI 就是問個好問題

【深度學習】02 AI 就是問個好問題

2022 政大應數「數學軟體應用」深度學習課程 02

[email protected]
PRO

March 07, 2022
Tweet

Other Decks in Technology

Transcript

  1. 政⼤應數。數學軟體應⽤
    蔡炎龍
    問個好問題
    政治⼤學應⽤數學系
    深度學習入⾨
    02.

    View Slide

  2. 問問題的各種可能
    05.

    View Slide

  3. 數學軟體應⽤ 67
    01 股票⾃動交易
    做個⾃動交易系
    統!
    我們來預測股票
    的收盤價!

    View Slide

  4. 數學軟體應⽤ 68
    01 股票⾃動交易
    f
    化成函數的形式, 我們當然可以很天真的這麼做...
    輸入 輸出
    ⽇期 x 某股票 x 當天的收盤價 
    不合理的是, 輸入⽇期這個資訊太少, 不太可能這樣就推出收盤價!

    View Slide

  5. 數學軟體應⽤ 69
    01 股票⾃動交易
    f
    ⽤前 1 週的收盤價預測下⼀次的收盤價就合理得
    多。
    輸入 輸出
    當然還有很多其他可能的⽅式!
    DNN, CNN, RNN

    View Slide

  6. 數學軟體應⽤ 70
    01 股票⾃動交易
    拜託你, 股票是
    無法預測的!
    專家可能會說...

    View Slide

  7. 數學軟體應⽤ 71
    01 股票⾃動交易
    不如讓電腦學者做交易!
    f
    輸入
    輸出

    不交易

    某股過去
    20 天資料

    View Slide

  8. 數學軟體應⽤ 72
    01 股票⾃動交易
    但其實這樣設計, 訓練資料很難準備!
    Q
    輸入 輸出
    動作
    某股過去
    20 天資料
    +
    換學另⼀個函數!
    ⼀段時間, 比如
    ⼀年的總利潤
    S
    a
    狀態
    動作

    View Slide

  9. 數學軟體應⽤ 73
    02 信⽤卡盜刷判斷
    我想知道這筆信
    ⽤卡交易有沒有
    問題。
    VISA

    View Slide

  10. 數學軟體應⽤ 74
    02 信⽤卡盜刷判斷
    VISA
    某筆交易
    正常
    異常
    輸入 輸出
    f

    View Slide

  11. 數學軟體應⽤ 75
    03 流感病毒篩檢
    我想知道病⼈有
    沒有感染某種流
    感病毒?

    View Slide

  12. 數學軟體應⽤ 76
    03 流感病毒篩檢
    f
    輸入 輸出
    有 or 沒有
    看我有沒
    有在裡
    ⾯?
    CNN

    View Slide

  13. 數學軟體應⽤ 77
    04 全壘打預測
    我想知道某位 MLB
    選⼿新球季可以打
    幾隻全壘打?

    View Slide

  14. 數學軟體應⽤ 78
    04 全壘打預測
    f
    輸入 輸出
    RNN
    某選⼿第 t-1 年資料 第 t 年全壘打數
    [Age, G, PA, AB, R, H, 2B, 3B, HR,
    RBI, SB, BB, SO, OPS+, TB]
    每位選⼿都有 15 個 features!

    View Slide

  15. 數學軟體應⽤ 79
    04 全壘打預測
    可惜結果不準!
    不要猜精確數⽬,
    猜區間即可!
    分五段: 0-9, 10-19, 20-29, 30-39, 40+

    View Slide

  16. 數學軟體應⽤ 80
    05 對話機器⼈
    對話機器⼈
    或是⾃動翻譯

    View Slide

  17. 數學軟體應⽤ 81
    05 對話機器⼈
    f
    輸入 輸出
    客⼾說的話 客服機器⼈回應
    這樣會有問題!
    注意函數輸入和輸出需要⼀樣的長度!

    View Slide

  18. 數學軟體應⽤ 82
    05 對話機器⼈
    f
    輸入 輸出
    ⽬前的字 下⼀個字
    令⼈驚呆的是, 最常⾒的居然是化這這樣的函數...
    RNN

    View Slide

  19. 數學軟體應⽤ 83
    05 對話機器⼈
    比如說, “今天天氣很好。” 這句話, 輸入我們的函數就應該是...
    f(“今”) = “天”
    f(“天”) = “天”
    f(“天”) = “氣”
    f(“氣”) = “很”
    f(“很”) = “好”
    這根本不是函
    數啊!

    View Slide

  20. 數學軟體應⽤ 84
    05 對話機器⼈
    結果⽤有記憶能⼒的 RNN 做, 它可以是函數的原因是不只輸入⼀個
    字, 還有之前的綜合資訊!
    f
    輸入 輸出
    ⽬前的字 下⼀個字
    RNN
    還有前幾次的「記憶」

    View Slide

  21. 數學軟體應⽤ 85
    05 對話機器⼈
    然後就可以做出對話 (翻譯) 機器⼈!
    字1
    字2
    回1
    EOS 回1
    回2
    回k
    EOS

    View Slide

  22. 數學軟體應⽤ 86
    06 情境配樂
    放⼀段影片, 我
    想依情境配出
    ⼀段背景⾳樂!

    View Slide

  23. 數學軟體應⽤ 87
    06 情境配樂
    f 符合情境的⾳樂
    ⼀段影片
    可是不能每次同
    類型的情境, 都配
    ⼀樣的⾳樂吧...

    View Slide

  24. 數學軟體應⽤ 88
    06 情境配樂
    f
    ⼀段影片
    恐怖的
    浪漫的
    溫馨的
    熱⾎的
    可能可以先
    學這個函數!

    View Slide

  25. 數學軟體應⽤ 89
    07 創作機器⼈
    我想讓電腦和我⼀樣
    會創作。

    View Slide

  26. 數學軟體應⽤ 90
    07 創作機器⼈
    f
    輸入 輸出
    ???? ⼀段⾳樂
    到底是要輸入什麼呢?

    View Slide

  27. 數學軟體應⽤ 91
    07 創作機器⼈
    結果是訓練兩個神經網路!
    G
    D
    ⽣成器
    鑑別器
    ⼀⼩段曲⼦
    像 or 不像

    ⼀⼩段曲⼦
    靈感
    ⼀⼩段曲⼦
    這就是所謂的⽣成對抗網路 (GAN)!

    View Slide

  28. 數學軟體應⽤ 92
    08 ⾃動駕駛
    我想要讓電腦
    ⾃動開⾞!

    View Slide

  29. 數學軟體應⽤ 93
    08 ⾃動駕駛
    f
    路上情境
    ⽅向盤的⾓度
    油⾨⼤⼩
    剎⾞⼤⼩
    好像很合理...

    View Slide

  30. 數學軟體應⽤ 94
    09 「⾃學型」的 AI
    我想讓電腦⾃⼰學會
    玩遊戲!

    View Slide

  31. 數學軟體應⽤ 95
    09 「⾃學型」的 AI
    π
    輸入 輸出
    最好的動作
    這樣做通常不⾏!
    どうして?

    View Slide

  32. 數學軟體應⽤ 96
    09 「⾃學型」的 AI
    原因是訓練資料很難準備!
    1
    變化太多很難各種
    情境都有訓練資料!
    2
    以下圍棋為例, 我那
    麼會的話...
    我那麼會我就
    世界冠軍了啊!

    View Slide

  33. 數學軟體應⽤ 97
    09 「⾃學型」的 AI
    直接學哪個動作最好不容易。於
    是我們學習給每個動作「評分」,
    通常是計算做了這個動作後「得
    分的期望值」。
    Q
    輸入 輸出
    預期的 reward
    DNN, CNN, RNN
    +
    這就是強化學習 (reinforcement learning)

    View Slide

  34. 數學軟體應⽤ 98
    ⼩結論
    對我們想解決的問題,
    可能有許多不同的問法!

    View Slide

  35. 數學軟體應⽤ 99
    ⼩結論
    f
    輸入 輸出
    x y (再⼀次) 點是⼀次要非常
    明確化成函數的形式, 也就
    是要知確實說清楚輸入、輸
    出是什麼。

    View Slide

  36. 數學軟體應⽤ 100
    我們常常會碰到這樣的情況...
    兔⼦老闆
    我想知道怎麼樣紅蘿葡
    會長得更快? 你們⽤ AI
    做⼤數據分析, 然後交
    出來。

    View Slide

  37. 數學軟體應⽤ 101
    你跟他說不⾏, 他會回應這句話...
    光這樣問是不⾏的!
    為什麼!? 我有數據!
    不⾏的原因是沒有把問題化為函
    數的形勢。⼤家做 AI 經驗多了,
    遲早會出現這樣對話的場景...

    View Slide

  38. 神經網路
    06.

    View Slide

  39. 數學軟體應⽤ 103
    深度學習和神經網路
    現在 AI ⼤紅的原因是
    深度學習有很多突破性
    的發展, ⽽深度學習的
    核⼼是神經網路。

    View Slide

  40. 數學軟體應⽤ 104
    假設我們確定要學哪個函數了
    f
    x1
    x2
    xn
    y1
    y2
    ym
    也就是我們輸入和輸出都很
    明確, 明確到輸入輸出的⼤⼩
    當然也都確定了!

    View Slide

  41. 數學軟體應⽤ 105
    接下來就是要打造函數學習機
    我們要⽤深度學習 (神
    經網路) 的⽅法, 打造
    ⼀台函數學習機!
    വᏐ
    ላशػ

    View Slide

  42. 數學軟體應⽤ 106
    神經網路暗⿊學習法!
    這個世界有個近乎全能
    的暗⿊函數學習法
    神經網路

    View Slide

  43. 數學軟體應⽤ 107
    神經網路暗⿊學習法!
    還有數學定理證明
    「⼀個隱藏層」的神
    經網路就能學會你要
    學的函數!
    Universal Approximation Theorem

    View Slide

  44. 數學軟體應⽤ 108
    神經網路暗⿊學習法!
    ⽽且我們不⽤知道函
    數長什麼樣⼦ (線性
    啦、多項式樣啦等
    等)!

    View Slide

  45. 數學軟體應⽤ 109
    神經網路暗⿊學習法!
    Hidden
    Layer
    Output
    Layer
    Input
    Layer
    暗⿊魔法
    如同魔法般的, 你問好問
    題 、準備好資料, 神經網
    路就告訴你函數應該長
    什麼樣⼦!

    View Slide

  46. 數學軟體應⽤ 110
    神經網路暗⿊學習法!
    在 1980-1990 年代可以說紅極⼀時!

    View Slide

  47. 數學軟體應⽤ 111
    魔法光茫不再!?
    有⼀陣⼦如果研究計畫說要
    研究「神經網路」, 那計畫還
    沒送出就可以確定不會通過!
    然後它就死掉了...

    View Slide

  48. 數學軟體應⽤ 112
    為什麼上個世紀神經網路沒有預期成功?
    複雜的軟體 電腦計算能⼒ ⼤ 的數據
    三⼤要件當時不具⾜。
    Yann LeCun

    View Slide

  49. 數學軟體應⽤ 113
    到了現在, 情況完全不⼀樣了!
    比起上個世紀, 要寫個
    強強的深度學習程式,
    真的太容易了!

    View Slide

  50. 數學軟體應⽤ 114
    神經網路新時代!
    Human-level
    control through
    deep reinforcement
    learning ”
    “ DeepMind
    2015-2-26
    Deep Q-
    Learning
    letter
    原來電腦可以⾃已學
    會做⼀些複雜的任務!

    View Slide

  51. 數學軟體應⽤ 115
    神經網路新時代!
    Deep Learning

    LeCun-Bengio-Hinton
    2015-5-28
    http://bit.ly/ai_history
    介紹 Deep Learning「三巨頭」
    的故事。
    延申閱讀
    度過神經網路寒冬的
    三巨頭, ⼀起宣告
    deep learning 時代
    的來臨!

    View Slide

  52. 數學軟體應⽤ 116
    神經網路新時代!
    Deep Learning 打敗
    世界棋王, 讓⼤家⼤
    ⼤期待 deep
    learning 的能⼒!

    Mastering the game
    of Go with deep
    neural networks
    and tree search”
    “ DeepMind
    2016-2-26

    View Slide

  53. 數學軟體應⽤ 117
    再⼀次, 就這三⼤天王改變了全世界!
    DNN CNN RNN
    我們會來⼀⼀介紹這
    些神經網路架構有什
    麼特點。

    View Slide

  54. 神經網路標準版 DNN
    07.

    View Slide

  55. 數學軟體應⽤ 119
    全連結神經網路 (DNN)
    Fully Connected Neural Networks
    1980 年代就火紅的 model

    View Slide

  56. 數學軟體應⽤ 120
    全連結神經網路 (DNN)
    只需要決定兩組數字, 神經網路
    就決定了!
    1. 幾層隱藏層
    2. 每層幾個神經元
    層層之間的神經元是完全連結
    的。

    View Slide

  57. 數學軟體應⽤ 121
    深度學習就是建⼀層層「隱藏層」
    x ̂
    y
    input
    layer
    hidden
    layers
    output
    layer
    DNN, CNN, RNN 嚴格說是每
    ⼀層都可以決定是要⽤三種之
    中, 哪⼀種⽅式做隱藏層的設
    計。

    View Slide

  58. 數學軟體應⽤ 122
    深度學習就是建⼀層層「隱藏層」
    x
    1
    x
    2
    x
    n
    h
    1
    h
    2
    h
    k
    x h

    1
    全連結層 (Dense)
    卷積層 (Conv)
    遞歸層 (LSTM, GRU)
    差不多就是決定
    幾個神經元就結
    束了。
    隱藏層基本上就三種選擇:
    DNN
    CNN
    RNN

    View Slide

  59. 數學軟體應⽤ 123
    神經元怎麼運作
    不管哪種神經網路, 神
    經元就是基本的運算
    單元, ⽽每個神經元的
    運算⽅式是⼀樣的!

    View Slide

  60. 數學軟體應⽤ 124
    神經元怎麼運作
    每個神經元就是接受
    若⼲個刺激輸入, 然後
    送出⼀個刺激輸出。

    View Slide

  61. 數學軟體應⽤ 125
    神經元怎麼運作
    我們先要這個神經元接受到的
    總刺激。
    3

    i=1
    w
    i
    x
    i

    View Slide

  62. 數學軟體應⽤ 126
    神經元怎麼運作
    接著加上偏值 (bias), 做⼀個基
    準的調整。不管是權 、偏值
    都是要經過學習得到的! 這裡我
    們估且稱調整後的總刺激。
    3

    i=1
    w
    i
    x
    i
    3

    i=1
    w
    i
    x
    i
    + b
    b

    View Slide

  63. 數學軟體應⽤ 127
    神經元怎麼運作
    ⽬前的計算都是線性的, 即使經所
    有神經元算還是線性的, 因此我們
    需經⼀個激發函數 (activation
    function) 轉換再送出。
    φ(
    3

    i=1
    w
    i
    x
    i
    + b) = h
    φ( ) = h

    View Slide

  64. 數學軟體應⽤ 128
    激發函數
    以下我們介紹幾個有名的激發函數。
    ReLU Sigmoid Gaussian
    本世紀新寵!
    感覺應該很接近⼈
    類神經元的動作。
    舊時代的懷念, 已
    很少使⽤。

    View Slide

  65. 數學軟體應⽤ 129
    把⾃⼰當⼀個神經元!
    現在把⾃⼰當成⼀個
    神經元, ⽤ ReLU 做
    我們的激發函數。

    View Slide

  66. 數學軟體應⽤ 130
    把⾃⼰當⼀個神經元!
    權 和偏值都是學來
    的, 但⼀開始我們會隨
    機給⼀個值。
    1
    2
    1
    假設初始化得到:
    w
    1
    = 1
    w
    2
    = 2
    b
    1
    = 1

    View Slide

  67. 數學軟體應⽤ 131
    把⾃⼰當⼀個神經元!
    記得我們神經元的計算⽅式。現
    在有任何輸入我們都應該知道該
    怎麼輸出了。
    1
    2
    1
    1 1
    2

    View Slide

  68. 數學軟體應⽤ 132
    把⾃⼰當⼀個神經元!
    比如說我們接到
    的輸入, 輸出應該是多少呢?
    1
    2
    1
    1 1
    2
    x = (x
    1
    , x
    2
    ) = (1,3)
    1
    3

    View Slide

  69. 數學軟體應⽤ 133
    把⾃⼰當⼀個神經元!
    計算調整後
    的加權和。
    1
    2
    1
    1
    3 1 1
    2
    8
    1 3
    × ×

    View Slide

  70. 數學軟體應⽤ 134
    把⾃⼰當⼀個神經元!
    因為⽤了可愛
    的 ReLU, 會得
    到輸出正是 8!
    1
    2
    1
    1
    3 8
    φ(8) = 8

    View Slide

  71. 數學軟體應⽤ 135
    函數學習機建造完成!
    我們會把所有要學習的參數,
    包括所有的權 、所有的偏
    值, 合併起來叫做:
    θ

    View Slide

  72. 數學軟體應⽤ 136
    函數學習機建造完成!
    當決定了權 、參數, 也就是
    ⼀組 的值, 我們輪入任意的
    數值, 神經網路就會吐出⼀個
    輸出給我們了!
    θ
    വᏐ
    ላशػ
    完成!

    View Slide