ฉันแรกพบข้อผิดพลาดสำหรับชั้น convolutional ด้านล่างเพื่อความง่ายสำหรับอาร์เรย์หนึ่งมิติ (input) ซึ่งสามารถโอนไปยังหลายมิติได้อย่างง่ายดายแล้ว:
เราสมมุติเอาไว้ที่นี่ว่า Yl - 1 ความยาว ยังไม่มีข้อความ เป็นอินพุตของ l - 1-th Conv ชั้น,ม. คือขนาดเคอร์เนลของน้ำหนัก W แสดงถึงน้ำหนักแต่ละครั้งด้วย Wผม และผลลัพธ์คือ xล..
ดังนั้นเราสามารถเขียน (บันทึกการรวมจากศูนย์):
xล.ผม=Σa = 0m - 1WaYl - 1a + i
ที่ไหน
Yล.ผม= f(xล.ผม) และ
ฉฟังก์ชั่นการเปิดใช้งาน (เช่น sigmoidal) ด้วยสิ่งนี้เราสามารถพิจารณาฟังก์ชันข้อผิดพลาดได้
E และฟังก์ชันข้อผิดพลาดที่เลเยอร์ convolutional (หนึ่งในเลเยอร์ก่อนหน้าของคุณ) ที่กำหนดโดย
∂E/ ∂Yล.ผม. ตอนนี้เราต้องการทราบการพึ่งพาของข้อผิดพลาดในหนึ่งตุ้มน้ำหนักในเลเยอร์ก่อนหน้า:
∂E∂Wa=Σa = 0N- ม∂E∂xล.ผม∂xล.ผม∂Wa=Σa = 0ยังไม่มีข้อความ- ม∂E∂WaYl - 1ฉัน+
ที่เรามีผลรวมมากกว่าการแสดงออกทั้งหมดที่
Wa เกิดขึ้นซึ่งก็คือ
ยังไม่มีข้อความ- ม. โปรดทราบว่าเรารู้คำสุดท้ายเกิดขึ้นจากข้อเท็จจริงที่ว่า
∂xล.ผม∂Wa=Yl - 1ฉัน+ซึ่งคุณสามารถดูได้จากสมการแรก
ในการคำนวณการไล่ระดับสีเราจำเป็นต้องรู้เทอมแรกซึ่งสามารถคำนวณได้โดย:
∂E∂xล.ผม=∂E∂Yล.ผม∂Yล.ผม∂xล.ผม=∂E∂Yล.ผม∂∂xล.ผมฉ(xล.ผม)
โดยที่เทอมแรกอีกครั้งเป็นข้อผิดพลาดในเลเยอร์ก่อนหน้าและ
ฉ ฟังก์ชั่นการเปิดใช้งานแบบไม่เชิงเส้น
การมีเอนทิตีที่จำเป็นทั้งหมดเราสามารถคำนวณข้อผิดพลาดและเผยแพร่กลับไปยังเลเยอร์ที่มีค่าได้อย่างมีประสิทธิภาพ:
δl - 1a=∂E∂Yl - 1ผม=Σa = 0m - 1∂E∂xล.ฉัน-∂xล.ฉัน-∂Yl - 1ผม=Σa = 0m - 1∂E∂xล.ฉัน-Wฉl ฉันp p e da
โปรดทราบว่าขั้นตอนสุดท้ายนั้นสามารถเข้าใจได้ง่ายเมื่อเขียนลงไป
xล.ผม-s wrt the
Yl - 1ผม-s
ฉl ฉันp p e d หมายถึง maxtrix น้ำหนัก transposed (
T)
ดังนั้นคุณสามารถคำนวณข้อผิดพลาดในเลเยอร์ถัดไปได้โดย (ในรูปแบบเวคเตอร์):
δล.= (Wล.)Tδl + 1ฉ'(xล.)
ซึ่งจะกลายเป็นชั้น convolutional และ subsampling:
δล.= u p s a m p l e ( (Wล.)Tδl + 1)ฉ'(xล.)
ที่ไหน
ยูพีs มพีลิตรอี การดำเนินการเผยแพร่ข้อผิดพลาดผ่านเลเยอร์สูงสุดร่วมกัน
โปรดเพิ่มหรือแก้ไขฉัน!
สำหรับการอ้างอิงดู:
http://ufldl.stanford.edu/tutorial/supervised/ConvolutionalNeuralNetwork/
http://andrew.gibiansky.com/blog/machine-learning/convolutional-neural-networks/
และสำหรับการติดตั้ง C ++ (โดยไม่ต้องมีการติดตั้ง):
https://github.com/nyanp/tiny-cnn#supported-networks