ความสำคัญของการฟื้นฟูท้องถิ่นใน CNN


41

ฉันพบว่า Imagenet และ CNN ขนาดใหญ่อื่น ๆ ใช้ประโยชน์จากเลเยอร์การทำให้เป็นมาตรฐานการตอบสนองในท้องถิ่น อย่างไรก็ตามฉันไม่พบข้อมูลมากมายเกี่ยวกับพวกเขา มีความสำคัญเพียงใดและควรใช้เมื่อใด

จากhttp://caffe.berkeleyvision.org/tutorial/layers.html#data-layers :

"เลเยอร์การปรับสภาพการตอบสนองแบบโลคอลดำเนินการ“ การยับยั้งด้านข้าง” โดยการทำให้เป็นมาตรฐานในพื้นที่อินพุตท้องถิ่นในโหมด ACROSS_CHANNELS ภูมิภาคภายในจะขยายผ่านช่องทางใกล้เคียง แต่ไม่มีขอบเขตเชิงพื้นที่ (เช่นมีรูปร่างเป็น local_size x 1 x 1) ในโหมด WITHIN_CHANNEL ภูมิภาคท้องถิ่นจะขยายพื้นที่ออกไป แต่อยู่ในช่องแยก (เช่นพวกเขามีรูปร่าง 1 x local_size x local_size) แต่ละค่าอินพุตจะถูกหารด้วย (1+ (α / n) ∑ix2i) βโดยที่ n คือขนาดของแต่ละพื้นที่ท้องถิ่นและผลรวมจะถูกยึดเหนือพื้นที่ที่อยู่กึ่งกลางที่ค่านั้น (เพิ่มการเติมศูนย์เป็นศูนย์หากจำเป็น) "

แก้ไข:

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

คำตอบ:


20

ดูเหมือนว่าชั้นเหล่านี้มีผลกระทบน้อยที่สุดและไม่ได้ใช้อีกต่อไป โดยทั่วไปบทบาทของพวกเขาได้รับการ outplayed โดยเทคนิคการทำให้เป็นมาตรฐานอื่น ๆ (เช่นการออกกลางคันและการทำให้เป็นมาตรฐานเป็นชุด) การเริ่มต้นที่ดีขึ้นและวิธีการฝึกอบรม นี่คือสิ่งที่เขียนไว้ในบันทึกการบรรยายสำหรับ Stanford Course CS321nบน ConvNets:

Normalization Layer

มีการนำเสนอเลเยอร์การทำให้เป็นมาตรฐานหลายประเภทเพื่อใช้ในสถาปัตยกรรม ConvNet บางครั้งด้วยความตั้งใจที่จะใช้แผนการยับยั้งที่พบในสมองทางชีวภาพ อย่างไรก็ตามเลเยอร์เหล่านี้ไม่ได้รับความนิยมเนื่องจากเมื่อเร็ว ๆ นี้ในทางปฏิบัติการสนับสนุนของพวกเขาได้แสดงให้เห็นว่ามีน้อยมากหากมี สำหรับการปรับมาตรฐานหลายประเภทดูการอภิปรายใน API cuda-convnet ไลบรารี่ของ Alex Krizhevsky


20

แน่นอนดูเหมือนไม่มีคำอธิบายที่ดีในที่เดียว ที่ดีที่สุดคือการอ่านบทความจากที่มา:

บทความ AlexNet ต้นฉบับอธิบายเล็กน้อยในหัวข้อ 3.3:

  • Krizhevsky, Sutskever และ Hinton, การจัดประเภท ImageNet ด้วย Deep Convolutional Networks, NIPS 2012 pdf

วิธีการทำเช่นนี้ถูกเสนอใน (แต่ไม่มากข้อมูลเพิ่มเติมที่นี่)

  • Kevin Jarrett, Koray Kavukcuoglu, Marc'Aurelio Ranzato และ Yann LeCun, สถาปัตยกรรม Multi-Stage ที่ดีที่สุดสำหรับการรู้จำวัตถุคืออะไร, ICCV 2009. pdf

มันเป็นแรงบันดาลใจจากประสาทวิทยาศาสตร์การคำนวณ:

  • S. Lyu และ E. Simoncelli การแสดงรูปภาพที่ไม่เชิงเส้นโดยใช้การปรับสภาพให้เป็นแบบแบ่งส่วน CVPR 2008 รูปแบบไฟล์ PDF บทความนี้ลึกลงไปในคณิตศาสตร์และเป็นไปตามคำตอบของ seanv507
  • [24] N. Pinto, DD Cox และ JJ DiCarlo ทำไมการรับรู้วัตถุในโลกแห่งความจริงจึงยาก ชีววิทยาการคำนวณ PLoS, 2008

15

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

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


2
การปรับสภาพแบทช์ให้เป็นมาตรฐาน: เร่งการฝึกอบรมเครือข่ายลึกโดยการลดการเปลี่ยนแปลงภายใน Covariate Shift Sergey Ioffe, Christian Szegedy, arxiv.org/abs/1502.03167ทำการ rescaling ของอินพุตของเซลล์ประสาท (อย่างระมัดระวัง) และบรรลุผลเร็วมาก
seanv507

คุณสามารถแก้ไขข้อมูลนี้เป็นคำตอบของคุณโดยใช้ปุ่มแก้ไขด้านล่างข้อความคำตอบของคุณ
Reinstate Monica

10

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

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

กล่าวอีกนัยหนึ่ง LRN อนุญาตให้ลดการตอบสนองที่มีขนาดใหญ่เท่ากันสำหรับละแวกใกล้เคียงและทำให้การเปิดใช้งานขนาดใหญ่เด่นชัดมากขึ้นภายในพื้นที่ใกล้เคียงเช่นสร้างความเปรียบต่างที่สูงขึ้นในแผนที่เปิดใช้งาน prateekvjoshi.comระบุว่าเป็นประโยชน์อย่างมากกับฟังก์ชั่นการเปิดใช้งานมากมายในฐานะ RELU

สูตรเดิม:สำหรับตำแหน่งโดยเฉพาะอย่างยิ่งทุก(x, y)และเคอร์เนลฉันที่สอดคล้องกับซิงเกิ้ล 'พิกเซล' เอาท์พุทที่เราใช้ 'กรอง' ที่รวมเอาข้อมูลเกี่ยวกับผลของอื่น ๆnเมล็ดนำไปใช้กับตำแหน่งเดียวกัน การทำให้เป็นมาตรฐานนี้จะถูกใช้ก่อนฟังก์ชั่นการเปิดใช้งาน การทำให้เป็นปกตินี้แน่นอนขึ้นอยู่กับคำสั่งของเมล็ดซึ่งก็คือความรู้ที่ดีที่สุดของฉันเพียงแค่บังเอิญโชคร้าย

LRN

ในทางปฏิบัติ (ดูCaffe ) 2 วิธีสามารถใช้ได้:

  1. WITHIN_CHANNEL ทำให้เป็นมาตรฐานเหนือพื้นที่ใกล้เคียงในท้องถิ่นของช่องทางเดียว (ตรงกับตัวกรอง convolutional เดียว) กล่าวอีกนัยหนึ่งแบ่งการตอบสนองของช่องทางเดียวของพิกเซลเดียวตามค่าผลลัพธ์ของเซลล์ประสาทเดียวกันสำหรับพิกเซลใกล้เคียง
  2. ACROSS_CHANNELS สำหรับพิกเซลเดียวทำให้ค่าปกติของทุกช่องเป็นไปตามค่าของช่องทั้งหมดสำหรับพิกเซลเดียวกัน

การใช้งานจริงแอลอาร์เอ็นถูกใช้บ่อยกว่าในช่วงวันแรกของการคอนแวนต์อย่าง LeNet-5 การใช้งานปัจจุบันของ GoogLeNet (Inception) ใน Caffe มักจะใช้ LRN ในการเชื่อมโยงกับเทคนิคการรวมกำไร แต่ดูเหมือนว่าจะทำเพื่อประโยชน์เพียงแค่มีมัน ทั้ง Inception / GoogLeNet ดั้งเดิม ( ที่นี่ ) หรือรุ่นใด ๆ ต่อไปนี้จะกล่าวถึง LRN ไม่ว่าด้วยวิธีใด นอกจากนี้การใช้ TensorFlow ของ Inception (จัดหาและปรับปรุงโดยทีมงานของผู้เขียนต้นฉบับ) เครือข่ายไม่ได้ใช้ LRN แม้จะใช้งานได้ก็ตาม

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


ฉันจะเพิ่มว่า LRN เป็น "มาตรฐานการแข่งขัน" ตามหน้า 374 ในGéron, Aurélien การเรียนรู้ด้วยเครื่องแบบลงมือปฏิบัติด้วย Scikit-Learn และ TensorFlow: แนวคิดเครื่องมือและเทคนิคในการสร้างระบบอัจฉริยะ "O'Reilly Media, Inc" 2017 (ฉันพูดถึงว่าเพราะ Hinton เพียงเรียกมันว่า "การฟื้นฟูสภาพการแข่งขัน" ในการบรรยายตาข่าย Convolutional สำหรับการรับรู้วัตถุในหลักสูตรของเขา
Oren Milman

7

Local Layer Normalization (LRN) ประเภทของเลเยอร์กลายเป็นประโยชน์เมื่อใช้เซลล์ประสาทที่มีการเปิดใช้งานที่ไม่ได้ จำกัด (เช่นเซลล์ประสาทเชิงเส้นที่แก้ไขแล้ว) เนื่องจากอนุญาตให้ตรวจจับคุณสมบัติความถี่สูงด้วยการตอบสนองของเซลล์ประสาทขนาดใหญ่ ในพื้นที่ใกล้เคียง เป็นประเภทของ regularizer ที่สนับสนุน "การแข่งขัน" สำหรับกิจกรรมใหญ่ในกลุ่มเซลล์ประสาทใกล้เคียง

src- https://code.google.com/p/cuda-convnet/wiki/LayerParams#Local_response_normalization_layer_(same_map)


0

การปรับสภาพการตอบสนองในท้องถิ่น (LRN) จะทำพิกเซลฉลาดสำหรับแต่ละช่องทาง :i

xi=xi(k+(αjxj2))β

โดยที่เป็นค่าคงที่ โปรดทราบว่าคุณจะได้รับการฟื้นฟู L2 ถ้าคุณตั้งค่า , ,{2}k,α,βRκ=0α=1β=12

อย่างไรก็ตามมีเทคนิคใหม่ที่เรียกว่า "การทำให้เป็นมาตรฐานแบบแบทช์" (ดูกระดาษ ) ซึ่งทำงานคล้ายกันมากและไม่แนะนำให้ใช้ LRN อีกต่อไป การปรับสภาพแบตช์ให้ผลเช่นเดียวกันกับพิกเซลที่ชาญฉลาด:

y=xμσ2+ϵγ+β

โดยที่คือค่าเฉลี่ย,คือความแปรปรวน,เป็นค่าคงที่ขนาดเล็กเป็นพารามิเตอร์ที่เรียนรู้ได้ซึ่งอนุญาตให้สุทธิลบการทำให้เป็นมาตรฐานμσ2ε>0γ,βR

ดังนั้นคำตอบคือ: Local Response Normalization ไม่สำคัญอีกต่อไปเพราะเรามีบางอย่างที่ทำงานได้ดีขึ้นและแทนที่ LRN: Batch Normalization

ดูสิ่งนี้ด้วย


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