น้ำหนักและอคติในการเรียนรู้อย่างลึกซึ้งคืออะไร?


16

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

มีบางสิ่งที่สับสนที่ฉันได้เจอมี 2 สิ่ง:

  1. อคติ
  2. น้ำหนัก

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

เราต้องให้ค่าเหล่านี้หรือไม่หรือห้องสมุด TensorFlow คำนวณค่าเหล่านี้โดยอัตโนมัติตามชุดข้อมูลการฝึกอบรมหรือไม่?

นอกจากนี้หากคุณสามารถให้คำแนะนำเกี่ยวกับวิธีเร่งความเร็วของฉันในการเรียนรู้อย่างลึกซึ้งนั่นจะยอดเยี่ยมมาก!

การสอน Tensorflow Beginners


3
ในฐานะที่เป็นพารามิเตอร์ของแบบจำลองทางสถิติพวกเขาจะได้เรียนรู้หรือประเมินโดยการลดฟังก์ชั่นการสูญเสียที่ขึ้นอยู่กับข้อมูลของคุณ และนั่นคือสิ่งที่การเรียนรู้ของเครื่องเป็นสิ่งที่เกี่ยวกับ คุณจะต้องถามคำถามมากมายถ้าคุณทำตามวิธีการสอนนี้ ฉันแนะนำให้ใช้ MOOC แบบเดียวกับที่ Coursera เพื่อให้คุณสามารถเรียนรู้สิ่งต่าง ๆ ได้อย่างเป็นระเบียบ
Emre

นี่เป็นขั้นพื้นฐานดังนั้นคุณควรทำหลักสูตรอย่างที่ @Emre แนะนำ
SmallChess

คำตอบ:


11

การพูดทางคณิตศาสตร์ ลองนึกภาพคุณเป็นนายแบบ (ไม่แบบนั้นรูปที่ 8)

Y=WX+nผมก.อีRผมan

แล้วคุณเข้าใจอะไร เอนเอียงคือสมมติฐานล่วงหน้าในแบบที่คุณมี

สำหรับน้ำหนักการพูดอย่างมีเหตุผลน้ำหนักคือการไล่ระดับสีของคุณ (ในพีชคณิตเชิงเส้น)

ไล่โทนสีคืออะไร มันคือความชันของฟังก์ชันลิเนียร์

อะไรทำให้การไล่ระดับสีเชิงเส้นสูงชันมาก (ค่าบวกสูง)

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

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

ทำไมคุณถึงพยายามวาดเส้นตรงจำนวนมาก?

เพราะในกราฟกราฟ / หน่วยความจำคอมพิวเตอร์ของคุณคุณกำลังลองดูเส้นที่พอดี

ฉันหรือคอมพิวเตอร์จะรู้เส้นที่เหมาะสมได้อย่างไร

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

เย็น! แล้วเกิดอะไรขึ้น

การคำนวณความชันของบรรทัดนั้นสมมติว่าน้ำหนักของปัญหาการเรียนรู้ถูกคำนวณ

การเรียนรู้ของเครื่องนั้นเป็นสิ่งที่เข้าใจพื้นฐานและกราฟการลงคะแนนของนักเรียนมัธยมปลายในสมุดภาพของเขา / เธอ


10

ฉันเห็นด้วยกับความคิดเห็นเกี่ยวกับคำถามของคุณที่คุณควรพิจารณาในหลักสูตรบางทีการเรียนรู้ของ Machine Andrew บน Courseraซึ่งเป็นหลักสูตรเบื้องต้นที่ได้รับการยกย่องอย่างสูง นี่เป็นคำถามพื้นฐานเกี่ยวกับพื้นฐานการเรียนรู้ของเครื่อง ด้วยเหตุนี้ฉันจึงไม่ครอบคลุมวิชาคณิตศาสตร์ในคำตอบนี้คุณสามารถรับได้จากหลาย ๆ ที่รวมถึงหลักสูตรนั้น

จะกำหนดค่าสำหรับอคติและน้ำหนักได้ที่ไหนและอย่างไร

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

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

เราต้องให้ค่าเหล่านี้หรือไม่หรือห้องสมุด TensorFlow คำนวณค่าเหล่านี้โดยอัตโนมัติตามชุดข้อมูลการฝึกอบรมหรือไม่?

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

รหัสเฉพาะที่จัดการกับการเปลี่ยนแปลงน้ำหนักและอคติจากบทช่วยสอนคือ:

train_step = tf.train.GradientDescentOptimizer(0.5).minimize(cross_entropy)

และนี่:

sess.run(train_step, feed_dict={x: batch_xs, y_: batch_ys})

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

บรรทัดที่สองเรียกใช้ฟังก์ชั่นที่มีข้อมูลเฉพาะ ทุกครั้งที่เรียกใช้บรรทัดที่สองนี้ค่าน้ำหนักและอคติจะถูกปรับเพื่อให้เครือข่ายประสาทออกY ให้ความสำคัญกับความสัมพันธ์ที่ถูกต้องมากขึ้นเล็กน้อย x ราคา.


8

น้ำหนัก - น้ำหนักคือความแข็งแรงของการเชื่อมต่อ ถ้าฉันเพิ่มอินพุตก็จะมีอิทธิพลกับเอาต์พุตมากแค่ไหน

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

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

Low Bias : แนะนำสมมติฐานเพิ่มเติมเกี่ยวกับรูปแบบของฟังก์ชันเป้าหมาย

High-Bia s: เสนอสมมติฐานน้อยกว่าเกี่ยวกับรูปแบบของฟังก์ชันเป้าหมาย


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