Back-propagation

เป้าหมายของ backpropagation คือการหาค่า partial derivative Cw และ Cb สำหรับ cost function (C)  เทียบกับทุก weight และ bias ใน Neural Network

Cost function ถูก define ด้วย

C=12nxy(x)aL(x)2(1)


เมื่อ
n  คือ จำนวน training sample
y, y(x) คือ output ใน training sample
L คือ จำนวน Layer ใน network
aL หรือ aL(x) คือ vector ของ activated output เมื่อ input คือ x

Assumption 1 :

C=1nxCx(2)

เมื่อ
Cx คือ Cost function ของแต่ละ input x (individual input x)

และ
Cx=12yaL2(3)


เหตุเพราะการหาค่า partial derivative ของ Cost function นั้นต้องคำนวณไปทีละครั้งเมื่อมี x input เข้ามา Cxw และ Cxb แล้วจึงค่อยไปหาค่า Cost function ของ network จากค่าเฉลี่ยอีกที

Assumption 2 :

C=12j(yjajL)2(4)



สมการที่เกี่ยวข้องใน backpropagation

1. สมการสำหรับ error ที่ output layer (δL)

 δjL=CajLσ(zjL)(5)

สมการนี้มีสอง Term ให้พิจารณา คือ
1) CajL บอกถึงความเร็วในการเปลี่ยนแปลงของ C เทียบการเปลี่ยนแปลงของ ajL หากค่าของ C ไม่ค่อยมีความสัมพันธ์กับ ajL แล้ว δjL จะมีค่าน้อย

2) σ(zjL) บอกถึงอัตราเร็วของการเปลี่ยนแปลงของ activation function เทียบกับอัตราการเปลี่ยแปลงของ  zjL

หากกำหนด cost function แบบ (3) จะได้
CajL=yajL

สมการ (5) สามารถเขียนในรูปของ Matrix operation ได้ คือ

δL=aCσ(zL)(6)

โดย aC คือ gradient vector ที่มี element เป็น CajL ใช้บอกถึงการเปลี่ยนแปลงของ C เทียบกับการเปลี่ยนแปลงของ activated output และเนื่องจากการใช้สมการ quadratic สำหรับ cost function นำมาแทนค่า aC ด้วย yaj แล้วจะได้ สมการที่ (6) ในรุปแบบของ matrix  คือ

δL=(yaL)σ(zL)(7)


เรียกว่า "Hadamard Product"  คือการการคูณ matrix ที่มีมิติเหมือนกันแบบ element ต่อ element เช่น
 [abcd][ijkl]=[aibjckdl]

2 สมการสำหรับ  error ที่ layer lth (δl)

δl=(wl+1)Tδl+1σ(zl)(8)


ในการดำเนินการเราจะเริ่มจากการหาค่า δL ตามสมการ (7) จากนั้นหาค่า δL1 ด้วยสมการที่ (8) และ δL2 ด้วยสมการที่ (8)  อีกครั้งไปเรื่อย ๆจนถึง input layer

3 สมการคำนวณค่าการเปลี่ยนแปลงของ cost function เทียบกับ bias 

δjl=Cbjl(9)


4. สมการคำนวณค่าการเปลี่ยนแปลงของ cost function เทียบกับ weight 

Cwjkl=akl1δjl(10)



Algorithm

1. เตรียม training sample data set
2. แต่ละชุดของ training sample data set คำนวณหา corresponding activation ax ตามขั้นตอน
     2.1 Feed forward :  สำหรับ layer  l = 2,3,4,..,L

zx,l=wlax,l1+bi
และ ax,l=σ(zx,l)

     2.2  หา Output error : ในรูปแบบ vector

δx,L=aCxσ(zx,L)


     2.3  หา Back-propagate  the error :  ของแต่ละ layer l = L-1, L-2, L-3,..,2

δx,l=((wl+1)Tδx,l+1)σ(zx,l)

3. Gradient descent : แต่ละ layer l = L, L-1, L-2,...,2  ปรับค่าของ weight และ bias

wlwlηmxδx,l(ax,l)T

blblηmxδx,l














ความคิดเห็น