O slideshow foi denunciado.
Utilizamos seu perfil e dados de atividades no LinkedIn para personalizar e exibir anúncios mais relevantes. Altere suas preferências de anúncios quando desejar.
Próximos SlideShares
What to Upload to SlideShare
Avançar

Compartilhar

人工智慧11_遞歸神經網路

人工智慧11_遞歸神經網路

人工智慧11_遞歸神經網路

  1. 1. 人工智慧 教師:陳志華博士
  2. 2. 報告大綱-遞歸神經網路 遞歸神經網路介紹 遞歸神經網路計算 遞歸神經網路最佳化原理 遞歸神經網路實作 遞歸神經網路其他型態與應用 ◦ 多個時間點單一輸出(Sequences to Sequences)─交通預測為例 ◦ 同一時間點多個輸入─財金預測為例 ◦ 分類應用─語意辨識為例 2
  3. 3. 遞歸神經網路介紹 原始資料 資料分佈 修整後資料 3 Time X Y 1 0.5 0 2 1 0.5 3 0.5 1 4 0 0.5 5 0.5 0 6 1 0.5 7 0.5 1 8 0 0.5 0 0.2 0.4 0.6 0.8 1 1 2 3 4 5 6 7 8 Value Time X Y  隨時間變化,X和Y皆為三角形波形  在此例中,X和Y同時存在正相關和負相關,故 一般神經網路無法學會此現象,將全部猜0.5  X和Y部分資料(如Time 1 → 2)為正相關  X和Y部分資料(如Time 2 → 3)為負相關  資料觀察發現X和Y每4個時間單位為一個循環, 可視為2筆資料進行學習 X t1 t2 t3 t4 第1筆 0.5 1 0.5 0 第2筆 0.5 1 0.5 0 Y t1 t2 t3 t4 第1筆 0 0.5 1 0.5 第2筆 0 0.5 1 0.5 輸入資料 輸出資料 由資料觀察可知每4個 時間單位為一個循環 X為0.5時, Y一半為0,另一半為1 故只用「當下」的X值 無法估計Y
  4. 4. 遞歸神經網路介紹 輸入資料(X) 估計資料(Y’) 輸出資料(Y) 先前狀態特徵 ◦ 初始階段設定為0 4 X t1 t2 t3 t4 第1筆 0.5 1 0.5 0 第2筆 0.5 1 0.5 0 Y’ t1 t2 t3 t4 第1筆 0.04 0.51 0.91 0.51 第2筆 0.04 0.51 0.91 0.51 Y t1 t2 t3 t4 第1筆 0 0.5 1 0.5 第2筆 0 0.5 1 0.5 YY XX 先前狀態特徵(記憶區)先前狀態特徵(記憶區) 0.5 第1筆t1輸入至遞歸神經網路, 計算神經元1 t1資料 真值:0 估計:0.04 初始階段,無任何記憶 0 0 0 0  建立具有一隱藏層之遞歸神經網路  隱藏層神經元4個  遞歸神經網路的特色在於多了「記憶」  經由「記憶」紀錄前幾個時間點的波形特 徵(變化趨勢)  可分析時間相依性 遞歸神經網路知道是在t1,輸入值(X)為0.5 輸出值(Y)應該是對應到0
  5. 5. 0 0.2 0.4 0.6 0.8 1 1 2 3 4 5 6 7 8 Value Time X 遞歸神經網路介紹 輸入資料(X) 估計資料(Y’) 輸出資料(Y) 先前狀態特徵 ◦ 紀錄了t1的波形特徵 5 X t1 t2 t3 t4 第1筆 0.5 1 0.5 0 第2筆 0.5 1 0.5 0 Y’ t1 t2 t3 t4 第1筆 0.04 0.51 0.91 0.51 第2筆 0.04 0.51 0.91 0.51 Y t1 t2 t3 t4 第1筆 0 0.5 1 0.5 第2筆 0 0.5 1 0.5  建立具有一隱藏層之遞歸神經網路  隱藏層神經元4個  遞歸神經網路的特色在於多了「記憶」  經由「記憶」紀錄前幾個時間點的波形特 徵(變化趨勢)  可分析時間相依性 YY XX 先前狀態特徵(記憶區)先前狀態特徵(記憶區) 1 第1筆t2輸入至遞歸神經網路, 計算神經元1 t2資料 真值:0.5 估計:0.51 紀錄了t1的波形特徵 0 0.2 0.4 0.6 0.8 1 1 2 3 4 5 6 7 8 Value Time X
  6. 6. 0 0.2 0.4 0.6 0.8 1 1 2 3 4 5 6 7 8 Value Time X 遞歸神經網路介紹 輸入資料(X) 估計資料(Y’) 輸出資料(Y) 先前狀態特徵 ◦ 紀錄了t1~t2的波形特徵 6 X t1 t2 t3 t4 第1筆 0.5 1 0.5 0 第2筆 0.5 1 0.5 0 Y’ t1 t2 t3 t4 第1筆 0.04 0.51 0.91 0.51 第2筆 0.04 0.51 0.91 0.51 Y t1 t2 t3 t4 第1筆 0 0.5 1 0.5 第2筆 0 0.5 1 0.5  建立具有一隱藏層之遞歸神經網路  隱藏層神經元4個  遞歸神經網路的特色在於多了「記憶」  經由「記憶」紀錄前幾個時間點的波形特 徵(變化趨勢)  可分析時間相依性 遞歸神經網路知道是在t3,輸入值(X)為0.5 輸出值(Y)應該是對應到1 YY XX 先前狀態特徵(記憶區)先前狀態特徵(記憶區) 0.5 第1筆t3輸入至遞歸神經網路, 計算神經元1 t3資料 真值:1 估計:0.91 紀錄了t1~t2的波形特徵 0 0.2 0.4 0.6 0.8 1 1 2 3 4 5 6 7 8 Value Time X
  7. 7. 0 0.2 0.4 0.6 0.8 1 1 2 3 4 5 6 7 8 Value Time X 遞歸神經網路介紹 輸入資料(X) 估計資料(Y’) 輸出資料(Y) 先前狀態特徵 ◦ 紀錄了t1~t3的波形特徵 7 X t1 t2 t3 t4 第1筆 0.5 1 0.5 0 第2筆 0.5 1 0.5 0 Y’ t1 t2 t3 t4 第1筆 0.04 0.51 0.91 0.51 第2筆 0.04 0.51 0.91 0.51 Y t1 t2 t3 t4 第1筆 0 0.5 1 0.5 第2筆 0 0.5 1 0.5  建立具有一隱藏層之遞歸神經網路  隱藏層神經元4個  遞歸神經網路的特色在於多了「記憶」  經由「記憶」紀錄前幾個時間點的波形特 徵(變化趨勢)  可分析時間相依性 YY XX 先前狀態特徵(記憶區)先前狀態特徵(記憶區) 0 第1筆t4輸入至遞歸神經網路, 計算神經元1 t4資料 真值:0.5 估計:0.51 紀錄了t1~t3的波形特徵 0 0.2 0.4 0.6 0.8 1 1 2 3 4 5 6 7 8 Value Time X
  8. 8. 遞歸神經網路介紹 深度的意涵? 遞歸神經網路適用情境 ◦ 可解決時間相依性,具時間序列的議題 ◦ 語音辨識:識別每個聲音波形特徵對應的文字 ◦ 交通預測:識別每個相鄰路段流量波形特徵對應的未來路況 ◦ 股市預測:識別每個相關個股股價波形特徵對應的未來股價 8 0 0.2 0.4 0.6 0.8 1 1 2 3 4 5 6 7 8 Value Time X Xt1 Yt1 t1資料 神經網路 0 0.2 0.4 0.6 0.8 1 1 2 3 4 5 6 7 8 Value Time X 先前 狀態 Xt2 Yt2 t2資料 神經網路 先前 狀態 Xt3 Yt3 t3資料 神經網路 先前 狀態 Xt4 Yt4 t4資料 神經網路 0 0.2 0.4 0.6 0.8 1 1 2 3 4 5 6 7 8 Value Time X t1特徵 t1~t2特徵 t1~t3特徵 遞歸神經網路適用 於分析時間相依 加深一層,則多記憶 前一狀態資訊
  9. 9. 遞歸神經網路計算 原始資料 資料分佈 修整後資料 9 Time X Y 1 0.5 0 2 1 0.5 3 0.5 1 4 0 0.5 5 0.5 0 6 1 0.5 7 0.5 1 8 0 0.5 0 0.2 0.4 0.6 0.8 1 1 2 3 4 5 6 7 8 Value Time X Y  隨時間變化,X和Y皆為三角形波形  在此例中,X和Y同時存在正相關和負相關,故 一般神經網路無法學會此現象,將全部猜0.5  X和Y部分資料(如Time 1 → 2)為正相關  X和Y部分資料(如Time 2 → 3)為負相關  資料觀察發現X和Y每4個時間單位為一個循環, 可視為2筆資料進行學習 X t1 t2 t3 t4 第1筆 0.5 1 0.5 0 第2筆 0.5 1 0.5 0 Y t1 t2 t3 t4 第1筆 0 0.5 1 0.5 第2筆 0 0.5 1 0.5 輸入資料 輸出資料 由資料觀察可知每4個 時間單位為一個循環 X為0.5時, Y一半為0,另一半為1 故只用「當下」的X值 無法估計Y
  10. 10. 遞歸神經網路計算 輸入資料(X) 估計資料(Y’) 輸出資料(Y) 先前狀態特徵 先前狀態神經元暫存值(更新後) 10 X t1 t2 t3 t4 第1筆 0.5 1 0.5 0 第2筆 0.5 1 0.5 0 Y’ t1 t2 t3 t4 第1筆 0.04 0.51 0.91 0.51 第2筆 0.04 0.51 0.91 0.51 Y t1 t2 t3 t4 第1筆 0 0.5 1 0.5 第2筆 0 0.5 1 0.5  建立具有一隱藏層之遞歸神經網路  隱藏層神經元4個 神經元1 神經元2 神經元3 神經元4 0 0 0 0 YY XX 先前狀態神經元暫存值先前狀態神經元暫存值 2.782 0.5 0.043 1.543 -2.305 -1.952       801.01 952.10305.20 543.10043.00 782.25.0     zSigmoid z 神經元 第1筆t1輸入至遞歸神經網路, 計算神經元1 t1資料 神經元1 神經元2 神經元3 神經元4 0.801 0 0 0 乘上權重後, 再代入S型函數
  11. 11. 遞歸神經網路計算 輸入資料(X) 估計資料(Y’) 輸出資料(Y) 先前狀態特徵 先前狀態神經元暫存值(更新後) 11 X t1 t2 t3 t4 第1筆 0.5 1 0.5 0 第2筆 0.5 1 0.5 0 Y’ t1 t2 t3 t4 第1筆 0.04 0.51 0.91 0.51 第2筆 0.04 0.51 0.91 0.51 Y t1 t2 t3 t4 第1筆 0 0.5 1 0.5 第2筆 0 0.5 1 0.5  建立具有一隱藏層之遞歸神經網路  隱藏層神經元4個 神經元1 神經元2 神經元3 神經元4 0 0 0 0 神經元1 神經元2 神經元3 神經元4 0.801 0.548 0 0 乘上權重後, 再代入S型函數 YY XX 先前狀態神經元暫存值先前狀態神經元暫存值 0.386 0.5 -3.060 0.323 -0.019 0.220       548.02 220.00019.00 323.00060.30 386.05.0     zSigmoid z 神經元 第1筆t1輸入至遞歸神經網路, 計算神經元2 t1資料
  12. 12. 遞歸神經網路計算 輸入資料(X) 估計資料(Y’) 輸出資料(Y) 先前狀態特徵 先前狀態神經元暫存值(更新後) 12 X t1 t2 t3 t4 第1筆 0.5 1 0.5 0 第2筆 0.5 1 0.5 0 Y’ t1 t2 t3 t4 第1筆 0.04 0.51 0.91 0.51 第2筆 0.04 0.51 0.91 0.51 Y t1 t2 t3 t4 第1筆 0 0.5 1 0.5 第2筆 0 0.5 1 0.5  建立具有一隱藏層之遞歸神經網路  隱藏層神經元4個 神經元1 神經元2 神經元3 神經元4 0 0 0 0 神經元1 神經元2 神經元3 神經元4 0.801 0.548 0.484 0 乘上權重後, 再代入S型函數 YY XX 先前狀態神經元暫存值先前狀態神經元暫存值 -0.125 0.5 1.297 1.149 1.461 0.400     484.03 400.00461.10 149.10297.10 125.05.0     zSigmoid z 神經元 第1筆t1輸入至遞歸神經網路, 計算神經元3 t1資料
  13. 13. 遞歸神經網路計算 輸入資料(X) 估計資料(Y’) 輸出資料(Y) 先前狀態特徵 先前狀態神經元暫存值(更新後) 13 X t1 t2 t3 t4 第1筆 0.5 1 0.5 0 第2筆 0.5 1 0.5 0 Y’ t1 t2 t3 t4 第1筆 0.04 0.51 0.91 0.51 第2筆 0.04 0.51 0.91 0.51 Y t1 t2 t3 t4 第1筆 0 0.5 1 0.5 第2筆 0 0.5 1 0.5  建立具有一隱藏層之遞歸神經網路  隱藏層神經元4個 神經元1 神經元2 神經元3 神經元4 0 0 0 0 神經元1 神經元2 神經元3 神經元4 0.801 0.548 0.484 0.542 乘上權重後, 再代入S型函數 YY XX 先前狀態神經元暫存值先前狀態神經元暫存值 0.338 0.5 1.886 1.334 -0.529 0.589     542.04 589.00529.00 334.10886.10 338.05.0     zSigmoid z 神經元 第1筆t1輸入至遞歸神經網路, 計算神經元4 t1資料
  14. 14. 遞歸神經網路計算 輸入資料(X) 估計資料(Y’) 輸出資料(Y) 先前狀態特徵 先前狀態神經元暫存值(更新後) 14 X t1 t2 t3 t4 第1筆 0.5 1 0.5 0 第2筆 0.5 1 0.5 0 Y’ t1 t2 t3 t4 第1筆 0.04 0.51 0.91 0.51 第2筆 0.04 0.51 0.91 0.51 Y t1 t2 t3 t4 第1筆 0 0.5 1 0.5 第2筆 0 0.5 1 0.5  建立具有一隱藏層之遞歸神經網路  隱藏層神經元4個 神經元1 神經元2 神經元3 神經元4 0 0 0 0 神經元1 神經元2 神經元3 神經元4 0.801 0.548 0.484 0.542 乘上權重後, 再代入S型函數 YY XX 先前狀態神經元暫存值先前狀態神經元暫存值 -2.934       04.0' 819.1542.0543.1.4840 752.4548.0934.2801.0    zSigmoidY z 將隱藏層神經元乘上權重和 代入S型函式計算估計資料Y’ -4.752 1.543 1.819 t1資料
  15. 15. 遞歸神經網路計算 輸入資料(X) 估計資料(Y’) 輸出資料(Y) 先前狀態特徵 先前狀態神經元暫存值(更新後) 15 X t1 t2 t3 t4 第1筆 0.5 1 0.5 0 第2筆 0.5 1 0.5 0 Y’ t1 t2 t3 t4 第1筆 0.04 0.51 0.91 0.51 第2筆 0.04 0.51 0.91 0.51 Y t1 t2 t3 t4 第1筆 0 0.5 1 0.5 第2筆 0 0.5 1 0.5  建立具有一隱藏層之遞歸神經網路  隱藏層神經元4個 神經元1 神經元2 神經元3 神經元4 0.801 0.548 0.484 0.542 神經元1 神經元2 神經元3 神經元4 0.801 0.548 0.484 0.542 YY XX 先前狀態神經元暫存值先前狀態神經元暫存值 將隱藏層神經元資料暫存起來 直接複製填入
  16. 16. 遞歸神經網路計算 輸入資料(X) 估計資料(Y’) 輸出資料(Y) 先前狀態特徵 先前狀態神經元暫存值(更新後) 16 X t1 t2 t3 t4 第1筆 0.5 1 0.5 0 第2筆 0.5 1 0.5 0 Y’ t1 t2 t3 t4 第1筆 0.04 0.51 0.91 0.51 第2筆 0.04 0.51 0.91 0.51 Y t1 t2 t3 t4 第1筆 0 0.5 1 0.5 第2筆 0 0.5 1 0.5  建立具有一隱藏層之遞歸神經網路  隱藏層神經元4個 神經元1 神經元2 神經元3 神經元4 0.801 0.548 0.484 0.542 神經元1 神經元2 神經元3 神經元4 0.816 0.548 0.484 0.542 乘上權重後, 再代入S型函數 YY XX 先前狀態神經元暫存值先前狀態神經元暫存值 2.782 1 0.043 1.543 -2.305 -1.952       168.01 952.1.5420305.2.4840 543.1.5480043.0.8010 782.21     zSigmoid z 神經元 第1筆t2輸入至遞歸神經網路, 計算神經元1 t2資料
  17. 17. 遞歸神經網路計算 輸入資料(X) 估計資料(Y’) 輸出資料(Y) 先前狀態特徵 先前狀態神經元暫存值(更新後) 17 X t1 t2 t3 t4 第1筆 0.5 1 0.5 0 第2筆 0.5 1 0.5 0 Y’ t1 t2 t3 t4 第1筆 0.04 0.51 0.91 0.51 第2筆 0.04 0.51 0.91 0.51 Y t1 t2 t3 t4 第1筆 0 0.5 1 0.5 第2筆 0 0.5 1 0.5  建立具有一隱藏層之遞歸神經網路  隱藏層神經元4個 神經元1 神經元2 神經元3 神經元4 0.801 0.548 0.484 0.542 神經元1 神經元2 神經元3 神經元4 0.816 0.145 0.484 0.542 乘上權重後, 再代入S型函數 YY XX 先前狀態神經元暫存值先前狀態神經元暫存值 0.386 1 -3.060 0.323 -0.019 0.220       145.02 220.0.5420019.0.4840 323.0.5480060.3.8010 386.01     zSigmoid z 神經元 第1筆t2輸入至遞歸神經網路, 計算神經元2 t2資料
  18. 18. 遞歸神經網路計算 輸入資料(X) 估計資料(Y’) 輸出資料(Y) 先前狀態特徵 先前狀態神經元暫存值(更新後) 18 X t1 t2 t3 t4 第1筆 0.5 1 0.5 0 第2筆 0.5 1 0.5 0 Y’ t1 t2 t3 t4 第1筆 0.04 0.51 0.91 0.51 第2筆 0.04 0.51 0.91 0.51 Y t1 t2 t3 t4 第1筆 0 0.5 1 0.5 第2筆 0 0.5 1 0.5  建立具有一隱藏層之遞歸神經網路  隱藏層神經元4個 神經元1 神經元2 神經元3 神經元4 0.801 0.548 0.484 0.542 神經元1 神經元2 神經元3 神經元4 0.816 0.145 0.922 0.542 乘上權重後, 再代入S型函數 YY XX 先前狀態神經元暫存值先前狀態神經元暫存值 -0.125 1 1.297 1.149 1.461 0.400     922.03 400.0.5420461.1.4840 149.1.5480297.1.8010 125.01     zSigmoid z 神經元 第1筆t2輸入至遞歸神經網路, 計算神經元3 t2資料
  19. 19. 遞歸神經網路計算 輸入資料(X) 估計資料(Y’) 輸出資料(Y) 先前狀態特徵 先前狀態神經元暫存值(更新後) 19 X t1 t2 t3 t4 第1筆 0.5 1 0.5 0 第2筆 0.5 1 0.5 0 Y’ t1 t2 t3 t4 第1筆 0.04 0.51 0.91 0.51 第2筆 0.04 0.51 0.91 0.51 Y t1 t2 t3 t4 第1筆 0 0.5 1 0.5 第2筆 0 0.5 1 0.5  建立具有一隱藏層之遞歸神經網路  隱藏層神經元4個 神經元1 神經元2 神經元3 神經元4 0.801 0.548 0.484 0.542 神經元1 神經元2 神經元3 神經元4 0.816 0.145 0.922 0.934 乘上權重後, 再代入S型函數 YY XX 先前狀態神經元暫存值先前狀態神經元暫存值 0.338 1 1.886 1.334 -0.529 0.589     934.04 589.0.5420529.0.4840 334.1.5480886.1.8010 338.01     zSigmoid z 神經元 第1筆t2輸入至遞歸神經網路, 計算神經元4 t2資料
  20. 20. 遞歸神經網路計算 輸入資料(X) 估計資料(Y’) 輸出資料(Y) 先前狀態特徵 先前狀態神經元暫存值(更新後) 20 X t1 t2 t3 t4 第1筆 0.5 1 0.5 0 第2筆 0.5 1 0.5 0 Y’ t1 t2 t3 t4 第1筆 0.04 0.51 0.91 0.51 第2筆 0.04 0.51 0.91 0.51 Y t1 t2 t3 t4 第1筆 0 0.5 1 0.5 第2筆 0 0.5 1 0.5  建立具有一隱藏層之遞歸神經網路  隱藏層神經元4個 神經元1 神經元2 神經元3 神經元4 0.801 0.548 0.484 0.542 神經元1 神經元2 神經元3 神經元4 0.816 0.145 0.922 0.934 乘上權重後, 再代入S型函數 YY XX 先前狀態神經元暫存值先前狀態神經元暫存值 -2.934       51.0' 819.1934.0543.1.9220 752.4145.0934.2168.0    zSigmoidY z 將隱藏層神經元乘上權重和 代入S型函式計算估計資料Y’ -4.752 1.543 1.819 t2資料
  21. 21. 遞歸神經網路計算 輸入資料(X) 估計資料(Y’) 輸出資料(Y) 先前狀態特徵 先前狀態神經元暫存值(更新後) 21 X t1 t2 t3 t4 第1筆 0.5 1 0.5 0 第2筆 0.5 1 0.5 0 Y’ t1 t2 t3 t4 第1筆 0.04 0.51 0.91 0.51 第2筆 0.04 0.51 0.91 0.51 Y t1 t2 t3 t4 第1筆 0 0.5 1 0.5 第2筆 0 0.5 1 0.5  建立具有一隱藏層之遞歸神經網路  隱藏層神經元4個 神經元1 神經元2 神經元3 神經元4 0.816 0.145 0.922 0.934 神經元1 神經元2 神經元3 神經元4 0.816 0.145 0.922 0.934 YY XX 先前狀態神經元暫存值先前狀態神經元暫存值 將隱藏層神經元資料暫存起來 直接複製填入
  22. 22.  依此類推,估計t3和t4資料  計算第2筆時將「先前狀態神經元暫存值」 歸0,並估計t1~t4資料遞歸神經網路計算 輸入資料(X) 估計資料(Y’) 輸出資料(Y) 22 X t1 t2 t3 t4 第1筆 0.5 1 0.5 0 第2筆 0.5 1 0.5 0 Y’ t1 t2 t3 t4 第1筆 0.04 0.51 0.91 0.51 第2筆 0.04 0.51 0.91 0.51 Y t1 t2 t3 t4 第1筆 0 0.5 1 0.5 第2筆 0 0.5 1 0.5 0 0.2 0.4 0.6 0.8 1 1 2 3 4 5 6 7 8 Value Time X Y' Y 估計結果  將X輸入至遞歸神經網路後,得到估計值Y’  估計值Y’和真值Y的資料趨勢非常近似  遞歸神經網路可學習依時間變化的趨勢  需先觀察資料變化週期,遞歸神經網路可學習 週期內的資料變化趨勢
  23. 23. 遞歸神經網路最佳化原理 23 x1 h1h0 x2 h2 y w v v uu X H Y W V U 此遞歸神經網路模型採用下列設定: 核心函式:線性函式 目標函式:最小平方誤差 輸入層:2x1大小矩陣 輸出層:1x1大小矩陣
  24. 24. 遞歸神經網路最佳化原理 24 遞歸神經網路模型 最佳化目標函式 2 2 ˆy w h b       21 ˆ, , , 2 F W V U B y y  1 0 1 1h v h u x b     x1 h1h0 x2 h2 y w v v uu b1 b1 b2 2 1 2 1h v h u x b     此遞歸神經網路模型採用下列設定: 核心函式:線性函式 目標函式:最小平方誤差 輸入層:2x1大小矩陣 輸出層:1x1大小矩陣
  25. 25. 函式切線斜率(對 偏微分) 遞歸神經網路最佳化原理 梯度下降法應用於遞歸神經網路之權重和誤差項 25 遞歸神經網路 模型 目標函式 w 修正方式  2 F w w w h w            2 2 2 2 F b b b b           2 2 ˆ ˆ 1 F F y w y w h h                       2 2 1 ˆ, , , 2 1 2 F W V U B y y     w 2 2 ˆ ˆ 1 1 F F y b y b                 2 2 ˆy w h b   1 0 1 1h v h u x b     2 1 2 1h v h u x b     函式切線斜率(對 偏微分)2b 修正方式2b
  26. 26. 遞歸神經網路最佳化原理 梯度下降法應用於遞歸神經網路之權重和誤差項 26 遞歸神經網路 模型 函式切線斜率(對 偏微分) 函式切線斜率(對 偏微分) 目標函式 v u 修正方式 修正方式u  1 0 F v v v w h v h v                 2 1 F u u u w x v x u                      2 2 1 1 1 1 0 1 0 ˆ ˆ 1 1 1 hF F y v y h v v h h v v h w w v v v w h v h w h v h                                                   2 2 1 ˆ, , , 2 1 2 F W V U B y y     v 2 2 ˆy w h b   1 0 1 1h v h u x b     2 1 2 1h v h u x b           2 2 2 1 2 1 2 1 ˆ ˆ 1 1 hF F y u y h u u x v u x w u w x v x w x v x                                    
  27. 27. 遞歸神經網路最佳化原理 梯度下降法應用於遞歸神經網路之權重和誤差項 27 遞歸神經網路 模型 函式切線斜率(對 偏微分) 目標函式 1b 修正方式  1 1 1 1 1 F b b b w v b                     2 1 2 1 1 1 1 ˆ ˆ 1 1 1 1 hF F y b y h b b v b w b w v w v                                     2 2 1 ˆ, , , 2 1 2 F W V U B y y     1b 2 2 ˆy w h b   1 0 1 1h v h u x b     2 1 2 1h v h u x b    
  28. 28. 訓練資料,共3筆資料 Mini-batch大小為1,即逐筆修正權重 遞歸神經網路最佳化原理 28 主要想學順序 權重和誤差項初始值 x1 x2 y 0.1 0.2 0.3 0.2 0.3 0.4 0.3 0.4 0.5 u v b1 w b2 1 1 1 1 1
  29. 29. 遞歸神經網路最佳化原理 29 x1 h1h0 x2 h2 y w v v uu b1 b1 b2 u v b1 w b2 1 1 1 1 1 權重和誤差項修正前 x1 x2 y 0.1 0.2 0.3 2 2 ˆ 1 2.3 1 3.3y w h b               2 2 21 1 1 ˆ, , , 3.3 0.3 3 2 2 2 3 F W V U B y y         1 0 1 1 1 0 1 0.1 1 1.1h v h u x b           2 1 2 1 1 1.1 1 0.2 1 2.3h v h u x b           第1回合,第1筆資料 輸入值和輸出值(真值) h0:0 學習率:0.1
  30. 30. 遞歸神經網路最佳化原理 30 x1 h1h0 x2 h2 y w v v uu b1 b1 b2 u v b1 w b2 1 1 1 1 1 權重和誤差項修正前 權重和誤差項修正後 x1 x2 y 0.1 0.2 0.3    1 1 1 1 0.1 3 1 1 1 0.4b b w v                       2 1 1 0.1 3 1 0.2 1 0.1 0.91u u w x v x                         1 0 1 0.1 3 1 1.1 1 0 0.67v v w h v h                      第1回合,第1筆資料 輸入值和輸出值(真值) u v b1 w b2 0.91 0.67 0.4 0.31 0.7    2 1 0.1 3 2.3 0.31w w h          2 2 1 0.1 3 0.7b b         h0:0 學習率:0.1
  31. 31. 遞歸神經網路最佳化原理 31 x1 h1h0 x2 h2 y w v v uu b1 b1 b2 u v b1 w b2 0.91 0.67 0.4 0.31 0.7 權重和誤差項修正前 x1 x2 y 0.2 0.3 0.4 2 2 ˆ 0.31 1.063 0.7 1.030y w h b               2 2 21 1 1 ˆ, , , 1.030 0.4 0.630 2 2 2 0.630 F W V U B y y         1 0 1 1 0.67 0 0.91 0.2 0.4 0.582h v h u x b           2 1 2 1 0.67 0.582 0.91 0.3 0.4 1.063h v h u x b           第1回合,第2筆資料 輸入值和輸出值(真值) h0:0 學習率:0.1
  32. 32. 遞歸神經網路最佳化原理 32 x1 h1h0 x2 h2 y w v v uu b1 b1 b2 u v b1 w b2 0.91 0.67 0.4 0.31 0.7 權重和誤差項修正前 權重和誤差項修正後 x1 x2 y 0.2 0.3 0.4    1 1 1 0.4 0.1 0.630 0.31 1 0.67 0.367b b w v                       2 1 0.91 0.1 0.630 0.31 0.3 0.67 0.2 0.902u u w x v x                         1 0 0.67 0.1 0.630 0.31 0.582 0.67 0 0.659v v w h v h                      第1回合,第2筆資料 輸入值和輸出值(真值) u v b1 w b2 0.902 0.659 0.367 0.243 0.637    2 0.31 0.1 0.630 1.063 0.243w w h          2 2 0.7 0.1 0.630 0.637b b         h0:0 學習率:0.1
  33. 33. 遞歸神經網路最佳化原理 33 x1 h1h0 x2 h2 y w v v uu b1 b1 b2 u v b1 w b2 0.902 0.659 0.367 0.243 0.637 權重和誤差項修正前 x1 x2 y 0.3 0.4 0.5 2 2 ˆ 0.243 1.148 0.637 0.916y w h b               2 2 21 1 1 ˆ, , , 0.916 0.5 0.416 2 2 2 0.416 F W V U B y y         1 0 1 1 0.659 0 0.902 0.3 0.367 0.638h v h u x b           2 1 2 1 0.659 0.638 0.902 0.4 0.367 1.148h v h u x b           第1回合,第3筆資料 輸入值和輸出值(真值) h0:0 學習率:0.1
  34. 34. 遞歸神經網路最佳化原理 34 x1 h1h0 x2 h2 y w v v uu b1 b1 b2 u v b1 w b2 0.902 0.659 0.367 0.243 0.637 權重和誤差項修正前 權重和誤差項修正後 x1 x2 y 0.3 0.4 0.5    1 1 1 0.367 0.1 0.416 0.243 1 0.659 0.351b b w v                       2 1 0.902 0.1 0.416 0.243 0.4 0.659 0.3 0.895u u w x v x                         1 0 0.659 0.1 0.416 0.243 0.638 0.659 0 0.652v v w h v h                      第1回合,第3筆資料 輸入值和輸出值(真值) u v b1 w b2 0.895 0.652 0.351 0.195 0.595    2 0.243 0.1 0.416 1.148 0.195w w h          2 2 0.637 0.1 0.416 0.595b b         h0:0 學習率:0.1
  35. 35. 遞歸神經網路最佳化原理 35 x1 h1h0 x2 h2 y w v v uu b1 b1 b2 u v b1 w b2 0.895 0.652 0.351 0.195 0.595 權重和誤差項修正前 x1 x2 y 0.1 0.2 0.3 2 2 ˆ 0.195 0.817 0.595 0.755y w h b               2 2 21 1 1 ˆ, , , 0.755 0.3 0.455 2 2 2 0.455 F W V U B y y         1 0 1 1 0.652 0 0.895 0.1 0.351 0.440h v h u x b           2 1 2 1 0.652 0.440 0.895 0.2 0.351 0.817h v h u x b           第2回合,第1筆資料 輸入值和輸出值(真值) h0:0 學習率:0.1
  36. 36. 遞歸神經網路最佳化原理 36 x1 h1h0 x2 h2 y w v v uu b1 b1 b2 u v b1 w b2 0.895 0.652 0.351 0.195 0.595 權重和誤差項修正前 權重和誤差項修正後 x1 x2 y 0.1 0.2 0.3    1 1 1 0.351 0.1 0.455 0.195 1 0.652 0.336b b w v                       2 1 0.895 0.1 0.455 0.195 0.2 0.652 0.1 0.893u u w x v x                         1 0 0.652 0.1 0.455 0.195 0.440 0.652 0 0.648v v w h v h                      第2回合,第1筆資料 輸入值和輸出值(真值) u v b1 w b2 0.893 0.648 0.336 0.158 0.550    2 0.195 0.1 0.455 0.817 0.158w w h          2 2 0.595 0.1 0.455 0.550b b         h0:0 學習率:0.1
  37. 37. 遞歸神經網路最佳化原理 37 x1 h1h0 x2 h2 y w v v uu b1 b1 b2 u v b1 w b2 0.893 0.648 0.336 0.158 0.550 權重和誤差項修正前 x1 x2 y 0.2 0.3 0.4 2 2 ˆ 0.158 0.937 0.55 0.698y w h b               2 2 21 1 1 ˆ, , , 0.698 0.4 0.298 2 2 2 0.298 F W V U B y y         1 0 1 1 0.648 0 0.893 0.2 0.336 0.515h v h u x b           2 1 2 1 0.648 0.515 0.893 0.3 0.336 0.937h v h u x b           第2回合,第2筆資料 輸入值和輸出值(真值) h0:0 學習率:0.1
  38. 38. 遞歸神經網路最佳化原理 38 x1 h1h0 x2 h2 y w v v uu b1 b1 b2 u v b1 w b2 0.893 0.648 0.336 0.158 0.550 權重和誤差項修正前 權重和誤差項修正後 x1 x2 y 0.2 0.3 0.4    1 1 1 0.336 0.1 0.298 0.158 1 0.648 0.328b b w v                       2 1 0.893 0.1 0.298 0.158 0.3 0.648 0.2 0.891u u w x v x                         1 0 0.648 0.1 0.298 0.158 0.515 0.648 0 0.646v v w h v h                      第2回合,第2筆資料 輸入值和輸出值(真值) u v b1 w b2 0.891 0.646 0.328 0.130 0.520    2 0.158 0.1 0.298 0.937 0.130w w h          2 2 0.550 0.1 0.298 0.520b b         h0:0 學習率:0.1
  39. 39. 遞歸神經網路最佳化原理 39 x1 h1h0 x2 h2 y w v v uu b1 b1 b2 u v b1 w b2 0.891 0.646 0.328 0.130 0.520 權重和誤差項修正前 x1 x2 y 0.3 0.4 0.5 2 2 ˆ 0.130 1.070 0.520 0.659y w h b               2 2 21 1 1 ˆ, , , 0.659 0.5 0.159 2 2 2 0.159 F W V U B y y         1 0 1 1 0.646 0 0.891 0.3 0.328 0.596h v h u x b           2 1 2 1 0.646 0.596 0.891 0.4 0.328 1.070h v h u x b           第2回合,第3筆資料 輸入值和輸出值(真值) h0:0 學習率:0.1
  40. 40. 遞歸神經網路最佳化原理 40 x1 h1h0 x2 h2 y w v v uu b1 b1 b2 u v b1 w b2 0.891 0.646 0.328 0.130 0.520 權重和誤差項修正前 權重和誤差項修正後 x1 x2 y 0.3 0.4 0.5    1 1 1 0.328 0.1 0.159 0.130 1 0.646 0.325b b w v                       2 1 0.891 0.1 0.159 0.130 0.4 0.646 0.3 0.890u u w x v x                         1 0 0.646 0.1 0.159 0.130 0.596 0.646 0 0.645v v w h v h                      第2回合,第3筆資料 輸入值和輸出值(真值) u v b1 w b2 0.890 0.645 0.325 0.113 0.504    2 0.130 0.1 0.159 1.070 0.113w w h          2 2 0.520 0.1 0.159 0.504b b         h0:0 學習率:0.1
  41. 41. 遞歸神經網路最佳化原理 41 x1 h1h0 x2 h2 y w v v uu b1 b1 b2 u v b1 w b2 1.069 0.727 0.129 0.542 0.021 權重和誤差項修正前 x1 x2 y 0.3 0.4 0.5 2 2 ˆ 0.542 0.884 0.021 0.5y w h b               2 2 21 1 1 ˆ, , , 0.5 0.5 0 2 2 2 0 F W V U B y y         1 0 1 1 0.727 0 1.069 0.3 0.129 0.450h v h u x b           2 1 2 1 0.727 0.450 1.069 0.4 0.129 0.884h v h u x b           輸入值和輸出值(真值) h0:0 學習率:0.1 依此類推,經過1769回合 第1769回合,第3筆資料
  42. 42. 遞歸神經網路實作 42 遞歸神經網路模型 最佳化目標函式 2 2 ˆy w h b       21 ˆ, , , 2 F W V U B y y  1 0 1 1h v h u x b     x1 h1h0 x2 h2 y w v v uu b1 b1 b2 2 1 2 1h v h u x b     此遞歸神經網路模型採用下列設定: 核心函式:線性函式 目標函式:最小平方誤差 輸入層:2x1大小矩陣 輸出層:1x1大小矩陣
  43. 43. 訓練資料,共3筆資料 Mini-batch大小為1,即逐筆修正權重 遞歸神經網路實作 43 主要想學順序 權重和誤差項初始值 x1 x2 y 0.1 0.2 0.3 0.2 0.3 0.4 0.3 0.4 0.5 u v b1 w b2 1 1 1 1 1
  44. 44. 遞歸神經網路實作 #安裝tensorflow函式庫 install.packages('tensorflow') #安裝keras函式庫 install.packages('keras') 44 使用深度學習套件 「tensorflow」和 「keras」訓練模型
  45. 45. 遞歸神經網路實作 #引用tensorflow函式庫 library(tensorflow) #引用keras函式庫 library(keras) 45 使用深度學習套件 「tensorflow」和 「keras」訓練模型
  46. 46. 遞歸神經網路實作 #讀取訓練資料 X <- read.csv('C:/Users/user/Desktop/ x.csv', header = TRUE) Y <- read.csv('C:/Users/user/Desktop/ y.csv', header = TRUE) #轉換為matrix資料型態 X <- data.matrix(X) X <- array_reshape(X, c(nrow(X), 2, 1)) 46 時間長度為2 每個時間點為1個維度
  47. 47. 遞歸神經網路實作 #設定亂數種子 use_session_with_seed(0) #設定神經網路結構 model <- keras_model_sequential() model %>% layer_simple_rnn(units = 1, activation = "linear", use_bias = TRUE, input_shape =c(2, 1)) %>% layer_dense(units = 1, activation = "linear") 47 設定固定的亂數種子, 讓權重初始值可以一致 輸入參數: 2x1矩陣, 線性函式 輸出層: 輸入參數: 1個, 輸出參數: 1個, 線性函式
  48. 48. 遞歸神經網路實作 #設定神經網路學習目標 model %>% compile( #最小平方誤差 loss=‘mean_squared_error’, #梯度下降 optimizer='sgd' ) 48 學習目標為最小平方誤差 最佳化方法為梯度下降法
  49. 49. 遞歸神經網路實作 #訓練神經網路 history <- model %>% fit( X, #輸入參數 Y, #輸出參數 epochs = 5000, #訓練回合數 batch_size = 1 #逐筆修正權重 ) 49 設定輸出參數為Y 設定輸入參數為X 訓練回合數為500 採用逐筆修正權重的方式
  50. 50. 遞歸神經網路實作 #顯示神經網路權重值 model$get_weights() 50
  51. 51. 遞歸神經網路實作 #將測試資料代入模型進行預測,並取得 預測結果 results <- model %>% predict( X ) #呈現估計結果 print(results) 51 輸入資料進行估計
  52. 52. 遞歸神經網路實作 執行程式,並取得估計結果 52 估計結果 權重組合 x1 h1h0 x2 h2 y -1.009 0.919 -0.515 -0.515 0.919 -0.071 -0.071 0.008
  53. 53. 遞歸神經網路其他型態與應用 多個時間點單一輸出(Sequences to Sequences)─交通預測為例 同一時間點多個輸入─財金預測為例 分類應用─語意辨識為例 53 圖片來源: Andrej Karpathy, “The Unreasonable Effectiveness of Recurrent Neural Networks,” Github, 2015.
  54. 54. 多個時間點單一輸出 54 遞歸神經網路模型 最佳化目標函式 1 1 2 ˆy w h b       2 1 1 1 1 ˆ, , , 2 F W V U B y y  1 0 1 1h v h u x b     2 1 2 1h v h u x b     此遞歸神經網路模型採用下列設定: 核心函式:線性函式 目標函式:最小平方誤差 輸入層:2x1大小矩陣 輸出層:2x1大小矩陣 x1 h1h0 x2 h2 y2 w v v uu b1 b1 b2 y1 w b2 2 2 2 ˆy w h b       2 2 2 2 1 ˆ, , , 2 F W V U B y y 
  55. 55. 函式切線斜率(對 偏微分) 多個時間點單一輸出─交通預測為例 梯度下降法應用於遞歸神經網路之權重和誤差項 55 遞歸神經網路 模型 目標函式 w 1 1 1 1 1 1 1 1 1 1 ˆ ˆ 1 F F y w y w h h                       2 1 1 1 2 1 1 ˆ, , , 2 1 2 F W V U B y y     1 1 1 1 2 1 1 2 1 1 ˆ ˆ 1 1 F F y b y b                 1 1 2 ˆy w h b   1 0 1 1h v h u x b     2 1 2 1h v h u x b     函式切線斜率(對 偏微分)2b 函式切線斜率(對 偏微分) 函式切線斜率(對 偏微分)v u 1 1 1 1 1 1 1 1 1 0 1 0 ˆ ˆ 1 F F y h v y h v w h w h                       1 1 1 1 1 1 1 1 1 1 1 1 ˆ ˆ 1 F F y h u y h u w x w x                      
  56. 56. 多個時間點單一輸出─交通預測為例 梯度下降法應用於遞歸神經網路之權重和誤差項 56 函式切線斜率(對 偏微分)1b 1 1 1 1 1 1 1 1 1 1 1 1 ˆ ˆ 1 1 F F y h b y h b w w                      遞歸神經網路 模型 目標函式     2 1 1 1 2 1 1 ˆ, , , 2 1 2 F W V U B y y     1 1 2 ˆy w h b   1 0 1 1h v h u x b     2 1 2 1h v h u x b    
  57. 57. 函式切線斜率(對 偏微分) 多個時間點單一輸出─交通預測為例 梯度下降法應用於遞歸神經網路之權重和誤差項 57 遞歸神經網路 模型 目標函式 w 修正方式 1 2 1 1 2 2 2 2 F F h hw ww w w                          1 2 2 2 1 2 2 2 2 2 2 F F b b b b b                           2 2 2 2 2 2 2 2 2 2 ˆ ˆ 1 F F y w y w h h                       2 2 2 2 2 2 1 ˆ, , , 2 1 2 F W V U B y y     w 2 2 2 2 2 2 2 2 2 2 ˆ ˆ 1 1 F F y b y b                 2 2 2 ˆy w h b   1 0 1 1h v h u x b     2 1 2 1h v h u x b     函式切線斜率(對 偏微分)2b 修正方式2b
  58. 58. 多個時間點單一輸出─交通預測為例 梯度下降法應用於遞歸神經網路之權重和誤差項 58 函式切線斜率(對 偏微分) 函式切線斜率(對 偏微分)v u 修正方式 修正方式u     1 2 1 0 2 1 0 + 2 + 2 F F v vv v w h w h v h v                                1 2 1 1 2 2 1 + 2 + 2 F F u uu u w x w x v x u                                  2 2 2 2 2 2 2 2 1 1 1 2 2 2 1 0 2 1 0 ˆ ˆ 1 1 1 F F y h v y h v v h h v v h w w v v v w h v h w h v h                                                v       2 2 2 2 2 2 2 2 2 1 2 2 2 1 2 1 ˆ ˆ 1 1 F F y h u y h u u x v u x w u w x v x w x v x                                      遞歸神經網路 模型 目標函式     2 2 2 2 2 2 1 ˆ, , , 2 1 2 F W V U B y y     2 2 2 ˆy w h b   1 0 1 1h v h u x b     2 1 2 1h v h u x b    
  59. 59. 多個時間點單一輸出─交通預測為例 梯度下降法應用於遞歸神經網路之權重和誤差項 59 函式切線斜率(對 偏微分)1b 修正方式     1 2 1 21 1 1 1 1 1 2 2 F F w w vb b b b b                                    2 2 2 2 2 1 2 2 2 1 1 1 2 1 2 2 ˆ ˆ 1 1 1 1 F F y h b y h b b v b w b w v w v                                  1b 遞歸神經網路 模型 目標函式     2 2 2 2 2 2 1 ˆ, , , 2 1 2 F W V U B y y     2 2 2 ˆy w h b   1 0 1 1h v h u x b     2 1 2 1h v h u x b    
  60. 60. 多個時間點單一輸出─交通預測為例 資料來源:國道1號北上方向42公里處車輛偵測器 輸入資料 ◦ 取前兩個時段資料作為輸入 ◦ 例如:00:00車速和00:05車速 60 時間 車速(公里/小時) 970203 00:00 88 970203 00:05 89 970203 00:10 87 … … 970204 00:00 88 輸出資料 ◦ 取後兩個時段資料作為輸出 ◦ 例如:00:10車速和00:15車速 x1 x2 88 89 89 87 87 81 … … 90 90 y1 y2 87 81 81 88 88 84 … … 90 88
  61. 61. 多個時間點單一輸出─交通預測為例 #安裝tensorflow函式庫 install.packages('tensorflow') #安裝keras函式庫 install.packages('keras') 61 使用深度學習套件 「tensorflow」和 「keras」訓練模型
  62. 62. 多個時間點單一輸出─交通預測為例 #引用tensorflow函式庫 library(tensorflow) #引用keras函式庫 library(keras) 62 使用深度學習套件 「tensorflow」和 「keras」訓練模型
  63. 63. 多個時間點單一輸出─交通預測為例 #讀取訓練資料 X <- read.csv('C:/Users/user/Desktop/ x.csv', header = TRUE) Y <- read.csv('C:/Users/user/Desktop/ y.csv', header = TRUE) #正規化 X <- X / 100 Y <- Y / 100 63
  64. 64. 多個時間點單一輸出─交通預測為例 #轉換為matrix資料型態 X <- data.matrix(X) X <- array_reshape(X, c(nrow(X), 2, 1)) Y <- data.matrix(Y) Y <- array_reshape(Y, c(nrow(Y), 2, 1)) 64 時間長度為2 每個時間點為1個維度
  65. 65. 多個時間點單一輸出─交通預測為例 #設定亂數種子 use_session_with_seed(0) #設定神經網路結構 model <- keras_model_sequential() model %>% layer_simple_rnn(units = 1, activation = "linear", return_sequences = TRUE, use_bias = TRUE, input_shape =c(2, 1)) %>% layer_dense(units = 1, activation = "linear") 65 設定固定的亂數種子, 讓權重初始值可以一致 輸入參數: 2x1矩陣, 線性函式 輸出層: 輸入參數: 1個, 輸出參數: 1個, 線性函式 設定 return_sequences = TRUE
  66. 66. 多個時間點單一輸出─交通預測為例 #設定神經網路學習目標 model %>% compile( #最小平方誤差 loss=‘mean_squared_error’, #梯度下降 optimizer='sgd' ) 66 學習目標為最小平方誤差 最佳化方法為梯度下降法
  67. 67. 多個時間點單一輸出─交通預測為例 #訓練神經網路 history <- model %>% fit( X, #輸入參數 Y, #輸出參數 epochs = 500, #訓練回合數 batch_size = 1 #逐筆修正權重 ) 67 設定輸出參數為Y 設定輸入參數為X 訓練回合數為500 採用逐筆修正權重的方式
  68. 68. 多個時間點單一輸出─交通預測為例 #顯示神經網路權重值 model$get_weights() #將測試資料代入模型進行預測,並取得 預測結果 results <- model %>% predict( X ) #呈現估計結果 print(results) 68 輸入資料進行估計
  69. 69. 多個時間點單一輸出─交通預測為例 執行程式,並取得估計結果 69 估計結果 權重組合 x1 h1h0 x2 h2 y2 0.646 -0.513 y1 -1.004 平均絕對誤差百分比3.48% -0.513 0.646 0.429 0.429 -1.004 0.842 0.842
  70. 70. 同一時間點多個輸入 70 遞歸神經網路模型 最佳化目標函式 2 2 ˆy w h b       21 ˆ, , , 2 F W V U B y y  1 0 1 1,1 2 1,2 1h v h u x u x b       2 1 1 2,1 2 2,2 1h v h u x u x b       此遞歸神經網路模型採用下列設定: 核心函式:線性函式 目標函式:最小平方誤差 輸入層:2x2大小矩陣 輸出層:1x1大小矩陣 h1h0 h2 y w v v u1 b1 b1 b2 u2 u1 u2 x1,1 x1,2 x2,2x2,1
  71. 71. 函式切線斜率(對 偏微分) 同一時間點多個輸入─財金預測為例 梯度下降法應用於遞歸神經網路之權重和誤差項 71 遞歸神經網路 模型 目標函式 w 修正方式  2 F w w w h w            2 2 2 2 F b b b b           2 2 ˆ ˆ 1 F F y w y w h h                       2 2 1 ˆ, , , 2 1 2 F W V U B y y     w 2 2 ˆ ˆ 1 1 F F y b y b                 2 2 ˆy w h b   1 0 1 1,1 2 1,2 1h v h u x u x b       2 1 1 2,1 2 2,2 1h v h u x u x b       函式切線斜率(對 偏微分)2b 修正方式2b
  72. 72. 函式切線斜率(對 偏微分) 同一時間點多個輸入─財金預測為例 梯度下降法應用於遞歸神經網路之權重和誤差項 72 函式切線斜率(對 偏微分) 2u 修正方式 修正方式2u  2 2 2 2,2 1,2 2 F u u u w x v x u                      2 2 2 2 2 2,2 2 1,2 2 2,2 1,2 2,2 1,2 ˆ ˆ 1 1 hF F y u y h u u x v u x w u w x v x w x v x                                     遞歸神經網路 模型 目標函式 2 2 ˆy w h b   1 0 1 1,1 2 1,2 1h v h u x u x b       2 1 1 2,1 2 2,2 1h v h u x u x b       1u 1u  1 1 1 2,1 1,1 1 F u u u w x v x u                      2 1 2 1 1 2,1 1 1,1 1 2,1 1,1 2,1 1,1 ˆ ˆ 1 1 hF F y u y h u u x v u x w u w x v x w x v x                                         2 2 1 ˆ, , , 2 1 2 F W V U B y y    
  73. 73. 同一時間點多個輸入─財金預測為例 梯度下降法應用於遞歸神經網路之權重和誤差項 73 函式切線斜率(對 偏微分) 函式切線斜率(對 偏微分)v 1b 修正方式 修正方式1b  1 0 F v v v w h v h v                      2 2 1 1 1 1 0 1 0 ˆ ˆ 1 1 1 hF F y v y h v v h h v v h w w v v v w h v h w h v h                                               v 遞歸神經網路 模型 目標函式 2 2 ˆy w h b   1 0 1 1,1 2 1,2 1h v h u x u x b       2 1 1 2,1 2 2,2 1h v h u x u x b           2 2 1 ˆ, , , 2 1 2 F W V U B y y      1 1 1 1 1 F b b b w v b                     2 1 2 1 1 1 1 ˆ ˆ 1 1 1 1 hF F y b y h b b v b w b w v w v                                
  74. 74. 同一時間點多個輸入─財金預測為例 資料來源:國道1號北上方向42公里處車輛偵測器 輸入資料 ◦ 取前兩個月股價作為輸入 ◦ 例如:01月和02月中華電信與遠傳電信股價 74 時間 中華電信股價 遠傳電信股價 2017年01月 102.3 73.36 2017年02月 100.84 72.72 2017年03月 103.73 74.77 … … … 2017年12月 104.82 71.72 x1,1 x1,2 x2,1 x2,2 102.3 73.36 100.84 72.72 100.84 72.72 103.73 74.77 103.73 74.77 103.19 74.92 … … 103.05 71.99 103 71.32 y 103.73 103.19 105.39 … 104.82 輸出資料 ◦ 取下個月股價作為輸出 ◦ 例如:03月中華電信股價
  75. 75. 同一時間點多個輸入─財金預測為例 #安裝tensorflow函式庫 install.packages('tensorflow') #安裝keras函式庫 install.packages('keras') 75 使用深度學習套件 「tensorflow」和 「keras」訓練模型
  76. 76. 同一時間點多個輸入─財金預測為例 #引用tensorflow函式庫 library(tensorflow) #引用keras函式庫 library(keras) 76 使用深度學習套件 「tensorflow」和 「keras」訓練模型
  77. 77. 同一時間點多個輸入─財金預測為例 #讀取訓練資料 X <- read.csv('C:/Users/user/Desktop/ x.csv', header = TRUE) Y <- read.csv('C:/Users/user/Desktop/ y.csv', header = TRUE) #正規化 X <- X / 100 Y <- Y / 100 77
  78. 78. 同一時間點多個輸入─財金預測為例 #轉換為matrix資料型態 X <- data.matrix(X) X <- array_reshape(X, c(nrow(X), 2, 2)) 78 時間長度為2 每個時間點為2個維度
  79. 79. 同一時間點多個輸入─財金預測為例 #設定亂數種子 use_session_with_seed(0) #設定神經網路結構 model <- keras_model_sequential() model %>% layer_simple_rnn(units = 1, activation = "linear", use_bias = TRUE, input_shape =c(2, 2)) %>% layer_dense(units = 1, activation = "linear") 79 設定固定的亂數種子, 讓權重初始值可以一致 輸入參數: 2x2矩陣, 線性函式 輸出層: 輸入參數: 1個, 輸出參數: 1個, 線性函式
  80. 80. 同一時間點多個輸入─財金預測為例 #設定神經網路學習目標 model %>% compile( #最小平方誤差 loss=‘mean_squared_error’, #梯度下降 optimizer='sgd' ) 80 學習目標為最小平方誤差 最佳化方法為梯度下降法
  81. 81. 同一時間點多個輸入─財金預測為例 #訓練神經網路 history <- model %>% fit( X, #輸入參數 Y, #輸出參數 epochs = 500, #訓練回合數 batch_size = 1 #逐筆修正權重 ) 81 設定輸出參數為Y 設定輸入參數為X 訓練回合數為500 採用逐筆修正權重的方式
  82. 82. 同一時間點多個輸入─財金預測為例 #顯示神經網路權重值 model$get_weights() #將測試資料代入模型進行預測,並取得 預測結果 results <- model %>% predict( X ) #呈現估計結果 print(results) 82 輸入資料進行估計
  83. 83. 執行程式,並取得估計結果 h1h0 h2 y -1.147 0.989 -0.533 x1,1 x1,2 x2,2x2,1 同一時間點多個輸入─財金預測為例 83 估計結果 權重組合 平均絕對誤差百分比1.26% 0.318 0.318 -0.533 0.989 -0.300 -0.300 0.131
  84. 84. 分類應用 84 遞歸神經網路模型 最佳化目標函式 1 3 2,1 ˆy w h b   1 0 1 1,1 2 1,2 1h v h u x u x b       2 1 1 2,1 2 2,2 1h v h u x u x b       此遞歸神經網路模型採用下列設定: 核心函式:線性函式 目標函式:交叉熵(Cross-Entropy) 輸入層:3x2大小矩陣 輸出層:1x2大小矩陣           2 1 , , , ˆ ˆln 1 ln 1i i i i i F W V U B y y y y          3 2 1 3,1 2 3,2 1h v h u x u x b       2 3 2,2 ˆy w h b   h1h0 h2 y1 v v u1 b1 b1 u2 u1 u2 x1,1 x1,2 x2,2x2,1 h3 y2 w2 v b1 u1 u2 x3,2x3,1 w1 b2,1 b2,2
  85. 85. 函式切線斜率(對 偏微分) 分類應用─語意辨識為例 梯度下降法應用於遞歸神經網路之權重和誤差項 85 遞歸神經網路模型 目標函式 w 修正方式     1 1 2 2 3 1 1 2 2 ˆ ˆ ˆ ˆ ˆ ˆ1 1 F w w w y y y y w h y y y y                    2, 2, 2, 2, ˆ ˆ ˆ1 i i i i i i i i y yF b b b b y y                   1 2 1 2 1 1 2 2 3 3 1 1 2 2 1 1 2 2 3 1 1 2 2 ˆ ˆ ˆ ˆ ˆ ˆ ˆ ˆ ˆ ˆ1 1 ˆ ˆ ˆ ˆ ˆ ˆ1 1 y yF F F w y w y w y y y y h h y y y y y y y y h y y y y                              w 函式切線斜率(對 偏微分)2,ib 修正方式 1 3 2,1 ˆy w h b   1 0 1 1,1 2 1,2 1h v h u x u x b       2 1 1 2,1 2 2,2 1h v h u x u x b       3 2 1 3,1 2 3,2 1h v h u x u x b       2 3 2,2 ˆy w h b             2 1 , , , ˆ ˆln 1 ln 1i i i i i F W V U B y y y y              1 2 2, 1 2, 2 2, ˆ ˆ ˆ ˆ ˆ 1 ˆ ˆ1 ˆ ˆ ˆ1 i i i i i i i i i i i y yF F F b y b y b y y y y y y y y                   2,ib
  86. 86. 分類應用─語意辨識為例 原始資料 輸入資料 86 時間點1文字 時間點2文字 時間點3文字 第1筆 好 (空白) (空白) 第2筆 棒 (空白) (空白) 第3筆 好 棒 (空白) 第4筆 好 棒 棒 字詞編碼 分類編碼 輸出資料 字詞編碼 xt,1 xt,2 好 1 0 棒 0 1 (空白) 0 0 x1,1 x1,2 x2,1 x2,2 x3,1 x3,2 第1筆 1 0 0 0 0 0 第2筆 0 1 0 0 0 0 第3筆 1 0 0 1 0 0 第4筆 1 0 0 1 0 1 y1 y2 第1筆 1 0 第2筆 1 0 第3筆 1 0 第4筆 0 1 分類編碼 y1 y2 正面語意 1 0 負面語意 0 1
  87. 87. 分類應用─語意辨識為例 #安裝tensorflow函式庫 install.packages('tensorflow') #安裝keras函式庫 install.packages('keras') 87 使用深度學習套件 「tensorflow」和 「keras」訓練模型
  88. 88. 分類應用─語意辨識為例 #引用tensorflow函式庫 library(tensorflow) #引用keras函式庫 library(keras) 88 使用深度學習套件 「tensorflow」和 「keras」訓練模型
  89. 89. 分類應用─語意辨識為例 #讀取訓練資料 X <- read.csv('C:/Users/user/Desktop/ x.csv', header = TRUE) Y <- read.csv('C:/Users/user/Desktop/ y.csv', header = TRUE) #轉換為matrix資料型態 X <- data.matrix(X) X <- array_reshape(X, c(nrow(X), 3, 2)) 89 時間長度為3 每個時間點為2個維度
  90. 90. 分類應用─語意辨識為例 #設定亂數種子 use_session_with_seed(0) #設定神經網路結構 model <- keras_model_sequential() model %>% layer_simple_rnn(units = 1, activation = "linear", use_bias = TRUE, input_shape =c(3, 2)) %>% layer_dense(units = 2, activation = "softmax") 90 設定固定的亂數種子, 讓權重初始值可以一致 輸入參數: 3x2矩陣, 線性函式 輸出層: 輸入參數: 1個, 輸出參數: 2個, Softmax函式
  91. 91. 分類應用─語意辨識為例 #設定神經網路學習目標 model %>% compile( loss='categorical_crossentropy', #運用 cross entropy計算誤差 optimizer='sgd' #梯度下降 ) 91 loss函式為交叉熵categorical_crossentropy
  92. 92. 分類應用─語意辨識為例 #訓練神經網路 history <- model %>% fit( X, #輸入參數 Y, #輸出參數 epochs = 500, #訓練回合數 batch_size = 1 #逐筆修正權重 ) 92 設定輸出參數為Y 設定輸入參數為X 訓練回合數為500 採用逐筆修正權重的方式
  93. 93. 分類應用─語意辨識為例 #顯示神經網路權重值 model$get_weights() #將測試資料代入模型進行預測,並取得 預測結果 results <- model %>% predict( X ) #呈現估計結果 print(results) 93 輸入資料進行估計
  94. 94. 分類應用─語意辨識為例 94 估計結果 權重組合 正確率 h1h0 h2 y1 0.656 x1,1 x1,2 x2,2x2,1 h3 y2 x3,2x3,1 0.656 0.6561.906 1.906 1.906 1.022 1.022 1.022 -1.139 -1.139 -1.139 -1.775 1.789 0.163 -0.163
  • jd91hwacuk

    Aug. 11, 2018
  • YenhoTseng

    Jul. 13, 2018
  • fuevaco

    Jun. 22, 2018
  • wenh123

    Jun. 22, 2018

人工智慧11_遞歸神經網路

Vistos

Vistos totais

834

No Slideshare

0

De incorporações

0

Número de incorporações

3

Ações

Baixados

0

Compartilhados

0

Comentários

0

Curtir

4

×