ทำไมต้องใช้การไล่ระดับสีด้วยเครือข่ายประสาท


22
  1. เมื่อทำการฝึกอบรมเครือข่ายประสาทเทียมโดยใช้อัลกอริธึมการขยายพันธุ์แบบย้อนกลับจะใช้วิธีการไล่ระดับสีแบบไล่ระดับสีเพื่อกำหนดน้ำหนักการอัพเดท คำถามของฉันคือ: แทนที่จะใช้วิธีการไล่ระดับสีไล่ระดับเพื่อค้นหาจุดต่ำสุดอย่างช้าๆตามน้ำหนักที่กำหนดทำไมเราไม่ตั้งอนุพันธ์ , และหาค่าของน้ำหนักซึ่งช่วยลดข้อผิดพลาดหรือไม่wd(Error)dw=0w

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


2
ชื่อตัวพิมพ์ใหญ่ทั้งหมดไม่ได้มาตรฐานที่นี่ (โปรดมองไปรอบ ๆ ตัวคุณ) และที่นี่และที่อื่น ๆ คัดค้านอย่างกว้างขวางว่าเป็นการตะโกนที่ไม่พึงประสงค์
Nick Cox

@Nick Cox คำขอโทษของฉัน
Minaj

เป็นที่น่าสนใจที่จะเห็นว่าเมื่อใดก็ตามที่มีการใช้ตัวแปรซ่อนเร้นหรือแฝงในโมเดลการเรียนรู้ของเครื่องจักรการเพิ่มประสิทธิภาพ (เกือบ?) จะได้รับแบบไม่เชิงเส้นไม่นูนและยากที่จะปรับให้เหมาะสม
Vladislavs Dovgalecs

คำตอบ:


30
  1. เพราะเราทำไม่ได้ พื้นผิวการปรับให้เหมาะสมเป็นฟังก์ชันของน้ำหนักเป็นแบบไม่เชิงเส้นและไม่มีวิธีแก้ปัญหาแบบปิดสำหรับ 0w d S ( w )S(w)wdS(w)dw=0

  2. การไล่ระดับสีตามความหมายลงมา หากคุณไปถึงจุดที่อยู่กับที่หลังจากลงมามันจะต้องมีค่าต่ำสุด (ในพื้นที่) หรือจุดอาน แต่ไม่ควรมีค่าสูงสุดในท้องถิ่น


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

8
สิ่งนี้ไม่สามารถเกิดขึ้นได้เพราะฟังก์ชั่นข้อผิดพลาดที่ใช้กันทั่วไปทั้งหมดมีค่าต่ำสุดทางทฤษฎีอย่างเข้มงวดที่ 0 ข้อผิดพลาดไม่สามารถกลายเป็นลบได้
Marc Claesen

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

1
เห็นได้ชัดว่าเป็นรูปแบบปิดสำหรับการไล่ระดับสี (นั่นคือวิธีที่เราทำโคตรลาดแบบมีประสิทธิภาพ) ปัญหาคือไม่มีรูปแบบปิดรากของการไล่ระดับสี = 0
seanv507

@ seanv507 นั่นคือสิ่งที่ฉันตั้งใจจะพูดขอโทษสำหรับความสับสน แก้ไขโพสต์ของฉัน
Marc Claesen

10

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


1
ฉันแก้ไขความคิดเห็นเบื้องต้นของคุณเนื่องจากดูเหมือนว่าคุณดึงดูดผู้โหวตแล้ว! ยินดีต้อนรับสู่เว็บไซต์!
Matthew Drury

ขอบคุณ! ฉันไม่แน่ใจว่ามันควรจะเป็นความคิดเห็นหรือคำตอบและไม่ต้องการให้คำตอบแรกของฉันจะถูกลดระดับลงเพื่อการลืมเลือน
Jared Becksfort

6

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

  • เราต้องจัดการกับอนุพันธ์อันดับสอง (Hessian โดยเฉพาะผลิตภัณฑ์ Hessian-vector)
  • "ขั้นตอนการแก้ปัญหา" มีราคาแพงมากการคำนวณ: ในเวลาที่ใช้ในการแก้ปัญหาอย่างใดอย่างหนึ่งอาจมีการทำซ้ำลาดลงมาหลายระดับ

ถ้าใครใช้วิธี Krylov สำหรับการแก้ปัญหาของ Hessian และไม่มีใครใช้ preconditioner ที่ดีสำหรับ Hessian แล้วค่าใช้จ่ายโดยประมาณจะสมดุลกัน - การทำซ้ำของ Newton ใช้เวลานานกว่า แต่จะมีความคืบหน้ามากขึ้น เหมือนหรือช้ากว่าการไล่ระดับสี ในทางกลับกันหากใครมีเงื่อนไขล่วงหน้าที่ดีของ Hessian วิธีการของนิวตันจะชนะครั้งใหญ่

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


ฉันคิดว่าคุณเข้าใจผิด ผู้คนใช้เน็ตมาตั้งแต่ 90 แล้วและพวกเขาก็ตระหนักดีถึงวิธีการสั่งซื้อลำดับที่สอง ปัญหาคือว่าเครือข่ายจะประสบความสำเร็จเมื่อมีข้อมูลจำนวนมากซึ่งสนับสนุนพารามิเตอร์จำนวนมากซึ่งในกรณีนี้ข้อ จำกัด เวลาและหน่วยความจำของวิธีการอันดับสองไม่ได้ผล ดูเช่นleon.bottou.org/publications/pdf/compstat-2010.pdf
seanv507

@ seanv507 ไม่จริง การอภิปรายเกี่ยวกับวิธีการสั่งซื้อลำดับที่สองในกระดาษนั้นมีข้อบกพร่องมากมายในการที่พวกเขาคิดว่าเราจะต้องสร้างและคว่ำ Hessian หนาแน่นทั้งหมดเพื่อใช้วิธีการสั่งซื้อลำดับที่สอง นี่ไม่ใช่วิธีการทำในการเพิ่มประสิทธิภาพตัวเลขขนาดใหญ่ที่ทันสมัย ในวิธีการลำดับที่สองที่ทันสมัยหนึ่งจะคำนวณการกระทำของ Hessian เกี่ยวกับเวกเตอร์โดยการแก้ปัญหา adjoint และใช้พวกมันภายในตัวแก้ซ้ำ (Krylov) โดยทั่วไปการทำซ้ำภายในครั้งแรกส่งคืนทิศทางการไล่ระดับสีและการทำซ้ำตามมาจะปรับปรุงให้ดีขึ้น
Nick Alger

แม้ว่าฉันจะไม่ใช่แฟนของกระดาษชิ้นนั้น แต่ฉันไม่คิดว่ามันเป็นเรื่องจริง ก่อนหน้านี้เขาได้พูดคุย / ดำเนินการในแนวทแยงและลดการประมาณอันดับของรัฐ แล้วเรื่องการคูณทวีคูณอย่างรวดเร็วของกระดาษปะมังของ pearlmutter ในปี 1994 ล่ะ?
seanv507

ขวา. เมื่อคุณมีแอปพลิเคชัน Hessian ที่รวดเร็ว (ไม่ว่าจะผ่าน Pearlmutter หรือมีอะไรก็ตาม) คุณสามารถทำ Hessian ที่ไม่แน่นอนด้วยวิธี Krylov เช่นการไล่ระดับสีแบบคอนจูเกต ด้วยการทำเช่นนี้เราสามารถโอนปัญหาที่ไม่ได้รับผลกระทบออกไปจากเครื่องมือเพิ่มประสิทธิภาพแบบไม่เชิงเส้นแบบไม่เชิงเส้นลงบนตัวแก้สมการพีชคณิตเชิงเส้นเชิงเส้นตรงที่หนึ่งมีเครื่องจักรจำนวนมากและเทคนิคการปรับสภาพล่วงหน้าเพื่อจัดการกับปัญหา การอ้างอิงที่ดีคือส่วนของ CG-Steihaug ในภูมิภาคที่ไว้วางใจใน "การเพิ่มประสิทธิภาพเชิงตัวเลข" แบบคลาสสิกโดย Nocedal และ Wright
Nick Alger

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