อะไรคือปัญญาประดิษฐ์(Artificial Intelligence : AI)
AI บ่งบอกไปถึงความสามารถทางปัญญาของเครื่องจักร(machine) โดยมาตรฐานของ AI ถูกวัดด้วยสติปัญญาของมนุษย์ คำนึงถึง ความมีเหตุผล,การพูดและการมองเห็น แต่มาตรฐานนี้ยังห่างไกลอยู่มากจากปัจจุบัน
AI มี 3 ระดับ ได้แก่
- ปัญญาประดิษฐ์แบบแคบ (Narrow AI) : ปัญญาประดิษฐ์นี้จะถูกถึงว่าแคบเมื่อเครื่องจักร(machine)สามารถทำงานลักษณะเฉพาะได้ดีกว่ามนุษย์ ซึ่งปัจจุบันมี AI ลักษณะนี้เกิดขึ้นแล้ว
- ปัญญาประดิษฐ์ทั่วไป (General AI) : ปัญญาประดิษฐ์ที่สามารถดำเนินงานได้โดยมีความแม่นยำทัดเทียมกับมนุษย์
- Active AI : เป็นปัญญาประดิษฐ์ที่แข็งแกร่งพอที่จะมาทดแทนมนุษย์ในงานหลาย ๆ ด้าน
ก่อนที่ระบบ AI ใช้การจับคู่หาแบบแผน (pattern matching) และระบบผู้เชี่ยวชาญ (expert system)
ในบทความนี้ เราจะเรียนรู้ถึง
- อะไรคือปัญญาประดิษฐ์ (Artificial Intelligence : AI)?
- อะไรคือการเรียนรู้ของเครื่อง (Machine Learning : ML)?
- อะไรคือการเรียนรู้เชิงลึก (Deep Learning : DL)?
- กระบวนการของ Machine Learning
- กระบวนการของ Deep Learning
- การสกัดคุณลักษณะอัตโนมัติ (Automate Feature Extraction) ด้วย DL
- ความแตกต่างระหว่าง Machine Learning และ Deep Learning
- เมื่อไหร่ที่จะใช้ ML หรือ DL?
อะไรคือการเรียนรู้ของเครื่อง (Machine Learning)?
Machine Learning เป็นเครื่องมือที่ดีที่สุด ณ ปัจจุบันเพื่อวิเคราะห์, เข้าใจ และหา pattern ของข้อมูล หนึ่งในแนวคิดหลักภายใต้ Machine Learning คือการที่คอมพิวเตอร์สามารถถูก train อย่างอัตโนมัติซึ่งสามารถทำได้อย่างหมดจดหรือเป็นไปไม่ได้สำหรับที่มนุษย์จะทำ และยังมีช่องโหว่ที่ชัดเจนจากการวิเคราะห์ยุคก่อนคือการที่ Machine Learning สามารถตัดสินใจได้ด้วยการแทรกแซงจากมนุษย์เพียงเล็กน้อย
Machine Learning ใช้ข้อมูลเพื่อส่งต่อเข้าไปในอัลกอริทึมซึ่งสามารถเข้าใจความสัมพันธ์ระหว่างข้อมูลขาเข้าและขาออกได้ เมื่อ machine สิ้นสุดการเรียนรู้แล้ว มันสามารถทำนายมูลค่าหรือประเภทของข้อมูลใหม่ได้
อะไรคือเรียนรู้เชิงลึก(Deep Learning)?
Deep Learning คือซอฟต์แวร์คอมพิวเตอร์ที่เลียนแบบให้เหมือนกับเครือข่ายเซลล์ประสาท(the network of neuron)ในสมอง มันเป็นซับเซ็ตย่อยของ Machine Learning และถูกเรียกว่า Deep Learning เพราะมันจะสร้างโครงข่ายประสาทแบบลึก(deep neural network)ขึ้นมา machineนั้นใช้ชั้น(layers)ที่แตกต่างกันเพื่อเรียนรู้ข้อมูล ความลึกล้ำของโมเดล(model)แสดงออกมาตามจำนวน layer ที่มากขึ้นใน model ตามมา Deep Learning เป็นรูปแบบใหม่ของศิลปะในรูปแบบของ AI ใน Deep Learning ,ช่วงการเรียนรู้จะทำผ่านโครงข่ายประสาท(neural network) โดย neural network เป็นสถาปัตยกรรมชนิดหนึ่งที่มี layer เรียงซ้อน ๆ กันอยู่ข้างบน
กระบวนการของ Machine Learning
สมมติว่าคุณต้องการจะสร้างโปรแกรมที่มีการจดจำวัตถุขึ้นมา เพื่อที่จะฝึก(train) model นั้น,คุณจะต้องใช้ตัวแบ่งประเภท(classifier) classifier ใช้คุณลักษณะ(feature)ของวัตถุเพื่อพยายามหาประเภทของวัตถุนั้น
ในตัวอย่าง, classifier จะถูก train เพื่อตรวจจับ(detect)ถ้ารูปเป็น :
- จักรยาน
- เรือ
- รถยนต์
- เครื่องบิน
4 วัตถุนี้คือประเภทของวัตถุที่แตกต่างกัน classifierจำเป็นต้องจดจำ เพื่อที่จะสร้าง classifier ขึ้น,คุณจำเป็นต้องมีข้อมูลจำนวนหนึ่งเป็นข้อมูลขาเข้าและกำหนดให้เลยว่าข้อมูลแต่ละอันเป็นประเภทอะไร อัลกอริทึมนี้จะนำข้อมูลไปหารูปแบบ(pattern)แล้วแบ่งประเภทของข้อมูลตามประเภทต่าง ๆ
การกระทำรูปแบบนี้เรียกว่า การเรียนรู้แบบมีผู้สอน(Supervised Learning) ใน Supervised Learning,ข้อมูลสำหรับการฝึก (training data) คุณจะส่งต่อไปในอัลกอริทึมพร้อมกับทำสัญลักษณ์เพื่อบอกผลลัพธ์ไว้แล้ว
การ train อัลกอริทึมจำเป็นต้องทำตามวิธีการดังนี้ :
- เก็บข้อมูล
- Train classifier
- ทำการทำนาย
ขั้นตอนแรกเป็นขั้นตอนที่จำเป็นมาก การเลือกข้อมูลที่ถูกต้องจะนำมาซึ่งอัลกอริทึมที่ประสบความสำเร็จหรือล้มเหลว ข้อมูลซึ่งคุณเลือกมาเพื่อ train จะถูกเรียกว่า คุณลักษณะ (feature) ในตัวอย่างของวัตถุ,feature คือพิกเซล(pixel)ของรูป
แต่ละรูปในแถวของข้อมูลขณะที่แต่ละ pixel เป็นหลักแทน ถ้ารูปของคุณมีขนาด 28 x 28 ชุดข้อมูลจะมีขนาด 784 หลัก ในรูปภาพด้านล่าง,แต่ละรูปจะถูกแปลงเป็นเวกเตอร์ของคุณลักษณะ(feature vector) การทำสัญลักษณ์ไว้(label)เป็นการบอกคอมพิวเตอร์ว่าอะไรอยู่ในรูปภาพนั้น
วัตถุประสงค์หลักจะเปนการใช้ training data เพื่อแบ่งประเภทของชนิดของวัตถุ ในขั้นตอนแรกประกอบไปด้วยการสร้าง feature เป็นหลัก แล้วต่อมา,ขั้นตอนที่ 2 เกี่ยวข้องกับการเลือกอัลกอริทึมเพื่อ train model นั้น เมื่อ train เสร็จแล้ว,model ดังกล่าว จะทำนายว่ามีสิ่งใดอยู่ในรูปภาพบ้าง
หลังจากนั้น , มันง่ายมากที่จะใช้ model นั้นไปทำนายรูปภาพอื่น ๆ ต่อไป สำหรับการนำรูปภาพใหม่ ๆ เข้าไปสู่ model นั้น ,machine นั้นจะทำนายประเภทของวัตถุนั้นว่าอยู่ประเภทไหน ยกตัวอย่างเช่น คุณมีรูปภาพใหม่ทั้งหมดอยู่โดยปราศจากการ label ไว้ จึงนำไปใช้กับ model ดังกล่าว สำหรับมนุษย์มันเป็นสิ่งง่ายดายมากตอบว่ารูปภาพนั้นมีรถอยู่แต่ machine ใช้ความรู้ที่เพิ่งกล่าวมาทำได้มากสุดแค่ทำนายว่ามีรถอยู่ในรูปภาพนั้นเท่านั้นเอง
กระบวนการ Deep Learning
ใน deep learning, ขั้นตอนการเรียนรู้จะกระทำผ่าน neural network โดย neural network เป็นสถาปัตยกรรมแบบหนึ่งที่มี layer กองอยู่ข้างบนนั้น
พิจารณาที่รูปตัวอย่างเดียวกันกับข้างบน ชุดข้อมูลสำหรับ train จะถูกส่งไปสู่ neural network
ข้อมูลขาเข้าแต่ละข้อมูลจะเข้าไปสู่ neuron และ ถูกคูณด้วยน้ำหนัก(weight) ผลลัพธ์จากการคูณจะนำไปสู่ layer ต่อไปและกลายเป็นข้อมูลขาเข้าของ layer ต่อไปเลยด้วย กระบวนการนี้ถูกทำซ้ำในแต่ละ layer ในโครงข่าย ใน layer สุดท้ายถูกเรียกว่า layer ขาออก (output layer) มันจะคอยช่วยสนับสนุนค่าที่จะเกิดขึ้นจริงสำหรับงานด้านการถดถอย(Regression) และความน่าจะเป็นของแต่ละประเภทของงานแบ่งประเภท(classification) neural network นี้ใช้อัลกอริทึมทางคณิตศาสตร์เพื่อปรับปรุงค่า weight ของทุก neuron neural network ที่ถูก train อย่างเต็มที่แล้วเมื่อค่าของ weight ให้ผลลัพธ์เข้าใกล้กับค่าในความเป็นจริง ยกตัวอย่างเช่น neural network ที่ถูก train มาเป็นอย่างดีสามารถจดจำวัตถุบนรูปภาพได้ด้วยความแม่นยำที่สูงกว่า neural network ทั่วไป
การสกัดคุณลักษณะอัตโนมัติ (Automate Feature Extraction) ด้วย DL
ชุดข้อมูลสามารถเก็บคุณลักษณะ(feature)จำนวนมหาศาลได้ ระบบนี้จะเรียนรู้ความสัมพันธ์ของ feature เหล่านี้ อย่างไรก็ตาม,ไม่ใช่ทุก feature ที่จะดีพอสำหรับอัลกอริทึมหนึ่ง ส่วนที่สำคัญของ Machine Learning จะเป็นการหาความสัมพันธ์ของ feature เพื่อสร้างระบบที่เรียนรู้บางอย่างขึ้นมา
วิธีหนึ่งในการดำเนินการส่วนนี้ใน Machine Learning จะเป็นการใช้การ สกัดคุณลักษณะ(feature extraction) Feature extraction ประกอบไปด้วย feature ที่มีอยู่เพื่อสร้างความสัมพันธ์ระหว่างกันของ feature มันสามารถถูกทำได้โดย PCA,T-SNE หรือ อัลกอริทึมที่ลดมิติของข้อมูล (dimensionality reduction algorithm) อื่น ๆ ก็ตาม
ยกตัวอย่างเช่น การประมวลผลรูปภาพรูปหนึ่ง,มีผู้ฝึกหัดคนหนึ่งต้องการสกัดคัดแยก feature จากรับรู้ด้วยตา,จมูก,ปาก และอื่น ๆ ของตนเอง feature ที่ถูกคัดเลือกมาแล้วนั้นจะถูกส่งต่อไปยัง model การคัดแยกประเภท(classification model)ต่อไป
Deep learning แก้ปัญหานี้ได้ โดยเฉพาะอย่ายิ่ง โครงข่ายประสาทเทียมแบบสังวัตนาการ(Convolutional neural network : CNN) ใน layer แรกของ neural network จะเรียนรู้ในรายละเอียดเล็ก ๆ จากรูปภาพ layer ถัดมาจะประกอบไปด้วยความรู้ที่เรียนรู้มาจาก layer ก่อนหน้านี้เพื่อสร้างข้อมูลที่มีความซับซ้อนมากขึ้น ใน CNN ,feature extraction จะทำด้วยการใช้งานฟิลเตอร์ (filter) โครงข่ายจะประยุกต์ฟิลเตอร์กับรูปภาพเพื่อทำให้มองเห็นถ้ามีสิ่งที่เหมือนกันเกิดขึ้นกับที่เคยเจอหรือรูปทรงของ feature นั้นเหมือนกับส่วนใดส่วนหนึ่งของรูปภาพ ซึ่งกระบวนการของ feature extraction จะกระทำอย่างอัตโนมัติ
ความแตกต่างระหว่าง Machine Learning และ Deep Learning
เมื่อไหร่ที่ควรใช้ ML หรือ DL?
ตามตารางด้านล่าง, เราสามารถสรุปความแตกต่างระหว่าง Machine Learning และ Deep Learning ได้ดังนี้
ด้วย Machine Learning, คุณจำเป็นต้องใช้ข้อมูลในการ train อัลกอริทึมน้อยลงกว่า Deep Learning โดย Deep Learning ต้องใช้ข้อมูลที่กว้างขวางและมีความหลากหลายเพื่อแยกแยะโครงสร้างพื้นฐาน ยิ่งไปกว่านั้น, Machine Learning จะสนับสนุนให้ model train เร็วมากยิ่งขึ้น สถาปัตยกรรมส่วนใหญ่ของ Deep Learning ใช้เวลาหลายวันหรือหลายสัปดาห์ในการ train แต่ข้อดีของ Deep Learning ที่เหนือกว่า Machine Learning คือความแม่นยำที่สูงกว่าโดยคุฯไม่จำเป็นต้องรู้ว่า feature ไหนดีที่สุดสำหรับข้อมูลลักษณะไหน neural network จะเรียนรู้เองว่าควรจะเลือก feature ไหนที่ดีที่สุดเอง ใน Machine Learning,คุณจำเป็นต้องเลือกว่าจะนำ feature ไหนเข้าไปใน model นั้น ๆ
สรุป
AI บ่งบอกถึงความสามารถในการเรียนรู้ของ machine ระบบ AI ก่อนหน้านี้ใช้การจำคู่แบบแผนที่เหมือนกันหรือคล้ายคลึงกัน(pattern matching)และระบบผู้เชี่ยวชาญ(expert system)เท่านั้น
แนวคิดที่อยู่ภายใต้ Machine Learning เป็นการที่ machine สามารเรียนรู้โดยปราศจากการแทรกแซงของมนุษย์ machine นั้นจำเป็นต้องหาทางเพื่อเรียนรู้วิธีการแก้ปัญหาเกี่ยวกับข้อมูลนั้น
Deep Learning คือสิ่งใหม่มาก ๆ ในด้านของ AI เมื่อมีข้อมูลเพียงพอเพื่อที่จะ train , Deep Learning ประสบความสำเร็จจากผลลัพธ์อันน่าพึงพอใจ โดยเฉพาะอย่างยิ่งการรู้จำรูปภาพ(image recognition) และการแปลความ(text translation) เหตุผลหลักคือ feature extraction ที่ทำอย่างอัตโนมัติใน layer ที่แตกต่างกันของโครงข่าย (network)
PRACTICAL AI DEVELOPMENT BOOTCAMP
จะช่วยเปิดมุมมองพัฒนาการของเทคโนโลยีและงานวิจัยที่เกี่ยวข้องกับ AI
ให้แก่ผู้เรียนในหลายๆแง่มุม พร้อมทั้งให้ผู้เรียนได้ฝึกพัฒนา AI เพื่อใช้งานได้จริง
รายละเอียดเพิ่มเติมและสมัครที่นี่