ทำไมการเร่งความเร็วของการไล่ระดับสีหากฟังก์ชั่นนั้นราบรื่น


10

ตอนนี้ผมอ่านหนังสือเล่มหนึ่งชื่อ"Hands-on เครื่องการเรียนรู้กับ Scikit เรียนรู้และ TensorFlow"และในบทที่ 11 ก็มีคำอธิบายต่อไปนี้ในคำอธิบายของ ELU (การชี้แจง Relu)

ประการที่สามฟังก์ชั่นนั้นราบรื่นทุกที่รวมถึงรอบ z = 0 ซึ่งจะช่วยเร่งความเร็วการไล่ระดับสีเนื่องจากมันจะไม่เด้งซ้ายและขวามากเท่ากับ z = 0

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

zหมายถึงแกน x บนกราฟข้างต้น ผมเข้าใจอนุพันธ์เป็นไปอย่างราบรื่นตั้งแต่เส้นมีเส้นโค้งและในดินแดนที่เป็นตราสารอนุพันธ์จะไม่เท่ากับz < 00

อย่างไรก็ตามทำไมเป็นกรณีที่ถ้าฟังก์ชั่น "ราบรื่นทุกที่รวมถึงรอบ z = 0" มันจะเพิ่มความเร็วในการไล่ระดับสี


BTW ฉันอยู่ใน SE ที่ถูกต้องหรือไม่ วิทยาศาสตร์ข้อมูล, ปัญญาประดิษฐ์, และการตรวจสอบความถูกต้องของ Cross (และคณิตศาสตร์) ดูเหมือนว่าสำหรับฉันแล้วมีหลายหัวข้อที่เกี่ยวข้องกัน ...
Blaszard

2
ฉันคิดว่าคุณจะปลอดภัยในการโพสต์คำถามนี้ทั้งที่ Data Science หรือ Cross Validated เป็นไปได้ว่ามันก็โอเคสำหรับปัญญาประดิษฐ์เช่นกัน แต่ฉันไม่ค่อยคุ้นเคยกับเว็บไซต์นั้น
Neil Slater

คำถามที่ดี. ความนุ่มนวลช่วยให้คุณทำตามขั้นตอนตัวหนาในทิศทางที่ถูกต้องแทนที่จะทำตามขั้นตอนทารกอย่างไม่แน่นอนเนื่องจากการไล่ระดับสีอาจเปลี่ยนไปอย่างมากในขั้นตอนต่อไป สำหรับการวิเคราะห์การบรรจบกันดูเช่นNesterov เร่งไล่โทนสีโคตรสำหรับราบรื่นและยิ่งนูน Optimization
เอ็ม

@NeilSlater AI มีขอบเขตที่ไม่ชัดเจนมาก พวกเขาปิดคำถามดังกล่าว ดังนั้น DS และ CV จะเป็นตัวเลือกที่ดีที่สุด :)
Dawny33

คำตอบ:


1

ฉันเดาว่ามันเป็นเพราะอนุพันธ์เนื่องจาก ReLU มีอนุพันธ์ไม่ต่อเนื่องที่ 0 ดังนั้นถ้าคุณใช้คำจำกัดความ:

ff(x+ϵ)f(xϵ)2ϵ

และ x อยู่ใกล้กับ 0 มากคุณจะได้รับ 'การกระโดด' เหล่านั้นจำนวนมาก


0

เบื้องต้น: มีสามคุณลักษณะของฟังก์ชั่นที่เกี่ยวข้องที่นี่: ต่อเนื่อง, ต่อเนื่องและแตกต่างกัน Relu เป็นอย่างต่อเนื่องและน๊อตต่อเนื่องไม่อนุพันธ์ที่ Z = 0 relu ชี้แจงหรือ ELU เป็นทั้งสามของคุณลักษณะเหล่านั้น

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

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

เมื่ออนุพันธ์ของฟังก์ชันการสูญเสียไม่ได้กำหนดในบางจุดการไล่ระดับสีจะไม่แน่นอน ซึ่งหมายความว่าการไล่ระดับสีที่ลาดเอียงอาจเคลื่อนไปในทิศทางที่ผิด ขนาดของความล่าช้าที่เกิดจากความไม่แน่นอนนี้ขึ้นอยู่กับอัตราการเรียนรู้และพารามิเตอร์ไฮเปอร์อื่น ๆ โดยไม่คำนึงถึงพารามิเตอร์ไฮเปอร์ - สถิติอนุพันธ์ที่ไม่ได้กำหนดใน RELU ที่ z = 0 ทำให้การบรรจบกันของการลดลงของการไล่ระดับสีช้าลง


ไม่น่าเป็นไปได้มากที่พารามิเตอร์จะกลายเป็น z = 0 หลังจากการเริ่มต้น
ปีเตอร์

0

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

ตัวอย่างการตั้งค่า

พิจารณา MLP ด้วย n เลเยอร์ที่ซ่อนของขนาดหนึ่ง

z1=W1x+b1

a1=f(z1)

...

zn=Wnan1+bn

y=f(zn)

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

Tanh และ Sigmoid - หายไปไล่ระดับสี

สมมติ fคือฟังก์ชันการเปิดใช้งาน Tanh หรือ Sigmoid อนุพันธ์ของฟังก์ชันเหล่านั้นถูกล้อมรอบระหว่าง -1 ถึง 1 หรือเป็นทางการf(x)(1,1) สำหรับใด ๆ x.

สิ่งนี้ทำให้เกิดปัญหาที่สำคัญมากในการเรียนรู้อย่างลึกซึ้งที่เรียกว่า "ปัญหาการไล่สีจาง" ลองพิจารณาที่มาของy WRT W1. ตามกฎลูกโซ่เรามี

dfdW1=dfdWndWndWn1...dW2dW1

และสำหรับใด ๆ 0<i<nสังเกตว่า

dXidXi1=f(Wi1ai2+bi1)×ai2(1,1)

(คำแรกอยู่ระหว่าง (1,1) เพราะ f ถูกผูกไว้ตามที่กล่าวไว้ก่อนหน้าและ ai2 ยังอยู่ระหว่าง (1,1) สควอชเป็นค่าอินพุต)

ดังนั้น dfdW1นั้นเป็นผลคูณของจำนวนเทอมแต่ละอันอยู่ระหว่าง (0, 1) ยิ่งใหญ่n (เครือข่ายที่ลึกขึ้น) เป็นคำที่เราต้องการคูณและเป็นผลมาจาก dfdW1จะเล็กลงอย่างชี้แจง เพราะความสัมพันธ์ชี้แจงนี้การไล่ระดับสีอย่างรวดเร็วกลายเป็นขนาดเล็กเพื่อให้เราได้อย่างมีประสิทธิภาพสามารถพิจารณาเป็นศูนย์ ผลที่ตามมาของการไม่มีการไล่ระดับสีเป็นศูนย์นั้นไม่มีการเรียนรู้ใด ๆ เกิดขึ้นเพราะกฎการอัปเดตของเราสำหรับการไล่ระดับสีขึ้นอยู่กับการไล่ระดับสีนั้น

RELU และ Dead Neuron

Relu ถูกประดิษฐ์ขึ้นเพื่อจัดการกับปัญหาการไล่ระดับสีที่หายไปเพราะอนุพันธ์ของมันมักจะเป็น 1 เสมอ ai>0 ดังนั้นเมื่อ f RELU คือเรา:

dXidXi1=ai2
dfdW1=a1a2a3...an1

ทุกอย่างดีและดีเมื่อ x>0 แต่ทุกสิ่งจะกระจุย x<0ครั้งนี้ไม่เพียง แต่การไล่ระดับสีใกล้กับศูนย์มากเท่านั้น แต่ยังเป็นศูนย์ที่บริสุทธิ์ เมื่อเซลล์ประสาทมาถึงที่นั่นแล้วก็ไม่มีโอกาสที่จะกลับมาเลย นั่นเป็นสาเหตุที่สิ่งนี้เรียกว่าปัญหา "Dead Neuron"

รั่ว RELU และ ELU

Leaky RELU และ ELU คือการพัฒนาตามธรรมชาติหลังจาก RELU พวกเขามีความคล้ายคลึงกับ RELU เช่นอนุพันธ์เท่ากับ 1 เมื่อx>0 แต่หลีกเลี่ยง "เซลล์ประสาทที่ตายแล้ว" โดยหลีกเลี่ยงศูนย์อนุพันธ์เมื่อใด x<1.

ฉันเสนอราคากระดาษต้นฉบับสำหรับความแตกต่างระหว่างทั้งสอง

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

คำอธิบายที่ใช้งานง่ายมีลักษณะดังต่อไปนี้ ใน ELU เมื่อใดก็ตามที่ x เล็กพอไล่ระดับก็เล็กมากและอิ่มตัว (เช่นเดียวกับ Tanh และ Sigmoid) การไล่ระดับสีขนาดเล็กหมายความว่าอัลกอริทึมการเรียนรู้สามารถมุ่งเน้นไปที่การปรับแต่งน้ำหนักอื่น ๆ โดยไม่ต้องกังวลเกี่ยวกับการโต้ตอบกับเซลล์ประสาทที่อิ่มตัว

พิจารณาพหุนามของระดับ 2 ซึ่งสามารถแสดงเป็นพื้นผิวเรียบในพื้นที่ 3 มิติ ในการค้นหาค่าต่ำสุดในพื้นที่นั้นขั้นตอนวิธีการลดความลาดชันจะต้องพิจารณาความชันทั้งในทิศทาง x และ y หากการไล่ระดับสีเป็นลบทั้งในทิศทาง x และทิศทาง y ก็ไม่ชัดเจนว่าทางไหนดีกว่า ดังนั้นจึงมีเหตุผลที่จะเลือกเส้นทางในระหว่าง แต่ถ้าเรารู้ทุกอย่างแล้วว่าแบน (ศูนย์การไล่ระดับสี) ในทิศทาง x แล้วมันจะกลายเป็นเรื่องไร้สมองที่จะไปในทิศทาง y หรือในคำอื่น ๆ คุณค้นหาพื้นที่เล็กลงมาก

หมายเหตุพิเศษ

ในการเรียนรู้ลึกมีการเรียกร้องมากมายโดยไม่มีหลักฐานเชิงประจักษ์เพียงพอหรือความเข้าใจในเชิงลึกเพื่อสนับสนุน ในกรณีของ ELU ในขณะที่มันอาจเป็นจริงที่มันส่งผลให้เกิดการรวมกันของชุดข้อมูลบางอย่างเร็วขึ้น แต่ก็อาจเป็นความจริงที่ทำให้อัลกอริทึมการเรียนรู้ติดอยู่ที่ค่าสูงสุดในท้องถิ่นสำหรับชุดข้อมูลอื่น เรายังไม่รู้มากพอ


0

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

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

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

ด้วยฟังก์ชั่นที่ราบรื่นไม่มีการเปลี่ยนแปลงที่รุนแรง และทำให้เครือข่ายสามารถค่อยๆเสถียรขึ้น

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