Neural Network Layers
ทำความเข้าใจธรรมชาติของ Neural network
Last updated
ทำความเข้าใจธรรมชาติของ Neural network
Last updated
การทดลองนี้จะปูพื้นฐานความเข้าใจการทำงานของ AI พื้นฐานและการเริ่มต้นทำความเข้าใจการฝึกสอน AI เพื่อเป็นพื้นฐานในคาบต่อๆไป
เริ่มทำการปูพื้นฐานเพิ่มความเข้าใจจาคาบที่แล้วกันก่อนในเรื่องของ AI และกระบวนการคิดและการตัดสินใจของ AI ก่อนที่จะทำการทำการแปลงความเข้าใจให้เป็นโค้ดภาษา C จากคาบที่แล้วเราได้รู้จัก AI และประเภทของ AI กันไปแล้ว วันนี้เราจะมาทำความเข้าใจกันในส่วนที่หลายคนอาจสงสัยว่าไอเจ้าก้อนกลมๆที่ยึดโยงกันเป็นโครงข่ายประสาทมันทำงานยังไงเพื่อให้สามารถนำไปต่อยอดงานอื่นๆในอนาคตได้ การทำงานของตัว AI ที่เป็น machine learning หรือ deep learning นั้นจะแตกต่างกันเพียงจำนวนของ hidden layer เท่านั้น ซึ่ง deep learning จะมี hidden layer มากกว่า 2 layer ขึ้นไปโดยจะมีองค์ประกอบดังนี้
Input layer เป็นชั้นของการรับข้อมูลที่ทำการป้อนเพื่อให้ AI ทำการตัดสินใจหรือเป็นการฝึกสอนให้ AI เข้าใจในสิ่งที่เราสอน
Hidden layer เป็นชั้นของการวิเคราห์ข้อมูลซึ่งอาจจะมีการจัดการหรือเตรียมข้อมูลเช่น resize หรือ sorting data เพื่อนำไปทำการ Convolution ในการช่วยให้สามารถตัดสินใจได้ดีขึ้น
Output layer เป็นชั้นของการนำข้อมูลที่ผ่านการประมวลผลแล้วไปทำงานในส่วนอื่นต่อ
ซึ่งการทำงานเป็นแต่ละ layer แบบนี้เป็นการทำงานในส่วนของ AI ในปัจจุบันโดยจะมีการเติมฟังก์ชั้นที่ช่วยในการจัดการข้อมูล หรือช่วยในการประมวลผลได้ดีขึ้นทั้งในส่วนของชั้นประมวลผล เช่น Conv, Gaussian และชั้นของการนำไปใช้งานต่อ เช่น Softmax,ReLu เป็นต้น
แต่ก่อนอื่นจะมาทำความเข้าใจพื้นฐานของแต่และเจ้าเม็ดกลมๆ ว่ามันเรียนรู้ยังไงทำไม ซึ่งมันคิดได้เพียงแบบเป็นเหตุเป็นผล ไม่สามารถคิดสร้างสรรค์ได้เหมือนมนุษย์ เพราะว่าพื้นฐานของตัวเจ้าเม็ดกลมๆที่ต่อกันหรือ multi-layer Neural network นั้นมีสิ่งที่เรียกว่า “Backpropagation” โดยเราจะใช้เว็บนี้ประกอบในการสอน -> Link
ตัวอย่างนี้จะเป็นการอธิบายการทำงาน neural network 3 layer ด้วยอินพุท 2 ตัว โดยในแต่ละ neuron จะประกอบด้วยข้อมูลที่เข้ามา 2 ตัวดังภาพ โดยภายใน f(e) จะถูกเรียกว่า “neuron activation function”
โดยการจะสอนให้ neural network เข้าใจในบางสิ่งเราต้องทำการ training ชุดข้อมูลที่เราจะป้อนจากภาพตัวอย่าง
ชุดข้อมูลที่เราป้อนไปคือ x1,x2
ผลลัพธ์ที่เราคาดหวัง คือ y
ค่า y=f(e) ซึ่งเป็นค่า non-linear ที่ได้จากผลลัพธ์ของการวิเคราะห์
ในแต่ละรอบจะมีการ weight หรือการปรับข้อมูลให้สามารถรองรับข้อมูลที่เราป้อนหรือข้อมูลใหม่ๆได้