SlideShare ist ein Scribd-Unternehmen logo
1 von 94
人工智慧
教師:陳志華博士
報告大綱-遞歸神經網路
遞歸神經網路介紹
遞歸神經網路計算
遞歸神經網路最佳化原理
遞歸神經網路實作
遞歸神經網路其他型態與應用
◦ 多個時間點單一輸出(Sequences to Sequences)─交通預測為例
◦ 同一時間點多個輸入─財金預測為例
◦ 分類應用─語意辨識為例
2
遞歸神經網路介紹
原始資料
資料分佈 修整後資料
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
遞歸神經網路介紹
輸入資料(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
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
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
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
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
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
遞歸神經網路計算
輸入資料(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型函數
遞歸神經網路計算
輸入資料(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資料
遞歸神經網路計算
輸入資料(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資料
遞歸神經網路計算
輸入資料(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資料
遞歸神經網路計算
輸入資料(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資料
遞歸神經網路計算
輸入資料(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
先前狀態神經元暫存值先前狀態神經元暫存值
將隱藏層神經元資料暫存起來
直接複製填入
遞歸神經網路計算
輸入資料(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資料
遞歸神經網路計算
輸入資料(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資料
遞歸神經網路計算
輸入資料(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資料
遞歸神經網路計算
輸入資料(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資料
遞歸神經網路計算
輸入資料(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資料
遞歸神經網路計算
輸入資料(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
先前狀態神經元暫存值先前狀態神經元暫存值
將隱藏層神經元資料暫存起來
直接複製填入
 依此類推,估計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
x1
h1h0
x2
h2
y
w
v v
uu
X
H
Y
W
V
U
此遞歸神經網路模型採用下列設定:
核心函式:線性函式
目標函式:最小平方誤差
輸入層:2x1大小矩陣
輸出層:1x1大小矩陣
遞歸神經網路最佳化原理
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
遞歸神經網路
模型
目標函式
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
遞歸神經網路
模型
函式切線斜率(對 偏微分) 函式切線斜率(對 偏微分)
目標函式
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
遞歸神經網路
模型
函式切線斜率(對 偏微分)
目標函式
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    
訓練資料,共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
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
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
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
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
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
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
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
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
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
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
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
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
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
遞歸神經網路模型
最佳化目標函式
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大小矩陣
訓練資料,共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
遞歸神經網路實作
#安裝tensorflow函式庫
install.packages('tensorflow')
#安裝keras函式庫
install.packages('keras')
44
使用深度學習套件
「tensorflow」和
「keras」訓練模型
遞歸神經網路實作
#引用tensorflow函式庫
library(tensorflow)
#引用keras函式庫
library(keras)
45
使用深度學習套件
「tensorflow」和
「keras」訓練模型
遞歸神經網路實作
#讀取訓練資料
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個維度
遞歸神經網路實作
#設定亂數種子
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個, 線性函式
遞歸神經網路實作
#設定神經網路學習目標
model %>% compile(
#最小平方誤差
loss=‘mean_squared_error’,
#梯度下降
optimizer='sgd'
)
48
學習目標為最小平方誤差
最佳化方法為梯度下降法
遞歸神經網路實作
#訓練神經網路
history <- model %>% fit(
X, #輸入參數
Y, #輸出參數
epochs = 5000, #訓練回合數
batch_size = 1 #逐筆修正權重
)
49
設定輸出參數為Y
設定輸入參數為X
訓練回合數為500
採用逐筆修正權重的方式
遞歸神經網路實作
#顯示神經網路權重值
model$get_weights()
50
遞歸神經網路實作
#將測試資料代入模型進行預測,並取得
預測結果
results <- model %>% predict(
X
)
#呈現估計結果
print(results)
51
輸入資料進行估計
遞歸神經網路實作
執行程式,並取得估計結果
52
估計結果
權重組合
x1
h1h0
x2
h2
y
-1.009
0.919
-0.515 -0.515
0.919
-0.071 -0.071
0.008
遞歸神經網路其他型態與應用
多個時間點單一輸出(Sequences to Sequences)─交通預測為例
同一時間點多個輸入─財金預測為例
分類應用─語意辨識為例
53
圖片來源: Andrej Karpathy, “The Unreasonable Effectiveness of Recurrent Neural Networks,” Github, 2015.
多個時間點單一輸出
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
遞歸神經網路
模型
目標函式
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
函式切線斜率(對 偏微分)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
遞歸神經網路
模型
目標函式
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
函式切線斜率(對 偏微分) 函式切線斜率(對 偏微分)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
函式切線斜率(對 偏微分)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    
多個時間點單一輸出─交通預測為例
資料來源:國道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
多個時間點單一輸出─交通預測為例
#安裝tensorflow函式庫
install.packages('tensorflow')
#安裝keras函式庫
install.packages('keras')
61
使用深度學習套件
「tensorflow」和
「keras」訓練模型
多個時間點單一輸出─交通預測為例
#引用tensorflow函式庫
library(tensorflow)
#引用keras函式庫
library(keras)
62
使用深度學習套件
「tensorflow」和
「keras」訓練模型
多個時間點單一輸出─交通預測為例
#讀取訓練資料
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
多個時間點單一輸出─交通預測為例
#轉換為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個維度
多個時間點單一輸出─交通預測為例
#設定亂數種子
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
多個時間點單一輸出─交通預測為例
#設定神經網路學習目標
model %>% compile(
#最小平方誤差
loss=‘mean_squared_error’,
#梯度下降
optimizer='sgd'
)
66
學習目標為最小平方誤差
最佳化方法為梯度下降法
多個時間點單一輸出─交通預測為例
#訓練神經網路
history <- model %>% fit(
X, #輸入參數
Y, #輸出參數
epochs = 500, #訓練回合數
batch_size = 1 #逐筆修正權重
)
67
設定輸出參數為Y
設定輸入參數為X
訓練回合數為500
採用逐筆修正權重的方式
多個時間點單一輸出─交通預測為例
#顯示神經網路權重值
model$get_weights()
#將測試資料代入模型進行預測,並取得
預測結果
results <- model %>% predict(
X
)
#呈現估計結果
print(results)
68
輸入資料進行估計
多個時間點單一輸出─交通預測為例
執行程式,並取得估計結果
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
遞歸神經網路模型
最佳化目標函式
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
遞歸神經網路
模型
目標函式
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
函式切線斜率(對 偏微分) 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
函式切線斜率(對 偏微分) 函式切線斜率(對 偏微分)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



 
   

    
  
   

        
同一時間點多個輸入─財金預測為例
資料來源:國道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月中華電信股價
同一時間點多個輸入─財金預測為例
#安裝tensorflow函式庫
install.packages('tensorflow')
#安裝keras函式庫
install.packages('keras')
75
使用深度學習套件
「tensorflow」和
「keras」訓練模型
同一時間點多個輸入─財金預測為例
#引用tensorflow函式庫
library(tensorflow)
#引用keras函式庫
library(keras)
76
使用深度學習套件
「tensorflow」和
「keras」訓練模型
同一時間點多個輸入─財金預測為例
#讀取訓練資料
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
同一時間點多個輸入─財金預測為例
#轉換為matrix資料型態
X <- data.matrix(X)
X <- array_reshape(X, c(nrow(X), 2, 2))
78
時間長度為2
每個時間點為2個維度
同一時間點多個輸入─財金預測為例
#設定亂數種子
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個, 線性函式
同一時間點多個輸入─財金預測為例
#設定神經網路學習目標
model %>% compile(
#最小平方誤差
loss=‘mean_squared_error’,
#梯度下降
optimizer='sgd'
)
80
學習目標為最小平方誤差
最佳化方法為梯度下降法
同一時間點多個輸入─財金預測為例
#訓練神經網路
history <- model %>% fit(
X, #輸入參數
Y, #輸出參數
epochs = 500, #訓練回合數
batch_size = 1 #逐筆修正權重
)
81
設定輸出參數為Y
設定輸入參數為X
訓練回合數為500
採用逐筆修正權重的方式
同一時間點多個輸入─財金預測為例
#顯示神經網路權重值
model$get_weights()
#將測試資料代入模型進行預測,並取得
預測結果
results <- model %>% predict(
X
)
#呈現估計結果
print(results)
82
輸入資料進行估計
執行程式,並取得估計結果
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
遞歸神經網路模型
最佳化目標函式
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
遞歸神經網路模型
目標函式
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
時間點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
分類應用─語意辨識為例
#安裝tensorflow函式庫
install.packages('tensorflow')
#安裝keras函式庫
install.packages('keras')
87
使用深度學習套件
「tensorflow」和
「keras」訓練模型
分類應用─語意辨識為例
#引用tensorflow函式庫
library(tensorflow)
#引用keras函式庫
library(keras)
88
使用深度學習套件
「tensorflow」和
「keras」訓練模型
分類應用─語意辨識為例
#讀取訓練資料
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個維度
分類應用─語意辨識為例
#設定亂數種子
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函式
分類應用─語意辨識為例
#設定神經網路學習目標
model %>% compile(
loss='categorical_crossentropy', #運用
cross entropy計算誤差
optimizer='sgd' #梯度下降
)
91
loss函式為交叉熵categorical_crossentropy
分類應用─語意辨識為例
#訓練神經網路
history <- model %>% fit(
X, #輸入參數
Y, #輸出參數
epochs = 500, #訓練回合數
batch_size = 1 #逐筆修正權重
)
92
設定輸出參數為Y
設定輸入參數為X
訓練回合數為500
採用逐筆修正權重的方式
分類應用─語意辨識為例
#顯示神經網路權重值
model$get_weights()
#將測試資料代入模型進行預測,並取得
預測結果
results <- model %>% predict(
X
)
#呈現估計結果
print(results)
93
輸入資料進行估計
分類應用─語意辨識為例
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

Weitere ähnliche Inhalte

Was ist angesagt?

人工智慧10_卷積神經網路
人工智慧10_卷積神經網路人工智慧10_卷積神經網路
人工智慧10_卷積神經網路Fuzhou University
 
神經網路(Python+TensorFlow+Keras)
神經網路(Python+TensorFlow+Keras)神經網路(Python+TensorFlow+Keras)
神經網路(Python+TensorFlow+Keras)Fuzhou University
 
我对后端优化的一点想法.pptx
我对后端优化的一点想法.pptx我对后端优化的一点想法.pptx
我对后端优化的一点想法.pptxjames tong
 
基于Innodb开发的最佳实践
基于Innodb开发的最佳实践基于Innodb开发的最佳实践
基于Innodb开发的最佳实践wubx
 
Convolutional Neural Networks (CNN) — 卷積神經網路的前世今生
Convolutional Neural Networks (CNN) — 卷積神經網路的前世今生Convolutional Neural Networks (CNN) — 卷積神經網路的前世今生
Convolutional Neural Networks (CNN) — 卷積神經網路的前世今生Jason Tsai
 
【Maclean liu技术分享】深入理解oracle中mutex的内部原理
【Maclean liu技术分享】深入理解oracle中mutex的内部原理【Maclean liu技术分享】深入理解oracle中mutex的内部原理
【Maclean liu技术分享】深入理解oracle中mutex的内部原理maclean liu
 
Convolutional Neural Networks (CNN) — 卷積神經網路的前世今生
Convolutional Neural Networks (CNN) — 卷積神經網路的前世今生Convolutional Neural Networks (CNN) — 卷積神經網路的前世今生
Convolutional Neural Networks (CNN) — 卷積神經網路的前世今生Jason Tsai
 
以深度學習加速語音及影像辨識應用發展
以深度學習加速語音及影像辨識應用發展以深度學習加速語音及影像辨識應用發展
以深度學習加速語音及影像辨識應用發展NVIDIA Taiwan
 

Was ist angesagt? (10)

人工智慧10_卷積神經網路
人工智慧10_卷積神經網路人工智慧10_卷積神經網路
人工智慧10_卷積神經網路
 
人工智慧08_神經網路
人工智慧08_神經網路人工智慧08_神經網路
人工智慧08_神經網路
 
深度學習方法與實作
深度學習方法與實作深度學習方法與實作
深度學習方法與實作
 
神經網路(Python+TensorFlow+Keras)
神經網路(Python+TensorFlow+Keras)神經網路(Python+TensorFlow+Keras)
神經網路(Python+TensorFlow+Keras)
 
我对后端优化的一点想法.pptx
我对后端优化的一点想法.pptx我对后端优化的一点想法.pptx
我对后端优化的一点想法.pptx
 
基于Innodb开发的最佳实践
基于Innodb开发的最佳实践基于Innodb开发的最佳实践
基于Innodb开发的最佳实践
 
Convolutional Neural Networks (CNN) — 卷積神經網路的前世今生
Convolutional Neural Networks (CNN) — 卷積神經網路的前世今生Convolutional Neural Networks (CNN) — 卷積神經網路的前世今生
Convolutional Neural Networks (CNN) — 卷積神經網路的前世今生
 
【Maclean liu技术分享】深入理解oracle中mutex的内部原理
【Maclean liu技术分享】深入理解oracle中mutex的内部原理【Maclean liu技术分享】深入理解oracle中mutex的内部原理
【Maclean liu技术分享】深入理解oracle中mutex的内部原理
 
Convolutional Neural Networks (CNN) — 卷積神經網路的前世今生
Convolutional Neural Networks (CNN) — 卷積神經網路的前世今生Convolutional Neural Networks (CNN) — 卷積神經網路的前世今生
Convolutional Neural Networks (CNN) — 卷積神經網路的前世今生
 
以深度學習加速語音及影像辨識應用發展
以深度學習加速語音及影像辨識應用發展以深度學習加速語音及影像辨識應用發展
以深度學習加速語音及影像辨識應用發展
 

Mehr von Fuzhou University

多媒體系統10_3D繪圖軟體Blender
多媒體系統10_3D繪圖軟體Blender多媒體系統10_3D繪圖軟體Blender
多媒體系統10_3D繪圖軟體BlenderFuzhou University
 
多媒體系統09_3D互動擴增實境
多媒體系統09_3D互動擴增實境多媒體系統09_3D互動擴增實境
多媒體系統09_3D互動擴增實境Fuzhou University
 
多媒體系統08_Inkscape繪製圖形與漸層
多媒體系統08_Inkscape繪製圖形與漸層多媒體系統08_Inkscape繪製圖形與漸層
多媒體系統08_Inkscape繪製圖形與漸層Fuzhou University
 
機器學習工具_微軟Azure Machine Learning Studio
機器學習工具_微軟Azure Machine Learning Studio機器學習工具_微軟Azure Machine Learning Studio
機器學習工具_微軟Azure Machine Learning StudioFuzhou University
 
論文導讀01_k個最近鄰居(行動定位)
論文導讀01_k個最近鄰居(行動定位)論文導讀01_k個最近鄰居(行動定位)
論文導讀01_k個最近鄰居(行動定位)Fuzhou University
 
多媒體系統02_影像處理原理與技術
多媒體系統02_影像處理原理與技術多媒體系統02_影像處理原理與技術
多媒體系統02_影像處理原理與技術Fuzhou University
 
多媒體系統07_Android App影音互動擴增實境
多媒體系統07_Android App影音互動擴增實境多媒體系統07_Android App影音互動擴增實境
多媒體系統07_Android App影音互動擴增實境Fuzhou University
 
多媒體系統06_影音編輯軟體Movie Maker
多媒體系統06_影音編輯軟體Movie Maker多媒體系統06_影音編輯軟體Movie Maker
多媒體系統06_影音編輯軟體Movie MakerFuzhou University
 
多媒體系統05_Android App圖形元件
多媒體系統05_Android App圖形元件多媒體系統05_Android App圖形元件
多媒體系統05_Android App圖形元件Fuzhou University
 
多媒體系統04_GIMP繪圖、特效、動畫
多媒體系統04_GIMP繪圖、特效、動畫多媒體系統04_GIMP繪圖、特效、動畫
多媒體系統04_GIMP繪圖、特效、動畫Fuzhou University
 
多媒體系統03_GIMP影像合成與圖層應用
多媒體系統03_GIMP影像合成與圖層應用多媒體系統03_GIMP影像合成與圖層應用
多媒體系統03_GIMP影像合成與圖層應用Fuzhou University
 
多媒體系統01_安裝開發環境
多媒體系統01_安裝開發環境多媒體系統01_安裝開發環境
多媒體系統01_安裝開發環境Fuzhou University
 
人工智慧04_貝氏分類和貝氏網路
人工智慧04_貝氏分類和貝氏網路人工智慧04_貝氏分類和貝氏網路
人工智慧04_貝氏分類和貝氏網路Fuzhou University
 
人工智慧01_安裝機器學習開發環境
人工智慧01_安裝機器學習開發環境人工智慧01_安裝機器學習開發環境
人工智慧01_安裝機器學習開發環境Fuzhou University
 
初探深度學習技術與應用
初探深度學習技術與應用初探深度學習技術與應用
初探深度學習技術與應用Fuzhou University
 

Mehr von Fuzhou University (17)

多媒體系統10_3D繪圖軟體Blender
多媒體系統10_3D繪圖軟體Blender多媒體系統10_3D繪圖軟體Blender
多媒體系統10_3D繪圖軟體Blender
 
多媒體系統09_3D互動擴增實境
多媒體系統09_3D互動擴增實境多媒體系統09_3D互動擴增實境
多媒體系統09_3D互動擴增實境
 
多媒體系統08_Inkscape繪製圖形與漸層
多媒體系統08_Inkscape繪製圖形與漸層多媒體系統08_Inkscape繪製圖形與漸層
多媒體系統08_Inkscape繪製圖形與漸層
 
機器學習工具_微軟Azure Machine Learning Studio
機器學習工具_微軟Azure Machine Learning Studio機器學習工具_微軟Azure Machine Learning Studio
機器學習工具_微軟Azure Machine Learning Studio
 
論文導讀01_k個最近鄰居(行動定位)
論文導讀01_k個最近鄰居(行動定位)論文導讀01_k個最近鄰居(行動定位)
論文導讀01_k個最近鄰居(行動定位)
 
多媒體系統02_影像處理原理與技術
多媒體系統02_影像處理原理與技術多媒體系統02_影像處理原理與技術
多媒體系統02_影像處理原理與技術
 
多媒體系統07_Android App影音互動擴增實境
多媒體系統07_Android App影音互動擴增實境多媒體系統07_Android App影音互動擴增實境
多媒體系統07_Android App影音互動擴增實境
 
多媒體系統06_影音編輯軟體Movie Maker
多媒體系統06_影音編輯軟體Movie Maker多媒體系統06_影音編輯軟體Movie Maker
多媒體系統06_影音編輯軟體Movie Maker
 
多媒體系統05_Android App圖形元件
多媒體系統05_Android App圖形元件多媒體系統05_Android App圖形元件
多媒體系統05_Android App圖形元件
 
多媒體系統04_GIMP繪圖、特效、動畫
多媒體系統04_GIMP繪圖、特效、動畫多媒體系統04_GIMP繪圖、特效、動畫
多媒體系統04_GIMP繪圖、特效、動畫
 
多媒體系統03_GIMP影像合成與圖層應用
多媒體系統03_GIMP影像合成與圖層應用多媒體系統03_GIMP影像合成與圖層應用
多媒體系統03_GIMP影像合成與圖層應用
 
多媒體系統01_安裝開發環境
多媒體系統01_安裝開發環境多媒體系統01_安裝開發環境
多媒體系統01_安裝開發環境
 
人工智慧06_決策樹
人工智慧06_決策樹人工智慧06_決策樹
人工智慧06_決策樹
 
人工智慧04_貝氏分類和貝氏網路
人工智慧04_貝氏分類和貝氏網路人工智慧04_貝氏分類和貝氏網路
人工智慧04_貝氏分類和貝氏網路
 
人工智慧03_關聯規則
人工智慧03_關聯規則人工智慧03_關聯規則
人工智慧03_關聯規則
 
人工智慧01_安裝機器學習開發環境
人工智慧01_安裝機器學習開發環境人工智慧01_安裝機器學習開發環境
人工智慧01_安裝機器學習開發環境
 
初探深度學習技術與應用
初探深度學習技術與應用初探深度學習技術與應用
初探深度學習技術與應用
 

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