Neural Network

Artificial Neural Network(類神經網路)
於1987年後開始普及
可分為
Supervised Learning Network(監督式學習網路)
Unsupervised Learning Network(無監督式學習網路)
Hybrid Learning Network(混合式學習網路)
Associate Learning Network(聯想式學習網路)
Optimization Application Network(最適化學習網路)

Artificial Neural Network架構
Input layer :資料輸入的地方
Hidden layer :學習分類的地方,一般使用2層可學習所有問題
ps:hidden layer node建議為 (i+o)/2 <= hidden layer node <=(i+o)
Output layer :資料輸入後的結果

ps:
之前研究發現只要3layer就可以有很好的效果 

… 

backpropagation 
用來訓練人工神經網絡的常見方法


backpropagation參數
L 在修正階段使用的學習率
Wij 各節點之間(節點i和節點j間)的權重
theta_j 節點j的bias,用來做為門檻值
ERRk 各節點的修正值

backpropagation演算法
初始化weight和theta
for each epoch{
if(當終止條件未滿足時){ //計算該世代每筆資料
 for each unit j{
  計算unit j的input j和output j
   if(若output j和T(期望值)誤差在接受門檻值外 ){ 1進入修正階段,2更新weight和theta }
  }
 }
}

初始化weight和theta
通常是取隨機值-1~1或-0.5~0.5

終止條件常見的有
1. delta_Wij小於指定的threshold
2. 分類錯誤率小於指定的threshold,例如0.001
3. 限制世代數

input j和output j計算公式
unit j的Ij(input j)=sigma( i , Oi * Wij + theta j)
unit j的Oj(output j)=1/( 1 + e^(-Ij) )
e=2.71828
ps:Oj為activation function(非線性激發函數),使用Sigmoid Function(雙彎曲函數)效果較好
if x接近負無限大 1/( 1 + e^( -x ) ) = 0
if x接近正無限大 1/( 1 + e^( -x ) ) = 1
if x=0 1/( 1 + e^( -x ) ) = 1/2

修正階段公式
output layer ERR k=Ok*(1-Ok)(T-Ok)
T=期望值
hidden layer err j=Oj*(1-Oj)*sigma( k , ERRk*Wjk)
更新weight和theta公式
Wij=Wij + L*Oi*err_j
theta_j=theta_j + L*err_j

ex:
設Backpropagation架構如下
input layer node分別為x1,x2,x3
hidden layer node分別為x4,x5
output layer node為x6
x1,x2,x3會連結至x4及x5
x4,x5會連結至x6
計算如下
0
初始化weight和theta

各節點之間weight取隨機值[-0.5~0.5]分別為
w14=0.2
w15= -0.3
w24=0.4
w25=0.1
w34= -0.5
w35=0.2
w46= -0.3
w56= -0.2
hidden layer node theta取隨機值[-0.5~0.5]分別為
theta4=0.4
theta5=0.2
output layer node theta取隨機數[-0.5~0.5]為
theta6=0.1
1.1-1
第一個世代的第1筆資料

假設X=(1,0,1) and T(known target value)=1
input layer node的output如下
unit1的O1=1
unit2的O2=0
unit3的O3=1
1.1-1.2
計算input和output

hidden layer node的input和output如下
unit4的I4=O1*w14* + O2*w24 + O3*w34 + theta4=(0.2*1)+(0.4*0)+(-0.5*1)+(-0.4)=-0.7
unit4的O4=1/( 1 + e^(-I4) )= 1/(1+ e^-0.7) =0.332
unit5的I5=O1*w15* + O2*w25 + O3*w35 + theta5=(1*-0.3)+(0*0..1)+(1*0.2)+(0.2)=0.1
unit5的O5=1/( 1 + e^(-I5) )= 1/(1+ e^0.1) =0.525
output layer node的input和output如下
unit6的l6=O4*w46 + O5*w56 + theta6=(0.332*-0.3)+(0.525*-0.2)=-0.105
unit6的O6=1/( 1 + e^(-I6) )= 1/(1+ e^0.105) =0.474
1.1-1.3
誤差不在接受門檻值中,進入修正階段

因0.474<0.5,因此結果為0,與(1,0,1)=1結果不符,所以進入修正階段
output layer node的err如下
ERR6=O6*(1-O6)(T-O6)=(0.474)*(1-0.474)(1-0.474)=0.1311
hidden layer node的err如下
err5=O5*(1-O5)*ERR6*w56 =(0.525)*(1-0.525)(0.131)*(-0.2)= -0.0065
err4=O4*(1-O4)*ERR6*w46 =(0.332)*(1-0.331)(0.131)*(-0.3)= -0.0087
1.1-1.4
更新weight和theta

各節點之間weight
w14= w14+L*O1*err4 = 0.2+(0.9)*(1) *(-0.0087)= 0.192
w15= w15+L*O1*err5 = -0.3+(0.9)*(1) *(-0.0065)=-0.306
w24= w24+L*O2*err4 = 0.4+(0.9)*(0)*(-0.0087)= 0.4
w25= w25+L*O2*err5 = 0.1+(0.9)*(0) *(-0.0065) = 0.1
w34= w34+L*O3*err4 = -0.5+(0.9)*(1) *(-0.0087)=-0.508
w35= w34+L*O3*err5 = 0.2+(0.9)*(1) *(-0.0065) =0.194
w46= w46+L*O4*err6 = -0.3+(0.9)*(0.332) *(0.1311)=-0.261
w56= w56+L*O5*err6 = -0.2+(0.9)*(0.525) *(0.1311)=-0.138
hidden layer node theta
theta4=theta4+L*err4 = -0.4+(0.9)*(-0.0087) = -0.408
theta5=theta5+L*err5 = -0.2+(0.9)*(-0.0065) = 0.194
output layer node theta
theta6=theta6+L*err6 = 0.1+(0.9)*(0.1311)=0.218
1.1-2
第一個世代的第2筆資料X and T

判斷是否進入修正階段
1.1-n
第一個世代的第n筆資料X and T

1.2
計算該世代是否滿足終止條件,未滿足,則到下一個世代

2
第二個世代的第1筆資料X and T
第二個世代的第n筆資料X and T
計算該世代是否滿足終止條件,未滿足,則到下一個世代
n
第n個世代的第1筆資料X and T
第n個世代的第n筆資料X and T
計算該世代是否滿足終止條件,滿足終止條件