น้ำหนักได้รับการปรับปรุงในวิธีการเรียนรู้แบบแบตช์ในเครือข่ายประสาทเทียมอย่างไร


15

ใครช่วยบอกฉันทีว่าฉันควรจะสร้างเครือข่ายประสาทโดยใช้วิธีการแบทช์ได้ไหม

ฉันได้อ่านแล้วว่าในโหมดแบทช์สำหรับตัวอย่างทั้งหมดในชุดการฝึกอบรมเราคำนวณข้อผิดพลาดเดลต้าและทำให้น้ำหนักเดลต้าสำหรับเซลล์ประสาทแต่ละตัวในเครือข่ายและจากนั้นแทนที่จะอัปเดตน้ำหนักทันทีเราสะสมพวกเขาและจากนั้นก่อนเริ่ม ยุคต่อไปเราจะปรับปรุงน้ำหนัก

ฉันยังอ่านบางที่ว่าวิธีการแบทช์เป็นเหมือนวิธีการออนไลน์ แต่ด้วยความแตกต่างที่เราต้องการเพียงข้อสรุปข้อผิดพลาดสำหรับตัวอย่างทั้งหมดในชุดการฝึกอบรมแล้วใช้ค่าเฉลี่ยของมันแล้วใช้ค่าเฉลี่ยของมัน วิธีการหนึ่งในวิธีออนไลน์ (ความแตกต่างเป็นเพียงค่าเฉลี่ย) เช่นนี้:

for epoch=1 to numberOfEpochs

   for all i samples in training set

         calculate the errors in output layer
         SumOfErrors += (d[i] - y[i])
   end

   errorAvg = SumOfErrors / number of Samples in training set

   now update the output layer with this error
   update all other previous layers

   go to the next epoch

end
  • หนึ่งในวิธีเหล่านี้เป็นรูปแบบที่ถูกต้องอย่างแท้จริงของวิธีการแบทช์?
  • ในกรณีของคนแรกที่ไม่ได้น้ำหนักทั้งหมดของเดลต้าทั้งหมดส่งผลในจำนวนมาก?

1
วิธีการ "แก้ไข" ขึ้นอยู่กับบริบท ปรากฎว่าในหลาย ๆ กรณีการอัปเดตน้ำหนักเพียงครั้งเดียวต่อยุคจะมาบรรจบกันได้ช้ากว่าการอัพเดทแบบสุ่ม (อัปเดตน้ำหนักหลังจากแต่ละตัวอย่าง) ฉันจะเพิ่มมีมติฉันทามติที่โดยทั่วไปคุณจะต้องการใช้การอัปเดตรูปแบบบางรูปแบบ แต่บ่อยครั้งกว่า 1x ต่อยุค
Tahlor

คำตอบ:


9

การใช้ค่าเฉลี่ยหรือผลรวมนั้นเทียบเท่ากันในแง่ที่ว่ามีอัตราการเรียนรู้อยู่คู่ที่พวกเขาสร้างการอัปเดตเดียวกัน

เพื่อยืนยันสิ่งนี้ก่อนอื่นให้ระลึกถึงกฎการอัพเดท:

Δwij=αEwij

μEnnμEnw

Δwij=α(nμ)wij=αnμwij

ΔwΔw


1
การไล่ระดับสีแบบมินิ - แบทช์เป็นแบบการไล่ระดับสีแบบแบทช์เดียวกันหรือไม่? ฉันหลงทางแล้ว! ถ้าไม่ใช่ความแตกต่างระหว่างสิ่งเหล่านี้คืออะไร? แก้ไขให้ฉันถ้าฉันผิดในโหมดแบทช์ชุดข้อมูลทั้งหมดจะต้องอ่านในแบทช์การไล่ระดับสีได้รับการคำนวณและเมื่อทั้งหมดถูกอ่านจากนั้นพวกเขาจะถูกเฉลี่ยแล้วพารามิเตอร์จะถูกปรับปรุงในขณะที่ในชุดมินิแต่ละ การอ่านแบทช์การไล่ระดับสีคำนวณและจากนั้นพารามิเตอร์จะได้รับการอัพเดทจากนั้นมินิแบทช์ต่อไปจะถูกอ่านจนกว่าจะถึงยุคสุดท้าย
Rika

1
นั่นคือคำจำกัดความที่ได้รับโดยทั่วไป: อัปเดตพารามิเตอร์โดยใช้หนึ่งชุดย่อยของข้อมูลการฝึกอบรมในแต่ละครั้ง (มีบางวิธีที่สุ่มชุดเล็ก ๆ จนกว่าจะบรรจบกันคือชุดจะไม่ถูกสำรวจในยุค) ดูว่าสิ่งนี้มีประโยชน์หรือไม่
ฌอนอีสเตอร์

0

คำตอบทั้งสองนั้นเทียบเท่ากัน โดยส่วนตัวฉันคิดว่ามันเป็นข้อผิดพลาดเฉลี่ยแทนที่จะเป็นผลรวม แต่จำไว้ว่าการไล่ระดับสีแบบลาดเอียงมีพารามิเตอร์ที่เรียกว่าอัตราการเรียนรู้และมีเพียงส่วนหนึ่งของการไล่ระดับสีของข้อผิดพลาดที่ถูกลบออก ดังนั้นข้อผิดพลาดที่ถูกกำหนดให้เป็นค่าเฉลี่ยทั้งหมดสามารถชดเชยได้ด้วยการเปลี่ยนอัตราการเรียนรู้


ขอบคุณ แต่ถ้าพวกเขาเหมือนกันจริงๆทำไมต้องเสียความทรงจำมากมายในการเก็บการปรับปรุงที่สะสมสำหรับแต่ละรูปแบบเมื่อเราสามารถสรุปข้อผิดพลาดซึ่งจะเป็นเพียงตัวแปรธรรมดาเท่านั้น?
Rika
โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.