เรียนรู้และทำความเข้าใจ Neural Network Forward Propagation คืออะไร



 เรียนรู้และทำความเข้าใจ Neural Network Forward Propagation คืออะไร

ในโลกของ Developer ทุกวันนี้ ทุกคนคงจะได้ยินเทรนด์ในการพัฒนาซอฟแวร์ยุคใหม่ที่อยู่บนพื้นฐานของ machine learning หรือที่หลายๆคนเรียกว่า AI-first ซึ่งจะเข้ามาแทนยุค Mobile-first ในปัจจุบัน ในส่วนพื้นฐานล่างสุดของการทำ Machine Leaning นั้น คือส่วนที่เรียกว่า Neural network หรือโครงข่ายประสาทเทียม   

การเรียนรู้ของมนุษย์

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

Neural network คืออะไร

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

แต่ในส่วนของคอมพิวเตอร์นั้น ไม่ได้มีโครงสร้างที่ซับซ้อนเท่ากับสมองมนุษย์ ซึ่งคอมพิวเตอร์นั้นมีหน้าที่เพียงแค่ รันโปรแกรมตามที่มนุษย์เป็นคนสั่งการเท่านั้น ดังนั้นจึงเกิดการจำลองแนวทางการเรียนรู้ของคน ไปสู่คอมพิวเตอร์ด้วย Neural Network นั่นเอง



 

Feed-Forward Neural Network

รูปแบบของ Neural Network ที่ง่ายที่สุดคือ Feed-Forward Neural Network โดยจะแบ่ง Perceptron ออกเป็นกลุ่มๆ โดยแต่ละกลุ่มจะเรียกเป็น Layer โดยข้อมูลที่เข้ามาจะไหลไปในทิศทางเดียว ไม่ไหลย้อนกลับ จาก Layer นึงสู่อีก Layer นึง

Neuron หรือ Perceptron

เป็นส่วนที่เล็กที่สุดของ Neural Network ก็คือ Neuron ซึ่งทำหน้าที่คำนวณ input ที่เข้ามา เพื่อให้ได้ผลลัพธ์ออกไป โดยมีหน้าที่ 2 ส่วนดังนี้

  1. Linear combination ของ input กับ parameter แสดงด้วยสัญลักษณ์ ∑                                             
  2. Activation function ที่นิยมใช้ ได้แก่ Sigmoid function, Tanh function, Relu function

Activation function ของ Output Layer

การเลือก activation function ของ output layer เราต้องเลือกสิ่งที่เข้ากับคำตอบที่เราต้องการ เช่น กรณีตัวอย่างเราต้องการความน่าจะเป็นของการเป็นโรค ซึ่งมีค่าระหว่าง 0 ถึง 1 เราจึงควรเลือก Sigmoid function เพราะ function นี้ให้ผลลัพธ์ระหว่าง 0 ถึง 1 ตามที่แสดงในกราฟด้านบน 

 การเลือก activation function ของ hidden layer ไม่ได้มีกฎตายตัว แต่ตัวเลือกที่นิยมใช้คือ Relu function เนื่องจากมีข้อดีหลายอย่าง หนึ่งในข้อดีคือช่วยลดเวลาในการสอน model ขนาดใหญ่ได้



การเรียนรู้ของโครงข่ายประสาทเทียม

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

  1. อินพุตข้อมูลในแต่ละตัว ก็จะมี weight ในแต่ละเส้น จากนั้นก็จะรวมกันโดยการคูณ เพื่อนำเข้า Perceptron เป็น Weighted sum ดังรูป
  2. เมื่อได้ Weighted sum ในตัว Perceptron ก็จะนำเข้าส่วนที่เป็น Activation Function โดย Function ที่ใช้จะต้องเป็น non-linear function จึงจะได้ส่วนที่เป็นเอาต์พุตของ layer นั้น เพื่อส่งต่อไปยัง Perceptron ใน layer ต่อไป โดยตัว Weight ในแต่ละเส้นนั้นจะเกิดการปรับปรุงค่าเองจากเอาต์พุตที่ออกมา
  3. ทำกระบวนแบบเดิมจนกว่าจะถึง Output Layer จึงจะได้ผลลัพธ์ออกมา

From Perceptron

การจัดเรียง Perceptron และ Layer นั้นก็มีผลต่อการเรียนรู้ โดยยิ่งมี Perceptron และ Layer มากก็จะยิ่งสามารถวิเคราะห์ข้อมูลที่ซับซ้อนได้ดียิ่งขึ้น และให้ผลลัพทธ์ที่ถูกต้องมากยิ่งขึ้น

การประยุกต์ใช้งาน Neural Network 

  1. การประยุกต์ใช้แบบจำลองโครงข่ายประสาทเทียมเพื่อคาดการณ์ นํ้าท่วมในอนาคต
  2. การประยุกต์ใช้โครงข่ายเทียมกับงานทางด้านการเกษตร 



โดยจะมีวิดีโอการ simulation  ในการทดสอบข้อแตกต่างระหว่างการใช้งาน Activation Function ที่แตกต่างกัน และความซับซ้อนของ Perceptron และ Layer เพื่อให้เห็นถึงผลลัพธ์ที่ออกมาท้ายคลิปการนำเสนอ

ลิ้งค์การนำเสนอ

ขอขอบคุณภาพจาก Anonymous( coladev.com neural-network-basic)

ขอขอบคุณข้อมูลจาก http://codeonthehill.com/machine-learning-2-neural-network/

จัดทำโดย

นายวสันต์ อินผิว

นายจารุวัฒน์  ด้วงนิล

เสนอ

อาจารย์ทศพล บ้านคลองสี่



WASUN INPEW
at GlurGeek.Com
I am a student at Bangkok University

Leave a Reply

© 2022 GlurGeek.Com