Egregore v5.0: เอนจินการรับรู้แบบอัตโนมัติรักษาสมดุลเชิงโฮมีโอสเตซิสบนเรขาคณิตโทโพโลยีมิติสูงที่พัฒนาบน PyTorch
(github.com/PJHkorea)ผมได้พัฒนาและบันทึกกระบวนการของโปรเจ็กต์เลเยอร์การรับรู้ (Egregore v5.0) ในฐานะงานวิจัยส่วนตัว โดยผสานกลไกจากฟิสิกส์คณิตศาสตร์/ทฤษฎีสนามควอนตัมเข้ากับฟังก์ชันวัตถุประสงค์ของดีปเลิร์นนิงและโครงสร้างแมนิโฟลด์
มักจะเริ่มจากแนวทางเชิงการรับรู้ก่อนแล้วค่อยปรับปรุงภายหลัง จึงมีความเป็นไปได้สูงที่จะมีการอัปเกรดเวอร์ชันเพิ่มเติมบ่อยครั้ง
ไม่ใช่แค่ต้นแบบอย่างง่ายเท่านั้น แต่ยังรวบรวมกระบวนการแก้ปัญหาและการปรับปรุงเชิงสถาปัตยกรรมที่เกิดขึ้นระหว่างการพัฒนาจาก v1.0 ถึง v5.0 เพื่อสร้างโครงสร้างพื้นฐานที่สามารถใช้งานได้จริงในสภาพแวดล้อมการเทรนแบบกระจายขนาดใหญ่
ในเอกสาร README ของแต่ละเวอร์ชัน ผมได้เขียนเพิ่มเติมถึงข้อจำกัดของตัวเองและกระบวนการในการก้าวข้ามข้อจำกัดเหล่านั้น
ประเด็นสำคัญของการอิมพลีเมนต์และรีแฟกเตอร์
-
แมนิโฟลด์มอร์ฟิงที่ดิฟเฟอเรนเชียลได้ตลอดทุกช่วง: แมปการเปลี่ยนผ่านเชิงโทโพโลยีระหว่างสเฟียร์ (Sphere) และโทรัส (Torus) ได้อย่างสมบูรณ์ด้วยการผสมฟังก์ชันต่อเนื่อง Sigmoid/Tanh โดยไม่ใช้เงื่อนไข (If-Else)
-
นำฟังก์ชันความสูญเสียเชิงโทโพโลยีแบบจับคู่ 3 องค์ประกอบ (Advanced Topological Loss) มาใช้: เพื่อป้องกันการยุบตัวเชิงโทโพโลยี (Topological Collapse) และ mode collapse ที่ทำให้น้ำหนักเอนเอียงหรือติดอยู่กับระนาบเฉพาะ ได้ผสาน curvature alignment loss, Casimir information entropy (การทำ Shannon Entropy ให้มากที่สุด) และความยาวส่วนโค้งของเส้นจีโอเดสิกบนรีมันน์แมนิโฟลด์ (
torch.acos) เข้าด้วยกันในรูปพหุนาม -
วาง Zero-NaN และ memory guardrail สำหรับงานจริง: บังคับใช้
torch.clampเพื่อป้องกันการกระจายตัวไม่สิ้นสุดของอนุพันธ์ในฟังก์ชันตรีโกณมิติผกผัน, ใส่ EPSILON เพื่อป้องกันการระเบิดของอนุพันธ์รากที่สอง, ป้องกันการระเบิดเป็น inf ของฟังก์ชันexp, และบังคับแคสต์float(loss.item())เพื่อปิดกั้น memory leak -
การแยกอัตราการเรียนรู้รายชั้น (LLRD): ใช้การติดตามที่อยู่หน่วยความจำบนฐาน
id()เพื่อควบคุมอัตราการเรียนรู้ของพารามิเตอร์ topological gate ให้ต่ำกว่าแบ็กโบนทั่วไป 100 เท่า เพื่อให้การเทรนมีเสถียรภาพ
ผมยังได้จัดทำเอกสารทั้งภาษาเกาหลีและภาษาอังกฤษเกี่ยวกับการวิเคราะห์สาเหตุความล้มเหลวของ 'กระบวนทัศน์ฟิสิกส์คณิตศาสตร์ที่ถูกปัดตก (Rejected Paradigms)' ที่เคยลองอิมพลีเมนต์ เช่น Feynman path integral และ Jarzynski equality
หวังว่านี่จะเป็นแนวทางที่ดีสำหรับผู้ที่สนใจการอิมพลีเมนต์ Information Geometry หรือ AI ที่อิงฟิสิกส์ (PINN) บน PyTorch สำหรับการใช้งานจริง
โปรเจ็กต์นี้อยู่ภายใต้สัญญาอนุญาต GPLv3 ซึ่งยึดหลัก copyleft แบบโอเพนซอร์สอย่างเข้มแข็ง
4 ความคิดเห็น
อ่านแล้วน่าสนใจมากครับ แต่มีรายละเอียดด้านการ implement อยู่หลายอย่างที่ผมติดใจเลยขอถามครับ
ค่าเสียหาย geodesic
acos+ dead-zone ของclampคุณคำนวณความยาวส่วนโค้ง geodesic ด้วย
torch.acosซึ่งอนุพันธ์ของacosจะลู่ออกเมื่ออินพุตเข้าใกล้ ±1 และคุณบอกว่าใช้clampเพื่อป้องกันไว้ แต่ในช่วงการเปลี่ยนผ่านเชิงทอพอโลยีที่ทรงกลมกับโทรัสแทบจะตรงกัน ค่า inner product น่าจะลู่เข้าไปที่ ±1 พอดีใช่ไหมครับ? ถ้าตอนนั้นclampทำงาน gradient ของพจน์นั้นก็จะกลายเป็น 0 จนสัญญาณการเรียนรู้หายไปไม่ใช่หรือครับ? ดูเหมือนว่าตรงขอบเขตทอพอโลยีที่มีความหมายที่สุด การเรียนรู้กลับหยุดลงพอดี เลยอยากทราบว่าคุณจัดการ dead-zone นี้อย่างไรครับความขัดแย้งของเครื่องหมายระหว่างพจน์การจัดแนวความโค้งกับพจน์การทำเอนโทรปีให้สูงสุด
แรงกดดันที่พยายามจัดแนวและทำให้ความโค้งลู่เข้า กับแรงกดดันด้านเอนโทรปีที่พยายามแผ่การกระจายให้แบนออก เป็นวัตถุประสงค์ที่แข่งขันกันโดยตรงบนแมนิโฟลด์ ผลเฉลยเหมาะที่สุดน่าจะเปลี่ยนไปอย่างมากตามสัดส่วนค่าน้ำหนัก แล้วคุณกำหนดสัดส่วนนี้อย่างไรครับ? มีความเป็นไปได้ไหมว่าพจน์หนึ่งจะครอบงำจนอีกพจน์ทำหน้าที่แทบจะเป็นแค่ noise regularization เท่านั้น — มีผลการทำ ablation โดยตัดแต่ละพจน์ออกให้ดูไหมครับ?
นิยามของ "เอนโทรปีข้อมูล Casimir"
Casimir เป็นปริมาณในบริบทฟิสิกส์ ส่วน Shannon entropy เป็นปริมาณในทฤษฎีสารสนเทศ แต่ในโค้ดดูเหมือนท้ายที่สุดจะเป็นการคำนวณ Shannon entropy มาตรฐานบนการกระจายน้ำหนัก คำว่า "Casimir" ในที่นี้มีพจน์ที่เพิ่มเข้ามาจริงในระดับสมการหรือไม่ หรือเป็นเพียงชื่อที่ตั้งให้กับ entropy regularization ทั่วไปครับ? ถ้าเป็นกรณีแรก ช่วยแสดงสมการรูปปิดของพจน์นั้นได้ไหมครับ?
acosgeodesic loss + dead-zone ของclampmargin = 0.95
leaky_slope = 0.01
leaky_cos = torch.where(
torch.abs(x) < margin * bound,
x, # 1. ในช่วงปลอดภัย (ต่ำกว่า 0.95) รักษาระยะ geodesic เชิงเส้นได้อย่างสมบูรณ์
torch.sign(x) * (margin * bound + leaky_slope * (torch.abs(x) - margin * bound)) # 2. เมื่อเข้าสู่ขอบเขตผิว ใช้ soft bending
)
return torch.clamp(leaky_cos, min=-bound, max=bound)
ความขัดแย้งของเครื่องหมายระหว่างเทอมการจัดแนวความโค้งกับเทอมการเพิ่มเอนโทรปีให้สูงสุด
ด้วยการจัดสรรสมดุลไดนามิกแบบ 2:1 ระหว่างแรงดึงกับแรงผลัก และในสถาปัตยกรรมล่าสุดได้เปลี่ยนไปใช้สายการคำนวณ
F.log_softmaxที่รับประกันความเสถียรเชิงตัวเลขในระดับสุดขั้ว ทำให้แม้อยู่ภายใต้แรงกดดันจากความขัดแย้งของเครื่องหมาย ค่าความสูญเสียก็ไม่กระโดดและสามารถอยู่ร่วมกันได้เอนโทรปีข้อมูลคาซิเมียร์
ตัวสมการเองก็คือ Shannon entropy ถูกต้องแล้ว
ถึงอย่างนั้น เหตุผลที่เทอมนี้ถูกตั้งชื่อว่า 'คาซิเมียร์' ก็เพราะแหล่งที่มาของการกระจายความน่าจะเป็นที่ใช้คำนวณเอนโทรปีนี้ มาจากผลลัพธ์ของฟิลเตอร์ที่จำลองผลทางฟิสิกส์ของคาซิเมียร์
ผมได้แก้ไขและขยายสูตรแบบ closed-form ไว้ใน README แล้ว
https://github.com/PJHkorea/Egregore/blob/main/README.md
ขอบคุณมากจริง ๆ ครับ ด้วยการตรวจสอบของคุณ ผมเลยได้ปรับเปลี่ยนการอิมพลีเมนต์อีกครั้งหนึ่ง
https://github.com/PJHkorea/Egregore/…
ผมแก้ไขเป็นเวอร์ชันนี้แล้ว ขอบคุณมากจริง ๆ ครับ คุณมอบแรงบันดาลใจอันยิ่งใหญ่ให้กับผมมากครับ
ช่วงนี้เห็นอะไรแบบนี้บ่อย ๆ เลย มีคนกำลังใช้เอเจนต์ที่ป้อนพรอมป์ต์ประมาณว่า "สร้างอะไรสักอย่างให้ดูเป็นผู้เชี่ยวชาญ แล้วเอาไปโพสต์ตามเว็บคอมมูนิตี้" เพื่อสแปมหรือเปล่า?
ขออภัยครับ ผมทำงานแบบแยกเดี่ยว จึงมีด้านที่ยึดความคิดของตัวเองมากเกินไป
ผมจะแก้ไขครับ