บทบาทของอคติในเครือข่ายประสาทคืออะไร


806

ฉันตระหนักถึงการไล่ระดับสีที่ลาดชันและอัลกอริธึมการกระจายกลับ สิ่งที่ฉันไม่ได้รับคือเมื่อใช้อคติที่สำคัญและคุณจะใช้มันอย่างไร

ตัวอย่างเช่นเมื่อทำการแมปANDฟังก์ชั่นเมื่อฉันใช้ 2 อินพุทและเอาท์พุท 1 มันไม่ได้ให้น้ำหนักที่ถูกต้อง แต่เมื่อฉันใช้ 3 อินพุท (1 ซึ่งเป็นอคติ) มันให้น้ำหนักที่ถูกต้อง


17
ลองดูคำถามนี้: stackoverflow.com/questions/1697243/help-with-perceptronสำหรับตัวอย่างของปัญหาจริงที่ OP ไม่ได้ใช้คำอคติ
Amro

6
และนี่คือตัวอย่างที่ดีใน Python ว่าทำไมความลำเอียงจึงมีความสำคัญ :) stackoverflow.com/questions/38248657/ …
แร่ธาตุ

3
นี่คือบทความที่ยอดเยี่ยมที่เต็มไปด้วยคณิตศาสตร์ backprop รวมถึงการอัปเดตที่มีอคติ: theclevermachine.wordpress.com/2014/09/06/…
Andy

คำตอบ:


1360

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

มันอาจช่วยให้ดูตัวอย่างง่ายๆ พิจารณาเครือข่าย 1-input, 1-output ที่ไม่มีอคติ:

เครือข่ายง่าย

เอาท์พุทของเครือข่ายคำนวณโดยการคูณอินพุต (x) ด้วยน้ำหนัก (w 0 ) และส่งผ่านผลลัพธ์ผ่านฟังก์ชั่นการเปิดใช้งานบางประเภท (เช่นฟังก์ชั่น sigmoid)

นี่คือฟังก์ชั่นที่เครือข่ายนี้คำนวณสำหรับค่าต่างๆของ w 0 :

เครือข่ายเอาท์พุทรับน้ำหนัก w0 ที่แตกต่างกัน

การเปลี่ยนน้ำหนัก w 0จะเปลี่ยน "ความชัน" ของ sigmoid เป็นหลัก มีประโยชน์ แต่ถ้าคุณต้องการให้เครือข่ายเอาท์พุท 0 เมื่อ x เป็น 2 เพียงแค่เปลี่ยนความสูงชันของ sigmoid จะไม่ทำงานจริงๆ - คุณต้องการที่จะสามารถที่จะเปลี่ยนทั้งเส้นโค้งไปทางขวา

นั่นคือสิ่งที่อคติให้คุณทำ หากเราเพิ่มอคติในเครือข่ายเช่นนั้น:

เครือข่ายง่าย ๆ ด้วยอคติ

... ดังนั้นผลลัพธ์ของเครือข่ายจะกลายเป็น sig (w 0 * x + w 1 * 1.0) นี่คือสิ่งที่ผลลัพธ์ของเครือข่ายดูเหมือนกับค่าต่างๆของ w 1 :

เครือข่ายเอาท์พุทรับน้ำหนัก w1 ที่แตกต่างกัน

การมีน้ำหนักเท่ากับ -5 สำหรับ w 1เลื่อนเส้นโค้งไปทางขวาซึ่งทำให้เราสามารถมีเครือข่ายที่ส่งออก 0 เมื่อ x เป็น 2


6
@ user1621769: วิธีที่ง่ายที่สุดคือเครือข่ายที่มีโหนดอคติเดียวที่เชื่อมต่อกับโหนดที่ไม่ได้ป้อนข้อมูลทั้งหมดในเครือข่าย
เนทโคห์ล

65
@ user1621769: ฟังก์ชั่นหลักของอคติคือการให้ค่าคงที่ที่สามารถฝึกได้ทุกโหนด (นอกเหนือจากอินพุตปกติที่โหนดรับ) คุณสามารถทำสิ่งนั้นได้ด้วยโหนดอคติเดียวที่มีการเชื่อมต่อไปยังโหนด N หรือกับโหนดอคติทั้งสองด้วยการเชื่อมต่อเดียว ผลลัพธ์ควรเหมือนกัน
เนทโคห์ล

4
@ user1621769: คุณอาจล้มเหลวในการพิจารณาน้ำหนัก การเชื่อมต่อแต่ละรายการมีน้ำหนักที่ฝึกได้และโหนด bias มีค่าคงที่
Dimpl

4
@ user132458 หากอัลกอริทึมการฝึกอบรมแสดงให้เห็นว่าคุณไม่จำเป็นต้องเปลี่ยนอคติน้ำหนักอคติอาจจะเข้าใกล้ 0 ดังนั้นการกำจัดสัญญาณอคติ
jorgenkg

8
@Gabriel: ควรมีอคติต่อเซลล์ประสาทที่ซ่อนอยู่

343

เพียงเพื่อเพิ่มสองเซ็นต์ของฉัน

วิธีที่ง่ายกว่าในการเข้าใจความลำเอียงคือ: มันคล้ายกับค่าbคงที่ของฟังก์ชันเชิงเส้น

y = ax + b

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


5
anology ที่ดี แต่ถ้าเราตั้งค่าความเบี่ยงเบนเป็น 1 แล้วทำไมมันถึงสร้างความแตกต่างให้พอดีตอนนี้ที่ทุก ๆ บรรทัดจะผ่าน (0,1) แทนที่จะเป็น (0,0) เพราะทุกบรรทัดมีความลำเอียงเป็น y = 1 แทนที่จะเป็น y = 0 ทำไมจึงมีประโยชน์
ท้องฟ้าสีฟ้า

36
@ blue-sky เนื่องจากการคูณอคติด้วยน้ำหนักคุณสามารถเลื่อนมันเป็นจำนวนเท่าใดก็ได้
Carcigenicate

3
ถูกต้องหรือไม่ที่จะเรียกว่า "สัมประสิทธิ์" b ? ตัวเลข "สัมประสิทธิ์" ไม่ใช่ตัวเลขที่ใช้ในการคูณตัวแปรใช่หรือไม่
Ben

8
b ไม่ใช่ "สัมประสิทธิ์" แต่เป็นการสกัดกั้น
Espanta

22
b คือสัมประสิทธิ์ $ x ^ 0 $ a คือสัมประสิทธิ์ $ x ^ 1 $

64

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

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

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


1
คุณช่วยเพิ่มฟังก์ชันที่พล็อตด้วยป้ายชื่อแกนได้ไหม
Komal-SkyNET

46

สามารถปรับพารามิเตอร์สองชนิดที่แตกต่างกันในระหว่างการฝึกอบรมของ ANN, น้ำหนักและค่าในฟังก์ชั่นการเปิดใช้งาน สิ่งนี้ไม่สามารถทำได้และจะง่ายขึ้นหากควรปรับพารามิเตอร์เพียงหนึ่งตัว เพื่อจัดการกับปัญหานี้เซลล์ประสาทอคติถูกประดิษฐ์ขึ้น เซลล์ประสาทอคติอยู่ในชั้นเดียวเชื่อมต่อกับเซลล์ประสาททั้งหมดในชั้นถัดไป แต่ไม่มีใครในชั้นก่อนหน้าและมักจะปล่อยออกมา 1 เนื่องจากเซลล์ประสาทอคติปล่อยออกมา 1 น้ำหนักที่เชื่อมต่อกับเซลล์ประสาทอคติจะถูกเพิ่มโดยตรง ผลรวมรวมของน้ำหนักอื่น ๆ (สมการ 2.1) เช่นเดียวกับค่า t ในฟังก์ชั่นการเปิดใช้งาน 1

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

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

ANN
(ที่มา: aihorizon.com )

  • w0สอดคล้องกับb
  • w1สอดคล้องกับx1 x1
  • w2สอดคล้องกับx2

สามารถใช้ perceptron เดี่ยวเพื่อแสดงฟังก์ชันบูลีนจำนวนมาก

ตัวอย่างเช่นถ้าเราสมมติว่าค่าบูลีนเป็น 1 (จริง) และ -1 (เท็จ) ดังนั้นวิธีหนึ่งในการใช้ perceptron สองอินพุตเพื่อใช้งานฟังก์ชัน AND คือตั้งค่าน้ำหนัก w0 = -3 และ w1 = w2 = 0.5 Perceptron นี้สามารถสร้างขึ้นเพื่อใช้แทนฟังก์ชัน OR โดยการเปลี่ยน threshold เป็น w0 = -.3 ในความเป็นจริงแล้ว AND และ OR สามารถดูได้ว่าเป็นกรณีพิเศษของฟังก์ชัน m-of-n นั่นคือฟังก์ชันที่อย่างน้อย m ของอินพุต n ไปยัง perceptron ต้องเป็นจริง ฟังก์ชัน OR สอดคล้องกับ m = 1 และฟังก์ชัน AND กับ m = n ฟังก์ชัน m-of-n ใด ๆ สามารถแทนการใช้ perceptron ได้อย่างง่ายดายโดยการตั้งค่าน้ำหนักอินพุตทั้งหมดเป็นค่าเดียวกัน (เช่น 0.5) จากนั้นตั้งค่าเกณฑ์ w0 ตามลำดับ

Perceptrons สามารถเป็นตัวแทนของฟังก์ชันบูลีนดั้งเดิม AND, OR, NAND (1 AND) และ NOR (1 OR) การเรียนรู้ของเครื่อง - Tom Mitchell)

ธรณีประตูคืออคติและw0คือน้ำหนักที่เกี่ยวข้องกับเซลล์ประสาท bias / threshold


8
คิดว่ามันเป็นกฎทั่วไปของหัวแม่มือ: เพิ่มอคติ! เครือข่ายประสาทนั้น"คาดเดาไม่ได้"ในระดับหนึ่งดังนั้นหากคุณเพิ่มเซลล์ประสาทอคติคุณจะมีแนวโน้มที่จะหาวิธีแก้ปัญหาได้เร็วขึ้นหากคุณไม่ได้ใช้อคติ แน่นอนว่านี่ไม่ใช่การพิสูจน์ทางคณิตศาสตร์ แต่เป็นสิ่งที่ฉันสังเกตเห็นในวรรณกรรมและในการใช้งานทั่วไป
คิริล

25

อคติไม่ได้เป็น NNคำศัพท์มันเป็นศัพท์พีชคณิตทั่วไปที่ต้องพิจารณา

Y = M*X + C (สมการเส้นตรง)

ตอนนี้ถ้าเป็นเช่นC(Bias) = 0นั้นบรรทัดจะผ่านจุดกำเนิดเสมอ(0,0)และขึ้นอยู่กับพารามิเตอร์เดียวเท่านั้นคือMคือความชันดังนั้นเราจึงมีสิ่งต่าง ๆ ให้เล่นน้อยลง

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

ในการถดถอยโลจิสติกค่าที่คาดหวังของเป้าหมายจะถูกแปลงโดยฟังก์ชันลิงก์เพื่อ จำกัด ค่าของช่วงเวลาของหน่วย ด้วยวิธีนี้การทำนายแบบจำลองสามารถดูได้ว่าเป็นความน่าจะเป็นผลลัพธ์หลักดังที่แสดง: ฟังก์ชัน Sigmoid บน Wikipedia

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


1
ดังนั้นปัญหาในการฝึกอบรม / การเรียนรู้เครือข่ายประสาทจึงเกิดขึ้นเมื่อเส้นผ่านจุดกำเนิดเสมอเมื่อไม่ได้ใช้อคติ
Daniyal Javaid

@DaniyalJavaid นั่นอาจเป็นไปได้และไม่ใช่ปัญหา
Pradi KL

23

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

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

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

2d ANN:

สำหรับการแมป ANN สองมิติกับมิติเดียวเช่นเดียวกับในการทำซ้ำฟังก์ชัน AND หรือ OR (หรือ XOR) คุณสามารถนึกถึงเครือข่ายเซลล์ประสาทที่ทำสิ่งต่อไปนี้:

บนระนาบ 2d ทำเครื่องหมายตำแหน่งทั้งหมดของเวกเตอร์อินพุต ดังนั้นสำหรับค่าบูลีนคุณต้องทำเครื่องหมาย (-1, -1), (1,1), (-1,1), (1, -1) สิ่งที่ ANN ของคุณทำตอนนี้คือการวาดเส้นตรงบนระนาบ 2d โดยแยกเอาท์พุทเป็นบวกออกจากค่าเอาต์พุตลบ

หากไม่มีอคติเส้นตรงนี้ต้องผ่านศูนย์ในขณะที่มีอคติคุณสามารถวางได้ทุกที่ ดังนั้นคุณจะเห็นว่าไม่มีอคติคุณกำลังประสบปัญหากับฟังก์ชัน AND เนื่องจากคุณไม่สามารถใส่ทั้งสอง (1, -1) และ (-1,1) ไปทางด้านลบ (ไม่อนุญาตให้เปิดในบรรทัด) ปัญหาเท่ากับฟังก์ชั่นหรือ ด้วยอคติอย่างไรก็ตามมันเป็นเรื่องง่ายที่จะวาดเส้น

โปรดทราบว่าฟังก์ชัน XOR ในสถานการณ์นั้นไม่สามารถแก้ไขได้แม้จะมีอคติ


4
หากคุณใช้ฟังก์ชั่นการถ่ายโอน sigmoid คุณจะแนะนำการไม่เชิงเส้น การระบุว่านี่เป็นฟังก์ชันเชิงเส้นผิดและอันตรายอย่างใดอย่างหนึ่งเนื่องจากการไม่เป็นเส้นตรงของ sigmoid เป็นกุญแจสำคัญในการแก้ปัญหาต่าง ๆ นอกจากนี้ sigmoid (0) = 0.5 และไม่มี x ซึ่ง sigmoid (x) = 0.
โจมตี

2
ใช่ แต่มันคือ 0.5 สำหรับอินพุตใด ๆ ของ 0 ที่ไม่มีอคติไม่ว่าฟังก์ชันเชิงเส้นก่อนหน้าจะเป็นอย่างไร และนั่นคือประเด็น ปกติคุณจะไม่ได้ฝึกฟังก์ชั่น sigmoid ของคุณคุณแค่อยู่กับมัน ปัญหาความเป็นเชิงเส้นเกิดขึ้นได้ดีก่อนฟังก์ชัน sigmoid
Debilski

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

ผมว่าที่มีอคติก็เลียนแบบ ( en.wikipedia.org/wiki/Affine_transformation#Representation )
Debilski

ใช่คุณถูกต้อง ขอบคุณสำหรับการชี้ให้เห็นความแตกต่างนั้นกับฉัน (ทำไมเราถึงเรียกมันว่าการถดถอยเชิงเส้น (btw) ถึงแม้ว่ามันจะเลียนแบบได้ก็ตาม)
bayer

20

เมื่อคุณใช้ ANN คุณไม่ค่อยรู้เกี่ยวกับ internals ของระบบที่คุณต้องการเรียนรู้ บางสิ่งไม่สามารถเรียนรู้ได้หากปราศจากอคติ ตัวอย่างเช่นดูข้อมูลต่อไปนี้: (0, 1), (1, 1), (2, 1) โดยทั่วไปฟังก์ชั่นที่แมป x กับ 1 ใด ๆ

หากคุณมีเครือข่ายชั้นเดียว (หรือการจับคู่เชิงเส้น) คุณไม่สามารถหาวิธีแก้ปัญหาได้ อย่างไรก็ตามถ้าคุณมีอคติก็ไม่สำคัญ!

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


18

การปรับน้ำหนักของเซลล์ประสาทเพียงอย่างเดียวทำหน้าที่จัดการกับรูปร่าง / ความโค้งของฟังก์ชั่นการถ่ายโอนของคุณเท่านั้นไม่ใช่จุดสมดุล / ศูนย์จุดผ่าน

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

ดูคำอธิบายแบบกราฟิกที่นี่: http://www.heatonresearch.com/wiki/Bias


16

เพียงแค่เพิ่มทุกสิ่งนี้ที่หายไปมากและที่เหลือน่าจะไม่รู้

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

สำหรับข้อมูลอื่น ๆ ที่มีอคติอาจสำคัญ ขึ้นอยู่กับประเภทของข้อมูลที่คุณจัดการ หากข้อมูลของคุณมีขนาดคงที่ --- หากป้อน [1,0,0.1] ควรนำไปสู่ผลลัพธ์เช่นเดียวกับถ้าป้อน [100,0,10] คุณอาจจะดีกว่าโดยไม่มีอคติ


คุณน่าจะดีขึ้นด้วยการทำให้เป็นมาตรฐาน ตัวอย่างของเครือข่ายที่ทันสมัยที่ใช้ "การขาดอคติ" เพื่อผลิตขนาด invariaance คืออะไร?
AwokeKnowing

@ AwokeKnowing ฉันเชื่อว่า ResNet ทั่วไปใช้ประโยชน์เนื่องจากเป็นส่วนหนึ่งของ "การเริ่มต้น" แต่ฉันไม่แน่ใจว่าพวกเขาทำสิ่งนี้เพื่อจุดประสงค์นี้อย่างเคร่งครัดหรืออาจเป็นเพราะการพิจารณาขนาด / ประสิทธิภาพของรุ่นและฉัน ' ฉันไม่แน่ใจว่ามีการเผยแพร่แนวคิดนี้ทุกที่ แต่ฉันคิดว่ามันเข้าใจได้อย่างสมบูรณ์ในระดับทฤษฎี หากคุณไม่มีอคติที่ไม่ได้ปรับขนาดเมื่อคุณปรับขนาดค่าเอาต์พุตทั้งหมดจะปรับขนาดตามความเหมาะสม ตระหนักถึงแนวคิดนี้หรือไม่ส่วนใหญ่ของสถาปัตยกรรมสมัยใหม่ไม่มีอคติอย่างน้อยในส่วนใหญ่ของโครงสร้างของพวกเขา
ÍhorMé

16

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

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


นั่นฟังดูคล้ายกับกระบวนการสร้างแบบจำลองระบบ "ด้วยมือ" อย่างสมบูรณ์พร้อมการถดถอยเชิงเส้น โมเดลที่ง่ายที่สุดคือ Y_bar = mean (Y) จากนั้นคุณเพิ่มความซับซ้อนด้วยการรวมคำศัพท์ X ต่างๆหยุดเมื่อไม่มีการรับข้อมูลที่สำคัญ
IRTFM

15

อคติตัดสินใจว่าคุณต้องการให้น้ำหนักของคุณหมุนมุมเท่าใด

ในแผนภูมิสองมิติน้ำหนักและอคติช่วยให้เราค้นหาขอบเขตการตัดสินใจของเอาต์พุต สมมติว่าเราจำเป็นต้องสร้างและฟังก์ชันคู่ของอินพุต (p) -outout (t) ควรเป็น

{p = [0,0], t = 0}, {p = [1,0], t = 0}, {p = [0,1], t = 0}, {p = [1,1] , t = 1}

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

ตอนนี้เราต้องค้นหาขอบเขตการตัดสินใจขอบเขตความคิดควรเป็น:

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

ดู? W ตั้งฉากกับขอบเขตของเรา ดังนั้นเราบอกว่า W ตัดสินใจทิศทางของขอบเขต

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

ตอนนี้ขอบเขตคือ pareller ไปยังแกน y

เราต้องการหมุนขอบเขตอย่างไร

โดยการเปลี่ยน W.

ดังนั้นเราจึงใช้ฟังก์ชันกฎการเรียนรู้: W '= W + P: ป้อนคำอธิบายรูปภาพที่นี่

W '= W + P เทียบเท่ากับ W' = W + bP ในขณะที่ b = 1

ดังนั้นโดยการเปลี่ยนค่าของ b (อคติ) คุณสามารถตัดสินใจมุมระหว่าง W 'และ W นั่นคือ "กฎการเรียนรู้ของ ANN"

คุณสามารถอ่านNeural Network Designโดย Martin T. Hagan / Howard B. Demuth / Mark H. Beale, บทที่ 4 "กฎการเรียนรู้ Perceptron"


1
คำอธิบาย / ภาพประกอบที่เป็นประโยชน์
javadba

10

โดยเฉพาะอย่างยิ่งของเนทคำตอบ , zfy ของคำตอบและ Pradi ของคำตอบที่ดี

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

ตัวอย่างเช่นในรูปแบบการเรียนรู้สมมติฐาน / เดาถูกล้อมรอบด้วย des yable โดย y = 0 หรือ y = 1 ได้รับการป้อนข้อมูลบางอย่างในงานการจำแนกบางอย่าง ... บางที y = 0 สำหรับบาง x = (1,1) และบางส่วน y = 1 สำหรับบาง x = (0,1) (เงื่อนไขเกี่ยวกับสมมติฐาน / ผลลัพธ์เป็นเกณฑ์ที่ฉันพูดถึงข้างต้นโปรดทราบว่าตัวอย่างของฉันตั้งค่าอินพุต X เป็นแต่ละ x = คู่หรือ 2 ค่าเวกเตอร์แทนที่จะเป็นอินพุต x ค่าเดียวของเนทของคอลเลกชัน X บางรายการ)

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

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


9

กำลังขยายคำอธิบาย @zfy ... สมการสำหรับหนึ่งอินพุตหนึ่งเซลล์ประสาทหนึ่งเอาต์พุตควรมีลักษณะ:

y = a * x + b * 1    and out = f(y)

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

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

หากคุณมีมากกว่าหนึ่งอินพุตสมการของคุณจะมีลักษณะดังนี้:

y = a0 * x0 + a1 * x1 + ... + aN * 1

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

ที่คุณสามารถเขียนในรูปแบบเวกเตอร์เป็น

A = [a0, a1, .., aN] , X = [x0, x1, ..., 1]
Y = A . XT

คือใส่ค่าสัมประสิทธิ์ในอาร์เรย์หนึ่งและ (อินพุต + อคติ) ในอีกอันที่คุณมีวิธีแก้ปัญหาที่คุณต้องการในฐานะผลคูณของสองเวกเตอร์ (คุณต้องแปลง X เพื่อให้รูปร่างถูกต้องฉันเขียน XT a 'X transposed')

ดังนั้นในที่สุดคุณสามารถเห็นอคติของคุณในฐานะที่เป็นเพียงหนึ่งอินพุตเพิ่มเติมเพื่อเป็นตัวแทนของส่วนที่เป็นอิสระจากอินพุตของคุณ


ดูเหมือนว่าฉันจะจำได้จากชั้นเรียนของแอนดรูว์อึ้งว่าอคตินั้นเกิดจากกระบวนการฝึกอบรม คุณสามารถปรับปรุงคำตอบของคุณเพื่ออธิบายว่าเมื่อพิจารณาข้อสรุปของคุณว่าเป็น "ข้อมูลอื่น"
AwokeKnowing

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

ไม่มันเป็นอะไรที่มากกว่านั้นใช้มันในการส่งต่อ แต่ไม่ได้ใช้เมื่อคำนวณการไล่ระดับสีสำหรับ backprop หรืออะไรทำนองนั้น
AwokeKnowing

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

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

9

นอกเหนือจากคำตอบที่กล่าวไว้ .. ฉันต้องการที่จะเพิ่มจุดอื่น ๆ

อคติทำหน้าที่เป็นสมอเรือของเรา มันเป็นวิธีที่เราจะมีพื้นฐานบางอย่างที่เราไม่ได้ไปข้างล่างนั้น ในแง่ของกราฟลองคิดว่าชอบ y = mx + b มันเหมือนกับการตัดแกน y ของฟังก์ชันนี้

output = input คูณค่าน้ำหนักและเพิ่มค่า biasจากนั้นใช้ฟังก์ชั่นการเปิดใช้งาน


8

ในการคิดแบบง่ายๆถ้าคุณมีy = w1 * xโดยที่yคือเอาต์พุตของคุณและw1คือน้ำหนักที่จินตนาการถึงเงื่อนไขที่x = 0ดังนั้นy = w1 * xเท่ากับ 0หากคุณต้องการอัปเดตน้ำหนักของคุณคุณมี เพื่อคำนวณการเปลี่ยนแปลงโดยdelw = target-yโดยที่ target คือเอาต์พุตเป้าหมายของคุณในกรณีนี้'delw'จะไม่เปลี่ยนแปลงเนื่องจากคำนวณจากyเป็น 0. ดังนั้นสมมติว่าถ้าคุณสามารถเพิ่มค่าพิเศษบางอย่างมันจะช่วยให้y = w1 * x + w0 * 1โดยที่ bias = 1 และน้ำหนักสามารถปรับได้เพื่อให้ได้อคติที่ถูกต้องพิจารณาตัวอย่างด้านล่าง

ในแง่ของเส้นความชัน - จุดตัดเป็นรูปแบบเฉพาะของสมการเชิงเส้น

การ y = mx + ข

ตรวจสอบภาพ

ภาพ

ที่นี่ b คือ (0,2)

ถ้าคุณต้องการเพิ่มเป็น (0,3) คุณจะทำอย่างไรโดยการเปลี่ยนค่าของ b ซึ่งจะเป็นอคติของคุณ


7

สำหรับหนังสือ ML ทุกเล่มที่ฉันศึกษา W จะถูกกำหนดเสมอเป็นดัชนีการเชื่อมต่อระหว่างสองเซลล์ประสาทซึ่งหมายถึงการเชื่อมต่อที่สูงขึ้นระหว่างเซลล์ประสาทสองเซลล์ยิ่งสัญญาณแรงขึ้นจะถูกส่งจากเซลล์ประสาทยิงไปยังเซลล์เป้าหมายหรือ Y = w * X เพื่อรักษาลักษณะทางชีววิทยาของเซลล์ประสาทเราจำเป็นต้องรักษา 1> = W> = -1 แต่ในการถดถอยจริง W จะจบลงด้วย | W | > = 1 ซึ่งขัดแย้งกับการทำงานของเซลล์ประสาทดังนั้นฉันจึงเสนอ W = cos (theta) ในขณะที่ 1> = | cos (theta) | และ Y = a * X = W * X + b ในขณะที่ a = b + W = b + cos (theta), b เป็นจำนวนเต็ม


7

ในเครือข่ายประสาท:

  1. เซลล์ประสาทแต่ละคนมีอคติ
  2. คุณสามารถดูอคติเป็นเกณฑ์ (โดยทั่วไปค่าตรงข้ามของเกณฑ์)
  3. ผลรวมถ่วงน้ำหนักจากชั้นเลเยอร์ + อคติตัดสินใจเปิดใช้งานเซลล์ประสาท
  4. อคติเพิ่มความยืดหยุ่นของโมเดล

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

คุณค่าของอคตินั้นสามารถเรียนรู้ได้

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

อย่างมีประสิทธิภาพ bias = - threshold คุณคิดว่าอคตินั้นง่ายแค่ไหนที่จะทำให้เซลล์ประสาทส่งออก 1 - ด้วยอคติที่ใหญ่มากมันง่ายมากที่เซลล์ประสาทจะให้ผลลัพธ์ 1 แต่ถ้าอคตินั้นเป็นลบมากมันก็ยาก

โดยสรุป: อคติช่วยในการควบคุมค่าที่จะเปิดใช้งานฟังก์ชั่น

ติดตามวิดีโอนี้สำหรับรายละเอียดเพิ่มเติม

ลิงค์ที่มีประโยชน์น้อยมาก:

geeksforgeeks

towardsdatascience


1
การตีความที่ดี แต่ฉันไม่ชัดเจนว่าอคตินั้นเรียนรู้ได้อย่างไร (หรือฝึกอบรมได้) ในกรณีง่าย ๆ ที่การสูญเสีย = ReLU (omega * x + a) โอเมก้าน้ำหนักสามารถฝึกผ่านกฎลูกโซ่ได้ แต่จะมีอคติaได้อย่างไรเมื่อการไล่ระดับสีaเป็นค่าคงที่เสมอ?
Libin Wen

4

คำว่าไบแอสใช้เพื่อปรับเมทริกซ์เอาต์พุตสุดท้ายตามที่จุดตัดแกน y ทำ ตัวอย่างเช่นในสมการแบบคลาสสิก y = mx + c ถ้า c = 0 ดังนั้นเส้นจะผ่านไป 0 เสมอการเพิ่มคำอคติให้ความยืดหยุ่นมากขึ้น


0

โดยทั่วไปในการเรียนรู้ของเครื่องเรามีสูตรพื้นฐานBias-Variance Tradeoff เพราะใน NN เรามีปัญหาเรื่อง Overfitting (ปัญหาการวางตัวแบบทั่วไปที่การเปลี่ยนแปลงเล็กน้อยของข้อมูลทำให้เกิดการเปลี่ยนแปลงครั้งใหญ่ในโมเดล) และเนื่องจากเรามีความแปรปรวนขนาดใหญ่ อคติเล็ก ๆ อาจช่วยได้มาก เมื่อพิจารณาจากสูตรเหนือBias-Variance Tradeoffที่มีอคติกำลังสองดังนั้นการแนะนำอคติเล็ก ๆ อาจนำไปสู่การลดความแปรปรวนได้มาก ดังนั้นแนะนำความลำเอียงเมื่อคุณมีความแปรปรวนอย่างมากและอันตรายที่มากเกินไป


3
หน่วย BiasและBias-Variance tradeoffเป็นแนวคิดแยกกัน คำถามเกี่ยวกับอดีต
SigmaX

0

อคติช่วยให้ได้สมการที่ดีกว่า

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

คุณสามารถพูดได้ว่าอคติทำให้สมการมีความยืดหยุ่นมากขึ้นเพื่อปรับให้เข้ากับค่าที่ดีที่สุด

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