maxout ในโครงข่ายประสาทเทียมคืออะไร


42

ใครสามารถอธิบายว่าหน่วย maxout ในเครือข่ายประสาทเทียมทำอะไรได้บ้าง พวกเขาทำงานได้อย่างไรและแตกต่างจากหน่วยทั่วไปอย่างไร

ฉันพยายามอ่านกระดาษ"Maxout Network" 2013 โดย Goodfellow และคณะ (จากกลุ่มของศาสตราจารย์โยชูวาเบงกิโอ) แต่ฉันไม่เข้าใจเลย

คำตอบ:


26

เลเยอร์ maxout เป็นเพียงเลเยอร์ที่ฟังก์ชันการเปิดใช้งานเป็นค่าสูงสุดของอินพุต ตามที่ระบุในเอกสารแม้แต่ MLP ที่มี 2 maxout unit สามารถประมาณฟังก์ชั่นใด ๆ พวกเขาให้เหตุผลสองประการว่าทำไม maxout อาจทำงานได้ดี แต่เหตุผลหลักที่พวกเขาให้มีดังต่อไปนี้ -

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

รหัสของพวกเขาสามารถใช้ได้ที่นี่


1
ขอบคุณ! ฉันเข้าใจวิธีทำ maxout ในขณะนี้ ฉันมีคำถาม (1) คุณไม่ต้องทำการดรอปเอาท์ก่อน maxout out ตามที่คุณเขียนว่า "ใน maxout พวกมันจะไม่ปล่อยอินพุตไปยังเลเยอร์ maxout"? (2) ส่วนเชิงเส้นของ MLP หมายความว่าอย่างไร "ดังนั้นการออกกลางคันเกิดขึ้นเฉพาะในส่วนเชิงเส้นของ MLP แต่ยังสามารถประมาณฟังก์ชั่นใด ๆ ได้เนื่องจากเลเยอร์ maxout" (3) ทำไมค่าเฉลี่ยดีกว่า? "เมื่อการออกกลางคันเกิดขึ้นในส่วนที่เป็นเส้นตรงเท่านั้นพวกเขาคาดการณ์ว่าสิ่งนี้นำไปสู่การหาค่าเฉลี่ยของแบบจำลองที่มีประสิทธิภาพมากขึ้นเนื่องจากการประมาณค่าเฉลี่ยเป็นสิ่งที่แน่นอนสำหรับเครือข่ายเชิงเส้น"
RockTheStar

2
(1) ดังนั้นจากสิ่งที่ฉันเข้าใจโหนดชั้น maxout เป็นและx_k ดังนั้นอินพุตโหนดไปยังเลเยอร์ maxout เองนั้นเป็นการรวมกันเชิงเส้นของโหนดในเลเยอร์ลึกลง ไม่ได้ทำการดรอปเอาท์สำหรับเลเยอร์ maxout หรือสำหรับเลเยอร์ z แต่ทำเพื่อเลเยอร์ที่ลึกกว่านั้น (2) ส่วนเชิงเส้นหมายถึงเลเยอร์ที่ซ่อนอยู่ซึ่งมีฟังก์ชั่นการเปิดใช้งานเชิงเส้นเท่านั้น (3) ค่าเฉลี่ยที่ดีกว่าสำหรับเครือข่ายเชิงเส้นโครงร่างค่าเฉลี่ยที่ใช้โดยการออกกลางคันนั้นแน่นอน โดยทั่วไป NN ไม่ใช่แบบเส้นตรง แต่ด้วย maxout พวกเขาใช้ประโยชน์จาก NN แบบเส้นตรงส่วนใหญ่และทำแบบเลื่อนออกบนส่วนเชิงเส้นเท่านั้น max(zi)zi=kxk
เลือก

ขอบคุณ! สำหรับ (3) คำว่า "แน่นอน" หมายถึงอะไรและทำไม NN จึงกลายเป็นเส้นตรงด้วย maxout ขอบคุณมากสำหรับความช่วยเหลือของคุณ.
RockTheStar

1
Nah maxout เป็นสถาปัตยกรรมเครือข่าย การออกกลางคันเป็นเทคนิคการทำให้เป็นมาตรฐาน
เลือก

1
-1 นี่ไม่ใช่คำจำกัดความที่ถูกต้องของฟังก์ชั่นการเปิดใช้งาน maxout ของ Goodfellow คำตอบโดย @ toussaint-louverture ทำให้ถูกต้อง stats.stackexchange.com/a/298705/20587
Trisoloriansunscreen

15

หน่วย maxout สามารถเรียนรู้ฟังก์ชั่นเชิงเส้นและการนูนที่มีจำนวนชิ้นได้มากถึง k 1

ดังนั้นเมื่อ k เป็น 2 คุณสามารถใช้ ReLU, ReLU แบบสัมบูรณ์, ReLU ที่รั่วไหลได้ ฯลฯ หรือสามารถเรียนรู้ที่จะใช้ฟังก์ชันใหม่ ถ้า k สมมุติว่า 10 คุณสามารถเรียนรู้ฟังก์ชันนูนได้โดยประมาณ

เมื่อ k คือ 2:

เซลล์ประสาท maxout คำนวณฟังก์ชั่นb_2) ทั้ง ReLU และ Leaky ReLU เป็นกรณีพิเศษของแบบฟอร์มนี้ (ตัวอย่างเช่นสำหรับ ReLU เรามี ) เซลล์ประสาท Maxout จึงได้รับประโยชน์ทั้งหมดจากหน่วย ReLU (ระบอบการทำงานเชิงเส้นไม่มีความอิ่มตัว) และไม่มีข้อเสีย (ตาย ReLU)max(w1Tx+b1,w2Tx+b2)w1,b1=0

อย่างไรก็ตามแตกต่างจากเซลล์ประสาท ReLU มันเป็นสองเท่าของจำนวนพารามิเตอร์สำหรับเซลล์ประสาททุกเดียวนำไปสู่จำนวนพารามิเตอร์สูง 2

คุณสามารถอ่านรายละเอียดได้ที่นี่:
1. DL book
2. http://cs231n.github.io/neural-networks-1


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