ทำไมเราไม่เรียนรู้พารามิเตอร์ไฮเปอร์?


11

ฉันใช้กระดาษที่ได้รับความนิยมอย่างมากเรื่อง "การอธิบายและการฝ่าฝืนตัวอย่างที่เป็นที่นิยม " และในกระดาษมันฝึกฟังก์ชั่นวัตถุประสงค์เชิงรุก

J '' (θ) = αJ (θ) + (1 - α) J '(θ)

มันถือว่าαเป็นพารามิเตอร์ αสามารถ 0.1, 0.2, 0.3 และอื่น ๆ

โดยไม่คำนึงถึงเอกสารเฉพาะนี้ฉันสงสัยว่าทำไมเราไม่รวมαไว้ในพารามิเตอร์ของเราและเรียนรู้αที่ดีที่สุด

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


ถ้าพารามิเตอร์ไฮเปอร์พารามิเตอร์เป็นฟังก์ชั่นต้นทุน (และไม่ใช่ของกระบวนการสร้างข้อมูล DGP) ก็ไม่ชัดเจนว่าข้อมูลด้วยตัวเองมีข้อมูลเกี่ยวกับมัน
kjetil b halvorsen

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

คำตอบ:


8

"ทำไมเราไม่เรียนรู้พารามิเตอร์ไฮเปอร์?"

มันเป็นคำถามที่ยอดเยี่ยม! ฉันจะพยายามให้คำตอบทั่วไปเพิ่มเติม TL; DRคำตอบก็คือแน่นอนคุณสามารถเรียนรู้ hyperparameters เพียงแค่ไม่ได้มาจากข้อมูลเดียวกัน อ่านต่อเพื่อรับการตอบกลับที่ละเอียดกว่าเล็กน้อย


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

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

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

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

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

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


สวัสดีขอบคุณสำหรับคำตอบของคุณ จะเกิดอะไรขึ้นถ้าฉันใช้ข้อมูลเดียวกัน
Aerin

7

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

อีกวิธีที่จะเห็นมันคือฟังก์ชั่นการสูญเสียเป็นตัวแทนสำหรับวัตถุประสงค์ที่แท้จริงที่ยากที่จะกำหนดหรือปรับให้เหมาะสมเช่น "สร้างภาพที่ส่งออกควรดูสมจริง" หรือ "ควรจะทนต่อตัวอย่างที่เป็นปฏิปักษ์" ในกรณีดังกล่าวเป้าหมายที่แท้จริงไม่ได้ "ค้นหาไฮเปอร์พารามิเตอร์เพื่อลดการสูญเสียตัวแทน" มันคือ "ค้นหาไฮเปอร์พารามิเตอร์เช่นเมื่อเรารัน SGD บนพารามิเตอร์ที่เหลือเพื่อเพิ่มประสิทธิภาพของตัวแทนเราได้รับประสิทธิภาพที่ดีบนความจริง วัตถุประสงค์".


4

เนื่องจากคุณถามว่า "โดยไม่คำนึงถึงกระดาษ" ฉันต้องการยกตัวอย่างที่ง่ายกว่า: การถดถอยเชิงเส้นแบบลงโทษ (Ridge / Lasso)

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

Caveat: ภาพรวมคร่าวๆที่กระดาษเผยให้เห็นว่าผู้เขียนฝึกลักษณนามเครือข่ายประสาทเทียมสำหรับชุดข้อมูล MNIST ไม่ได้บอกวิธีเลือก hyper-parameterอย่างชัดเจนแต่ฉันจะเลือกหนึ่งที่ลดข้อผิดพลาดในการตรวจสอบความถูกต้องของโมเดลที่ดีที่สุดαα

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

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

ต้องบอกว่ามีเทคนิคในการเพิ่มประสิทธิภาพฟังก์ชั่นวัตถุประสงค์กล่องดำ (เช่น F2) โดยสมมติว่าโครงสร้างความเรียบเนียนบางอย่างเนื่องจากการพึ่งพาพารามิเตอร์ไฮเปอร์ ตัวอย่างเช่นคุณสามารถเห็นโพสต์นี้แสดงให้เห็นว่าประสิทธิภาพของโมเดล Lasso นั้นแตกต่างกันอย่างไรกับ hyper-parameter :λ

Lasso Model Performance

(ภาพที่นำมาจากโพสต์นี้: https://stats.stackexchange.com/a/26607/54725 )

อ้างอิงบางส่วน:


คุณอ้างถึงคำศัพท์เฉพาะในภาค 2 ของบทความ J (θ, x + esign (∇xJ (θ, x, y)) เป็น F2 หรือไม่?
Aerin

@Aaron no คือฟังก์ชันต้นทุน เป็นฟังก์ชันต้นทุนที่ทำให้เป็นมาตรฐาน เนื่องจากพวกเขากำลังสร้างลักษณนามฉันจะบอกว่า F2 อาจเป็นฟังก์ชันการตรวจสอบการสูญเสีย กระดาษบอกว่าพวกเขาเลือกเป็น 0.5 เนื่องจากทำงานได้ดีพอ (พวกเขาไม่ได้สำรวจค่าอื่นของหรือกลยุทธ์ในการเลือก ) JJ~ααα
Vimal

ในกระดาษคุณหมายถึงอะไรเป็น F1 และ F2
Aerin

F1 คือและฉันจะใช้การตรวจสอบข้อผิดพลาดเป็น F2 ฉันจะอัปเดตคำตอบของฉันเพื่อชี้แจงเรื่องนี้ J~
Vimal

1

ให้ดูว่าเงื่อนไขการสั่งซื้อครั้งแรกจะเป็นอย่างไรถ้าเราเสียบ hyperparameterและพยายามเรียนรู้แบบเดียวกับที่จากข้อมูล: ดังนั้น αθ

αJ(θ)=ααJ(θ)+α(1α)J(θ)=J(θ)J(θ)=0
J(θ)=J(θ)

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

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

yL=XLβL
aL=σ(yL)
XL+1=aL
βLβ

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

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