อะไรคือข้อได้เปรียบของ ReLU ผ่านฟังก์ชั่น sigmoid ในโครงข่ายประสาทเทียม?


141

สถานะของศิลปะของการไม่เชิงเส้นคือการใช้หน่วยเชิงเส้นแบบแก้ไข (ReLU) แทนฟังก์ชั่น sigmoid ในเครือข่ายประสาทลึก ข้อดีคืออะไร

ฉันรู้ว่าการฝึกอบรมเครือข่ายเมื่อใช้ ReLU จะเร็วขึ้นและเป็นแรงบันดาลใจทางชีวภาพมากขึ้นข้อดีอื่น ๆ คืออะไร? (นั่นคือข้อเสียของการใช้ sigmoid)?


ฉันอยู่ภายใต้การแสดงผลที่ให้การไม่เป็นเชิงเส้นเข้าสู่เครือข่ายของคุณเป็นข้อได้เปรียบ แต่ฉันไม่เห็นด้วยคำตอบอย่างใดอย่างหนึ่งด้านล่าง ...
โมนิกา Heddneck

2
@MonicaHeddneck ทั้ง ReLU และ sigmoid ไม่เชิงเส้น ...
Antoine

คำตอบ:


130

ประโยชน์ที่สำคัญอีกสองประการของ ReLUs คือความเบาบางและโอกาสลดการไล่ระดับสีที่หายไป แต่ก่อนจำความหมายของ Relu คือที่Bh=max(0,a)a=Wx+b

ข้อดีอย่างหนึ่งที่สำคัญคือโอกาสลดการไล่ระดับสีจะหายไป นี้เกิดขึ้นเมื่อ0 ในระบอบนี้การไล่ระดับสีจะมีค่าคงที่ ในทางตรงกันข้ามการไล่ระดับของ sigmoids จะมีขนาดเล็กมากขึ้นเมื่อค่าของ x เพิ่มขึ้น การไล่ระดับสีคงที่ของ ReLUs ทำให้การเรียนรู้เร็วขึ้นa>0

ประโยชน์อื่น ๆ ของ ReLUs คือการกระจัดกระจาย Sparsity เกิดขึ้นเมื่อ0 ยิ่งหน่วยดังกล่าวมีอยู่ในเลเยอร์ยิ่งมีการแสดงผลลัพธ์น้อยมาก Sigmoids ในทางกลับกันมักจะสร้างค่าที่ไม่เป็นศูนย์บางส่วนทำให้เกิดความหนาแน่นสูง การนำเสนอแบบกระจัดกระจายดูเหมือนจะมีประโยชน์มากกว่าการใช้แบบหนาแน่นa0


2
เมื่อคุณพูดถึงการไล่ระดับสีคุณหมายถึงน้ำหนักหรืออินพุต x หรือไม่ @DaemonMaker
MAS

4
ด้วยความเคารพต่อน้ำหนัก อัลกอริธึมการเรียนรู้แบบไล่โทนสีจะใช้การไล่ระดับสีตามพารามิเตอร์ของผู้เรียนเสมอนั่นคือน้ำหนักและอคติใน NN
DaemonMaker

2
คุณหมายถึงอะไรด้วยการเป็นตัวแทน "หนาแน่น" และ "กระจัดกระจาย" "? ข้อความค้นหาไปยัง google "เครือข่ายการแสดงโครงข่ายประสาทเทียม" ดูเหมือนจะไม่เกิดขึ้นกับสิ่งใดที่เกี่ยวข้อง
สวัสดีแองเจิล

6
"การเป็นตัวแทนแบบกระจัดกระจายดูเหมือนจะมีประโยชน์มากกว่าการใช้แบบหนาแน่น" คุณสามารถให้แหล่งที่มาหรือคำอธิบายได้หรือไม่?
Rohan Saxena

1
ฉันไม่เข้าใจว่าคำตอบนี้ถูกต้องอย่างไร "โอกาสที่ลดลงของการไล่ระดับสีจะหายไป" ทำให้บางสิ่งบางอย่างเป็นที่ต้องการ Relu เป็นศูนย์ขนาดเล็กพอxในระหว่างการเรียนรู้คุณไล่ระดับสีจะหายไปสำหรับเซลล์ประสาทบางอย่างเมื่อคุณอยู่ในระบอบการปกครองนี้ ที่จริงแล้วมันหลีกเลี่ยงไม่ได้อย่างชัดเจนเพราะมิฉะนั้นเครือข่ายของคุณจะเป็นเส้นตรง การทำให้เป็นมาตรฐานเป็นชุดจะช่วยแก้ปัญหานี้ได้เป็นส่วนใหญ่ สิ่งนี้ไม่ได้กล่าวถึงเหตุผลที่สำคัญที่สุด: ReLu และการไล่ระดับสี มีความรวดเร็วมากในการคำนวณเมื่อเทียบกับ sigmoid x
Alex R.

65

ความได้เปรียบ:

  • Sigmoid: ไม่ระเบิดการเปิดใช้งาน
  • Relu: ไม่ใช่การไล่ระดับสีที่หายไป
  • Relu: การคำนวณมีประสิทธิภาพมากกว่าการคำนวณมากกว่า Sigmoid เช่นฟังก์ชั่นเนื่องจาก Relu ต้องการเลือก max (0, ) และไม่ต้องใช้การดำเนินการเอ็กซ์โปเนนเชียลที่มีราคาแพงเหมือนใน Sigmoidsx
  • Relu: ในทางปฏิบัติเครือข่ายที่มี Relu มักจะแสดงประสิทธิภาพการคอนเวอร์เจนซ์ได้ดีกว่า sigmoid ( Krizhevsky et al. )

ข้อด้อย:

  • Sigmoid: มีแนวโน้มที่จะหายไปในการไล่ระดับสี (สาเหตุมีกลไกในการลดการไล่ระดับสีเป็น " " เพิ่มขึ้นโดยที่ " " คืออินพุตของฟังก์ชัน sigmoid การไล่ระดับของ Sigmoid:เมื่อ " " เติบโตเป็นขนาดใหญ่ไม่มีที่สิ้นสุด )aaS(a)=S(a)(1S(a))aS(a)=S(a)(1S(a))=1×(11)=0

  • Relu: มีแนวโน้มที่จะทำให้เกิดการกระตุ้น (ไม่มีกลไกในการ จำกัด เอาท์พุทของเซลล์ประสาทในขณะที่ " " เป็นเอาต์พุต)a

  • Relu: Dying ปัญหา Relu - หากการเปิดใช้งานมากเกินไปต่ำกว่าศูนย์ดังนั้นส่วนใหญ่ของหน่วย (เซลล์ประสาท) ในเครือข่ายที่มี Relu จะเอาท์พุทเป็นศูนย์หรือกล่าวอีกนัยหนึ่งคือตายและห้ามการเรียนรู้ โดยใช้ Leaky-Relu แทน)

7
คุณอาจพบว่าเป็นประโยชน์ที่คุณสามารถใช้เรียงพิมพ์คณิตศาสตร์กับน้ำยางข้นโดยการใส่เครื่องหมายดอลลาร์ทั่วสมการของคุณเช่น$x$ผลิตxx
Silverfish

Relu: ไม่ไล่ระดับ ฮะ? สำหรับทุก a Relu(ax+b)=0x<b/a
Alex R.

40

เพียงเติมเต็มคำตอบอื่น ๆ :

หายไปไล่ระดับสี

คำตอบอื่น ๆ มีสิทธิ์ชี้ให้เห็นว่ายิ่งอินพุต (ในค่าสัมบูรณ์) ยิ่งมีความชันของ sigmoid ที่น้อยลง แต่อาจมีผลกระทบที่สำคัญยิ่งกว่าคืออนุพันธ์ของฟังก์ชัน sigmoid นั้นเล็กกว่าหนึ่งเสมอ ในความเป็นจริงมันเป็นอย่างมาก 0.25!

ข้อเสียคือถ้าคุณมีหลายเลเยอร์คุณจะคูณการไล่ระดับสีเหล่านี้และผลิตภัณฑ์ที่มีค่าน้อยกว่า 1 ค่าจะมีค่าเป็นศูนย์อย่างรวดเร็ว

เนื่องจากสถานะของศิลปะของการเรียนรู้ลึกได้แสดงให้เห็นว่าเลเยอร์จำนวนมากช่วยได้มากดังนั้นข้อเสียของฟังก์ชั่น Sigmoid นี้จึงเป็นตัวฆ่าเกม คุณไม่สามารถเรียนรู้อย่างลึกซึ้งกับ Sigmoid ได้

ในทางตรงกันข้ามการไล่ระดับสีของฟังก์ชั่น Relu เป็นทั้งสำหรับหรือสำหรับ0 นั่นหมายความว่าคุณสามารถใส่เลเยอร์ได้มากเท่าที่คุณต้องการเพราะการไล่ระดับสีที่คูณกันนั้นจะไม่หายไปหรือระเบิด0a<01a>0


10
นี่คือคำตอบที่ฉันต้องการ เมื่อผู้คนกำลังพูดถึง "การไล่ระดับสีที่หายไป" ก็ไม่สามารถหยุดสงสัยได้ว่า "การไล่ระดับสีของ ReLu เป็น 0 อย่างแน่นอนสำหรับครึ่งหนึ่งของช่วงนั้นนั่นไม่ใช่ 'การหายไป' วิธีที่คุณอธิบายปัญหาด้วยการเตือนให้เราทราบว่าการไล่ระดับสีถูกคูณกับหลายเลเยอร์ทำให้เกิดความชัดเจนมากขึ้น
บอริส Gorelik

3
@ guilherme-de-lazari แนะนำการแก้ไขในบรรทัดสุดท้าย - ค่าของ relu คือค่า> 0 แต่คุณกำลังพูดถึงการไล่ระดับสีซึ่งเป็น 1 สำหรับ a> 0
saurabh

4
หากนี่คือเหตุผลหลักเราไม่สามารถลด sigmoid ให้เหลือ 1 / (1 + exp (-4x)) ได้ไหม จากนั้นอนุพันธ์จะมากที่สุด 1 (หรือ rescale มากยิ่งขึ้นเพื่อให้ตัวเลือกเราด้านบนและด้านล่าง 1) ฉันสงสัยว่าสิ่งนี้จะทำงานได้แย่กว่าเดิมมากเนื่องจากการลดขนาดยังช่วยลดพื้นที่ที่อนุพันธ์สามารถแยกแยะได้จาก 0 แต่ฉันไม่แน่ใจว่าคำตอบนี้บอกเรื่องราวทั้งหมด
ปีเตอร์

5
คำตอบนี้ไร้สาระ อนุพันธ์ของ sigmoid กับพารามิเตอร์คงที่ 1 น้อยกว่า 1 แต่โดยทั่วไปก็เป็นซึ่งจะมีขนาดใหญ่อนุพล (ใช้เวลาเพียงแค่จะมีขนาดใหญ่จริงๆดังนั้น sigmoid ไปอย่างรวดเร็วจาก 0 ถึง 1) 1/(1+exp(ax))a
Alex R.

7
นอกจากนี้คุณสามารถเรียนรู้อย่างลึกซึ้งกับ sigmoids คุณเพียงแค่ทำการปรับอินพุตให้เป็นมาตรฐานเช่นผ่าน Batch Normalization สิ่งนี้จะรวมศูนย์กลางอินพุตของคุณเพื่อหลีกเลี่ยงการ sigmoid ที่อิ่มตัว ในรายงานฉบับดั้งเดิมของ Batch Normalization เครือข่ายการเปิดใช้งาน sigmoid นั้นเกือบจะเทียบเท่ากับ ReLus: arxiv.org/pdf/1502.03167.pdf
Alex R.

7

ข้อได้เปรียบในการ ReLU นอกเหนือจากการหลีกเลี่ยงปัญหาการไล่ระดับสีหายไปคือมีเวลาทำงานต่ำกว่ามาก max (0, a) ทำงานเร็วกว่าฟังก์ชั่น sigmoid ใด ๆ (ฟังก์ชันลอจิสติกเช่น = 1 / (1 + e ^ (- a))) ซึ่งใช้เลขชี้กำลังซึ่งเป็นการคำนวณช้าเมื่อทำบ่อย) สิ่งนี้เป็นจริงสำหรับทั้งการส่งต่อฟีดไปข้างหน้าและด้านหลังเนื่องจากการไล่ระดับสีของ ReLU (ถ้า <0, = 0 อื่น = 1) นั้นง่ายต่อการคำนวณเมื่อเทียบกับ sigmoid (สำหรับเส้นโค้งโลจิสติก = e ^ a / ((1 + e ^ ก) ^ 2))

แม้ว่า ReLU จะมีข้อเสียของเซลล์ที่กำลังจะตายซึ่งจำกัดความสามารถของเครือข่าย ในการเอาชนะปัญหานี้ให้ใช้ตัวแปรของ ReLU เช่น ReLU, ELU ที่รั่วไหลหากคุณสังเกตเห็นปัญหาที่อธิบายไว้ข้างต้น


1
+1 นี่เป็นหนึ่งในคำตอบที่ถูกต้องเท่านั้นที่นี่ คุณยังสามารถใช้การทำให้เป็นมาตรฐานแบบกลุ่มเพื่อรวมศูนย์อินพุตเพื่อต่อต้านเซลล์ประสาทที่ตายแล้ว
Alex R.

2

ชิ้นพิเศษของคำตอบที่จะเสร็จสมบูรณ์ในเบาบางเทียบกับการอภิปรายผลการดำเนินงานหนาแน่น

อย่าคิดเกี่ยวกับ NN อีกต่อไปแค่คิดถึงพีชคณิตเชิงเส้นและเมทริกซ์เพราะการแพร่กระจายไปข้างหน้าและข้างหลังเป็นชุดของการดำเนินการเมทริกซ์

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

ฉันหวังว่าจะช่วยพวกคุณบางคน ...


1

ประโยชน์หลักคืออนุพันธ์ของ ReLu มีค่าเป็น 0 หรือ 1 ดังนั้นการคูณด้วยจะไม่ทำให้น้ำหนักที่อยู่ห่างจากผลลัพธ์สุดท้ายของฟังก์ชันการสูญเสียเกิดขึ้นจากปัญหาการไล่ระดับสีที่หายไป:

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

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