การเพิ่มประสิทธิภาพโคตรลาด


9

ฉันกำลังพยายามทำความเข้าใจกับการหาค่าเหมาะที่สุดสำหรับการไล่ระดับสีแบบลาดชันในขั้นตอนวิธี ML (การเรียนรู้ของเครื่อง) ผมเข้าใจว่ามีค่าใช้จ่ายในฟังก์ชั่นที่มีจุดมุ่งหมายเพื่อลดข้อผิดพลาดyy ในสถานการณ์ที่น้ำหนักได้รับการปรับให้เหมาะสมเพื่อให้เกิดข้อผิดพลาดขั้นต่ำและมีการใช้อนุพันธ์บางส่วนมันเปลี่ยนทั้งและในแต่ละขั้นตอนหรือเป็นการรวมกัน (เช่นในการทำซ้ำสองสามเท่านั้นเท่านั้นและ เมื่อไม่ได้ลดความผิดพลาดอีกต่อไปอนุพันธ์เริ่มต้นด้วย )? แอปพลิเคชันอาจเป็นแบบจำลองการถดถอยเชิงเส้นแบบจำลองการถดถอยแบบโลจิสติกหรือการเพิ่มอัลกอริทึมY^-YW1,W2W1W2W1W1W2

คำตอบ:


10

การไล่ระดับสีไล่ระดับอัพเดทพารามิเตอร์ทั้งหมดในแต่ละขั้นตอน คุณสามารถเห็นสิ่งนี้ได้ในกฎการอัพเดท:

W(เสื้อ+1)=W(เสื้อ)-η(W(เสื้อ)).

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

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

แม้ว่าคุณจะสามารถประมาณค่าพารามิเตอร์การถดถอยเชิงเส้นโดยใช้การไล่ระดับสีได้ แต่ก็ไม่ใช่ความคิดที่ดี

ในทำนองเดียวกันมีวิธีที่ดีกว่าในการประมาณค่าสัมประสิทธิ์การถดถอยโลจิสติก


ดังนั้นอัลกอริทึมอาจลองชุดค่าผสมที่แตกต่างกันเช่นเพิ่มw1ลดลงw2ตามทิศทางจากอนุพันธ์บางส่วนเพื่อเข้าถึง minima ท้องถิ่นและเพียงเพื่อยืนยันว่าอัลกอริทึมไม่จำเป็นต้องให้ minima ทั่วโลกตลอดเวลาหรือไม่
Pb89

และอนุพันธ์บางส่วนยังช่วยอธิบายได้ว่าจะเพิ่มหรือลดจำนวนเท่าไรw1และ / w2หรือทำได้โดยอัตราการเรียนรู้ / การหดตัวในขณะที่อนุพันธ์บางส่วนให้ทิศทางของการสืบเชื้อสายเท่านั้น
Pb89

การไล่ระดับสีเป็นเวกเตอร์ดังนั้นมันจึงมีทิศทางและขนาด เวกเตอร์สามารถ rescaled โดยพลการโดย scalar บวกและมันจะมีทิศทางเดียวกัน แต่ rescaling จะเปลี่ยนขนาดของมัน
Sycorax พูดว่า Reinstate Monica

หากขนาดของการไล่ระดับสีเป็นเช่นนั้นแล้วบทบาทของการหดตัวหรืออัตราการเรียนรู้คืออะไร?
Pb89

อัตราการเรียนรู้ช่วยลดความลาดชัน สมมติ(x)มีบรรทัดฐานขนาดใหญ่ (ความยาว) การก้าวใหญ่ ๆ จะทำให้คุณไปยังส่วนที่ห่างไกลของพื้นผิวสูญเสีย (กระโดดจากภูเขาหนึ่งไปอีกภูเขาหนึ่ง) เหตุผลหลักของการลดลงของการไล่ระดับสีคือการประมาณเชิงเส้นในบริเวณใกล้เคียงW(เสื้อ). การประมาณนั้นไม่ถูกต้องเสมอไป แต่มันอาจจะแย่กว่าที่คุณย้ายออกไป - ดังนั้นคุณต้องการทำตามขั้นตอนเล็ก ๆηโดยที่ 'เล็ก' นั้นมีปัญหาเฉพาะทั้งหมด
Sycorax พูดว่า Reinstate Monica

7

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

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

บนมืออื่น ๆ เปลี่ยนพารามิเตอร์หนึ่งในช่วงเวลาที่ไม่ได้มีอยู่และเป็นที่เรียกว่าการประสานงานขั้นตอนวิธีการที่ดีซึ่งเป็นประเภทของการไล่ระดับสีฟรีเพิ่มประสิทธิภาพของอัลกอริทึม ในทางปฏิบัติอาจใช้งานไม่ได้รวมถึงอัลกอริทึมแบบไล่ระดับสี

นี่คือคำตอบที่น่าสนใจเกี่ยวกับอัลกอริทึมการไล่ระดับสีฟรี

เป็นไปได้ไหมที่จะฝึกอบรมโครงข่ายประสาทเทียมโดยไม่ต้องทำการ backpropagation


1

จุดประสงค์ของการไล่ระดับสีคือการลดฟังก์ชั่นค่าใช้จ่าย การลดขนาดนี้สามารถทำได้โดยการปรับน้ำหนักสำหรับกรณีของคุณ w1 และ w2 โดยทั่วไปอาจจะมีnน้ำหนักดังกล่าว

การไล่ระดับสีจะทำในวิธีต่อไปนี้:

  1. เริ่มต้นน้ำหนักแบบสุ่ม
  2. คำนวณฟังก์ชันต้นทุนและการไล่ระดับสีด้วยน้ำหนักเริ่มต้น
  3. Weigths ที่อัปเดต: อาจเป็นไปได้ว่าการไล่ระดับสีเป็น O สำหรับตุ้มน้ำหนักบางอย่างในกรณีนี้ตุ้มน้ำหนักเหล่านั้นจะไม่แสดงการเปลี่ยนแปลงใด ๆ หลังจากอัปเดต ตัวอย่างเช่นสมมติว่าการไล่ระดับสีเป็น [1,0] W2จะไม่เปลี่ยนแปลง
  4. ตรวจสอบฟังก์ชั่นค่าใช้จ่ายด้วยตุ้มน้ำหนักที่อัปเดตหากการลดลงเป็นที่ยอมรับได้เพียงพอ

ในขณะที่การอัปเดตน้ำหนักที่จะทำการเปลี่ยนแปลงน้ำหนัก (W1 หรือ W2) จะถูกตัดสินโดยการไล่ระดับสี น้ำหนักทั้งหมดได้รับการอัปเดต (น้ำหนักบางอย่างอาจไม่เปลี่ยนแปลงตามการไล่ระดับสี)


"ถ้าการลดลงเป็นที่ยอมรับพอจะทำต่อการทำซ้ำอื่นสิ้นสุดลง" มีค่าเริ่มต้นซึ่งใช้ในแพ็คเกจของ python ( sklearn) หรือแพ็คเกจ R เช่นcaret? ผู้ใช้สามารถระบุได้เฉพาะในฟังก์ชั่นการไล่ระดับสีที่สร้างขึ้นเองหรือไม่?
P8989

1

การไล่ระดับสีที่เหมาะสมจะใช้กับทั้งสองw1และw2สำหรับการวนซ้ำแต่ละครั้ง ในระหว่างการทำซ้ำแต่ละครั้งพารามิเตอร์จะอัปเดตตามการไล่ระดับสี พวกเขาน่าจะมีอนุพันธ์บางส่วนที่แตกต่างกัน

ตรวจสอบที่นี่

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