ในการสร้าง โครงข่ายประสาทเทียม ที่เรียนรู้ความ ไม่เป็นเชิงเส้น ให้เริ่มต้นด้วยโครงสร้างแบบจำลองที่คุ้นเคยดังต่อไปนี้: แบบจำลองเชิงเส้น ในรูปแบบ $y' = b + w_1x_1 + w_2x_2 + w_3x_3$
เราสามารถแสดงภาพสมการนี้ได้ดังที่แสดงด้านล่าง โดยที่ $x_1$, $x_2$ และ $x_3$ คือโหนดอินพุตทั้งสามของเรา (สีน้ำเงิน) และ $y'$ คือโหนดเอาต์พุตของเรา (สีเขียว)
แบบฝึกหัดที่ 1
ในแบบจำลองข้างต้น ค่า ถ่วงน้ำหนัก และค่า ไบแอส ได้รับการกำหนดค่าเริ่มต้นแบบสุ่ม โปรดทำตามขั้นตอนต่อไปนี้เพื่อทำความคุ้นเคยกับอินเทอร์เฟซและสำรวจแบบจำลองเชิงเส้น คุณสามารถละเว้นเมนูแบบเลื่อนลง ฟังก์ชันการกระตุ้นได้ ในตอนนี้ เราจะกล่าวถึงหัวข้อนี้ในภายหลังในโมดูลนี้
คลิกปุ่มเล่น (▶️) ด้านบนเครือข่ายเพื่อคำนวณค่าของโหนดเอาต์พุตสำหรับค่าอินพุต $x_1 = 1.00$, $x_2 = 2.00$ และ $x_3 = 3.00$
คลิกที่โหนดที่สองใน เลเยอร์อินพุต แล้วเพิ่มค่าจาก 2.00 เป็น 2.50 สังเกตว่าค่าของโหนดเอาต์พุตเปลี่ยนแปลงไป เลือกโหนดเอาต์พุต (สีเขียว) และตรวจสอบแผง การคำนวณ เพื่อดูว่าค่าเอาต์พุตคำนวณอย่างไร
คลิกที่โหนดเอาต์พุต (สีเขียว) เพื่อดูค่าพารามิเตอร์น้ำหนัก ($w_1$, $w_2$, $w_3$) และค่าไบแอส ($b$) ลดค่าน้ำหนักสำหรับ $w_3$ (โปรดทราบว่าค่าของโหนดเอาต์พุตและการคำนวณด้านล่างมีการเปลี่ยนแปลง) จากนั้น เพิ่มค่าไบแอส ตรวจสอบว่าการเปลี่ยนแปลงเหล่านี้ส่งผลต่อผลลัพธ์ของแบบจำลองอย่างไร
การเพิ่มเลเยอร์ให้กับเครือข่าย
โปรดสังเกตว่า เมื่อคุณปรับค่าน้ำหนักและค่าไบแอสของเครือข่ายใน แบบฝึกหัดที่ 1 แล้ว ความสัมพันธ์ทางคณิตศาสตร์โดยรวมระหว่างอินพุตและเอาต์พุตยังคงเหมือนเดิม โมเดลของเรายังคงเป็นโมเดลเชิงเส้นอยู่
แต่ถ้าเราเพิ่มอีกชั้นหนึ่งเข้าไปในเครือข่าย ระหว่างชั้นอินพุตและชั้นเอาต์พุตล่ะ? ในศัพท์เฉพาะของโครงข่ายประสาทเทียม ชั้นเพิ่มเติมระหว่างชั้นอินพุตและชั้นเอาต์พุตเรียกว่า ชั้นซ่อนเร้น และโหนดในชั้นเหล่านี้เรียกว่า นิวรอน
ค่าของแต่ละนิวรอนในชั้นซ่อนจะถูกคำนวณในลักษณะเดียวกับเอาต์พุตของแบบจำลองเชิงเส้น กล่าวคือ นำผลรวมของผลคูณของอินพุตแต่ละตัว (นิวรอนในชั้นเครือข่ายก่อนหน้า) และพารามิเตอร์น้ำหนักที่ไม่ซ้ำกัน บวกกับค่าไบแอส ในทำนองเดียวกัน นิวรอนในชั้นถัดไป (ในที่นี้คือชั้นเอาต์พุต) จะถูกคำนวณโดยใช้ค่าของนิวรอนในชั้นซ่อนเป็นอินพุต
ชั้นข้อมูลที่ซ่อนอยู่ใหม่นี้ช่วยให้โมเดลของเราสามารถรวมข้อมูลอินพุตเข้าด้วยกันโดยใช้ชุดพารามิเตอร์อื่นได้ สิ่งนี้จะช่วยให้โมเดลของเราเรียนรู้ความสัมพันธ์ที่ไม่เป็นเชิงเส้นได้หรือไม่?
แบบฝึกหัดที่ 2
เราได้เพิ่มเลเยอร์ที่ซ่อนอยู่ซึ่งประกอบด้วยเซลล์ประสาทสี่เซลล์เข้าไปในแบบจำลองแล้ว
คลิกปุ่มเล่น (▶️) ด้านบนเครือข่ายเพื่อคำนวณค่าของโหนดชั้นซ่อนทั้งสี่และโหนดเอาต์พุตสำหรับค่าอินพุต $x_1 = 1.00$, $x_2 = 2.00$ และ $x_3 = 3.00$
จากนั้นศึกษาแบบจำลอง และใช้แบบจำลองนั้นเพื่อตอบคำถามต่อไปนี้
ลองปรับเปลี่ยนพารามิเตอร์ของโมเดล แล้วสังเกตผลกระทบต่อค่าของโหนดในเลเยอร์ที่ซ่อนอยู่และค่าเอาต์พุต (คุณสามารถตรวจสอบแผงการคำนวณด้านล่างเพื่อดูวิธีการคำนวณค่าเหล่านี้ได้)
โมเดลนี้สามารถเรียนรู้เกี่ยวกับความไม่เป็นเชิงเส้นได้หรือไม่?
หากคุณคลิกที่แต่ละโหนดในเลเยอร์ที่ซ่อนอยู่และตรวจสอบการคำนวณด้านล่าง คุณจะเห็นว่าทั้งหมดเป็นการคำนวณเชิงเส้น (ประกอบด้วยการคูณและการบวก)
หากคุณคลิกที่โหนดเอาต์พุตและตรวจสอบการคำนวณด้านล่าง คุณจะเห็นว่าการคำนวณนี้ก็เป็นแบบเชิงเส้นเช่นกัน การคำนวณเชิงเส้นที่ดำเนินการกับผลลัพธ์ของการคำนวณเชิงเส้นก็จะเป็นเชิงเส้นเช่นกัน ซึ่งหมายความว่าแบบจำลองนี้ไม่สามารถเรียนรู้สิ่งที่ไม่เป็นเชิงเส้นได้