เป็นไปได้ไหมที่จะใช้งานเครือข่ายประสาทเทียมบนไมโครคอนโทรลเลอร์


23

คุณสามารถใช้เครือข่ายประสาทอย่างง่าย ๆ บนไมโครโปรเซสเซอร์เช่น Arduino Uno เพื่อใช้ในการเรียนรู้ของเครื่องได้หรือไม่?


2
อยากรู้อยากเห็นทำไมคุณต้องการที่จะ?
Josh Vander Hook

1
ฉันไม่ใช่ผู้เชี่ยวชาญในพื้นที่นี้ แต่สุดท้ายที่ฉันได้ยินการฝึกอบรมของ NN ได้ถูกจำลองขึ้นมาและ NN ได้รับการติดตั้งบนแชสซีและอาจเป็นหนึ่งเดียวที่มีคอนโทรลเลอร์ระดับสูงกว่า Arduino
Josh Vander Hook

1
ทีนี้คุณไม่จำเป็นต้องเชื่อมโยงมันคุณแค่ฝึกฝน NN ในแบบจำลองจากนั้นแยกทอพอโลยีของ NN รวมถึงน้ำหนักขอบและลิงก์โหนด จากนั้นคุณตั้งโปรแกรม NN (เป็นเพียงสมการที่คุณต้องแก้ไข) ฉันคิดว่ามันจำเป็นต้องมีการวิจัยเพิ่มเติมเล็กน้อยก่อนที่คุณจะลงมือทำโครงการนี้
Josh Vander Hook

1
อาจเป็นเรื่องที่ควรกล่าวถึงเมื่อฉันอายุ 16 ปีและนี่คืองานอิเล็กทรอนิกส์ที่สำคัญสำหรับโรงเรียนมัธยม
Jordan

1
ในกรณีนั้นฉันคิดว่าคุณกำลังก้าวไปข้างหน้าและเกินกว่าหน้าที่รับผิดชอบในการพยายามใช้สิ่งนี้หรือไม่?
Joe Baker

คำตอบ:


10

คุณสามารถฝึกโครงข่ายประสาทเทียมบนไมโครคอนโทรลเลอร์ได้หรือไม่? อาจเป็นได้ แต่โปรดอย่าลอง คุณสามารถใช้ NN เพื่อจัดหมวดหมู่และอื่น ๆ บนไมโครคอนโทรลเลอร์ได้หรือไม่? แน่นอนว่าตราบใดที่คุณสามารถคำนวณผลลัพธ์ของการเผยแพร่โหนดและค่าขอบและจัดการการคูณ


1
ฉันเห็นด้วย สมมติว่าคุณสามารถรับโครงข่ายประสาทเทียมของความซับซ้อนที่จำเป็นในการฝึกอบรมบน Arduino คุณจะยังคงใช้เวลาฝึกซ้อมอย่างบ้าคลั่ง การฝึกอบรมนอกคณะของ NN เป็นวิธีที่มีเหตุผลที่จะไป
fgb

23

แน่นอนว่ามันเป็นไปได้ที่จะนำไปใช้กับ Arduino นี่คือ 3 ไลบรารี Arduino ที่ใช้เครือข่ายประสาท:

ความซับซ้อนของเครือข่ายที่ Arduino สามารถจัดการได้เป็นคำถามแยกต่างหากโดยเฉพาะอย่างยิ่งเมื่อต้องมีการฝึกอบรม - มีการทำซ้ำซ้ำนับหมื่นของข้อมูลการฝึกอบรม การฝึกอบรมเกี่ยวกับเครื่องจักรที่รวดเร็วแล้วคัดลอกน้ำหนักของเซลล์ประสาทไปยัง Arduino จะเป็นวิธีที่ชาญฉลาดในการพัฒนาการใช้งานของคุณ


5

ใช่. หากคุณรันเฉพาะในโหมดป้อนต่อและทำการฝึกอบรมแบบออฟไลน์ที่อื่น:

ฉันตั้งโปรแกรม ANN แบบ 3 ชั้น (5-5-2) บน Arduino UNO มันวิ่งบนหุ่นยนต์มือถือ เมื่อใดก็ตามที่หุ่นยนต์ชนอะไรมันก็จะทำการฝึกอบรมเครือข่ายใหม่ ส่วนการป้อนสุทธิของเน็ตเวิร์กวิ่งตามเวลาจริง ในขณะที่การฝึกอบรมการขยายพันธุ์กลับใช้เวลาประมาณ 5 ถึง 20 วินาที ฉันคิดว่าคุณสามารถลดขนาดของเครือข่ายเช่นเดียวกับการเล่นกับพารามิเตอร์เพื่อให้มันทำงานได้เร็วขึ้นเล็กน้อย แต่ถ้าคุณวางแผนที่จะทำการ backpropagation ใน Arduino ฉันคิดว่ามันช้าเกินไป

ความคิดบางอย่างเพื่อเร่งความเร็วสิ่งรวมถึง:

  • ใช้จุดลอยเทียบกับจุดคงที่ (สำหรับ MCU ที่ไม่มี FPU)
  • ใช้ MCU ที่มี FPU
  • tanh
  • ให้ขั้นตอนการฝึกอบรมเกิดขึ้นออฟไลน์บนพีซี

นี่เป็นบทความสั้นๆ ที่ฉันทำในเครือข่าย


3

ใช่แน่นอนมันเป็นไปได้ที่จะฝังเครือข่ายประสาทเทียมในไมโครคอนโทรลเลอร์ มีตัวอย่างมากมายในวรรณกรรมทางวิทยาศาสตร์ แต่ฉันสามารถอ้างอิงตัวอย่างที่น่าทึ่งของสิ่งที่สามารถทำได้ด้วย MCU ที่ง่ายมากถ้าคุณฉลาดพอ ในEvolutionary Bits'n'Spikesผู้เขียนได้อธิบายถึงการนำเครือข่ายประสาทแบบ spiking ตามเวลาจริงมาใช้และอัลกอริทึมทางพันธุกรรมเพื่อฝึกฝนมันเพื่อควบคุมหุ่นยนต์ล้อเฟือง รหัสทั้งหมดทำงานในไมโครคอนโทรลเลอร์ขนาดเล็ก PIC16F628 4MHz ที่ฝังอยู่ในหุ่นยนต์อลิซขนาด 1 ลูกบาศก์นิ้ว

โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.