Deep Learning มันคืออะไร ?

ในยุคแรก มนุษย์โฟกัสให้ Artificial Intelligent (AI) เข้ามาแก้ปัญหาที่ยากๆ จำพวกปัญหาที่สามารถแก้ได้โดยกระบวนการทางคณิตศาสตร์ แต่ความท้าทายจริงๆอยู่ที่การนำ AI เข้ามาแก้ปัญหาที่เป็นเรื่องธรรมดาทั่วไปสำหรับมนุษย์ เช่นการเข้าใจความหมายเวลามองรูปภาพ เข้าใจความหมายในประโยคสนทนา การมีความรู้สึก เช่นอันนี้ถูก อันนั้นผิด อันไหนใช่ อันไหนไม่ แต่การจะอธิบายความรู้สึกเหล่านั้น หรือบอกว่าเรารู้ได้ยังว่าเป็นรูป วิว สัตว์ คน ฯลฯ เป็นการยากที่จะระบบุวิธีการให้ชัดเจน เพื่อให้คอมพิวเตอร์สามาถทำตามได้

วิธีแก้ปัญหาคือ เราต้องออกแบบให้ระบบสามารถเรียนรู้จากประสบการณ์ของมันเองได้ ในรูปของการเข้าใจคอนเซปง่ายๆเป็นชั้นๆไป และคอนเซปเหล่านี้ก็จะถูกเชื่อมต่อเข้าด้วยกัน วิธีการนี้จะทำให้ระบบเริ่มเข้าใจ และเรียนรู้แต่ละชั้นจากข้อมูลที่ได้รับมา (จากประสบการณ์) โดยไม่ต้องให้มนุษย์เข้าไประบบุกระบวนการทุกอย่าง. เมื่อมองในภาพรวม ระบบก็จะสามารถแก้ปัญหาที่ซับซ้อนได้ จากการคอนเซปง่ายๆหลายๆคอนเซปทำงานร่วมกัน ถ้าเราลากเส้นการเชื่อมต่อระหว่างคอนเซปทั้งหลายเหล่านี้ออกมาเป็นกราฟ ก็จะใหญ่และลึกมาก และนี่ก็เป็นที่มาของคำว่า Deep learning ( DL , การเรียนรู้เชิงลึก)

AI ที่ประสบความสำเร็จในอดีตอย่างเช่น Deep Blue ที่สร้างขึ้นมาเพื่อเล่นหมากรุก ซึ่งได้ชนะแกรี แคสเปอรอฟ นักหมากรุกมือวางอันดับหนึ่งของโลก ชาวรัสเซีย ในปี 1997. สิ่งที่ยากสำหรับการสร้างAI สำหรับมากรุก ไม่ใช่กฏกติกา และการเดิน ซึงโปรแกรมเมอร์สามารถระบบุของพวกนี้ไว้ได้ง่ายๆ แต่ที่ยากคือการสร้างระบบให้สามารถวางแผนการเดินเพื่อที่จะเอาชนะฝ่ายตรงข้ามได้

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

การใช้ชีวิตประจำวันของมนุษย์มาจากการเรียนรู้ และสังเกตจากประสบการณ์ต่างๆที่สั่งสมมานานปี ซึ่งส่วนมากมักจะเก็บไปในรูปของความรู้สึก อารมณ์ และความเคยชิน ทำให้เรารับมือกับสถาณการณ์ต่างๆรอบตัวได้อย่างเหมาะสม ซึ่งรูปแบบของความรู้ความเข้าใจแบบนี้ ถ้าจะต้องเอามาเขียนให้เป็นวิธีการอย่างเป็นขั้นเป็นตอน ก็จะเป็นอะไรที่ซับซ้อนมาก. แต่ไม่ว่ายังไง ถ้าเราอยากให้ระบบ AI สามารถแสดงพฤติกรรมให้ออกมาได้อย่างชาญฉลาด, AI เองก็จำเป็นจะต้องเรียนรู้สิ่งต่างๆให้ได้เหมือน หรือใกล้เคียงกับที่มนุษย์สามารถเรียนรู้ได้จริง. คำถามก็คือ แล้วเราจะเอาองค์ความรู้ต่างๆพวกนี้ไปป้อนให้คอมพิวเตอร์ได้รู้และเข้าใจได้ยังไง ?  และนี่ก็คือโจทย์สำคัญที่ท้าทาย ในโลกของ AI นั่นเอง

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

จากข้อมูลดิบที่ใส่ไป AI จำเป็นจะต้องทำการวิเคราะห์ข้อมูลเหล่านี้ด้วยตัวมันเอง ความสามารถนี้เรียกว่า  Machine Learning (ML)

หนึ่งในอัลกอรึทึมพื้นฐานของ ML เรียกว่า Logistic regression สามารถเอาไปปรับใช้ เพื่อสร้างระบบให้คำแนะนำคนท้องได้ว่า ควรจะผ่าคลอดหรือไม่. อีกอัลกอรึทึมหนึ่งเช่น Naive Bayes ก็สามารถนำมาใช้สร้างระบบแยกจดหมายขยะ ออกจากจดหมายจริงๆได้

ความแม่นยำของระบบอย่างง่ายข้างต้น ส่วนใหญ่จะขึ้นอยู่กับวิธีการพรีเซนต์ข้อมูล ยกตัวอย่างเช่น ระบบแนะนำผ่าคลอด ระบบจะไม่ทำการตรวจคุณแม่โดยตรง แต่คุณหมอจะเป็นคนให้ข้อมูลในมุมต่างๆเข้าไปในระบบ เช่น มดลูกมีแผลหรือไม่ ฯลฯ ข้อมูลต่างๆเหล่านี้เรีกว่า Feature. จากนั้น Logistic regression จะทำการวิเคราะห์ Features เหล่านี้ว่ามีความสำพันธ์กับการผ่าคลอดยังไง แต่อย่างไรก็ตามระบบไม่แคร์ว่าข้อมูลที่ได้รับมา จะมาจากไหน ถ้าสมมุติว่า แทนที่จะเอาผลตรวจจากหมอ แต่กลับไปเอาผลแสกน MRI ไปป้อนให้ ระบบอาจให้คำแนะนำได้ไม่เหมาะสม เพราะผลแสกน MRI แทบจะเป็นข้อมูลที่ไมได้เกี่ยวข้องกับเรื่องการที่จะผ่าหรือไม่ผ่า. ดังนั้น ระบบ AI ที่จะเอาไปแก้ปัญหาสามารถทำให้ได้ผลโดยระบบุ features ให้ถูกต้องเหมาะสม แล้วก็ส่งใน ML algorithm ไปทำการวิเคราะห์ต่อ

ทว่าการระบุ Features ให้ถูกต้องและเหมาะสมก็ไม่ใช่เรื่องง่าย วิธีการหนึ่งที่ได้ผลคือ นอกจากจะให้ ML เรียนรู้จาก Features กับผลลัพท์แล้ว ML ยังจะต้องเรียนรู้ความสัมพันธ์จาก Features กัับ Features อีกด้วย ซึ่งเรียกว่า Representaiton Learning. ตัวอย่างของ Representation Learning algorithm  ก็คือ autoencoder.

DL สามารถแก้ปัญหานี้โดยการพรีเซนต์ features ที่ซับซ้อน ในรูปของ features ที่เข้าใจได้ง่ายกว่า เช่นการแสดงข้อมูลของใบหน้ามนุษย์ ซึ่งแทนที่จะบอกว่าใบหน้ามี ตา หู จมูก ฯลฯ ก็จะเริ่มจากการแสดง features ง่ายๆเช่น
layer1 : วิเคราะห์ เส้นตรงแนวตั้ง เส้นตรงแนวนอน เส้นเฉียง จุด  ฯลฯ
layer2 : เอาผลลัพท์จาก layer1 มาวิเครา์ต่อว่าสามารถประกอบกันเป็นรูป ตา หู จมูก ฯลฯ
layer3 : เอาผลลัพท์จาก layer2 มาวิเคราะห์อวัยวะบนใบหน้าในที่ซับซ้อนไปยิ่งขึ้น



นอกจากการพรีเซนต์ข้อมูลแล้ว ความลึกในการคำนวณเป็นชั้นๆก็มีผลเช่นนกัน เช่น Multilayer Perceptron (MLP). MLP คือฟังก์ชั่นทางคณิตศาสตร์ที่ทำงานร่วมกันเป็นทอดๆ ให้ผลลัพท์ในมุมต่างๆกัน

Deep learning เป็น Machine Learning ขนิดหนึ่ง อยู่ในแขนงหนึ่งของ AI. เป็นเทคนิคที่ช่วยให้คอมพิวเตอร์สามารถเรียนรู้จากข้อมูล และประสบการณ์ที่เคยเจอมา (เคยคำนวณหรือเทรนด์มา). DL เป็นส่วนประกอบสำคัญในการสร้าง AI ให้ออกมาได้อย่างมีประสิทธิภาพ และใช้งานในได้จริง. DL เป็นเทคนิคที่มีประสิทธิภาพและความยืดหยุ่นสูง ด้วยการเรียนรู้ข้อมูลและแปลคอนเซปออกเป็นชั้นๆอย่างเชื่อมโยงกันและกัน

Popular posts from this blog

Principal Components Analysis

Probability (Part 1)

ประวัติ Deep Learning