อธิบายโครงข่ายประสาทเทียมแบบเข้าใจง่าย: ทำงานอย่างไร
คำว่า "โครงข่ายประสาทเทียม" ฟังดูยาก แต่จริง ๆ แล้วเป็นแค่ชิ้นส่วนง่าย ๆ หลายชิ้นมาประกอบกัน บทความนี้เลี่ยงสูตรคณิตศาสตร์ ใช้สัญชาตญาณและการเปรียบเทียบ พาคุณรู้จักเซลล์ประสาท ฟังก์ชันกระตุ้น และวิธีที่โมเดลค่อย ๆ เรียนรู้การหารูปแบบด้วยการปรับพารามิเตอร์
เซลล์ประสาท น้ำหนัก และไบแอส คืออะไรกันแน่
จริง ๆ แล้วเซลล์ประสาทเป็นเพียงหน่วยเล็ก ๆ ที่ "หาผลรวมถ่วงน้ำหนักแล้วตัดสินใจ" รับตัวเลขอินพุตหลายตัว โดยแต่ละตัวมีน้ำหนักบอกว่าสำคัญแค่ไหน เอาอินพุตแต่ละตัวคูณน้ำหนัก รวมกัน แล้วบวกไบแอส จะได้ผลรวมของขั้นนี้ ไบแอสเปรียบเหมือน "เกณฑ์" ที่ปรับได้ ทำให้เซลล์ประสาทตอบสนองได้แม้อินพุตเป็นศูนย์ทั้งหมด
พอเอาประสาทแบบนี้มาต่อกันเป็นชั้น ๆ โดยให้เอาต์พุตของชั้นหนึ่งเป็นอินพุตของชั้นถัดไป ก็จะได้เป็นโครงข่าย น้ำหนักและไบแอสคือตัวเลขเดียวที่ถูกแก้จริง ๆ ตอนฝึก และ "การเรียนรู้" ทั้งหมดเกิดขึ้นตรงนี้
ฟังก์ชันกระตุ้น: เพิ่มความสามารถในการ "โค้งงอ" ให้โครงข่าย
ถ้าทำแค่ผลรวมถ่วงน้ำหนัก ไม่ว่าจะต่อกี่ชั้น ผลลัพธ์ก็ยังเป็นความสัมพันธ์แบบเส้นตรง ฟังก์ชันกระตุ้นมีหน้าที่เติมการแปลงแบบไม่เป็นเชิงเส้นง่าย ๆ ลงในเอาต์พุตของแต่ละเซลล์ เช่น กดค่าลบให้เข้าใกล้ศูนย์และเก็บค่าบวกไว้ ด้วยเหตุนี้โครงข่ายจึงแสดงรูปทรงที่โค้ง ขึ้นลง และซับซ้อนได้
ชื่ออย่าง ReLU, Sigmoid และ tanh เป็นแค่ตัวเลือกต่าง ๆ ของฟังก์ชันกระตุ้น ไม่ต้องจำสูตรก็ได้ แค่เข้าใจจุดประสงค์ร่วมกันว่า เพื่อให้โครงข่ายจับรูปแบบที่ไม่ใช่เส้นตรงได้
สามขั้นตอนการฝึก: forward pass, loss, backpropagation
ตอนฝึก โครงข่ายจะทำ "forward pass" ก่อน คือรับภาพหรือข้อมูลเข้ามา คำนวณทีละชั้น แล้วได้คำทำนายออกมา จากนั้นเทียบกับคำตอบที่ถูกต้อง ตัวเลขที่เรียกว่า "loss" จะบอกว่าคราวนี้ผิดไปแค่ไหน ยิ่งทำนายแม่น loss ยิ่งน้อย
จากนั้นคือ "backpropagation" โดย loss จะไหลย้อนกลับผ่านโครงข่าย บอกน้ำหนักและไบแอสทุกตัวว่าควรขยับขึ้นหรือลงเล็กน้อย หลังปรับแล้ว โครงข่ายจะทำ forward pass อีกครั้ง และ loss มักลดลง ทำซ้ำแบบนี้หลายพันครั้ง โครงข่ายก็จะค่อย ๆ แม่นขึ้น
ทำไมวิธีนี้ถึงทำให้มัน "เรียนรู้" รูปแบบได้จริง
โครงข่ายไม่ได้ "เข้าใจ" ภาพหรือประโยคจริง ๆ มันแค่ปรับตัวเลขหลายพันตัวนั้นไปเรื่อย ๆ ให้คำทำนายใกล้คำตอบที่ถูกมากขึ้น เมื่ออินพุตที่คล้ายกันปรากฏซ้ำ ๆ ชุดน้ำหนักที่ช่วยลด loss จะถูกเก็บไว้ และโครงข่ายจะยิ่งไวต่อรูปแบบนั้นขึ้นเรื่อย ๆ
นี่จึงเป็นเหตุผลที่ต้องใช้ตัวอย่างจำนวนมาก ยิ่งเห็นตัวอย่างมากและหลากหลาย น้ำหนักก็ยิ่งถูก "ขัดเกลา" ให้พอดี จนตัดสินใจกับภาพใหม่ได้อย่างสมเหตุสมผล นี่คือสิ่งที่เรียกว่า generalization
FAQ
ต้องเรียนคณิตศาสตร์ขั้นสูงก่อนไหมจึงจะเข้าใจโครงข่ายประสาทเทียม
ไม่จำเป็นเลย แค่เข้าใจแนวคิดหลักก็ใช้สัญชาตญาณของการบวกลบคูณหารก็พอ เมื่อลงมือฝึกโมเดลจริงค่อยเติมพีชคณิตเชิงเส้นและแคลคูลัสตามความจำเป็น เรียนรู้จากการลงมือทำได้ผลกว่า
โครงข่ายประสาทเทียมเหมือนสมองมนุษย์จริงหรือ
แค่ได้แรงบันดาลใจจากสมอง ไม่ใช่การลอกแบบ เซลล์ประสาทจริงซับซ้อนกว่านั้นมากทั้งเรื่องจังหวะเวลาและสัญญาณเคมี ส่วน "เซลล์ประสาท" ในที่นี้เป็นเพียงแบบจำลองทางคณิตศาสตร์ที่ย่อให้ง่ายมาก เพื่อจับแก่นแนวคิด อินพุต–ถ่วงน้ำหนัก–เอาต์พุต
ยิ่งมีชั้นมาก โครงข่ายจะยิ่งฉลาดไหม
ชั้นที่มากขึ้นแสดงรูปแบบที่ซับซ้อนขึ้นได้ แต่ไม่ใช่ว่ามากแล้วดีเสมอ ถ้าชั้นมากเกินไปแต่ข้อมูลน้อย โครงข่ายมัก "overfit" คือท่องจำตัวอย่างฝึกได้แต่ทำงานแย่กับข้อมูลที่ไม่เคยเห็น ขนาดที่พอเหมาะขึ้นอยู่กับงานและปริมาณข้อมูล
สัมผัสโครงข่ายประสาทเทียมด้วยตัวเองกับ AI Neural
เปิด AI Neural แล้วลองปรับน้ำหนักและฟังก์ชันกระตุ้นในภาพจำลองแบบโต้ตอบ เพื่อดูกับตาว่าโครงข่ายเรียนรู้การจำรูปแบบทีละขั้นได้อย่างไร ลองลงมือหนึ่งครั้งดีกว่าอ่านสิบรอบ