เหตุใดจึงมีการใช้โหนดอคติในเครือข่ายประสาท


29
  1. เหตุใดจึงมีการใช้โหนดอคติในเครือข่ายประสาท
  2. คุณควรใช้เท่าไหร่
  3. คุณควรใช้เลเยอร์ใด: เลเยอร์ที่ซ่อนอยู่ทั้งหมดและเลเยอร์เอาท์พุท

1
คำถามนี้ค่อนข้างกว้างสำหรับฟอรัมนี้ ฉันคิดว่ามันจะดีที่สุดเพื่อให้คำปรึกษาตำราถกเครือข่ายประสาทเช่นบิชอปโครงข่ายประสาทเทียมสำหรับการจดจำรูปแบบหรือเฮอแกนประสาทเครือข่ายการออกแบบ
Sycorax พูดว่า Reinstate Monica

2
FTR ฉันไม่คิดว่ามันกว้างเกินไป
gung - Reinstate Monica

คำตอบ:


24

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

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

พิจารณาตัวอย่างง่ายๆ: คุณมีฟีดไปข้างหน้าตรอนมี 2 อินพุตโหนดและและเอาท์พุท 1 โหนดY และมีคุณสมบัติไบนารีและชุดที่ระดับอ้างอิงของพวกเขา 0 คูณ 2เหล่านั้นด้วยน้ำหนักเท่าที่คุณต้องการและรวมผลิตภัณฑ์แล้วส่งผ่านฟังก์ชั่นเปิดใช้งานที่คุณต้องการ โดยไม่ต้องโหนอคติเพียงหนึ่งมูลค่าการส่งออกเป็นไปได้ที่อาจก่อให้พอดีน่าสงสารมาก ตัวอย่างเช่นการใช้ฟังก์ชั่นการเปิดใช้งานโลจิสติกจะต้องเป็นx1x2yx1x2x1=x2=00w1w2y.5ซึ่งน่ากลัวสำหรับการจำแนกเหตุการณ์ที่หายาก

โหนดอคติให้ความยืดหยุ่นอย่างมากกับโมเดลโครงข่ายประสาทเทียม ในตัวอย่างที่กำหนดข้างต้นสัดส่วนที่คาดการณ์ไว้เพียงเป็นไปได้โดยไม่ต้องโหนดอคติเป็นแต่มีโหนดอคติใด ๆสัดส่วนในสามารถเหมาะสำหรับรูปแบบที่ 0 สำหรับแต่ละเลเยอร์ซึ่งมีการเพิ่มโหนด bias โหนด bias จะเพิ่มพารามิเตอร์ / น้ำหนักเพิ่มเติมเพิ่มเติมให้ประมาณ (โดยคือจำนวนโหนดในเลเยอร์50%(0,1)x1=x2=0jNj+1Nj+1j+1) พารามิเตอร์เพิ่มเติมที่จะติดตั้งหมายความว่าจะใช้เวลานานขึ้นในการฝึกอบรมโครงข่ายประสาทเทียม นอกจากนี้ยังเพิ่มโอกาสของการ overfitting ถ้าคุณไม่มีข้อมูลมากเกินกว่าน้ำหนักที่จะเรียนรู้

ด้วยความเข้าใจในใจเราสามารถตอบคำถามที่ชัดเจนของคุณ:

  1. โหนดอคติถูกเพิ่มเข้ามาเพื่อเพิ่มความยืดหยุ่นของแบบจำลองเพื่อให้พอดีกับข้อมูล โดยเฉพาะจะช่วยให้เครือข่ายพอดีกับข้อมูลเมื่อคุณลักษณะการป้อนข้อมูลทั้งหมดเท่ากับและมีแนวโน้มที่จะลดอคติของค่าติดตั้งที่อื่นในพื้นที่ข้อมูล 0
  2. โดยทั่วไปแล้วโหนดอคติเดียวจะถูกเพิ่มสำหรับเลเยอร์อินพุตและทุกเลเยอร์ที่ซ่อนอยู่ในเครือข่าย feedforward คุณจะไม่เพิ่มสองหรือมากกว่าในชั้นที่กำหนด แต่คุณอาจเพิ่มศูนย์ จำนวนทั้งหมดจะถูกกำหนดโดยโครงสร้างเครือข่ายของคุณเป็นส่วนใหญ่แม้ว่าจะมีข้อควรพิจารณาอื่น ๆ (ฉันไม่ชัดเจนเกี่ยวกับวิธีการเพิ่มอคติต่อโครงสร้างเครือข่ายประสาทอื่น ๆ นอกเหนือจาก feedforward)
  3. ส่วนใหญ่จะได้รับการครอบคลุม แต่จะชัดเจน: คุณจะไม่เพิ่มโหนดอคติในเลเยอร์เอาท์พุท; ที่จะไม่ทำให้รู้สึกใด ๆ

ซีเอ็นเอ็นมีความแตกต่างในเรื่องนี้หรือไม่? ตั้งแต่เมื่อฉันเพิ่มอคติในเลเยอร์ Conv ของฉันประสิทธิภาพ (ความแม่นยำ) จะลดลง! และเมื่อฉันลบมันมันจะสูงขึ้นจริง ๆ !
Rika

@ โฮเซ่ไม่ใช่ที่ฉันรู้ แต่คุณสามารถถามคำถามใหม่ได้ ฉันไม่ค่อยมีผู้เชี่ยวชาญ
gung - Reinstate Monica

ฉันจะยังต้องการโหนดอคติหรือไม่หากอินพุตของฉันไม่เคยไปที่ 0
alec_djinn

1
@alec_djinn ใช่ เกือบจะแน่นอนว่าตัวแบบจะเอนเอียงโดยที่ไม่มีพวกมันแม้ว่าคุณจะไม่มี 0 สำหรับค่าอินพุต โดยการเปรียบเทียบอาจช่วยในการอ่าน: เมื่อไรที่จะเอาการสกัดกั้นในตัวแบบการถดถอยเชิงเส้น
gung - Reinstate Monica

1
1

2

คำตอบสั้น ๆ ง่ายๆ:

  1. เพื่อเปลี่ยนฟังก์ชั่นอินพุต / ยืดหยุ่นมากขึ้นเกี่ยวกับฟังก์ชั่นที่เรียนรู้
  2. โหนดอคติเดียวต่อชั้น
  3. เพิ่มลงในเลเยอร์ที่ซ่อนอยู่ทั้งหมดและเลเยอร์อินพุต - ด้วยเชิงอรรถ

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

สิ่งนี้อาจขึ้นอยู่กับสถาปัตยกรรม / ชุดข้อมูลของเครือข่ายเป็นอย่างมาก


โหนดอคติจะมีลูกศรเชื่อมต่อกับมันจากเลเยอร์ก่อนหน้าหรือไม่ หรือเพียงแค่ช่วยให้เลเยอร์ถัดไปโดยการคูณค่า "1" กับน้ำหนักในผลรวมถ่วงน้ำหนักที่ส่งไปยังการเปิดใช้งาน ตอบคำถามนี้จะประหยัดเวลาได้โปรดช่วยด้วย
krupesh Anadkat

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

2

ในบริบทของเครือข่ายประสาทเทียมการทำให้เป็นมาตรฐานในปัจจุบันเป็นมาตรฐานทองคำสำหรับการสร้าง "โหนดอคติ" ที่ชาญฉลาด แทนที่จะยึดค่าอคติของเซลล์ประสาทคุณต้องปรับความแปรปรวนร่วมของอินพุตของเซลล์ประสาทแทน ดังนั้นใน CNN คุณจะใช้การทำให้เป็นมาตรฐานแบบแบตช์ระหว่างเลเยอร์ convolutional และเลเยอร์ที่เชื่อมต่ออย่างเต็มที่ถัดไป (เช่น ReLus) ในทางทฤษฎีเลเยอร์ที่เชื่อมต่อทั้งหมดจะได้รับประโยชน์จากการทำแบทช์ให้เป็นมาตรฐาน แต่สิ่งนี้ในทางปฏิบัติมีราคาแพงมากที่จะนำไปปฏิบัติ

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

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