ความแตกต่างของฟังก์ชั่นการเปิดใช้งานในเครือข่ายประสาทโดยทั่วไป


15

ฉันได้ศึกษาประเภทฟังก์ชั่นการเปิดใช้งานสำหรับเครือข่ายประสาท ฟังก์ชั่นนั้นค่อนข้างตรงไปตรงมา แต่ความแตกต่างของแอพพลิเคชั่นนั้นไม่ชัดเจน

มันสมเหตุสมผลที่หนึ่งแตกต่างระหว่างฟังก์ชั่นประเภทตรรกะและเชิงเส้นขึ้นอยู่กับเอาต์พุตไบนารี / ต่อเนื่องที่ต้องการ แต่สิ่งที่เป็นข้อได้เปรียบของฟังก์ชั่น sigmoid มากกว่าเชิงเส้นง่าย ๆ ?

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

คำตอบ:


16

คำถามที่คล้ายกันถูกถามเกี่ยวกับ CV: รายการที่ครอบคลุมของฟังก์ชั่นการเปิดใช้งานในเครือข่ายประสาทมีข้อดี / ข้อเสีย

ฉันคัดลอกหนึ่งในคำตอบด้านล่าง:

หนึ่งในรายการดังกล่าว แต่ไม่ละเอียดมาก: http://cs231n.github.io/neural-networks-1/

ฟังก์ชั่นการเปิดใช้งานที่ใช้กันทั่วไป

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

ป้อนคำอธิบายรูปภาพที่นี่ป้อนคำอธิบายรูปภาพที่นี่

ซ้าย: Sigmoid ไม่ใช่เส้นตรงลบล้างจำนวนจริงในช่วงระหว่าง [0,1] ขวา: tanh ไม่ใช่เส้นตรงลบล้างตัวเลขจริงถึงช่วงระหว่าง [-1,1]

sigmoid sigmoid ที่ไม่ใช่เชิงเส้นมีรูปแบบทางคณิตศาสตร์และแสดงในภาพด้านบนทางซ้าย ตามที่กล่าวถึงในส่วนก่อนหน้ามันต้องใช้จำนวนจริงและ "สควอช" ในช่วงระหว่าง 0 และ 1 โดยเฉพาะอย่างยิ่งตัวเลขลบขนาดใหญ่กลายเป็น 0 และตัวเลขบวกขนาดใหญ่กลายเป็น 1 ฟังก์ชั่น sigmoid เนื่องจากมีการตีความที่ดีว่าอัตราการยิงของเซลล์ประสาท: จากการไม่ยิงเลย (0) ไปจนถึงการเผาที่อิ่มตัวอย่างเต็มที่ด้วยความถี่สูงสุดที่สันนิษฐาน (1) ในทางปฏิบัติ sigmoid non-linearity เพิ่งหลุดพ้นจากความโปรดปรานและไม่ค่อยมีใครเคยใช้ มันมีสองข้อเสีย:σ(x)=1/(1+ex)

  • Sigmoids เปียกโชกและฆ่าไล่ระดับสี คุณสมบัติที่ไม่พึงประสงค์อย่างมากของเซลล์ประสาท sigmoid คือเมื่อการกระตุ้นของเซลล์ประสาทอิ่มตัวที่ 0 หรือ 1 ส่วนใดส่วนหนึ่งการไล่ระดับสีในบริเวณนี้เกือบเป็นศูนย์ โปรดจำไว้ว่าในระหว่าง backpropagation การไล่ระดับสี (ในพื้นที่) นี้จะถูกคูณกับการไล่ระดับสีของเอาต์พุตของเกตนี้สำหรับวัตถุประสงค์ทั้งหมด ดังนั้นหากการไล่ระดับสีในพื้นที่มีขนาดเล็กมากมันจะ "ฆ่า" การไล่ระดับสีอย่างมีประสิทธิภาพและแทบไม่มีสัญญาณใดที่จะไหลผ่านเซลล์ประสาทไปยังน้ำหนักของมันและเรียกซ้ำไปยังข้อมูลของมัน นอกจากนี้เราต้องใช้ความระมัดระวังเป็นพิเศษเมื่อเริ่มต้นน้ำหนักของเซลล์ประสาท sigmoid เพื่อป้องกันความอิ่มตัว ตัวอย่างเช่นหากน้ำหนักเริ่มต้นมีขนาดใหญ่เกินไปเซลล์ประสาทส่วนใหญ่ก็จะอิ่มตัวและเครือข่ายก็แทบจะไม่ได้เรียนรู้
  • เอาท์พุท sigmoid จะไม่เป็นศูนย์เป็นศูนย์กลาง สิ่งนี้ไม่เป็นที่พึงปรารถนาเนื่องจากเซลล์ประสาทในชั้นถัดไปของการประมวลผลในเครือข่ายประสาท (เพิ่มเติมในเร็ว ๆ นี้) จะได้รับข้อมูลที่ไม่เป็นศูนย์ เรื่องนี้มีผลกระทบต่อการเปลี่ยนแปลงในระหว่างการสืบเชื้อสายการไล่ระดับสีเพราะถ้าข้อมูลเข้าสู่เซลล์ประสาทเป็นบวกเสมอ (เช่น elementwise ใน )) จากนั้นการไล่ระดับน้ำหนักที่จะระหว่างการเลื่อน ทั้งหมดเป็นบวกหรือลบทั้งหมด (ขึ้นอยู่กับความชันของการแสดงออกทั้งหมด f = w T x + b w fx>0f=wTx+bwf) สิ่งนี้สามารถแนะนำพลวัตซิกซิกซิกที่ไม่พึงประสงค์ในการปรับปรุงการไล่ระดับสีสำหรับตุ้มน้ำหนัก อย่างไรก็ตามโปรดสังเกตว่าเมื่อการไล่ระดับสีเหล่านี้ถูกรวมเข้าด้วยกันเป็นชุดข้อมูลการปรับปรุงขั้นสุดท้ายสำหรับตุ้มน้ำหนักอาจมีสัญญาณตัวแปรซึ่งจะช่วยบรรเทาปัญหานี้ ดังนั้นนี่คือความไม่สะดวก แต่มีผลกระทบรุนแรงน้อยกว่าเมื่อเทียบกับปัญหาการเปิดใช้งานอิ่มตัวด้านบน

Tanh tanh ไม่ใช่เชิงเส้นจะปรากฏในภาพด้านบนด้านขวา มันจะกระจายจำนวนจริงที่มีค่าในช่วง [-1, 1] เช่นเดียวกับ sigmoid neuron, การเปิดใช้งานของ saturate, แต่ต่างจาก sigmoid neuron ที่มันมีเอาต์พุตอยู่กึ่งกลาง ดังนั้นในทางปฏิบัติtanh non-linearity จึงเป็นที่ต้องการของ sigmoid nonlinearity นอกจากนี้ทราบว่าเซลล์ประสาท tanh เป็นเพียงการปรับขนาดเซลล์ประสาท sigmoid โดยเฉพาะอย่างยิ่งต่อไปนี้ถือ:-1tanh(x)=2σ(2x)1

ป้อนคำอธิบายรูปภาพที่นี่ป้อนคำอธิบายรูปภาพที่นี่

ซ้าย:ฟังก์ชั่นการเปิดใช้งานฟังก์ชั่น Linear หน่วย (ReLU) ซึ่งเป็นศูนย์เมื่อ x <0 แล้วเชิงเส้นที่มีความชัน 1 เมื่อ x> 0 ขวา:พล็อตจาก Krizhevsky et al (pdf) กระดาษที่ระบุว่าการปรับปรุงการบรรจบกันของ 6x กับหน่วย ReLU เทียบกับหน่วย tanh

Relu หน่วยเชิงเส้นที่แก้ไขแล้วได้รับความนิยมอย่างมากในช่วงไม่กี่ปีที่ผ่านมา มันคำนวณฟังก์ชันx) กล่าวอีกนัยหนึ่งการเปิดใช้งานจะถูก จำกัด ที่ศูนย์ (ดูภาพด้านบนทางซ้าย) มีข้อดีและข้อเสียหลายประการในการใช้ ReLUs:f(x)=max(0,x)

  • (+) พบว่ามีการเร่งความเร็วอย่างมาก (เช่นปัจจัย 6 ในKrizhevsky et al. ) การบรรจบกันของการไล่ระดับสีแบบสุ่มน้อยเมื่อเทียบกับฟังก์ชัน sigmoid / tanh มันเป็นที่ถกเถียงกันอยู่ว่านี่เป็นเพราะเส้นตรงไม่ใช่ - แบบฟอร์ม
  • (+) เปรียบเทียบกับเซลล์ประสาท tanh / sigmoid ที่เกี่ยวข้องกับการดำเนินการที่มีราคาแพง (exponentials ฯลฯ ), ReLU สามารถดำเนินการได้โดยเพียงแค่นวดเมทริกซ์ของการเปิดใช้งานเป็นศูนย์
  • (-) น่าเสียดายที่หน่วย ReLU อาจบอบบางในระหว่างการฝึกและสามารถ "ตาย" ได้ ตัวอย่างเช่นการไล่ระดับสีขนาดใหญ่ที่ไหลผ่านเซลล์ประสาท ReLU อาจทำให้น้ำหนักนั้นอัปเดตในลักษณะที่เซลล์ประสาทจะไม่เปิดใช้งานบนดาต้าพอยน์ใด ๆ อีก หากเกิดเหตุการณ์นี้การไล่ระดับสีที่ไหลผ่านหน่วยจะเป็นศูนย์ตลอดจากจุดนั้น นั่นคือหน่วย ReLU สามารถตายได้อย่างไม่สามารถกลับคืนมาได้ในระหว่างการฝึกซ้อม ตัวอย่างเช่นคุณอาจพบว่ามากถึง 40% ของเครือข่ายของคุณอาจ "ตาย" (เช่นเซลล์ประสาทที่ไม่เคยเปิดใช้งานในชุดข้อมูลการฝึกอบรมทั้งหมด) หากตั้งค่าอัตราการเรียนรู้สูงเกินไป ด้วยการตั้งค่าอัตราการเรียนรู้ที่เหมาะสมจึงไม่เกิดปัญหาบ่อยนัก

ReLU ที่รั่วไหล ReLU ที่รั่วไหลเป็นความพยายามหนึ่งในการแก้ไขปัญหา "reLU ที่กำลังจะตาย" แทนที่จะทำหน้าที่เป็นศูนย์เมื่อ x <0 ReLU ที่รั่วจะแทนความชันเชิงลบขนาดเล็ก (0.01 หรือมากกว่านั้น) นั่นคือฟังก์ชั่นคำนวณโดยที่เป็นค่าคงที่ขนาดเล็ก บางคนรายงานความสำเร็จด้วยฟังก์ชั่นการเปิดใช้งานรูปแบบนี้ แต่ผลลัพธ์ไม่สอดคล้องกันเสมอไป ความลาดชันในภูมิภาคเชิงลบยังสามารถสร้างเป็นพารามิเตอร์ของแต่ละเซลล์ประสาทตามที่เห็นในเซลล์ประสาทของ PReLU ซึ่งถูกนำมาใช้ในการเจาะลึกลงไปในวงจรเรียงกระแสโดย Kaiming He et al., 2015 อย่างไรก็ตามความสม่ำเสมอของผลประโยชน์ในงานต่างๆ กำกวมf(x)=1(x<0)(αx)+1(x>=0)(x)α

ป้อนคำอธิบายรูปภาพที่นี่

maxout หน่วยประเภทอื่น ๆ ได้รับการเสนอที่ไม่มีรูปแบบการทำงานซึ่งมีการใช้แบบไม่เชิงเส้นบนผลิตภัณฑ์ดอทระหว่างน้ำหนักและข้อมูล ทางเลือกที่ได้รับความนิยมอย่างหนึ่งคือ Maxout neuron (เพิ่งเปิดตัวโดย Goodfellow et al. ) ที่ทำให้โครงร่าง ReLU และเวอร์ชั่นรั่วไหล maxout เซลล์ประสาทคำนวณฟังก์ชั่นb_2) โปรดสังเกตว่าทั้ง ReLU และ Leaky ReLU เป็นกรณีพิเศษของแบบฟอร์มนี้ (ตัวอย่างเช่นสำหรับ ReLU เรามีสูงสุด( w T 1 x + b 1 , w T 2 x + b 2 ) w 1 , b 1 = 0f(wTx+b)max(w1Tx+b1,w2Tx+b2)w1,b1=0) เซลล์ประสาท Maxout จึงได้รับประโยชน์ทั้งหมดจากหน่วย ReLU (ระบอบการทำงานเชิงเส้นไม่มีความอิ่มตัว) และไม่มีข้อเสีย (ตาย ReLU) อย่างไรก็ตามแตกต่างจากเซลล์ประสาท ReLU มันเป็นสองเท่าของจำนวนพารามิเตอร์สำหรับเซลล์ประสาททุกเดียวนำไปสู่จำนวนพารามิเตอร์สูง

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

TLDR : " ฉันควรใช้เซลล์ประสาทชนิดใด " ใช้ ReLU แบบไม่เชิงเส้นระวังอัตราการเรียนรู้ของคุณและอาจตรวจสอบเศษส่วนของยูนิต "ตาย" ในเครือข่าย หากสิ่งนี้เกี่ยวข้องกับคุณให้ลอง ReLU ที่มีการรั่วไหลหรือ Maxout ห้ามใช้ sigmoid ลอง tanh แต่คาดว่ามันจะทำงานได้แย่กว่า ReLU / Maxout


ใบอนุญาต: ใบอนุญาต


MIT (MIT)

ลิขสิทธิ์ (c) 2015 Andrej Karpathy

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

ประกาศเกี่ยวกับลิขสิทธิ์ข้างต้นและประกาศการอนุญาตนี้จะรวมอยู่ในสำเนาทั้งหมดหรือบางส่วนที่สำคัญของซอฟต์แวร์

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


ขอบคุณบทสรุปนี้ให้ข้อมูลเชิงลึก แต่ตรงไปตรงมาฉันยังไม่สามารถเข้าใจรายละเอียดบางอย่างได้อย่างสังหรณ์ใจ (เช่นทำไม ReLU "เร่งการบรรจบกันอย่างมากของ SGD") และที่สำคัญที่สุด: เลือกอันไหน? จากการสรุป Maxout นั้นดีที่สุดและนั่นคือจุดสิ้นสุดของมัน แต่นอกเหนือจากความจริงที่ว่า Maxout ไม่ได้ถูกนำไปใช้ในแพ็คเกจยอดนิยม (เช่น Keras) ดูเหมือนว่าฉันสมเหตุสมผลว่าอย่างน้อยที่สุดในเลเยอร์สุดท้ายประเภทอื่น ๆ ควรวางไว้ (sigmoid สำหรับการจำแนกประเภทจักรยานเป็นต้น)
Hendrik
โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.