ความแตกต่างระหว่าง initializer scaling initializer และ xavier initializer คืออะไร


20

ในการใช้งานResNetของ Tensorflow ฉันพบว่าพวกเขาใช้ initializer scaling initializer ฉันยังพบว่า xavier initializer นั้นเป็นที่นิยม ฉันไม่มีประสบการณ์มากเกินไปเกี่ยวกับเรื่องนี้


สำหรับคำอธิบายโดยละเอียดเพิ่มเติมเกี่ยวกับการเริ่มต้นของซาเวียร์คุณสามารถเยี่ยมชมลิงค์นี้: prateekvjoshi.com 2016/03/29/…ซึ่งรวมถึงการกำหนดค่าเริ่มต้นและสัญชาตญาณของซาเวียร์ที่เหมาะสม
Himanshu Singh

คำตอบ:


31

มุมมองทางประวัติศาสตร์

การกำหนดค่าเริ่มต้นของซาเวียร์ซึ่งเสนอโดย Xavier Glorot และ Yoshua Bengio ใน"การทำความเข้าใจกับความยากลำบากในการฝึกอบรมเครือข่ายนิวรัล feedforward ลึก"เป็นเทคนิคการเริ่มต้นน้ำหนักที่พยายามสร้างความแปรปรวนของเอาท์พุทของชั้นให้เท่ากับความแปรปรวนของอินพุต . แนวคิดนี้เป็นประโยชน์อย่างมากในทางปฏิบัติ การกำหนดค่าเริ่มต้นนี้ขึ้นอยู่กับฟังก์ชันการเปิดใช้งานเลเยอร์ และในเอกสารของพวกเขา Glorot และ Bengio พิจารณาฟังก์ชั่นการเปิดใช้งานsigmoidซึ่งเป็นตัวเลือกเริ่มต้นในขณะนั้น

หลังจากนั้นการเปิดใช้งาน sigmoid ถูกค้นพบโดย ReLu เนื่องจากได้รับอนุญาตให้แก้ปัญหาการหายไป / การระเบิดแบบไล่ระดับสี ดังนั้นจึงมีเทคนิคการเริ่มต้นใหม่ซึ่งใช้แนวคิดเดียวกัน (ปรับสมดุลของความแปรปรวนของการเปิดใช้งาน) กับฟังก์ชันการเปิดใช้งานใหม่นี้ มันได้รับการเสนอโดย Kaiming เขาที่อัลใน"Delving ลึกเข้าไปในวงจรเรียงกระแส: เหนือกว่ามนุษย์ระดับประสิทธิภาพในการจำแนกประเภท ImageNet"และตอนนี้ก็มักจะเรียกว่าเขาเริ่มต้น

ใน tensorflow เขาเริ่มต้นการใช้งานในvariance_scaling_initializer()ฟังก์ชั่น (ซึ่งในความเป็นจริงเป็น initializer ทั่วไปมากขึ้น แต่โดยการดำเนินการเริ่มต้นของเขาเริ่มต้น) ในขณะที่ซาเวียร์ initializer xavier_initializer()เป็นเหตุผล

สรุป

โดยสรุปความแตกต่างที่สำคัญสำหรับผู้ปฏิบัติงานการเรียนรู้ของเครื่องมีดังนี้:

  • เขาเริ่มต้นทำงานได้ดีขึ้นสำหรับเลเยอร์ด้วยการเปิดใช้งานReLu
  • การเริ่มต้นของซาเวียร์ทำงานได้ดีขึ้นสำหรับเลเยอร์ด้วยการเปิดใช้งานsigmoid

ใน pytorch ใช้ initializaiton แบบใด? มันขึ้นอยู่กับการเปิดใช้งานหรือไม่
Charlie Parker

2
สวัสดีสำหรับtanh()ฟังก์ชั่นการเปิดใช้งานฉันควรใช้ฟังก์ชั่นเริ่มต้นใด
GoingMyWay

@GoingMyWay ตามpytorch.org/docs/stable/นี้คุณสามารถใช้การเริ่มต้นเขาด้วยการได้รับ 5/3 ไม่แน่ใจว่ามาจากไหน
Podgorskiy

3

ความแปรปรวนปรับเป็นเพียงทั่วไปของซาเวียร์: การhttp://tflearn.org/initializations/ พวกเขาทั้งสองทำงานบนหลักการที่ว่าขนาดของการไล่ระดับสีควรจะคล้ายกันทั่วทุกชั้น ซาเวียร์น่าจะปลอดภัยกว่าที่จะใช้เนื่องจากมันไม่สามารถทดสอบการทดสอบเวลาได้ การพยายามเลือกพารามิเตอร์ของคุณเองสำหรับการปรับความแปรปรวนอาจขัดขวางการฝึกอบรมหรือทำให้เครือข่ายของคุณไม่ได้รับเลย


ขอบคุณ คุณหมายถึงเลือกพารามิเตอร์ของคุณเองสำหรับความแปรปรวน
Hanamichi

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