การพัฒนาเครือข่าย Kolmogorov-Arnold
(github.com/KindXiaoming)การแนะนำ Kolmogorov-Arnold Networks (KANs)
คำจำกัดความและคุณลักษณะของ KAN
- Kolmogorov-Arnold Networks (KANs) เป็นทางเลือกที่มีศักยภาพสูงสำหรับ Multi-Layer Perceptrons (MLPs)
- KANs มีพื้นฐานทางคณิตศาสตร์ที่แข็งแกร่งเช่นเดียวกับ MLPs
- MLPs มีพื้นฐานมาจากทฤษฎีการประมาณแบบสากล (universal approximation theorem)
- KANs มีพื้นฐานมาจากทฤษฎีการแทนที่ของ Kolmogorov-Arnold (Kolmogorov-Arnold representation theorem)
- KANs และ MLPs เป็นคู่กัน (dual)
- KANs มีฟังก์ชันการกระตุ้น (activation function) อยู่ที่ขอบ (edge)
- MLPs มีฟังก์ชันการกระตุ้น (activation function) อยู่ที่โหนด (node)
- ด้วยการเปลี่ยนแปลงที่เรียบง่ายนี้ KANs แสดงผลลัพธ์ที่ดีกว่า MLPs ในด้าน ความแม่นยำ (accuracy) และ ความสามารถในการตีความ (interpretability) (บางครั้งดีกว่าอย่างมาก)
ความแม่นยำของ KAN
- KANs แสดงการสเกลได้เร็วกว่า MLPs
- KANs มีความแม่นยำสูงกว่า MLPs แม้จะใช้พารามิเตอร์น้อยกว่า
- ตัวอย่าง
- การฟิตสูตรเชิงสัญลักษณ์ (symbolic formula fitting)
- การฟิตฟังก์ชันพิเศษ (special function fitting)
- การแก้สมการเชิงอนุพันธ์บางส่วน (PDE)
- การหลีกเลี่ยง catastrophic forgetting
ความสามารถในการตีความของ KAN
- KANs สามารถแสดงผลได้อย่างเป็นภาพได้อย่างเป็นธรรมชาติ
- KANs ให้ความสามารถในการตีความและการโต้ตอบได้ในมิติที่ MLPs ทำไม่ได้
- การใช้ KANs อาจช่วยให้ค้นพบกฎวิทยาศาสตร์ใหม่
- ตัวอย่าง
- การตีความเชิงสัญลักษณ์
- การค้นพบกฎคณิตศาสตร์ของปม (knot)
- การค้นพบกฎฟิสิกส์ของ Anderson localization
- การตีความกระบวนการฝึกของ KAN แบบ 3 ชั้น
วิธีการติดตั้ง
- สามารถติดตั้ง pykan ได้ผ่าน pypi หรือ github
- มีขั้นตอนการติดตั้งผ่าน github
- มีขั้นตอนการติดตั้งผ่าน pypi
- ระบุข้อกำหนดและวิธีการติดตั้งข้อกำหนด
ข้อกำหนดด้านการคำนวณ
- ตัวอย่างใน tutorial โดยทั่วไปรันได้บน CPU ตัวเดียวในเวลาไม่ถึง 10 นาที
- ตัวอย่างทั้งหมดใน paper รันได้บน CPU ตัวเดียวในเวลาไม่ถึง 1 วัน
- การฝึก KANs สำหรับ PDE มีต้นทุนการคำนวณสูงสุดและอาจใช้เวลาหลายชั่วโมงถึงหลายวันบน CPU ตัวเดียว
- ใช้ CPU เพื่อฝึกโมเดลด้วยการทำ parameter sweep เพื่อให้ได้ Pareto Frontier
- แนะนำให้ใช้ GPU หากขนาดงานค่อนข้างใหญ่
เอกสาร
- เอกสารสามารถพบได้จาก URL ที่เชื่อมโยง
บทช่วยสอน
- เริ่มต้นเร็ว: เริ่มด้วยโน้ตบุ๊ก hellokan.ipynb
- เดโมเพิ่มเติม: ใน tutorials จะมีโน้ตบุ๊กสอนเพิ่มอีกมาก
การอ้างอิง
- มีแนวทางการอ้างอิง paper
ติดต่อ
- หากมีคำถาม สามารถติดต่อได้ที่ zmliu@mit.edu
ความคิดเห็นของ GN⁺
-
KANs เป็นโครงข่ายประสาทที่น่าสนใจในฐานะทางเลือกของ MLPs เนื่องจากมีพื้นฐานคณิตศาสตร์และให้ข้อได้เปรียบด้านความแม่นยำและความสามารถในการตีความ อย่างไรก็ตาม ดูเหมือนว่าจะยังเป็นการวิจัยในระยะต้น และยังต้องการการตรวจสอบประสิทธิภาพเพิ่มเติมบนชุดข้อมูลขนาดใหญ่หรืองานที่ซับซ้อนมากขึ้น
-
ใน MLPs ความแตกต่างที่สำคัญคือการวางฟังก์ชันการกระตุ้นที่โหนด ในขณะที่ KANs วางที่ขอบ ประเด็นนี้ทำให้เกิดการเปลี่ยนแปลงสำคัญของโครงสร้างเครือข่ายและวิธีการเรียนรู้ จึงควรมีการวิเคราะห์อย่างละเอียดเพิ่มเติม
-
ความสามารถในการตีความของ KANs อาจช่วยแก้ปัญหา black box ใน AI ได้ และมีแนวโน้มที่น่าสนใจในการค้นพบกฎทางวิทยาศาสตร์ใหม่ ๆ อย่างไรก็ตาม เนื่องจากมีงานวิจัยด้าน AI ที่ตีความได้อยู่มากแล้ว จึงอาจจำเป็นต้องชี้ให้เห็นความได้เปรียบเชิงเอกลักษณ์ของแนวทางนี้ให้ชัดเจน
-
ตัวอย่างใน paper ส่วนใหญ่จำกัดอยู่เฉพาะด้านคณิตศาสตร์และวิทยาศาสตร์เป็นหลัก คำถามว่าผลงานของ KANs จะสามารถทดแทน MLPs ในโดเมนต่างๆ เช่น ภาพและภาษาธรรมชาติได้หรือไม่ยังต้องการการวิจัยต่อไป
-
การกำหนดยุทธวิธีที่คล้ายกับ KANs ได้แก่ Capsule Networks และ Graph Neural Networks การเปรียบเทียบกับงานเหล่านี้จะช่วยยืนยันจุดแข็งเฉพาะของ KANs ได้
1 ความคิดเห็น
ความคิดเห็นบน Hacker News
ผู้ใช้คนหนึ่งแชร์การนำแนวคิดในกระดาษวิจัยมาทำต้นแบบแบบง่าย ๆ ด้วย PyTorch โดยมีโค้ดเพียงไม่กี่บรรทัด โดยใช้สัมประสิทธิ์ฟูเรียแทนสแปลนในการอินเตอร์โพเลตฟังก์ชันหนึ่งมิติ ซึ่งแสดงศักยภาพในการแทนค่าของ Kolmogorov-Arnold Network และอาจบรรจบได้ง่ายกว่าเวอร์ชันสแปลนในกระดาษวิจัย แต่การคำนวณมีมากขึ้น
ผู้ใช้คนอื่นได้แชร์ผลการทดลองกับ Jupyter notebook ที่ให้มา เมื่อเปลี่ยนโครงข่ายในงานจำแนกจาก (2, 2) เป็น (2, 2, 2) กลับไม่สามารถจีเนอรัลไลซ์ได้ และเมื่อเพิ่มขนาดข้อมูลฝึกเป็น 100 เท่า การ overfitting ดีขึ้น แต่ค่า loss ระหว่างการฝึกยังไม่ลงต่ำกว่า 1e-2 ผู้ใช้ต้องการทดลองกับตัวอย่างและข้อมูลขนาดใหญ่ขึ้น
ในช่วงที่วงการเริ่มเหนื่อยกับการปรับปรุง Transformer แบบค่อยเป็นค่อยไป การศึกษานี้ได้รับการชื่นชมว่าเป็นไอเดียใหม่ที่อาจเพิ่มศักยภาพการแทนค่าของ DNN ได้มากขึ้น แต่ต้องรอการพิสูจน์ต่อไปว่าประสิทธิภาพที่ดีขึ้นจริง ๆ จะเกิดขึ้นจริงหรือไม่
ยังไม่ชัดเจนว่าเมื่อขยายไปใช้ในขนาดใหญ่จะได้ผลอย่างไร ทั้งในด้านความสามารถในการขยายตัวของอัลกอริทึมเอง (เช่น จะเรียนรู้ได้ดีขึ้นด้วยการเพิ่มเลเยอร์หรือไม่) และความเป็นไปได้ในการใช้การเร่งความเร็วด้วยฮาร์ดแวร์ (ว่ารูปแบบฟังก์ชันกระตุ้นตามน้ำหนักจะสามารถใช้การเร่งการคูณเมทริกซ์แบบเร็วขึ้นได้หรือไม่) แม้โครงสร้างนี้จะแสดงคุณสมบัติที่น่าสนใจในสเกลเล็ก แต่งานประเภท ImageNet หรือ LLM ยังต้องการการศึกษาเพิ่มเติมเพื่อยืนยันว่าคือโครงสร้างที่เหมาะสม
เรื่องที่น่าสนใจคือตัวแทนการแสดงผล Kolmogorov-Arnold กับ MLP ถูกค้นพบ/คิดค้นในช่วงปี 1957–1958 เกือบใกล้เคียงกัน แนวทางนี้ยังมีข้อดีที่มีพารามิเตอร์แค่ประเภทเดียว (ค่าคงที่ในฟังก์ชันกระตุ้นเฉพาะที่) เทียบกับ MLP ที่ต้องมีน้ำหนัก, ไบแอส และฟังก์ชันกระตุ้นแบบกลุ่มทั่วโลก ความเห็นหนึ่งยังพูดถึงอยากลองเอาแนวทางนี้ไปใช้กับ Diffusion Model ในปัจจุบันที่แทบเต็มไปด้วย Transformer
ความสามารถของเครือข่าย Kolmogorov ในการแทนฟังก์ชันไม่ต่อเนื่องน่าสนใจมาก แต่ข้อกังวลเรื่องการใช้งานจริงยังมีอยู่ repo นี้แสดงให้เห็นว่ามีศักยภาพการใช้งานได้ระดับหนึ่ง
อาจมองได้ว่าเป็นความเห็นเร่งรีบไป แต่เนื่องจากการรวมเชิงเส้นของ B-spline แล้วได้เป็น B-spline ระดับสูงกว่า จึงมีมุมมองหนึ่งว่ามันอาจไม่ต่างจากการฟิตฟังก์ชันด้วย B-spline ลำดับสูงอย่างเดียวกัน
Preprint ถือมิติอินพุต 100 ว่าเป็น "มิติสูง" และส่วนนิยามที่บ่อยที่สุดใน ML ที่ได้แรงบันดาลใจจากฟิสิกส์มักมีมิติน้อยกว่าหรือเท่ากับ 5 จึงมองได้ว่าเป็นภาพแบบปกติ การทดสอบผลลัพธ์บน MNIST ที่มีมิติเท่ากับ 784 ซึ่งถือว่าต่ำมากตามมาตรฐานสมัยใหม่ จะเป็นขั้นต่อไปที่ควรทำ
มันให้ความรู้สึกเหมือนเอาสแปลนไปใส่แน่นเข้ากับ decision tree
ดูเหมือนว่าจะมีความคล้ายกันเชิงแนวคิดกับ finite element method มาก และน่าจะดีมากที่ได้เจอโครงสร้างลักษณะคล้ายกันข้ามสาขาในลักษณะนี้