“A single act of kindness throws out roots in all directions, and the roots spring up and make new trees.”
—Amelia Earhart
“ความเมตตาปราณีเพียงครั้งก็หยั่งรากไปทุกทิศทาง และรากก็จะงอกงามออกมาเป็นต้นใหม่.”
—เอมีเลีย แอร์ฮาร์ต
จงเลือกการประยุกต์ใช้โครงข่ายคอนโวลูชั่นที่สนใจ แล้วศึกษาวรรณกรรมที่เกี่ยวข้อง โดยให้เลือกบทความวิจัยที่เกี่ยวข้องไม่น้อยกว่า \(20\) บทความ แล้วสำหรับแต่ละบทความ ให้อภิปรายถึง จุดประสงค์ ความคาดหมาย ปัญหาที่ต้องการแก้ ความท้าทายที่เกี่ยวข้อง วิธีการที่นำเสนอ และผลลัพธ์ รวมถึงอภิปรายจุดเด่น และประเด็นอื่น ๆ ที่เห็นว่าน่าสนใจในบทความ.
นอกจากนั้น จงอภิปรายความสัมพันธ์กับการประยุกต์แบบอื่นที่มีลักษณะใกล้เคียงกัน (อาจต้องทำการศึกษาวรรณกรรมเพิ่มเติม ให้ฝึกการศึกษาวรรณกรรมอย่างกว้างขวาง). ตัวอย่างเช่น หากเลือกการรู้จำใบหน้า (face recognition) อาจอภิปรายความสัมพันธ์ ความเหมือน ความต่าง กับการประยุกต์ใช้สำหรับ การจำแนกชนิดวัตถุในภาพ (image classification) หรือการพิสูจน์ยืนยันใบหน้า (face verification) หรือการรู้จำอารมณ์จากใบหน้า (facial expression recognition) เป็นต้น.
จงเลือกบทความวิจัยในแบบฝึกหัด 1.0.0.0.1 มา \(5\) บทความ แล้วสำหรับแต่ละบทความ (นอกจากประเด็นในแบบฝึกหัดที่ 1.0.0.0.1) ให้อภิปรายถึง ข้อมูล วิธีการปฏิบัติ การทดลอง และวิธีการประเมินผล.
จากแบบฝึกหัดที่ 1.0.0.0.2 จงศึกษาวิธีการประยุกต์ใช้ และจงลงมือปฏิบัติ ทดลอง และเปรียบเทียบผลที่ได้กับผลที่รายงานในวรรณกรรม. ในการลงมือปฏิบัติ อาจปรับลดความยากของปัญหาลงได้ตามความเหมาะสม รวมถึงอาจศึกษาวิธีการปฎิบัติและโปรแกรมจากอินเตอร์เนต
ตัวอย่าง หากเลือกการรู้จำใบหน้า และสนใจ FaceNet อาจใช้คำค้นหา เช่น “facenet code” และอาจเลือกชุดข้อมูลที่ง่ายขึ้น หรือเลือกข้อมูลขนาดเล็กลง หรือใช้แบบจำลองที่เล็กลง เพื่อให้การฝึกทำได้รวดเร็วขึ้น.
จงทบทวนเรื่องโครงข่ายปรปักษ์เชิงสร้าง (และอาจศึกษาเพิ่มเติม ถ้าจำเป็น) และอภิปรายถึงแนวทาง วิธี หรือกลไก เพื่อจะอนุมานการแจกแจงร่วม \(p(\boldsymbol{X}, \boldsymbol{C})\) เมื่อ \(\boldsymbol{X}\) คือข้อมูลต้น เช่น ภาพ และ \(\boldsymbol{C}\) คือข้อมูลตาม เช่น ประเภทของวัตถุในภาพ โดยอาศัยแนวทางของโครงข่ายปรปักษ์เชิงสร้าง. การอภิปราย อาจเริ่มจากข้อคิดเห็นหรือคำถาม เช่น หากโครงข่ายปรปักษ์เชิงสร้าง สามารถเรียนรู้การแจกแจง \(p(\boldsymbol{X}|\boldsymbol{C}, \boldsymbol{z})\) ได้แล้ว และในเมื่อ \(\boldsymbol{z}\) ก็สุ่มสร้างขึ้นมาเอง (อาจจะจากสุ่มจากการแจกแจงเอกรูป หรือการแจกแจงเกาส์เซียน) ส่วนเงื่อนไขหรือข้อมูลตาม \(\boldsymbol{C}\) ซึ่งมักอยู่ในปริภูมิที่มีจำนวนมิติไม่มาก ก็อาจสามารถประมาณการแจกแจงจากข้อมูลที่มีได้ไม่ยากนัก ดังนั้น จากการแจกแจง \(p(\boldsymbol{X}|\boldsymbol{C}, \boldsymbol{z})\) เราก็น่าจะสามารถใช้ทฤษฎีของเบส์ เพื่ออนุมานการแจกแจงร่วม \(p(\boldsymbol{X}, \boldsymbol{C})\) ได้. ทำไมการหาอนุมานการแจกแจงร่วม \(p(\boldsymbol{X}, \boldsymbol{C})\) หรือแม้แต่การหา \(p(\boldsymbol{X})\) เมื่อ \(\boldsymbol{X}\) เป็นภาพ เช่น ภาพถ่ายทิวทัศน์ทั่วไป ถึงเป็นปัญหาที่ยากมาก 1 หากเป็นไปได้?
ตั้งกลุ่ม ถามคำถามและอภิปรายข้อคิดเห็นลักษณะเช่นนี้ ความท้าทาย ความเสี่ยง แนวทางและกลไกที่จะลดหรือบรรเทาปัญหาและความเสี่ยงต่าง ๆ. ยกตัวอย่าง หรือหากเหมาะสม อาจจะลองออกแบบการทดลองเล็ก ๆ ง่าย ๆ เพื่อพิสูจน์ ยืนยัน หรือหักล้าง.
พิจารณาข้ออภิปรายถึงวิธีการทำฉลากราบรื่น ดังนี้ วิธีการทำฉลากราบรื่น ปรับค่าเป้าหมายของฉลากเป็น \(q_k = (1 - \epsilon) y_k + \epsilon p(k)\) เมื่อ \(y_k\) คือค่าฉลากเฉลยในรูปหนึ่งร้อนของประเภท \(k^{th}\) และ \(p(k)\) คือการแจกแจงของข้อมูลชนิด \(k^{th}\). สังเกตว่า วิธีการทำฉลากราบรื่น ปรับที่ค่าเป้าหมายของฉลากเฉย ไม่ได้แก้ไขการคำนวณฟังก์ชันกระตุ้นในแบบจำลอง. หากพิจารณาประเด็นนี้ร่วมกับฟังก์ชันสูญเสียสำหรับภาระกิจการจำแนกประเภทแบบหลายกลุ่ม ซึ่งคือ \(\mathrm{Loss} = - \sum_k y_k \log \hat{y}_k\) เมื่อ \(y_k\) คือค่าเป้าหมายเฉลย และ \(\hat{y}_k\) คือค่าทำนาย จะพบว่า กรณีไม่ทำฉลากราบรื่น (กรณีดั่งเดิม) ฟังก์ชันสูญเสียสามารถคำนวณโดย \(\mathrm{Loss} = -\log \hat{y}_{k^\ast}\) เมื่อ \(k^\ast\) คือฉลากของประเภทที่เฉลย เพราะ \(y_{k^\ast} = 1\) และ \(y_{k \neq k^\ast} = 0\).
แต่กรณีทำฉลากราบรื่น ฟังก์ชันสูญเสียไม่สามารถย่อรูปดังข้างต้นได้ และหากทำการคำนวณ \(\mathrm{Loss} = - \sum_k y_k \log \hat{y}_k\) โดยตรง ซึ่งอาจเขียนเป็น \(\mathrm{Loss} = - (1 - \epsilon + \frac{\epsilon}{K}) \log \hat{y}_{k^\ast} - \sum_{k \neq {k^\ast}} \frac{\epsilon}{K} \log \hat{y}_k\) เมื่อ \(K\) คำจำนวนของประเภททั้งหมด แล้วอาจเกิดปัญหาการคำนวณเชิงเลขได้. ดังเช่น กรณีที่ \(\hat{y}_k\) ตัวใดตัวหนึ่งมีค่าใกล้กับศูนย์มาก ๆ (\(\log 0 \rightarrow -\infty\)) ซึ่งอาจจะทำให้การคำนวณไม่มีเสถียรภาพ. ปัญหานี้ แม้จะเกิดยากเนื่องจากแบบจำลองมีแนวโน้มที่จะถูกฝึกให้ \(\hat{y}_k\) ปรับเข้าหาเป้าหมาย เช่น \(\hat{y}_k \rightarrow \frac{\epsilon}{K}\) แล้วค่า \(\epsilon\) ไม่เล็กจนเกินไป. แต่การปรับเปลี่ยนนี้ ก็เพิ่มความเสี่ยงขึ้นมากจากกรณีดั่งเดิม (ที่มีแต่ \(\log \hat{y}_{k^\ast}\) ซึ่ง \(\hat{y}_{k^\ast} \rightarrow (1 - \epsilon + \frac{\epsilon}{K})\) ที่มีค่ามากใกล้ ๆ หนึ่ง).
นอกจากนั้น อีกประเด็นหนึ่งสำหรับการใช้วิธีการทำฉลากราบรื่นในทางปฏิบัติ หากการทำฉลากราบรื่นถูกนำไปเขียนโปรแกรมโดยไม่ระวัง เช่น อาจอาศัยโปรแกรมหรือโครงสร้างเดิมจากฟังก์สูญเสีย ซึ่งคำนวณ \(\mathrm{Loss} = -\log \hat{y}_{k^\ast}\) แทน \(\mathrm{Loss} = - \sum_k y_k \log \hat{y}_k\) แล้ว การทำฉลากราบรื่น อาจผิดเพี้ยนจากแนวคิดดั่งเดิมได้ เช่น แทนที่จะคำนวณ \(\mathrm{Loss} = - (1 - \epsilon + \frac{\epsilon}{K}) \log \hat{y}_{k^\ast} - \sum_{k \neq {k^\ast}} \frac{\epsilon}{K} \log \hat{y}_k\) แต่ด้วยการใช้โปรแกรมเดิม อาจทำให้สิ่งที่คำนวณจริงเป็น \(\mathrm{Loss} = -(1 - \epsilon + \frac{\epsilon}{K}) \log \hat{y}_{k^\ast}\) ซึ่งผิดเพี้ยนไปจากแนวคิดของการทำฉลากราบรื่นที่เซเจดีและคณะเสนอ (แต่อาจจะทำงานได้ และอาจจะไปคล้ายกับแนวคิดของการทำฉลากราบรื่นทางเดียว)
จงศึกษาโปรแกรมการทำฉลากราบรื่นที่ค้นหาได้จากอินเตอร์เนต ทดลองใช้และสังเกตการทำงานของวิธีการทำฉลากราบรื่น วิเคราะห์ และให้ข้อคิดเห็นเพิ่มเติมจากข้ออภิปรายข้างต้น (อาจเห็นด้วย เห็นแย้ง หรือเห็นต่าง) พร้อมให้เหตุผล และอาจยกตัวอย่างประกอบ เพื่อสนับสนุน รวมถึงอภิปรายสถานการณ์ต่าง ๆ ว่าหากเกิดขึ้นจริง จะมีผลดี ผลเสียอย่างไรบ้าง และสำหรับผลเสียจะมีวิธีจัดการ แก้หรือบรรเทาปัญหาอย่างไรบ้าง
จากแบบฝึกหัด 1.0.0.0.5 ที่อภิปรายกรณีการจำแนกกลุ่ม จงอภิปรายประเด็นข้อดี ข้อเสีย โอกาส และความเสี่ยง ในทางปฏิบัติเมื่อนำวิธีการทำฉลากราบรื่นไปใช้ในกรณีการจำแนกค่าทวิภาค (binary classification) รวมถึงศึกษางานของคณะของแซลลิมันส์ สำหรับเหตุผลที่เลือกใช้การทำฉลากราบรื่นทางเดียว ทั้งเหตุผล ข้อดี ข้อเสีย โอกาส และความเสี่ยง สำหรับการฝึกโครงข่ายปรปักษ์เชิงสร้าง และการนำแนวคิดไปใช้ในกรณีทั่วไป.
คำใบ้ คำกล่าวว่าแบบจำลองเรียนรู้การแจกแจง \(p(\boldsymbol{X}|\boldsymbol{C}, \boldsymbol{z})\) กับการที่แบบจำลองสามารถให้ค่า \(p(\boldsymbol{X}|\boldsymbol{C}, \boldsymbol{z})\) ออกมาได้ นั้นต่างกัน. สิ่งที่โครงข่ายปรปักษ์เชิงสร้างให้ออกมาจริง ๆ คืออะไร? การแจกแจง (?) ความน่าจะเป็น (?) หรือเพียงค่าคาดหมาย \(E[\boldsymbol{X}|\boldsymbol{C}, \boldsymbol{z}]\) หรืออะไร?↩︎