หลีกเลี่ยงการ overfitting ในการถดถอย: ทางเลือกเพื่อ normalization


19

การทำให้เป็นปกติในการถดถอย (เชิงเส้น, โลจิสติก ... ) เป็นวิธีที่นิยมมากที่สุดในการลดความกระชับ

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


3
"ชุดข้อมูลขนาดใหญ่" อาจหมายถึงการสังเกตจำนวนมากตัวแปรจำนวนมากหรือทั้งสองอย่างและคำตอบอาจขึ้นอยู่กับจำนวนการสังเกตและตัวแปร
Pere

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

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

1
สิ่งนี้อาจเป็นที่สนใจ: stats.stackexchange.com/a/161592/40604
Dan

1
เพื่อเพิ่มความคิดเห็นโดย Digio นี้กูจะถูกเปรียบเทียบราคาถูกห่อ / ส่งเสริม แต่ยังคงมีราคาแพงเมื่อเทียบกับทางเลือกของการ "ไม่กู" (ดูเช่นโพสต์นี้โดยเบน Recht เกี่ยวกับวิธี regularization ทำให้ลึกการเรียนรู้ยาก ) หากคุณมีตัวอย่างจำนวนมากการทำให้เป็นมาตรฐานไม่สามารถทำงานได้ดีในราคาที่ถูกกว่า แบบจำลองยังสามารถพูดคุยได้ดีเช่นเดียวกับ @ hxd1001 คะแนน )
Berk U.

คำตอบ:


11

สองประเด็นสำคัญที่ไม่เกี่ยวข้องกับคำถามของคุณโดยตรง:

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

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


ตอนนี้เกี่ยวกับคำถามของคุณ ดังที่เบ็นกับอันเดรย์กล่าวถึงแล้วมีตัวเลือกบางตัวเลือกในการทำให้เป็นมาตรฐาน ฉันต้องการเพิ่มตัวอย่างเพิ่มเติม

  • ใช้แบบจำลองที่เรียบง่ายขึ้น (ตัวอย่างเช่นลดจำนวนหน่วยที่ซ่อนอยู่ในเครือข่ายประสาทเทียมใช้เคอร์เนลพหุนามลำดับที่ต่ำกว่าใน SVM ลดจำนวน Gaussians ในส่วนผสมของ Gaussian ฯลฯ )

  • หยุดก่อนในการเพิ่มประสิทธิภาพ (ตัวอย่างเช่นลดยุคในการฝึกอบรมเครือข่ายนิวรัลลดจำนวนการวนซ้ำในการปรับให้เหมาะสม (CG, BFGS ฯลฯ )

  • ค่าเฉลี่ยในหลายรุ่น (ตัวอย่างเช่นฟอเรสต์แบบสุ่มเป็นต้น)


ขอบคุณมาก. ตัวเลือกที่สอง (หยุดเร็ว) คือสิ่งที่เรากำลังลองกับ SGD ในปัจจุบัน มันใช้งานได้ค่อนข้างดี เราต้องการเปรียบเทียบกับการทำให้เป็นมาตรฐานในไม่ช้า คุณตระหนักถึงบทความใด ๆ ที่กล่าวถึงวิธีการนี้หรือไม่?
เบอนัวต์ซานเชซ

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

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

@BenoitSanchez เอกสารนี้อาจมีความเกี่ยวข้อง ผู้เขียนจัดการปัญหาที่แตกต่าง (overfitting ในการคำนวณ eigenvector) แต่กลยุทธ์ในการจัดการกับ overfitting นั้นเหมือนกัน (เช่นการทำให้เป็นระเบียบโดยนัยโดยการลดการคำนวณ) กลยุทธ์คือการแก้ปัญหาที่ถูกกว่าซึ่งเป็นวิธีแก้ปัญหาโดยประมาณ
Berk U.

@BenoitSanchez ฉันแนะนำสิ่งนี้ การบรรยายของ Lorenzo มีอยู่ใน youtube แต่หน้านี้มีลิงก์ไปยังเอกสารสองสามฉบับmit.edu/~9.520/fall17/Classes/early_stopping.html
David Kozak

14

สองทางเลือกในการทำให้เป็นมาตรฐาน:

  1. มีข้อสังเกตมากมาย
  2. ใช้แบบจำลองที่ง่ายกว่า

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

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


3

ความเป็นไปได้เพิ่มเติมบางอย่างเพื่อหลีกเลี่ยงการ overfitting

  • การลดขนาด

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

  • การเลือกคุณสมบัติ (รวมถึงการลดขนาด)

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

  • ใช้อัลกอริธึมที่เสี่ยงต่อการ overfitting น้อยเช่นฟอเรสต์แบบสุ่ม (ขึ้นอยู่กับการตั้งค่าจำนวนคุณสมบัติ ฯลฯ ... สิ่งเหล่านี้อาจมีราคาที่คำนวณได้มากกว่าสี่เหลี่ยมธรรมดาน้อยที่สุด)

    คำตอบอื่น ๆ บางส่วนได้กล่าวถึงข้อดีของเทคนิคการเพิ่มและบรรจุถุง / อัลกอริทึม

  • วิธีการแบบเบย์

    การเพิ่มค่าสัมประสิทธิ์เวกเตอร์ก่อนหน้านี้เป็นการลดการ overfitting สิ่งนี้เกี่ยวข้องกับแนวคิดเกี่ยวกับการทำให้เป็นมาตรฐาน: เช่น การถดถอยริดจ์เป็นกรณีพิเศษของการประมาณค่าสูงสุดหลัง


2

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


1
คำถามนี้ชัดเจนถามเกี่ยวกับแบบจำลองถดถอย (เชิงเส้น, โลจิสติก)
Matthew Drury

2
เทคนิคการพูดการถดถอยเชิงเส้นและโลจิสติกเป็นเครือข่ายประสาทที่ง่ายมาก
Andrey Lukyanenko

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

แม้แต่ sklearn ก็มีหลายรุ่นที่รองรับพารามิเตอร์ที่ จำกัด จำนวนการวนซ้ำ มันสามารถใช้ในการติดตามความถูกต้อง แต่ฉันคิดว่าคุณพูดถูกว่าถ้อยคำไม่ถูกต้อง
Andrey Lukyanenko

1

สองความคิด:

  1. ฉันที่สอง "ใช้ง่ายรุ่น" กลยุทธ์ที่เสนอโดยเบน Ogorek

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

    n/d

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

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

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