คำถามที่คล้ายกันถูกถามเกี่ยวกับ 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 + e- x)
- Sigmoids เปียกโชกและฆ่าไล่ระดับสี คุณสมบัติที่ไม่พึงประสงค์อย่างมากของเซลล์ประสาท sigmoid คือเมื่อการกระตุ้นของเซลล์ประสาทอิ่มตัวที่ 0 หรือ 1 ส่วนใดส่วนหนึ่งการไล่ระดับสีในบริเวณนี้เกือบเป็นศูนย์ โปรดจำไว้ว่าในระหว่าง backpropagation การไล่ระดับสี (ในพื้นที่) นี้จะถูกคูณกับการไล่ระดับสีของเอาต์พุตของเกตนี้สำหรับวัตถุประสงค์ทั้งหมด ดังนั้นหากการไล่ระดับสีในพื้นที่มีขนาดเล็กมากมันจะ "ฆ่า" การไล่ระดับสีอย่างมีประสิทธิภาพและแทบไม่มีสัญญาณใดที่จะไหลผ่านเซลล์ประสาทไปยังน้ำหนักของมันและเรียกซ้ำไปยังข้อมูลของมัน นอกจากนี้เราต้องใช้ความระมัดระวังเป็นพิเศษเมื่อเริ่มต้นน้ำหนักของเซลล์ประสาท sigmoid เพื่อป้องกันความอิ่มตัว ตัวอย่างเช่นหากน้ำหนักเริ่มต้นมีขนาดใหญ่เกินไปเซลล์ประสาทส่วนใหญ่ก็จะอิ่มตัวและเครือข่ายก็แทบจะไม่ได้เรียนรู้
- เอาท์พุท sigmoid จะไม่เป็นศูนย์เป็นศูนย์กลาง สิ่งนี้ไม่เป็นที่พึงปรารถนาเนื่องจากเซลล์ประสาทในชั้นถัดไปของการประมวลผลในเครือข่ายประสาท (เพิ่มเติมในเร็ว ๆ นี้) จะได้รับข้อมูลที่ไม่เป็นศูนย์ เรื่องนี้มีผลกระทบต่อการเปลี่ยนแปลงในระหว่างการสืบเชื้อสายการไล่ระดับสีเพราะถ้าข้อมูลเข้าสู่เซลล์ประสาทเป็นบวกเสมอ (เช่น
elementwise ใน )) จากนั้นการไล่ระดับน้ำหนักที่จะระหว่างการเลื่อน
ทั้งหมดเป็นบวกหรือลบทั้งหมด (ขึ้นอยู่กับความชันของการแสดงออกทั้งหมด
f = w T x + b w fx > 0ฉ= wTx + bWฉ) สิ่งนี้สามารถแนะนำพลวัตซิกซิกซิกที่ไม่พึงประสงค์ในการปรับปรุงการไล่ระดับสีสำหรับตุ้มน้ำหนัก อย่างไรก็ตามโปรดสังเกตว่าเมื่อการไล่ระดับสีเหล่านี้ถูกรวมเข้าด้วยกันเป็นชุดข้อมูลการปรับปรุงขั้นสุดท้ายสำหรับตุ้มน้ำหนักอาจมีสัญญาณตัวแปรซึ่งจะช่วยบรรเทาปัญหานี้ ดังนั้นนี่คือความไม่สะดวก แต่มีผลกระทบรุนแรงน้อยกว่าเมื่อเทียบกับปัญหาการเปิดใช้งานอิ่มตัวด้านบน
Tanh tanh ไม่ใช่เชิงเส้นจะปรากฏในภาพด้านบนด้านขวา มันจะกระจายจำนวนจริงที่มีค่าในช่วง [-1, 1] เช่นเดียวกับ sigmoid neuron, การเปิดใช้งานของ saturate, แต่ต่างจาก sigmoid neuron ที่มันมีเอาต์พุตอยู่กึ่งกลาง ดังนั้นในทางปฏิบัติtanh non-linearity จึงเป็นที่ต้องการของ sigmoid nonlinearity นอกจากนี้ทราบว่าเซลล์ประสาท tanh เป็นเพียงการปรับขนาดเซลล์ประสาท sigmoid โดยเฉพาะอย่างยิ่งต่อไปนี้ถือ:-1tanh( x ) = 2 σ( 2 x ) - 1
ซ้าย:ฟังก์ชั่นการเปิดใช้งานฟังก์ชั่น Linear หน่วย (ReLU) ซึ่งเป็นศูนย์เมื่อ x <0 แล้วเชิงเส้นที่มีความชัน 1 เมื่อ x> 0 ขวา:พล็อตจาก Krizhevsky et al (pdf) กระดาษที่ระบุว่าการปรับปรุงการบรรจบกันของ 6x กับหน่วย ReLU เทียบกับหน่วย tanh
Relu หน่วยเชิงเส้นที่แก้ไขแล้วได้รับความนิยมอย่างมากในช่วงไม่กี่ปีที่ผ่านมา มันคำนวณฟังก์ชันx) กล่าวอีกนัยหนึ่งการเปิดใช้งานจะถูก จำกัด ที่ศูนย์ (ดูภาพด้านบนทางซ้าย) มีข้อดีและข้อเสียหลายประการในการใช้ ReLUs:ฉ( x ) = สูงสุด( 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 อย่างไรก็ตามความสม่ำเสมอของผลประโยชน์ในงานต่างๆ กำกวมฉ( 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(wT1x+b1,wT2x+b2)w1,b1=0) เซลล์ประสาท Maxout จึงได้รับประโยชน์ทั้งหมดจากหน่วย ReLU (ระบอบการทำงานเชิงเส้นไม่มีความอิ่มตัว) และไม่มีข้อเสีย (ตาย ReLU) อย่างไรก็ตามแตกต่างจากเซลล์ประสาท ReLU มันเป็นสองเท่าของจำนวนพารามิเตอร์สำหรับเซลล์ประสาททุกเดียวนำไปสู่จำนวนพารามิเตอร์สูง
นี่เป็นการสรุปการอภิปรายของเราเกี่ยวกับชนิดของเซลล์ประสาทที่พบมากที่สุดและฟังก์ชั่นการกระตุ้น เป็นความคิดเห็นล่าสุดมันเป็นเรื่องยากมากที่จะผสมและจับคู่เซลล์ประสาทประเภทต่าง ๆ ในเครือข่ายเดียวกันแม้ว่าจะไม่มีปัญหาพื้นฐานในการทำเช่นนั้น
TLDR : " ฉันควรใช้เซลล์ประสาทชนิดใด " ใช้ ReLU แบบไม่เชิงเส้นระวังอัตราการเรียนรู้ของคุณและอาจตรวจสอบเศษส่วนของยูนิต "ตาย" ในเครือข่าย หากสิ่งนี้เกี่ยวข้องกับคุณให้ลอง ReLU ที่มีการรั่วไหลหรือ Maxout ห้ามใช้ sigmoid ลอง tanh แต่คาดว่ามันจะทำงานได้แย่กว่า ReLU / Maxout
ใบอนุญาต: ใบอนุญาต
MIT (MIT)
ลิขสิทธิ์ (c) 2015 Andrej Karpathy
อนุญาตให้ผู้ใดก็ตามที่ได้รับสำเนาของซอฟต์แวร์นี้และไฟล์เอกสารที่เกี่ยวข้อง ("ซอฟต์แวร์") ได้รับอนุญาตโดยไม่คิดค่าใช้จ่ายในการจัดการซอฟต์แวร์โดยไม่มีข้อ จำกัด รวมถึง แต่ไม่ จำกัด เพียงสิทธิ์ในการใช้คัดลอกแก้ไขรวม เผยแพร่เผยแพร่แจกจ่ายใบอนุญาตและ / หรือขายสำเนาของซอฟต์แวร์และอนุญาตให้บุคคลที่ซอฟต์แวร์ได้รับการตกแต่งให้ทำภายใต้เงื่อนไขดังต่อไปนี้:
ประกาศเกี่ยวกับลิขสิทธิ์ข้างต้นและประกาศการอนุญาตนี้จะรวมอยู่ในสำเนาทั้งหมดหรือบางส่วนที่สำคัญของซอฟต์แวร์
ซอฟต์แวร์มีให้ "ตามสภาพ" โดยไม่มีการรับประกันใด ๆ ไม่ว่าโดยชัดแจ้งหรือโดยนัยรวมถึง แต่ไม่ จำกัด เพียงการรับประกันของการค้าขายความเหมาะสมสำหรับวัตถุประสงค์เฉพาะและการไม่ละเมิด ไม่ว่าในกรณีใดผู้ทำสัญญาหรือผู้ถือลิขสิทธิ์จะต้องรับผิดต่อการเรียกร้องค่าเสียหายหรือความรับผิดอื่นใดไม่ว่าในกรณีใด ๆ ในการทำสัญญาการปลอมแปลงหรือการละเมิดอื่น ๆ ซอฟต์แวร์.*