โมเดลแมชชีนเลิร์นนิงกำลังท่องจำ หรือกำลังทำให้เป็นภาพรวมกันแน่?
(pair.withgoogle.com)- grokking ที่ค้นพบในโมเดลขนาดเล็ก คือปรากฏการณ์ที่โมเดลท่องจำข้อมูลฝึกก่อน แล้วต้องฝึกต่อไปอีกนานกว่าจะเริ่มตอบอินพุตที่ไม่เคยเห็นได้อย่างฉับพลัน จึงเป็นเบาะแสที่ช่วยแยกความต่างระหว่างการท่องจำกับการทำให้เป็นภาพรวม
- MLP ชั้นเดียว ในการทดลอง modular addition ช่วงแรกแสดงค่าน้ำหนักที่มีสัญญาณรบกวนสูง แต่เมื่อความแม่นยำบนชุดทดสอบเริ่มเพิ่มขึ้น ก็จะก่อรูปเป็นโครงสร้างแบบคาบและเริ่มทำให้เป็นภาพรวมได้
- ในการทดลองลำดับ 0/1 ยาว 30 ตำแหน่ง โมเดลที่ทำให้เป็นภาพรวมได้จะลดค่าน้ำหนักของตำแหน่งท้ายที่ใช้รบกวน และโฟกัสที่ 3 ตำแหน่งแรก ทำให้เห็นความต่างระหว่างคำตอบแบบท่องจำกับคำตอบแบบทำให้เป็นภาพรวม
- แรงกดดันหลักของการเปลี่ยนผ่านคือการลด loss และ weight decay โดยแม้ test loss จะดูเหมือนร่วงลงอย่างฉับพลัน แต่น้ำหนักภายในจริง ๆ เคลื่อนจากคำตอบแบบหนึ่งไปสู่อีกแบบอย่างค่อนข้างต่อเนื่อง
- Grokking จะเกิดขึ้นก็ต่อเมื่อ hyperparameter อย่างขนาดโมเดล ขนาดข้อมูล และ weight decay อยู่ในจุดที่เหมาะสม และยังเป็นคำถามเปิดอยู่ว่าในโมเดลขนาดใหญ่จะอธิบายด้วยกรอบเดียวกันได้หรือไม่
คำถามที่ Grokking โยนมาให้
- ในปี 2021 นักวิจัยพบว่าในงานทดลองแบบของเล่น โมเดลขนาดเล็กจะทำนายข้อมูลฝึกได้ก่อน แต่ยังทำนายข้อมูลทดสอบไม่ได้อยู่พักใหญ่ ก่อนจะ ทำให้เป็นภาพรวม ได้อย่างฉับพลันเมื่อฝึกต่อไปนานขึ้น
- ปรากฏการณ์นี้ถูกเรียกว่า grokking หมายถึงพลวัตการเรียนรู้ที่การทำให้เป็นภาพรวมเกิดขึ้นช้ากว่าการฟิตข้อมูลฝึกมาก
- โมเดลภาษาขนาดใหญ่อาจดูเหมือนเข้าใจโลก แต่ก็อาจเป็นเพียงการท่องจำบางส่วนของข้อความฝึกจำนวนมหาศาลแล้วถ่ายทอดออกมา
- การเริ่มจากโมเดลขนาดเล็กช่วยให้สร้างสัญชาตญาณต่อเทคนิคการตีความที่ยังนำไปใช้กับโมเดลใหญ่ที่สุดในปัจจุบันได้ยากโดยตรง
- แนวทางนี้คือการสังเกตกระบวนการเรียนรู้ของโมเดลเล็ก แล้ว reverse engineer คำตอบที่โมเดลค้นพบ เพื่อแสดงตัวอย่างของ mechanistic interpretability
โครงสร้างแบบคาบที่ปรากฏใน modular addition
- modular addition ถูกใช้เป็นงานขนาดเล็กที่สังเกต grokking ได้ง่าย
- เมื่อกำหนดเลขอินพุตสองตัว
a,bและ modulus มาให้ งานคือทำนายa + bภายใต้การคำนวณแบบ modular - การทดลองตัวอย่างใช้เลขตั้งแต่ 0 ถึง 66 โดยเลือก 67 เพราะไม่ทำให้ภาพที่ได้ง่ายหรือซับซ้อนเกินไป
- เมื่อกำหนดเลขอินพุตสองตัว
- โมเดลที่ใช้ทดลองคือ MLP ชั้นเดียวที่มี 24 นิวรอน
- นำคู่
a, bทั้งหมดมาแบ่งแบบสุ่มเป็นชุดฝึกและชุดทดสอบ - ชุดฝึกใช้สำหรับปรับค่าน้ำหนักของโมเดล ส่วนชุดทดสอบใช้เพียงเพื่อตรวจว่าได้เรียนรู้คำตอบทั่วไปแล้วหรือยัง
- นำคู่
- โมเดลจะเลือกคอลัมน์ embedding ที่ตรงกับอินพุต
a,bแล้วนำมาบวกกัน เปลี่ยนค่าติดลบให้เป็น 0 จากนั้นใช้คอลัมน์ที่ใกล้ที่สุดของเมทริกซ์เอาต์พุตเป็นคำทำนาย - ค่าน้ำหนักช่วงต้นของการฝึกมีสัญญาณรบกวนมาก แต่เมื่อความแม่นยำบนชุดทดสอบเพิ่มขึ้นและโมเดลเริ่มทำให้เป็นภาพรวม จะเห็น รูปแบบเป็นคาบ ปรากฏขึ้น
- เมื่อฝึกเสร็จ นิวรอนแต่ละตัวจะสลับค่าระหว่างสูงกับต่ำหลายครั้งเมื่อเลขอินพุตเพิ่มจาก 0 เป็น 66
- หากจัดกลุ่มนิวรอนตามความถี่คาบสุดท้าย รูปแบบนี้จะยิ่งชัดเจนขึ้น
- ความเป็นคาบนี้บ่งชี้ว่าโมเดลกำลังเรียนรู้โครงสร้างทางคณิตศาสตร์บางอย่าง และสอดคล้องกับจังหวะที่มันเริ่มแก้โจทย์ตัวอย่างในชุดทดสอบได้
มองความต่างระหว่างการท่องจำและการทำให้เป็นภาพรวมผ่านโจทย์ 0 และ 1
- การทดลองที่ง่ายกว่านี้คือให้โมเดลทำนายว่าจำนวนเลข 1 ใน 3 ตำแหน่งแรก ของลำดับ 0/1 ความยาว 30 เป็นจำนวนคี่หรือไม่
- เช่น ถ้าขึ้นต้นด้วย
000...ก็อาจเป็น 0 และถ้าขึ้นต้นด้วย010...ก็อาจเป็น 1 - โดยแก่นแล้วมันคือปัญหา XOR ที่ยากขึ้นเล็กน้อย ส่วนตำแหน่งด้านหลังเป็นสัญญาณรบกวน
- เช่น ถ้าขึ้นต้นด้วย
- โมเดลที่ทำให้เป็นภาพรวมได้ควรใช้เพียง 3 ตำแหน่งแรก
- แต่โมเดลที่ท่องจำข้อมูลฝึกจะใช้งานตำแหน่งรบกวนด้านหลังไปด้วย
- การทดลองนี้ก็ใช้ MLP ชั้นเดียวเช่นกัน และฝึกด้วย ลำดับ 1,200 ชุด แบบคงที่
- ช่วงแรกมีเพียงความแม่นยำบนชุดฝึกที่เพิ่มขึ้น ขณะที่ความแม่นยำบนชุดทดสอบยังแทบไม่ต่างจากการเดาสุ่ม
- หลังจากนั้นความแม่นยำบนชุดทดสอบจะพุ่งขึ้นอย่างรวดเร็ว และโมเดลเรียนรู้คำตอบทั่วไปได้
- โมเดลที่กำลังท่องจำจะแสดงรูปแบบค่าน้ำหนักหนาแน่น มีสัญญาณรบกวน และกระจายอยู่บนหลายอินพุตด้วยขนาดค่าสูง
- เมื่อการทำให้เป็นภาพรวมเสร็จสิ้น ค่าน้ำหนักที่เชื่อมกับตำแหน่งรบกวนจะลดลงมาก และโมเดลจะโฟกัสที่อินพุต 3 ตำแหน่งแรก
วิธีที่ weight decay ผลักให้ไปสู่คำตอบแบบทำให้เป็นภาพรวม
- ระหว่างการฝึก โมเดลเผชิญแรงกดดันสองอย่างพร้อมกัน
- ต้องลด loss เพื่อให้ความน่าจะเป็นของ label ที่ถูกต้องสูงขึ้น
- และได้รับผลของ weight decay ที่พยายามให้ขนาดค่าน้ำหนักต่ำไว้
- ในโจทย์ 0/1 ค่า training loss จะเพิ่มขึ้นเล็กน้อยก่อนที่โมเดลจะเริ่มทำให้เป็นภาพรวม
- เพราะมันยอมเสียส่วนหนึ่งของ loss ที่ช่วยเพิ่มความน่าจะเป็นของคำตอบที่ถูกต้อง เพื่อย้ายไปสู่คำตอบที่มีค่าน้ำหนักต่ำกว่า
- การร่วงลงอย่างรวดเร็วของ test loss ทำให้ดูเหมือนว่าโมเดลเปลี่ยนเข้าสู่การทำให้เป็นภาพรวมอย่างฉับพลัน
- แต่เมื่อดูค่าน้ำหนักระหว่างการฝึก จะพบว่าส่วนใหญ่ interpolate อย่างต่อเนื่อง ระหว่างคำตอบแบบท่องจำกับคำตอบแบบทำให้เป็นภาพรวม
- การทำให้เป็นภาพรวมที่รวดเร็วเกิดขึ้นเมื่อค่าน้ำหนักตัวสุดท้ายที่เชื่อมกับตำแหน่งรบกวนถูก weight decay กำจัดออกไป
เงื่อนไขที่ทำให้ Grokking เกิดขึ้น
- Grokking ไม่ใช่ปรากฏการณ์ที่เกิดเสมอไป แต่เป็นปรากฏการณ์ที่ ขึ้นกับเงื่อนไข เช่น ขนาดโมเดล, weight decay และขนาดข้อมูล
- หาก weight decay ต่ำเกินไป โมเดลจะไม่หลุดจากการ overfit กับข้อมูลฝึก
- เมื่อเพิ่มค่า decay มากขึ้น โมเดลจะท่องจำก่อนแล้วค่อยทำให้เป็นภาพรวม
- หากเพิ่มมากขึ้นอีก ทั้ง test loss และ training loss จะลดลงพร้อมกัน และโมเดลจะทำให้เป็นภาพรวมได้แทบจะทันที
- แต่ถ้า decay สูงเกินไป โมเดลจะเรียนรู้อะไรไม่ได้เลย
- ในโจทย์ 0/1 มีการฝึกโมเดลมากกว่า 1,000 ตัวด้วย hyperparameter ที่ต่างกัน และเพื่อคำนึงถึง noise ระหว่างการฝึก ก็ฝึกโมเดล 9 ตัวสำหรับแต่ละชุด hyperparameter
คำตอบ modular addition ที่สร้างด้วยห้านิวรอน
- modular addition เป็น ปัญหาแบบคาบ เพราะเมื่อผลบวกเกิน 67 แล้วจะวนกลับมาใหม่
- หากวางเลขอินพุตเป็นจุดบนวงกลม ก็สามารถสะท้อนความเป็นคาบนี้เข้าไปในโครงสร้างของโมเดลได้โดยตรง
- โดยคำนวณค่า
sinและcosสำหรับเลขอินพุตที่เป็นไปได้แต่ละตัวเพื่อสร้างเมทริกซ์ embedding
- โดยคำนวณค่า
- ใน MLP ชั้นเดียวที่เริ่มจากจุดตั้งต้นนี้ หากฝึกเพียงบางเมทริกซ์ ก็จะพบคำตอบที่แม่นยำสมบูรณ์ได้ด้วย เพียง 5 นิวรอน
- เมื่อดูพารามิเตอร์ที่ฝึกแล้ว จะเห็นว่านิวรอนมีแนวโน้มลู่เข้าไปสู่ขนาดใกล้เคียงกัน และเมื่อพล็อตองค์ประกอบ
sinกับcosก็จะเห็นว่าเรียงตัวเกือบสม่ำเสมอบนวงกลม - หากเชื่อมนิวรอนที่อยู่ติดกัน จะเห็นรูปแบบที่ฝั่ง
unembeddingหมุนรอบวงกลมเร็วเป็นสองเท่าของฝั่ง embedding - โครงสร้างนี้ให้คำตอบสำหรับ modular addition ที่มี 20 พารามิเตอร์
อัลกอริทึมเดียวกันภายใน MLP ชั้นเดียวขนาดใหญ่
- โมเดลแรกที่มีพารามิเตอร์ 3,216 ตัวถูกฝึกตั้งแต่ต้น และเริ่มต้นโดยไม่มีความเป็นคาบฝังอยู่ข้างใน
- ต่างจากคำตอบขนาดเล็กที่สร้างขึ้น โมเดลนี้ใช้ หลายความถี่
- หากใช้ discrete Fourier transform (DFT) ก็สามารถแยกรูปแบบคาบที่เรียนรู้ได้ตลอดช่วงอินพุต
- สำหรับนิวรอนแต่ละตัว สามารถหาค่า
sinและcosของความถี่คาบที่เป็นไปได้ตั้งแต่ 1 ถึง 33 ได้ - นิวรอนสามารถจัดกลุ่มตามความถี่ที่ให้ค่า
sinและcosสูงที่สุดได้
- สำหรับนิวรอนแต่ละตัว สามารถหาค่า
- ยิ่งโมเดลทำให้เป็นภาพรวมมากขึ้น weight decay ก็ยิ่งทำให้การแทนนี้ เบาบางขึ้น
- หากจัดกลุ่มนิวรอนตามความถี่สุดท้ายแล้วพล็อตองค์ประกอบ DFT ก็จะเห็นรูปทรงคล้ายดาวแบบเดียวกับที่เห็นในโครงสร้างห้านิวรอน
- โมเดลที่ฝึกแล้วใช้อัลกอริทึมเดียวกับคำตอบที่สร้างขึ้น
- เมื่อดูผล贡献ของเอาต์พุตจากกลุ่มนิวรอนแต่ละความถี่ จะเห็นว่ามันสร้างรูปคลื่นที่สอดคล้องกับการคำนวณ
a + b mod 67 - หลังจากช่วงชะงักสั้น ๆ ใกล้สเต็ป 45,000 เมื่อ test loss เริ่มดีขึ้น กลุ่มนิวรอนความถี่ 7 จะจัดเรียงเป็นรูปดาว และเอาต์พุตจะใกล้รูปคลื่นมากขึ้น
- เมื่อดูผล贡献ของเอาต์พุตจากกลุ่มนิวรอนแต่ละความถี่ จะเห็นว่ามันสร้างรูปคลื่นที่สอดคล้องกับการคำนวณ
- โมเดลใช้หลายความถี่เพื่อกด loss ลงโดยไม่ต้องใช้ค่าน้ำหนักที่ใหญ่ขึ้น และอาศัย การแทรกสอดเสริมกัน
- ความถี่ 4, 5, 7, 26 ไม่ได้พิเศษในตัวเอง เพราะในการฝึกครั้งอื่น ๆ ก็อาจเรียนรู้รูปแบบแปรผันอื่นของอัลกอริทึมเดียวกันได้
คำถามที่ยังคงเหลืออยู่
- การฝึกเพียงโมเดลในรูป
W = W_L W_Rโดยตรงนั้น แม้จะเพิ่ม weight decay ก็ยังไม่ทำให้เกิดการทำให้เป็นภาพรวมใน modular arithmetic- อย่างน้อยหนึ่งเมทริกซ์ต้องถูก แยกตัวประกอบ (factoring)
- หลังทำ DFT แล้ว คำตอบแบบทำให้เป็นภาพรวมจะเบาบาง แต่เมทริกซ์ที่รวมแล้วกลับมี norm สูง
- การใส่ weight decay ให้
WและUโดยตรงจึงไม่ได้ให้ inductive bias ที่เหมาะกับโจทย์นี้
- weight decay อาจช่วยผลักโมเดลหลายแบบให้ออกห่างจากการท่องจำข้อมูลฝึกได้
- เทคนิคอื่นที่ช่วยเลี่ยง overfitting ก็มี เช่น dropout, โมเดลที่เล็กลง และอัลกอริทึม optimization ที่ไม่เสถียรเชิงตัวเลข
- แต่แนวทางเหล่านี้มีปฏิสัมพันธ์กันอย่างซับซ้อนและไม่เป็นเชิงเส้น จึงคาดเดาได้ยากล่วงหน้าว่าการตั้งค่าใดจะชวนให้เกิดการทำให้เป็นภาพรวม
- ทฤษฎีหนึ่งที่อธิบายว่าทำไมการท่องจำจึงมาก่อนการทำให้เป็นภาพรวม คืออาจมีวิธีท่องจำชุดฝึกมากกว่าคำตอบแบบทำให้เป็นภาพรวมอยู่มาก
- หากไม่มี regularization หรือมีน้อย ความเป็นไปได้ทางสถิติที่การท่องจำจะเกิดก่อนก็ยิ่งสูง
- เทคนิค regularization อย่าง weight decay จะให้น้ำหนักกับคำตอบบางแบบ เช่น คำตอบที่เบาบาง มากกว่าคำตอบที่หนาแน่น
- การแทนค่าที่มีโครงสร้างดีอาจเกี่ยวข้องกับการทำให้เป็นภาพรวม แต่ไม่ใช่ทั้งเงื่อนไขจำเป็นและเงื่อนไขเพียงพอ
- MLP บางรูปแบบที่ไม่มีอินพุตสมมาตรจะเรียนรู้การแทนที่เป็นวงกลมน้อยลงเมื่อแก้ modular addition
- โมเดลเล็กที่ฝึกโดยไม่มี weight decay อาจเริ่มทำให้เป็นภาพรวมก่อน แล้วกลับไปสู่การท่องจำอีกครั้งทั้งที่ยังมี embedding แบบคาบอยู่
- ภายใต้ hyperparameter บางชุด ยังอาจเกิดการเปลี่ยนผ่านแบบ ทำให้เป็นภาพรวม → ท่องจำ → ทำให้เป็นภาพรวม ได้ด้วย
ความสามารถในการตีความที่ต่อยอดไปสู่โมเดลใหญ่กว่า
- Grokking ถูกสังเกตพบทั้งในงานอัลกอริทึมของ Transformer และ MLP ขนาดเล็ก และต่อมาก็พบในงานที่ซับซ้อนขึ้นกับภาพ ข้อความ และข้อมูลตาราง ภายใต้ช่วง hyperparameter บางช่วง
- โมเดลขนาดใหญ่ที่สุดที่ทำงานได้หลายประเภท อาจกำลัง grokking หลายสิ่งพร้อมกันระหว่างการฝึก โดยแต่ละอย่างเกิดขึ้นด้วยความเร็วต่างกัน
- ยังมีงานที่พยายามทำนายผลล่วงหน้าก่อนที่ grokking จะเกิดขึ้นจริง
- บางวิธีต้องรู้คำตอบแบบทำให้เป็นภาพรวมหรือรู้โดเมนข้อมูลทั้งหมด
- บางวิธีใช้เพียงการวิเคราะห์ training loss และอาจนำไปใช้กับโมเดลที่ใหญ่กว่าได้
- เส้นทางหนึ่งในอนาคตคือการใช้โมเดลที่ง่ายกว่าซ้ำ ๆ
- ฝึกโมเดลที่เรียบง่ายกว่า มี inductive bias แรงกว่า และมีชิ้นส่วนที่ต้องเคลื่อนน้อยกว่า
- ใช้โมเดลนั้นอธิบายส่วนที่ตีความได้ยากของโมเดลใหญ่
- และหากจำเป็นก็ทำกระบวนการนี้ซ้ำ
- แนวทาง mechanistic interpretability แบบนี้อาจช่วยระบุหรือทำให้เป็นอัตโนมัติได้ว่าโครงข่ายประสาทกำลังเรียนรู้อัลกอริทึมแบบใดอยู่
1 ความคิดเห็น
ความคิดเห็นจาก Hacker News
เหตุผลที่ความทรงจำของมนุษย์น่าทึ่งน่าจะเป็นเพราะ แม้จะไม่มีความจุในการเก็บข้อมูลเท่าเครื่องจักร แต่เรามีความสามารถในการ บีบอัดแพตเทิร์น โดยลดทอนข้อมูลลงอย่างมากแล้วค่อยเก็บไว้
จากนั้นก็เอาแพตเทิร์นเหล่านั้นไปผูกกับแพตเทิร์นอื่นแล้วบีบอัดต่อ ก่อนจะดึงอะไรบางอย่างออกมาจากตรงนั้น เป็น การบีบอัดแบบสูญเสียข้อมูล อย่างมหาศาล แต่ก็ยังบรรลุเป้าหมาย
สมองน่าจะทำงานในทิศทางของการกลั่นความรู้ที่ไม่จำเป็นต้องท่องจำแบบตามตัวอักษรให้เหลือองค์ประกอบหลักอย่างแข็งขัน เพื่อหลีกเลี่ยง overfitting และได้ “สัญชาตญาณกับความเข้าใจที่ผ่านการทำให้ทั่วไปแล้ว” มากกว่า
อ้างอิง: https://www.scientificamerican.com/article/new-estimate-boosts-the-human-brain-s-memory-capacity-10-fold/
https://youtu.be/hpTCZ-hO6iI
ขีดจำกัดบนในทางเทคนิคคือ “อนันต์” แต่มี trade-off คล้ายหลักความไม่แน่นอนหรือหลักประนีประนอมอื่น ๆ ระหว่างจำนวนแนวคิดที่เก็บไว้กับปริมาณข้อมูลพื้นฐานที่เก็บได้ต่อหนึ่งแนวคิด
ไม่รู้ว่าสมองสัตว์เป็นแบบเดียวกันหรือไม่ แต่ผมสงสัยว่ามันหลัก ๆ เป็นอัลกอริทึมบีบอัดเพื่อการทำนาย และไม่ได้เก็บตัวข้อมูลไว้มากนัก
เรขาคณิตเหมาะกับการฝึกแบบนี้ และมักมีประโยชน์ในการพิสูจน์ทางฟิสิกส์ด้วย
ประเด็นหลักน่าจะคือ weight decay ช่วยเหนี่ยวนำให้เกิดความเบาบาง ทำให้เรียนรู้ representation ที่ “จริง” มากกว่า representation ที่ overfit
ในสมองมนุษย์ก็มี synaptic pruning ซึ่งดูเป็นกลไกคล้ายกันและพบได้ทั่วไปในระหว่างพัฒนาการ อยากฟังจากผู้เชี่ยวชาญในสาขาว่าสิ่งนี้เป็นแรงบันดาลใจของ weight decay หรือโดยตรงกว่านั้นคือ neural network pruning หรือไม่
เหตุผลที่ weight decay ทำงานได้คือ เมื่อใช้เป็น regularization มันทำให้เครือข่ายเข้าใกล้ minimum description length (MDL) และลด regret ระหว่างการเรียนรู้ มันเกี่ยวข้องกับการ pruning ของสมองอยู่บ้าง แต่สมองดูเหมือนจะใช้ความเบาบางเป็นพื้นฐานเพื่อเหนี่ยวนำ representation ไม่ใช่เพื่อการบีบอัด จึงแทบจะเป็น motif คนละแบบ ลองคิดถึง implicit bias ของ representation ต่าง ๆ และผลต่อเนื่องที่มันมีต่อ representation ที่เรียนรู้แล้วหรือเรียนรู้ได้
แต่ยารักษา overfitting ที่ดีที่สุดคือทำให้ dataset ใหญ่ขึ้นและมีความหลากหลายของข้อมูล LLM มี dataset ใหญ่มากจนโดยทั่วไปเทรนแค่หนึ่ง epoch
L1 regularization สร้างความเบาบางได้มากกว่ามาก แต่ประสิทธิภาพก็ไม่ดีเท่า
ฝั่ง AI กำลังทำให้คำว่า grok เสียความหมาย
เดิมมันมีความหมายประมาณว่า “เข้าใจอย่างสมบูรณ์และครบถ้วน” แต่การใช้คำเดียวกันนี้กับ generalization แปลว่ายังไม่ grok คำว่า grokking
มีการคุยกันเรื่องปรากฏการณ์นี้ในคอมเมนต์ของบทความที่เสนอให้เรียกมันว่า “การฟื้นตัวขั้นสุดท้ายจาก overfitting” ด้วย: https://www.lesswrong.com/posts/GpSzShaaf8po4rcmA/qapr-5-grokking-is-maybe-not-that-big-a-deal
ความหมายแฝงไล่ตั้งแต่ “สูดรับเข้าไปอย่างลึกซึ้ง” ทั้งตามตัวอักษรและเชิงเปรียบเทียบ ไปจนถึงการบริโภคร่างไร้ชีวิตของผู้เป็นที่รักที่ไม่อยู่แล้ว ขอแนะนำ Stranger in A Strange Land อย่างยิ่ง และควรเลือกฉบับพิมพ์ใหม่แบบไม่ตัดทอนราวปี 1990
มันดูค่อนข้างสมเหตุสมผล เพราะทำให้นึกถึงองค์ประกอบของความเข้าใจเชิงสัญชาตญาณ และการเพิ่มขึ้นของความเข้าใจอย่างฉับพลันและมาก ซึ่งก็คล้ายกับการเปลี่ยนแปลงที่เกิดขึ้นใน loss ด้วย
ไม่แน่ใจว่าจำถูกไหม แต่ในการสัมภาษณ์ Raphaël Millière ในรายการ Mindscape ผมคิดว่าเขาบอกว่า เมื่อโมเดล machine learning มีมิติจำนวนมาก การแบ่งแยกระหว่าง interpolation กับ extrapolation จะไม่ชัดเจนเหมือนในขอบเขตที่เรามักใช้เหตุผลกัน
ไม่แน่ใจว่านี่เป็นเรื่องคล้ายกับที่บทความนี้พูดถึงหรือเปล่า
สงสัยว่าแผนภูมิเหล่านั้นทำขึ้นมาได้อย่างไร
เดาว่าน่าจะใช้ไลบรารีบางตัวสร้างขึ้นมาประมาณครึ่งหนึ่ง แล้วค่อยปรับแต่งด้วยมือ แต่ SVG แอนิเมชันที่ได้ออกมาสวยมาก
ยังมีไลบรารีเล็ก ๆ อีกสองสามตัว เช่น สำหรับคำอธิบายประกอบ, การผสม SVG กับ canvas, และการทำให้ d3 ไม่เยิ่นเย้อเกินไป
https://github.com/PAIR-code/ai-explorables/tree/master/source/grokking
https://1wheel.github.io/swoopy-drag/
https://github.com/gka/d3-jetpack
https://roadtolarissa.com/hot-reload/
ถ้าสนใจรายละเอียดของหัวข้อนี้ แนะนำให้อ่านบทความบนคอมพิวเตอร์ มี ข้อมูลภาพเชิงโต้ตอบบางส่วนที่สำรวจบนมือถือไม่ได้
ก่อนอื่น นี่เป็นบล็อกโพสต์ที่ดี มีตัวอย่างยอดเยี่ยมมากมาย และทำให้นึกถึง distill.pub ในอดีต
อย่างที่บทความพูดไว้ถูกต้อง โดยทั่วไปถ้าใช้ L2 weight decay จะทำให้เกิดน้ำหนักขนาดเล็กจำนวนมาก ถ้าต้องการโมเดลที่ generalize ได้ดีขึ้น ก็สงสัยว่าควรใช้ L1 weight decay เสมอเพื่อส่งเสริม sparsity แล้วฝึกให้นานขึ้นหรือไม่ และยังสงสัยด้วยว่าโมเดล deep learning ที่ใช้เฉพาะ sparse Fourier features แทนชั้นเชิงเส้นแบบหนาแน่นอาจทำงานได้ดีกว่าหรือเปล่า
ถ้าตอบยาว ๆ โมเดล deep learning มักพยายามหาฐานไม่เชิงเส้นที่เหมาะสมที่สุดเพื่อแทนอินพุต ถ้าอินพุตสามารถแทนได้ดี—คือแทนได้แบบ sparse—ในฐานบางอย่างที่รู้ล่วงหน้า ก็มักช่วยได้หากนำมันไปวางบนฐานนั้น เช่น ทำ FFT กับสัญญาณ RF อย่างไรก็ตาม ฐานที่เหมาะที่สุดโดยรวมอาจแตกต่างจากฐานของ local minimum ใด ๆ ก็ได้ จึงต้องมีเทคนิคในการผลักเครือข่ายไปทางนั้น
สงสัยว่าฟังก์ชันเป้าหมายนี้เป็นตัวแทนได้มากแค่ไหน
เป็นเรื่องปกติที่เราต้องการให้โมเดลเรียนรู้ส่วนสำคัญของอินพุต แต่การสนใจแค่สามบิตแรกใน bit string นั้นรู้สึกค่อนข้างประดิษฐ์ขึ้นมา ไม่แน่ใจว่านี่คือการฝึก truth table ที่มีขนาดพารามิเตอร์ที่เกี่ยวข้องเป็น 8 ด้วยตัวอย่าง 4.8 ล้านตัวอย่าง หรือว่าผมเข้าใจอะไรผิดไป
เหตุผลที่ใช้โจทย์ง่าย ๆ ก็เพื่อให้สามารถ ตีความได้ว่าเกิดอะไรขึ้นภายในเมื่อสิ่งแบบนี้เกิดขึ้น
ใน HTML ไม่มี ฟีด auto-discovery สำหรับ RSS/Atom และไม่มีลิงก์ฟีด RSS ด้วย แต่พอเดาชื่อและตำแหน่งฟีดที่เป็นไปได้ ก็หา RSS feed ของ “Explorables” เจอ: https://pair.withgoogle.com/explorables/rss.xml
ดูเหมือน grid cell
https://en.wikipedia.org/wiki/Grid_cell
ถ้าวาด heatmap ของนิวรอนในชั้นซ่อนบนแผนภูมิ 2D โดยให้แกนหนึ่งเป็น $a$ และอีกแกนเป็น $b$ น่าจะได้ตารางสามเหลี่ยมออกมา ถ้ามันทำงานแบบที่ผมคิด เมื่อดูนิวรอนซ่อนตัวอื่น ๆ ก็น่าจะเห็นอีกตารางหนึ่งที่มีทิศทางและสเกลต่างกัน เมื่อนำสิ่งเหล่านี้มาต่อกัน ก็สร้างตัวบวกฐาน 67 ได้ด้วย อีกทั้งยังสลัดสัญชาตญาณที่ว่าความสัมพันธ์ระหว่างนิวรอน W_in-proj กับความสัมพันธ์ระหว่างนิวรอน W_out-proj นั้นคล้ายกับการแมประหว่างวงกลมครึ่งเสียงกับวงจรห้าขั้นออกไปได้ยาก
https://upload.wikimedia.org/wikipedia/commons/thumb/6/6f/Pitch_class_space_star.svg/220px-Pitch_class_space_star.svg.png