แบบจำลอง deep learning พอสังเขป
พิจารณาปัญหาการจำแนกข้อมูล ถ้าให้ เป็น input space เราสามารถมองแบบจำลอง deep learning เป็นฟังก์ชัน
ที่รับข้อมูลจาก และให้ผลเป็นเวกเตอร์ของจำนวนจริง มิติ เมื่อ เป็นจำนวนของชนิดข้อมูลที่ต้องการจำแนก ตัวอย่างเช่น หากเราต้องการจำแนกภาพสีขนาด 244244 พิกเซล ออกเป็น 1000 ชนิด เราสามารถสร้างแบบจำลองให้รับ input ใด ๆ เป็นเวกเตอร์ขนาด 2442443 มิติ โดยที่สมาชิกแสดงความเข้มของแสงสีแดง / เขียว / น้ำเงิน ในแต่ละพิกเซล และให้ผลลัพธ์เป็นเวกเตอร์ 1000 มิติ () สัญลักษณ์ ใน เป็นเวกเตอร์ที่แสดงพารามิเตอร์ทั้งหมดของแบบจำลอง เช่นค่า weight matrix ใน fully-connected layer หรือค่า weight ใน convolutional filter เป็นต้น ซึ่งค่าของเวกเตอร์ นี้จะถูกปรับให้เหมาะสมที่สุดเท่าที่จะทำได้ในขั้นตอนของการเทรนข้อมูลนั่นเอง
Loss function
ในการพิจารณาความเหมาะสมของ เราต้องเริ่มจากการนิยาม loss function
ให้เป็นฟังก์ชันที่รับผลลัพธ์จาก กับ label ที่ถูกต้อง และคืนค่าเป็นจำนวนจริงที่ไม่น้อยกว่าศูนย์ ซึ่งเราจะเรียกว่า loss หรือมูลค่าความเสียหายเมื่อเทียบผลการทำนายกับคลาสที่ถูกต้อง กล่าวอีกอย่างคือ
เป็น loss หรือความเสียหายเมื่อคลาสที่ถูกต้องคือ และผลการทำนายเป็น
โดยทั่วไปแล้ว สำหรับการจำแนกข้อมูลหลายคลาสเรามักจะแปลงผลของ ให้อยู่ในรูปการกระจายความน่าจะเป็นโดยใช้ฟังก์ชัน softmax ซึ่งมีนิยามดังนี้
สำหรับตัวอย่างข้อมูล เมื่อ เป็น input และ เป็นคลาสที่ถูกต้องของ หลังจากที่เราทำการคำนวณกระจายความน่าจะเป็น แล้ว เราต้องการให้ความน่าจะเป็นของคลาสที่ถูกต้องซึ่งคือค่าของ มีค่ามากที่สุดเพื่อที่จะได้ทำนายคลาสผลลัพธ์ได้ถูกต้อง โดยปกติความน่าจะเป็นนี้จะมีค่าน้อยมาก เราจึงมักจะพิจารณาค่า logarithm ของความน่าจะเป็นนี้แทน นั่นคือ เราต้องการให้
มีค่ามากที่สุด จากตรงนี้ จะเห็นว่าหากเรานิยามให้ loss ที่เกิดจากตัวอย่างข้อมูล เป็น
เราก็จะได้ว่าแบบจำลองนี้สอดคล้องกับตัวอย่างข้อมูล เมื่อ loss มีค่าน้อย ฟังก์ชัน loss นี้มีชื่อเรียกว่า softmax cross entropy
การเทรนแบบจำลอง
ในกระบวนการเทรนแบบจำลอง deep learning นั้น เราจะได้รับเซตของตัวอย่างข้อมูล โดยที่ และ สำหรับ เราเรียก นี้ว่า training set ซึ่งจะใช้ในการคำนวณค่าของพารามิเตอร์ ที่เหมาะสม โดยเราต้องการหาค่าของ ที่ทำให้ค่าเฉลี่ย loss ของตัวอย่างข้อมูลใน มีค่าน้อยที่สุด เราสามารถเขียนปัญหานี้ในรูปแบบของปัญหา optimization ได้ดังนี้
อัลกอริทึมพื้นฐานในการแก้ปัญหานี้เรียกว่า stochastic gradient descent ซึ่งจะวนรอบปรับค่า ให้ค่าเฉลี่ยของ loss นี้ลดลงเรื่อย ๆ โดยในแต่ละรอบ เราพิจารณา minibatch และทำการคำนวณ เกรเดียนต์ (gradient) ของค่าเฉลี่ย loss ของ เมื่อเทียบกับ ซึ่งเขียนแทนด้วย
โดยการคำนวณเกรเดียนต์สามารถทำได้โดยเทคนิคที่เรียกว่า backpropogation จากนั้นเราทำการปรับ ไปยังทิศทางตรงข้ามกับเกรเดียนต์โดย หาก เป็นค่าของพารามิเตอร์ หลังการทำงานรอบที่ เราจะปรับให้
เมื่อ เป็นค่าคงที่เรียกว่า learning rate
เราจะทำการวนรอบปรับ เช่นนี้เรื่อย ๆ จนกระทั่ง ลู่เข้าสู่ค่าคงที่ หรือมีการเปลี่ยนแปลงน้อยว่าค่าที่กำหนดก็เป็นอันเสร็จสิ้นกระบวนการเทรน
การทดสอบ
หากแบบจำลอง deep learning ที่เราใช้มีความซับซ้อนมาก จะทำให้แบบจำลองมีความสามารถในการปรับค่าพารามิเตอร์ให้เข้ากับข้อมูลที่ใช้สอนได้ดี ซึ่งอาจเกิดปัญหาได้หากแบบจำลองของเราปรับตัวให้เข้ากับข้อมูลใน training set มากเกินไป แต่ไม่มีความ generalize นั่นคือ เมื่อนำแบบจำลองไปทดสอบบนชุดข้อมูลที่ไม่เคยเห็นมาก่อนกลับพบว่ามีความแม่นยำน้อย เราเรียกปัญหานี้ว่า overfit ในกระบวนการเทรนแบบจำลองทาง machine learning โดยทั่วไป มักจะนำชุดข้อมูลที่มีแบ่งออกเป็นสามส่วน ได้แก่
- ชุดข้อมูลที่ใช้สอนแบบจำลอง เรียกว่า training set มักจะมีขนาดใหญ่เนื่องจากต้องการความหลากหลายให้แบบจำลองได้นำไปเรียนรู้ที่จะสกัดคุณสมบัติที่เหมาะสมในการตัดสินใจ
- ชุดข้อมูลที่ใช้ในการทดสอบขั้นต้น เรียกว่า validation set ใช้สำหรับทดสอบความ generalize ของแบบจำลองว่ามีความสามารถในการตัดสินใจบนข้อมูลที่ไม่เคยเห็นในตอนเทรนได้ดีแค่ไหน เรามักใช้ validation set ในการทดสอบความ overfit ของแบบจำลองระหว่างการเทรน โดยหากเราพบว่าความแม่นยำบน validation set เริ่มลดลงในขณะที่ความแม่นยำบน training set ยังคงเพิ่มขึ้น แสดงว่าแบบจำลองของเราเริ่ม overfit แล้ว นอกจากนี้ หากเรามีแบบจำลองที่ผ่านการเทรนด้วย training set มาแล้วหลายแบบจำลอง เราสามารถใช้ validation set ช่วยในการเลือกได้ โดยแบบจำลองที่น่าสนใจก็คือแบบจำลองที่มีความแม่นยำบน validation set สูง
- ชุดข้อมูลทดสอบ เรียกว่า test set เป็นชุดข้อมูลที่แบบจำลองไม่เคยเห็นอีกเช่นกัน ใช้สำหรับทดสอบความแม่นยำของแบบจำลองสุดท้ายหลังจากที่ทำการเลือกแบบจำลองแล้ว
อย่างไรก็ดี ตัวอย่างต่าง ๆ ในบทความชุดนี้เราจะไม่มีการใช้ validation set ในการทดสอบความ overfit เพื่อความสะดวกในการสร้างแบบจำลอง
References
- Z. Kolter, A. Madry. Adversarial Robustness - Theory and Practice
- I. Goodfellow, Y. Bengio, A.Courville. Deep Learning, MIT Press, 2016