1. 上午(AI 不過就是問個好問題
    1. AI到底能幹什麼?
    2. AI會取代我們?
      1. 新工作會產生
    3. 自駕必然會實現
    4. 現在的AI是神經網路
    5. 將問題化為函數
      1. 然後用深度學習找到這個函數
      2. x->f->y
    6. 函數其實是個解答本
      1. 所有的問題,都有個答案
      2. 我們想要問個好的問題
      3. 生活上或工作上遇到的問題
      4. EX:在野外看到一隻動物,我想知道是什麼?
        1. 拍照想要有答
        2. 我們有部份解答/
        3. 但我們還沒碰過的情況可能有無限多題(各種不同的狀況跟情境)
        4. 但希望能透過收集到的資料把不同的狀況都能解答
        5. 我們把問題化成函數
          1. 熊—>f—>台灣黑熊
      5. 用神經網路的深度學習找出完整的函數
        1. 統計的線性回歸
      6. 深度學習(神經網路三大天王)
        1. NN
        2. CNN
        3. RNN
      7. 流程
        1. 1。我們先問一個問題
          1. EX:在野外看到一隻動物,我想知道是什麼?
          2. 要有很多DATA可以收集
        2. 2。我們把問題化成函數
          1. 熊—>f—>台灣黑熊
          2. 所有的問題DATA可以產生連結
        3. 3。準備訓練資料
          1. 找出考古題
          2. 過去的DATA
          3. 訓練資料
          4. 我們設定給AI的資料
          5. 相當於考古題
          6. 一開始學習時用的資料
          7. 測試資料
          8. 相當於考試用的DATA
        4. 4。架構我們的神經網路
          1. NN
          2. CNN
          3. RNN
          4. VAE(膠
          5. 強化學習
          6. 生成對抗模式
          7. 架好了神經網路,就剩一些參數要調
          8. @={Wi,bj}
          9. 決定好這些參數的值
        5. 5。學習
          1. 學習用訓練資料送進
          2. loss function(L@)
          3. 基本上用gradient descent
          4. 因神經網路的特性backpropagation
        6. EX我想知道某股票明天的股價
          1. 日期X—>f—>某骰票X當天的收盤價
          2. 但日期X的資料(input)幾乎沒有任何可以用來判斷知道f函數的地方
          3. Xt-1,Xt-2,Xt-3-->f(NN,CNN,RNN)-->Xt
        7. EX 我想知道某MLB球員2018可以打多少全壘打
          1. 15個feature!
          2. 第t-1年資料-->f(RNN)-->第t年全壘打數
          3. 不準後
          4. 改猜區間而不是猜精確的數目
          5. 分五段
          6. 0-9
        8. EX:對話機器人
          1. 目前的字-->f(RNN)-->下一個字
          2. RNN會把上一次的字都一起輸入進來
          3. 實作上困難點與問題
          4. 客戶一次說話的字數是不同的
          5. 每次的輸入跟輸出都不是固定的長度
        9. EX:我們讓AI自已玩遊戲(開車,泡咖啡)
          1. 打磚塊--->#(CNN+NN)-->最好的動作
          2. 輸入很多張截圖
          3. 輸入一種完整的狀況
          4. 函數告訴我們要往左還往右
          5. 難點在要玩無數次的遊戲才能收集到足夠的資料
          6. 但很多時候不知道下一動的動作往那裡最好?
          7. 所以Model改成
          8. Reinforcememt Learning : 打磚塊圖(+往左)--->Q()-->評分
          9. 重新問一個問題
        10. EX:我們
        11. 所以問題是否問的好很重要 (AI最重要最核心也是最難被取代的)
          1. 要怎麼問?
          2. 我們想解決的問題, 可能有許多種不同的問法
          3. 要問什麼樣的問題?
          4. 要用什麼方式來解決問題的MODEL?
          5. 有什麼資料能用?
          6. 能拿到什麼資料?
          7. 資料的關連性是什麼?
          8. 電腦自已寫神經網路?
        12. 記得我們就是要學個函數
          1. 現在的AI主軸是深度學習
          2. 深度學習的核心是神經網路
          3. 用一堆的X輸入-->f-->得到一堆的y出來
          4. 函數學習三部曲
          5. 真實世界要問的問題化做函數
          6. 通常很難問對問題
          7. 收集我們知道"正確答案"的訓練資料
          8. 資料清理通常最花時間
          9. 找出這個函數
        13. 暗黑學習法
          1. 真的有學任意函數的技法
          2. 就是神經網路
          3. 在1980到1990是很潮的東西
          4. 厲害的神經網路什麼都學的會
          5. (Xn)Input layer-->(f)Hidden layer-->(Yn)out layer
          6. 然後它就死掉了 (因為三大要件不足)
          7. 1.複雜的軟體
          8. 2.電腦算力
          9. 3.BIG DATA
        14. DeepMind
          1. 用電腦玩遊戲
          2. 無人駕駛
          3. 宇宙探測
          4. Alpha go
          5. Deeplearning
        15. Deep learning (2015-5-28)
          1. Lecun
          2. Bengio
          3. Hinton
    7. 神經網路三大天王
      1. 不需要用神經網路處理線性曲線的問題
      2. NN
        1. 標準NN
        2. 最傳統型的神經網路
        3. 每一個都是神經元
        4. 2層的hidden layers
        5. 3層以上的hidden layers才能叫深度學習
        6. 問題問完時就知道X的維度
        7. 先知道hidden layerS有幾層
          1. 要知道每個隱藏層的神經元有幾個?
          2. 邏輯上如果比較複雜的, 通常會需要用到比較多層
        8. 標準的神經網路必需是Fully connection 完整的連結(完全連結)
        9. 資料送法必需是從前面往後送
        10. 每個神經元的動作都是一樣的
          1. 1.接收若干刺激輸入
          2. 2.送出一個刺激輸出(的數字),但可能會把同一個數字送給多個不同的神經元
        11. 我們要先算總刺激
          1. 人類的神經受到刺激時會輸出不同強度的訊號
          2. 模擬人類的刺激(用加權值作計算)
          3. X1*W1(權重值)
          4. 學習就是要學W要有多大
          5. 加上偏值(bias) b
          6. 激發函數
          7. 將輸入作加權和
          8. 加上偏值
          9. 再用activation functions激發函數作用上去即為輸出
          10. activation functions
          11. 不可以是線性曲線
          12. 著名的activation functions
          13. ReLU
          14. 最簡單
          15. 所以非常的有效率
          16. Sigmoid
          17. 最像人
          18. 1到0
          19. Gaussian
          20. 幾乎沒人在用高斯函數
        12. 變數就是Weights,biases
          1. 假設用ReLU
        13. 神經網路的訓練原理
          1. 1.神經網路需要經過訓練
          2. 王牌函數(誤差最小)
          3. 假設有多組的訓練資料_->希望能找出F@
          4. 最常用Loss function(L@)
          5. 我們希望它越小越好
          6. 每一次都去重算, 直到找到最好Loss function(L@)
          7. 用算距離的公式
          8. 基本上這樣調
          9. Learning rate
          10. L是w1,w,2,b1的函數
          11. 目標就是要調W跟B
          12. L希望是愈小愈好
          13. 電腦怎麼看出來要把W在A點的值往右走?
          14. 切線是關鍵
          15. 切線斜率<0時等於往左走(負的值)
          16. 切線斜率a<0加負值
          17. 切線斜率>0時等於往右走(負的值)
          18. 切線斜率a會求出(局部)的極大值
          19. dL=>切線斜率
          20. 切線就是作微分
          21. 被乘上很小的數字避免A位移的W值過大時修正位置過頭
          22. 目的是讓位移值變小
          23. Learaning Rate
          24. 相當於學習的速度
          25. 可以設每個參數的Learning rate
          26. 通常接近於0
          27. 振幅的影響?
          28. 因為斜率所以會自動等於可以計算振幅的斜率
          29. 朝同一方向避免太多繞路或在原地打轉
          30. 假設只有一個變數
          31. 偏微分就是只作一個變數的微分
          32. 同理, 其它變數都固定成常數,只對一個變數作微分
          33. 梯度(gradient)
          34. 看著切線斜率或梯度往下走或位移的方法就叫作 Gradient Descent(梯度下降)
      3. CNN
        1. 卷積神經網路
        2. Convolutional neural Network
        3. 圖型辨識的超級天王
        4. 應用
          1. 圖形辨視
          2. 自動駕駛
          3. 遊戲AI
        5. 概念
          1. 看一個特徵時
          2. 掃過每一個點,記錄該點附近的"特徵強度"
          3. 例如該點附近的特徵強度
          4. 對應直線 特徵強度的資訊
          5. 對應橫線 特徵強度的資訊
          6. 對應各種特徵強度的資訊
          7. 作成一個完整特徵矩陣的資訊
          8. 矩陣是看某一種特性
          9. 想看的特徵資訊愈多矩陣就愈大
          10. 學習的特徵(EX直線)為何是由AI自已學習的
          11. W=Filter
          12. 等於W的加權和
          13. CNN的第一層=W矩陣
          14. 並沒有fully counection
          15. 基本上就是投票
          16. 在每一區中投出最大的矩陣
          17. max-pooling
          18. 投票的目的是希望能縮小資料
          19. 第二次再REPEAT時,就是將特徵矩陣作更細微的辨視
          20. 可以不斷的重覆
          21. Convolutional
          22. max-pooling
          23. 通常都是複合型的
          24. 做完再送到"正常的"神經網路
      4. Q&A
        1. 什麼時候要人為調整?
          1. 學習速度太慢時
          2. 學不出來時
          3. 要用多少神經元
          4. 要用多少hidden層?
          5. 各種W,B值的微調時
      5. RNN