ข้อ จำกัด maxnorm คืออะไร? มันมีประโยชน์อย่างไรใน Convolutional Neural Networks


คำตอบ:


16

จากhttp://cs231n.github.io/neural-networks-2/#reg :

ข้อ จำกัด บรรทัดฐานสูงสุด การทำให้เป็นมาตรฐานอีกรูปแบบหนึ่งคือการบังคับใช้ขอบเขตบนแบบสัมบูรณ์บนขนาดของเวกเตอร์น้ำหนักสำหรับทุกเซลล์ประสาทและใช้การไล่ระดับสีที่คาดการณ์ไว้เพื่อบังคับใช้ข้อ จำกัด ในทางปฏิบัติสิ่งนี้สอดคล้องกับการดำเนินการอัปเดตพารามิเตอร์ตามปกติแล้วบังคับใช้ข้อ จำกัด โดยการจับเวกเตอร์น้ำหนักของทุกเซลล์ประสาทเพื่อตอบสนองค่าทั่วไปของอยู่ในคำสั่งของ 3 หรือ 4 บางคนรายงานการปรับปรุงเมื่อใช้รูปแบบของการทำให้เป็นปกติ หนึ่งในคุณสมบัติที่น่าดึงดูดของมันคือเครือข่ายไม่สามารถ "ระเบิด" แม้ว่าอัตราการเรียนรู้จะถูกตั้งค่าสูงเกินไปเนื่องจากการอัปเดตนั้นจะถูก จำกัด ขอบเขตเสมอww2<c.c


8

ฉันพบคำตอบของ McLawrenceในคำถามอื่นที่มีประโยชน์มาก ทำซ้ำด้านล่าง:

น้ำหนัก จำกัดmax_normทำอะไรได้บ้าง?

maxnorm(m)จะถ้า L2-บรรทัดฐานของน้ำหนักเกินm, mเมทริกซ์ขนาดน้ำหนักของคุณทั้งหมดโดยปัจจัยที่ช่วยลดบรรทัดฐานไป คุณสามารถหาได้ในรหัส kerasในclass MaxNorm(Constraint):

def __call__(self, w):
    norms = K.sqrt(K.sum(K.square(w), axis=self.axis, keepdims=True))
    desired = K.clip(norms, 0, self.max_value)
    w *= (desired / (K.epsilon() + norms))
    return w

ตามปกติแล้วmaxnormจะมีการaxisโต้แย้งตามที่มีการคำนวณบรรทัดฐาน ในตัวอย่างของคุณคุณไม่ได้ระบุแกนดังนั้นค่าพื้นฐานจะถูกคำนวณผ่านเมทริกซ์น้ำหนักทั้งหมด ตัวอย่างเช่นถ้าคุณต้องการที่จะ จำกัด บรรทัดฐานของทุกกรองสับสนสมมติว่าคุณกำลังใช้การสั่งซื้อมิติเมทริกซ์น้ำหนักจะมีรูปร่างtf (rows, cols, input_depth, output_depth)การคำนวณบรรทัดฐานเหนือaxis = [0, 1, 2]จะ จำกัด ตัวกรองแต่ละตัวให้เป็นบรรทัดฐานที่กำหนด

ทำไมต้องทำ?

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


คำตอบที่ดี แต่ระวัง: "ในตัวอย่างของคุณคุณไม่ได้ระบุแกนดังนั้นค่าพื้นฐานจะถูกคำนวณผ่านเมทริกซ์น้ำหนักทั้งหมด" - สิ่งนี้ดูเหมือนจะไม่เป็นจริง (อย่างน้อยก็ในตอนนี้) axis=0แต่บรรทัดฐานที่มีการคำนวณแล้วกว่าเริ่มต้น
Bobson Dugnutt

ฉันเห็นด้วย max-norm จะถูกนำมาเป็นความยาวของน้ำหนักที่ fan-in ไปยังโหนดในเลเยอร์ที่ซ่อนอยู่คือ . นอกจากนี้คุณยังสังเกตเห็นว่าสำหรับการทำให้เป็นมาตรฐานการออกกลางคัน max-norm ถูกใช้สำหรับการวิ่งทั้งหมด (ดูย่อหน้าสุดท้ายในหน้า 1934 ของcs.toronto.edu/~rsalakhu/papers/srivastava14a.pdf ) ||w||
wrktsj
โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.