ขนาดแบทช์ของ Tradeoff เทียบกับจำนวนการวนซ้ำเพื่อฝึกอบรมโครงข่ายประสาทเทียม


221

เมื่อฝึกฝนโครงข่ายประสาทเทียมการตั้งค่าต่างกันอย่างไร:

  • ขนาดแบทช์และจำนวนการวนซ้ำเป็นab
  • เทียบกับขนาดแบทช์เป็นและจำนวนการทำซ้ำเป็นcd

ที่ ?ab=cd

หากต้องการตั้งเป็นอย่างอื่นสมมติว่าเราฝึกอบรมเครือข่ายประสาทเทียมด้วยตัวอย่างการฝึกอบรมจำนวนเท่ากันวิธีการกำหนดขนาดแบทช์ที่เหมาะสมและจำนวนการวนซ้ำที่เหมาะสม (โดยที่ขนาดแบทช์ * จำนวนการวนซ้ำ = จำนวนตัวอย่างการฝึกอบรมที่แสดงในเครือข่ายนิวรัลโดยมีตัวอย่างการฝึกอบรมเดียวกันอาจปรากฏขึ้นหลายครั้ง)

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


1
ตรวจสอบบล็อกนี้ซึ่งอธิบายวิธีการเลือกขนาดแบทช์ที่ถูกต้องในขณะที่เปรียบเทียบผลของขนาดแบทช์ที่แตกต่างกันในความแม่นยำของชุดข้อมูล Cifar-10
Teja Sreenivas

คำตอบ:


207

จาก Nitish Shirish Keskar, Dheevatsa Mudigere, Jorge Nocedal, Mikhail Smelyanskiy, Ping Tak Peter Peter Tang ในการฝึกอบรมแบบกลุ่มใหญ่สำหรับการเรียนรู้ลึก: Gap ทั่วไปและ Sharp Minima https://arxiv.org/abs/1609.04836 :

วิธีการไล่ระดับสีแบบสุ่มและตัวแปรเป็นขั้นตอนวิธีการเลือกสำหรับงานการเรียนรู้ลึกจำนวนมาก วิธีการเหล่านี้ทำงานในระบอบการปกครองแบบกลุ่มเล็กซึ่งส่วนหนึ่งของข้อมูลการฝึกอบรมซึ่งปกติแล้วคือจุดข้อมูล 32--512 จุดจะถูกสุ่มตัวอย่างเพื่อคำนวณการประมาณการไล่ระดับสี ในทางปฏิบัติแล้วพบว่าเมื่อใช้ชุดที่มีขนาดใหญ่กว่านั้นคุณภาพของแบบจำลองจะลดลงอย่างมีนัยสำคัญซึ่งวัดจากความสามารถในการสรุปมีความพยายามที่จะตรวจสอบสาเหตุของการทำให้ลักษณะทั่วไปนี้ลดลงในระบอบการปกครองแบบกลุ่มใหญ่อย่างไรก็ตามคำตอบที่ถูกต้องสำหรับปรากฏการณ์นี้คือไม่ทราบมาจนบัดนี้ ในบทความนี้เรานำเสนอหลักฐานเชิงตัวเลขที่เพียงพอที่สนับสนุนมุมมองที่ว่าวิธีการชุดใหญ่มักจะรวมกันเพื่อลดฟังก์ชั่นการฝึกอบรมและการทดสอบขั้นต่ำ - และขั้นต่ำที่นำไปสู่การสรุปทั่วไปที่ไม่ดี ในทางตรงกันข้ามวิธีการชุดเล็ก ๆ มักจะรวมกันเป็น minimizer แบบแบน ๆ อย่างต่อเนื่องและการทดลองของเราสนับสนุนมุมมองที่ถือกันโดยทั่วไปว่านี่เป็นเพราะเสียงโดยธรรมชาติในการประมาณการไล่ระดับสี นอกจากนี้เรายังหารือเกี่ยวกับกลยุทธ์เชิงประจักษ์หลายอย่างที่ช่วยวิธีการชุดใหญ่ขจัดช่องว่างทั่วไปและสรุปด้วยชุดของแนวคิดการวิจัยในอนาคตและคำถามเปิด

[ ... ]

การขาดความสามารถทั่วไปเป็นเพราะความจริงที่ว่าวิธีการที่มีขนาดใหญ่ชุดมีแนวโน้มที่จะมาบรรจบกันเพื่อminimizers คมชัดของฟังก์ชั่นการฝึกอบรม ตัวลดขนาดเล็กเหล่านี้มีลักษณะเฉพาะค่าลักษณะเชิงบวกขนาดใหญ่ใน และมีแนวโน้มที่จะพูดคุยได้ดีน้อยกว่า ในทางตรงกันข้ามวิธีการขนาดเล็กชุดมาบรรจบกันเพื่อ minimizers แบนโดดเด่นด้วยลักษณะเฉพาะบวกเล็ก ๆ ของ(x) เราได้สังเกตว่าแนวการสูญเสียหน้าที่ของเครือข่ายนิวรอลเมนต์นั้นเป็นวิธีการที่กลุ่มคนจำนวนมากมักถูกดึงดูดไปยังภูมิภาคที่มีความคมชัดต่ำและไม่เหมือนกับวิธีการแบบกลุ่มขนาดเล็กที่ไม่สามารถหลบหนี2f(x)2f(x)

[ ... ]

ป้อนคำอธิบายรูปภาพที่นี่

นอกจากนี้ยังมีข้อมูลเชิงลึกที่ดีจากIan Goodfellow ที่ ตอบว่าทำไมไม่ใช้ชุดฝึกอบรมทั้งหมดเพื่อคำนวณการไล่ระดับสี บน Quora:

ขนาดของอัตราการเรียนรู้ถูก จำกัด โดยส่วนใหญ่มาจากปัจจัยต่างๆเช่นฟังก์ชั่นลดราคา คุณสามารถนึกถึงการไล่ระดับสีโดยการประมาณเชิงเส้นกับฟังก์ชั่นค่าใช้จ่ายจากนั้นเลื่อนลงเขาตามราคาโดยประมาณ หากฟังก์ชั่นค่าใช้จ่ายสูงแบบไม่เชิงเส้น (โค้งสูง) การประมาณจะไม่ดีมากสำหรับตอนนี้ดังนั้นขนาดก้าวเล็ก ๆ เท่านั้นจึงปลอดภัย คุณสามารถอ่านเพิ่มเติมเกี่ยวกับสิ่งนี้ได้ในบทที่ 4 ของหนังสือเรียนรู้ลึกเกี่ยวกับการคำนวณเชิงตัวเลข: http://www.deeplearningbook.org/contents/numerical.html

เมื่อคุณใส่ตัวอย่าง m ลงใน minibatch คุณจะต้องทำการคำนวณ O (m) และใช้หน่วยความจำ O (m) แต่คุณลดจำนวนความไม่แน่นอนในการไล่ระดับสีด้วยปัจจัยเพียง O (sqrt (m)) กล่าวอีกนัยหนึ่งมีผลตอบแทนลดลงเล็กน้อยเพื่อวางตัวอย่างเพิ่มเติมในรถมินิบัส คุณสามารถอ่านเพิ่มเติมเกี่ยวกับสิ่งนี้ได้ในบทที่ 8 ของหนังสือเรียนรู้ลึกเกี่ยวกับอัลกอริธึมการเพิ่มประสิทธิภาพสำหรับการเรียนรู้ลึก: http://www.deeplearningbook.org/contents/optimization.html

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

ที่เกี่ยวข้อง: การไล่ระดับสีแบบแบทช์กับการไล่ระดับสีแบบสุ่ม


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

@ user12348 คุณจะจัดเรียงชุดข้อมูลอย่างไร คุณจะประมาณได้อย่างไรว่ามิติข้อมูลที่กำหนดจะสร้างเวกเตอร์คุณลักษณะเฉพาะหลังจากการฝึกอบรม?
Cloud Cho

46

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

Andrew Ng. ให้การอภิปรายที่ดีเกี่ยวกับเรื่องนี้และภาพบางส่วนในชั้นเรียนหลักสูตรออนไลน์ของเขาบน ML และเครือข่ายประสาท ดังนั้นส่วนที่เหลือของโพสต์นี้ส่วนใหญ่จะเป็นการสำรอกคำสอนของเขาจากชั้นเรียนนั้น

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

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

นี่อาจเป็นช่วงเวลาที่ชี้ให้เห็นว่าฉันได้เห็นวรรณกรรมบางชิ้นชี้ให้เห็นว่าบางทีสิ่งนี้อาจทำให้คุณลดลงจาก minima ท้องถิ่นที่โหมดแบตช์เต็มรูปแบบไม่สามารถหลีกเลี่ยงได้ แต่นั่นเป็นเรื่องที่ถกเถียงกัน คำตอบที่ดีอื่น ๆ ที่นี่ตอบคำถามนี้โดยตรงมากกว่าที่ฉันมี

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

ทีนี้มาหาพื้นกลางที่คุณถาม เราอาจทราบว่าห้องสมุด BLAS ที่ทันสมัยทำให้การคำนวณเวกเตอร์คณิตศาสตร์ค่อนข้างมีประสิทธิภาพดังนั้นการคำนวณ 10 หรือ 100 ตัวอย่างในครั้งเดียวสมมติว่าคุณได้ vectorized รหัสของคุณอย่างถูกต้องจะแทบจะทำงานได้ดีกว่าการคำนวณ 1 ตัวอย่าง เทคนิคการคำนวณที่สร้างไว้ในห้องสมุดคณิตศาสตร์ที่มีประสิทธิภาพที่สุด) และการหาค่าเฉลี่ยของกลุ่มตัวอย่าง 10, 100, 1,000 ตัวอย่างนั้นจะสร้างการไล่ระดับสีซึ่งเป็นการประมาณที่สมเหตุสมผลมากขึ้นสำหรับการไล่ระดับสีจริงของโหมดแบทช์เต็มรูปแบบ ดังนั้นขั้นตอนของเราตอนนี้มีความแม่นยำมากขึ้นซึ่งหมายความว่าเราต้องการให้พวกเขามาบรรจบกันน้อยลงและในราคาที่สูงกว่า GD ตัวอย่างเดี่ยวเพียงเล็กน้อย

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

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


22

TL; DR:ขนาดมินิแบตช์ที่ใหญ่เกินไปมักทำให้ความแม่นยำลดลง !

สำหรับผู้ที่สนใจนี่คือคำอธิบาย

ความเร็วมีสองแนวคิด:

  • ความเร็วในการคำนวณ
  • ความเร็วของการลู่เข้าของอัลกอริทึม

ความเร็วในการคำนวณเป็นเพียงความเร็วในการคำนวณเชิงตัวเลขในฮาร์ดแวร์ อย่างที่คุณพูดมันมักจะสูงกว่าด้วยขนาดมินิแบทช์ที่ใหญ่กว่า นั่นเป็นเพราะห้องสมุดพีชคณิตเชิงเส้นใช้ vectorization สำหรับการดำเนินการเวกเตอร์และเมทริกซ์เพื่อเร่งพวกเขาด้วยค่าใช้จ่ายในการใช้หน่วยความจำเพิ่มเติม กำไรสามารถมีนัยสำคัญถึงจุด จากประสบการณ์ของฉันมีจุดหลังจากที่มีเพียงกำไรเล็กน้อยในความเร็วถ้ามี จุดขึ้นอยู่กับชุดข้อมูลฮาร์ดแวร์และไลบรารีที่ใช้สำหรับการคำนวณเชิงตัวเลข (ภายใต้ประทุน)

แต่อย่าลืมว่ายังมีอีกความคิดเรื่องความเร็วซึ่งบอกเราว่าอัลกอริทึมของเรามาบรรจบกันได้เร็วแค่ไหน

ประการแรกมันหมายถึงอะไรสำหรับอัลกอริทึมของเราที่จะบรรจบกัน? มันขึ้นอยู่กับเราที่จะกำหนดและตัดสินใจว่าเมื่อใดที่เราพอใจกับความถูกต้องหรือข้อผิดพลาดที่เราได้รับคำนวณจากชุดการตรวจสอบความถูกต้อง เราสามารถกำหนดไว้ล่วงหน้าและรอให้อัลกอริทึมมาถึงจุดนั้นหรือเราสามารถตรวจสอบกระบวนการฝึกอบรมและตัดสินใจหยุดเมื่อข้อผิดพลาดการตรวจสอบเริ่มขึ้นอย่างมีนัยสำคัญ (แบบจำลองเริ่มพอดีกับชุดข้อมูล) เราไม่ควรหยุดทันทีเมื่อเกิดข้อผิดพลาดครั้งแรกถ้าเราทำงานกับชุดเล็ก ๆ เพราะเราใช้ Stochastic Gradient Descent, SGD ในกรณีของการไล่ระดับสี (เต็มชุด) หลังจากแต่ละยุคอัลกอริทึมจะตัดสินขั้นต่ำไม่ว่าจะเป็นท้องถิ่นหรือระดับโลก SGD ไม่เคยตัดสินขั้นต่ำจริงๆ มันสั่นไปรอบ ๆ มัน มันสามารถไปได้เรื่อย ๆ

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

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

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

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

หากคุณมีเวลาลองอ่านบทความนี้: การประเมินอย่างเป็นระบบเกี่ยวกับความก้าวหน้าของ CNN ใน ImageNet โดยเฉพาะลองดูที่ "3.7. ขนาดแบทช์และอัตราการเรียนรู้" และรูปที่ 8 คุณจะเห็นว่าขนาดมินิแบทช์ขนาดใหญ่ แม้ว่าจะปรับอัตราการเรียนรู้เป็นฮิวริสติก

โดยทั่วไปขนาดแบตช์ที่ 32 เป็นจุดเริ่มต้นที่ดีและคุณควรลองด้วย 64, 128 และ 256 ค่าอื่น ๆ (ต่ำกว่าหรือสูงกว่า) อาจใช้ได้สำหรับชุดข้อมูลบางชุด แต่โดยทั่วไปช่วงที่กำหนดจะดีที่สุด เริ่มทดลองกับ แม้ว่าภายใต้ 32 มันอาจช้าเกินไปเนื่องจากความเร็วในการคำนวณลดลงอย่างมีนัยสำคัญ หากคุณได้รับข้อผิดพลาด "หน่วยความจำไม่เพียงพอ" คุณควรลองลดขนาดมินิแบทช์

ดังนั้นมันไม่ได้เกี่ยวกับการใช้ขนาดที่เล็กที่สุดที่เป็นไปได้ซึ่งเหมาะกับหน่วยความจำ

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

อย่าลืมว่าเสียงที่สูงขึ้นสามารถช่วยให้มันกระโดดออกมาจากจุดต่ำสุดในท้องถิ่นที่ไม่ดีแทนที่จะปล่อยให้มันติดอยู่ในนั้น


14

ฉันกำลังเพิ่มคำตอบของคำถามนี้เพื่ออ้างอิงเอกสารการประชุม ICLR ใหม่จาก Google ซึ่งเกือบจะตอบคำถามนี้โดยตรง

หัวข้อ: อย่าสลายอัตราการเรียนรู้, เพิ่มขนาดของแบทช์

https://arxiv.org/abs/1711.00489

บทคัดย่อจากกระดาษด้านบนถูกคัดลอกมาที่นี่:

มันเป็นเรื่องธรรมดาที่จะสลายอัตราการเรียนรู้ ที่นี่เราแสดงให้เห็นว่าหนึ่งสามารถรับเส้นโค้งการเรียนรู้เดียวกันทั้งในชุดฝึกอบรมและชุดทดสอบโดยการเพิ่มขนาดชุดในระหว่างการฝึกอบรมแทน ขั้นตอนนี้สำเร็จสำหรับการไล่ระดับสีแบบสุ่ม (SGD), SGD พร้อมด้วยโมเมนตัม, โมเมนตัม Nesterov และอดัม มันมาถึงความแม่นยำในการทดสอบที่เท่ากันหลังจากผ่านช่วงเวลาการฝึกซ้อมจำนวนเท่าเดิม แต่มีการอัพเดทพารามิเตอร์น้อยลงทำให้มีความขนานและเวลาในการฝึกที่สั้นลง เราสามารถลดจำนวนการอัพเดทพารามิเตอร์ได้อีกโดยเพิ่มอัตราการเรียนรู้ ϵ และปรับขนาดแบทช์ B∝ϵ ในที่สุดเราสามารถเพิ่มค่าสัมประสิทธิ์โมเมนตัม m และสเกล B∝1 / (1 − m) แม้ว่าสิ่งนี้มีแนวโน้มที่จะลดความแม่นยำในการทดสอบเล็กน้อย ขับเคลื่อน เทคนิคของเราช่วยให้เราสามารถกำหนดตารางการฝึกอบรมที่มีอยู่ใหม่สำหรับการฝึกอบรมแบบกลุ่มใหญ่โดยไม่มีการปรับค่าพารามิเตอร์มากเกินไป เราฝึกอบรม ResNet-50 ใน ImageNet ให้มีความแม่นยำในการตรวจสอบความถูกต้อง 76.1% ภายใน 30 นาที


1
ความต้องการหน่วยความจำขนาดใหญ่นั้นดูเหมือนจะเป็นการแลกเปลี่ยนที่ไม่ดีสำหรับการหลีกเลี่ยงการลดค่า IMHO ที่มีรอยความจำเพิ่มขึ้นในระหว่างการฝึกอบรมทำให้อัลกอริทึมที่น้อยลงและไม่สามารถปรับขนาดได้
P-Gn

3

ผมแสดงให้ประสบการณ์เชิงประจักษ์บางที่นี่ ฉันทำการทดลองด้วยชุดขนาด 4 และขนาดชุด 4096 ขนาด 4096 กำลังทำการ backpropagations น้อยลง 1024x ดังนั้นสัญชาตญาณของฉันคือกระบวนการที่มีขนาดใหญ่กว่าทำน้อยลงและมีขั้นตอนการค้นหาที่หยาบกว่าสำหรับโซลูชันที่ดีที่สุดดังนั้นโดยการก่อสร้างจะมีโอกาสน้อยกว่าที่จะมาบรรจบกันในโซลูชันที่ดีที่สุด

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