มีการใช้วิธีการค้นหาสายในการเรียนรู้อย่างลึกซึ้งหรือไม่? ทำไมจะไม่ล่ะ?


18

บทเรียนออนไลน์มากมายพูดคุยเกี่ยวกับการไล่ระดับสีและเกือบทั้งหมดใช้ขนาดขั้นตอนคงที่ (อัตราการเรียนรู้ ) เหตุใดจึงไม่มีการใช้การค้นหาบรรทัด (เช่นการค้นหาบรรทัดย้อนรอยหรือการค้นหาเส้นตรง)α


5
"และเกือบทั้งหมดใช้ขนาดขั้นตอนคงที่" - คุณแน่ใจหรือไม่ พารามิเตอร์ไฮเปอร์"อัตราการเรียนรู้"ควรปรับขนาดขั้นตอนให้เข้ากับเงื่อนไข อัลกอริทึมของ Adam ที่ได้รับความนิยมอย่างมากนั้นจะปรับขนาดของขั้นตอนได้
อั

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

1
การค้นหาเส้นทางย้อนกลับแก้ไขเส้นทางแล้วมองหาวิธีลดฟังก์ชั่น ดังนั้นหากคุณไม่มีวิธีที่ชาญฉลาดในการเลือกทิศทางที่จะค้นหาคุณจะได้รับการเพิ่มประสิทธิภาพที่น่าเบื่อ
อเล็กซ์อาร์

1
ฉันไม่เห็นว่าการค้นหาบรรทัดนั้นสมเหตุสมผลสำหรับ SGD (ซึ่งตรงข้ามกับการไล่ระดับสีแบบ [รุ่น]) ดังนั้นฉันจะบอกว่านั่นเป็นเหตุผล
seanv507

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

คำตอบ:


14

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

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

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

แก้ไข

@DeltaIV ชี้ให้เห็นว่าสิ่งนี้ยังนำไปใช้กับมินิแบทช์ไม่ได้เป็นเพียงตัวอย่างแต่ละตัวอย่าง


4
ดีมาก (+1) แต่ฉันไม่แน่ใจว่าทำไมในตัวอย่างสุดท้ายที่คุณพูดถึงตัวอย่างเดียว ฉันยอมรับว่าการคำนวณการค้นหาสายตาม mini-batch ไม่สมเหตุสมผล แต่ mini-batch ยังคงมี 512 ตัวอย่าง (ปกติและเมื่อพูดถึง ImageNet): แน่นอนไม่มีค่าคงที่สำหรับจำนวนตัวอย่างใน mini - แบตช์ แต่มีมินิตัวอย่าง 1 ตัวอย่างให้ความรู้สึกสุดขั้ว คุณใช้มันเพื่อทำให้ประเด็นของคุณชัดเจนยิ่งขึ้นหรือว่าฉันขาดอะไรไปบ้าง?
DeltaIV

2
@DeltaIV: ตัวอย่างเดียวส่วนใหญ่จะทำให้จุดเกี่ยวกับวิธีการที่ไม่ดีมันอาจเป็นปัญหาที่ง่ายมาก ถ้าเราทำ mini-batch ที่มีตัวอย่าง 512 ตัวอย่างจากการถดถอยโลจิสติกกับ 512+ covariates เราจะเห็นปัญหาเดียวกัน
หน้าผา AB

10

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


2
@DeltaIV: วิธีการแฟนซี "อื่น ๆ " ทั้งหมดถูกสร้างขึ้นที่ด้านบนของ SGD ปัญหาหลักคือวิธีการอื่นใช้ประโยชน์จากความรู้ในท้องถิ่นเพื่อให้การกระโดดมีประสิทธิภาพมากกว่าการสุ่มตัวอย่างเพียงคะแนนเพื่อคำนวณการไล่ระดับสี แต่ SGD นั้นเรียบง่ายและรวดเร็วมากและมันก็ไม่ได้แย่ขนาดนั้นเลย
Alex R.

2
@AlexR ประเด็นก็คือไม่ว่า SGD จะง่ายและ / หรือรวดเร็ว ความเรียบง่ายไม่สำคัญเนื่องจากห้องสมุดที่เหมาะสมทุกแห่งใช้ SGD, Adam, AdaGrad และ RMSProp (และอื่น ๆ บางครั้ง) ความเร็วมีความสำคัญน้อยลงเนื่องจากเวลาที่ใช้ในการคำนวณการอัปเดตระดับพารามิเตอร์นั้นน้อยมากเมื่อเทียบกับเวลาการฝึกอบรมโดยรวมของรุ่นเช่น ResNet จุดเดียวคือว่าด้วยเหตุผลบางอย่างที่เราไม่เข้าใจในวันนี้ SGD ทั่วไปดีกว่าพวกเขา ดังนั้นโดยทั่วไปหากคุณต้องการเอาชนะ SOTA คุณมักจะถูกบังคับให้ใช้หรืออย่างน้อยก็ต้องสลับไปใช้ในภายหลังในระหว่างการฝึกซ้อม
DeltaIV

3
@DeltaIV ที่น่าสนใจมาก ฉันเปิดกระดาษที่คุณเชื่อมโยงไปถึงและอ้างอิงถึงบทความพิมพ์ของWilson et al 2017สำหรับการอ้างสิทธิ์ที่ SGD ทั่วไปดีกว่าอาดัม ฯลฯ ดังนั้นเมื่อคุณบอกว่ามันเป็น "ที่รู้จักกันดี" คุณหมายถึงที่รู้จักกันดีมาตั้งแต่ประมาณครึ่งปีใช่มั้ย
อะมีบาพูดว่า Reinstate Monica

2
@DeltaIV ขอบคุณ ฉันไม่ได้เรียนรู้อย่างลึกซึ้งมากนักและฉันก็ไม่ทราบเลย ย้อนกลับไปเมื่อปี 2012 ตอนที่ฉันดูการบรรยายของ Coursera ของ Hinton เขาส่วนใหญ่ให้การสนับสนุน RMSprop และในช่วง 1-2 ปีที่ผ่านมาความประทับใจของฉันคือทุกคนใช้อดัม (ซึ่งแทนที่ RMSprop เมื่อฉันเล่นกับ autoencodersเมื่อปีที่แล้วฉันก็รู้ว่าอดัมทำงานได้เร็วกว่า SGD และตั้งแต่นั้นมาเพียงแค่คิดว่าอดัมเป็นตัวเลือกเริ่มต้นในปัจจุบัน
อะมีบาพูดว่า Reinstate Monica

3
@CliffAB ใช่ความสัมพันธ์ระหว่างการหยุด แต่เนิ่น ๆ และการทำให้เป็นมาตรฐานสามารถเห็นได้อย่างชัดเจนสำหรับกำลังสองน้อยที่สุดที่การไล่ระดับสีดำเนินการในลักษณะค่าเฉพาะและค่าลักษณะเฉพาะขนาดเล็กเป็นค่าสุดท้ายที่จะมาบรรจบกัน ในขณะที่โทษสันเขายังลงโทษค่าลักษณะขนาดเล็ก ตอนนี้ฉันมีเพียงแวบเดียวใน Wilson และคณะ เชื่อมโยงด้านบน แต่อย่างน้อยก็ในตัวอย่างกำลังสองน้อยที่สุดของพวกเขาตัวอย่าง SGD และ Adam ที่แตกต่างกันไม่ได้อธิบายโดยการหยุดก่อน พวกเขาอ้างว่าพวกเขามาบรรจบกับโซลูชั่นที่แตกต่าง
อะมีบาพูดว่า Reinstate Monica
โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.