เป็นไปได้หรือไม่ที่จะเรียกใช้และฝึกอบรมเครือข่ายประสาทเทียมบนไมโครคอนโทรลเลอร์ 8 บิต?


11

เมื่อเร็ว ๆ นี้ฉันได้อ่านเกี่ยวกับเครือข่ายนิวรัลในสภาพแวดล้อมที่ จำกัด (โดยเฉพาะการใช้งานเครือข่ายนิวรัลในไมโครคอนโทรลเลอร์แปดบิตราคาไม่แพง ) และแอปพลิเคชันของพวกเขาไปยังอุปกรณ์ IoT (เช่นการถดถอย

ดูเหมือนว่าจะเหมาะสำหรับแอปพลิเคชันแบบเรียบง่ายที่การประมวลผลไม่สำคัญเวลาและข้อมูลในการประมวลผลจะไม่บ่อยนัก อย่างไรก็ตามการวิจัยต่อไปแสดงให้เห็นว่าการฝึกอบรมเครือข่ายประสาทในสภาพแวดล้อมที่มีทรัพยากร จำกัด เป็นความคิดที่ไม่ดี (ดูคำตอบของมันเป็นไปได้ที่จะใช้เครือข่ายประสาทบนไมโครคอนโทรลเลอร์ )

สิ่งนี้ยังคงใช้กับแนวทางของ Cotton, Wilamowski และDündarที่ฉันเชื่อมโยงหรือไม่? จำเป็นหรือไม่ที่จะต้องฝึกอบรมเครือข่ายที่ออกแบบมาสำหรับการใช้ทรัพยากรต่ำบนอุปกรณ์ที่มีประสิทธิภาพยิ่งขึ้นในเครือข่าย IoT ของฉัน

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


ที่จริงแล้วคุณตั้งใจจะใช้เครือข่ายประสาทในแต่ละเซ็นเซอร์ / แอคทูเอเตอร์โหนดหรือที่ "สมอง" ส่วนกลาง (กึ่ง -) ส่วนกลาง (จากนั้นแน่นอนว่าข้อ จำกัด 8 บิตไม่จำเป็นต้องมี)
Ghanima

@Ghanima ถ้าเป็นไปได้ฉันอยากจะทำที่โหนดแอคชูเอเตอร์เพื่อบันทึกเลเยอร์ความซับซ้อนเพิ่มเติมแม้ว่าฉันไม่แน่ใจว่ามันจะใช้ได้กับข้อ จำกัด ที่ จำกัด หรือไม่
Aurora0001

@ Aurora0001 คอนโทรลเลอร์เฉพาะที่คุณอยู่ที่นี่อาจไม่เหมาะที่จะฝึกอบรม NN ของคุณ แต่มีความพยายามร่วมกันในโลกแห่งวิสัยทัศน์คอมพิวเตอร์ฝังตัวเพื่อทำสิ่งนั้น หากคุณกำลังพยายามหาไมโครคอนโทรลเลอร์ที่มีสถาปัตยกรรมที่เหมาะกับงานดังกล่าวฉันขอแนะนำให้คุณมองหา บริษัท ที่พัฒนาฮาร์ดแวร์ประเภทนี้สำหรับอุตสาหกรรมคอมพิวเตอร์ที่มีวิสัยทัศน์ ฉันแน่ใจว่ามันสามารถ repurposed และปรับให้เข้ากับความต้องการของคุณ สถานที่ที่ดีสำหรับการเริ่มต้น
grldsndrs

@grldsndrs ที่ยอดเยี่ยมขอบคุณสำหรับการอ้างอิง รู้สึกอิสระที่จะโพสต์มันเป็นคำตอบเพิ่มเติมถ้าคุณรู้สึกว่ามันเพียงพอ (แน่นอนฉันจะมีความสุขกับมัน)
Aurora0001

1
ตัวประมวลผล 8 บิตสามารถทำทุกอย่างที่ตัวประมวลผลที่กว้างขึ้นสามารถทำได้ช้ากว่าเท่านั้น (ขึ้นอยู่กับงาน) อย่างไรก็ตามตัวประมวลผล 8 บิตมีแนวโน้มที่จะมีพื้นที่ที่อยู่ดั้งเดิม จำกัด ซึ่งหมายความว่าพวกเขาต้องใช้วิธีการทางอ้อมเพื่อจัดการความทรงจำที่มีขนาดใหญ่มากและในกรณีของไมโครคอนโทรลเลอร์มีแนวโน้มที่จะจัดส่งด้วยหน่วยความจำบนชิป มีความแตกต่างของค่าใช้จ่ายเล็กน้อยมากขึ้นนอกเหนือจากค่าต่ำสุด - ไดรเวอร์หลักของค่าใช้จ่าย MCU เป็นความทรงจำที่มีเนื้อหาไม่ใช่ความกว้างของ ALU
Chris Stratton

คำตอบ:


9

ตามรายงานฉบับแรกการวิ่งไม่ใช่ปัญหา นั่นคือจุดประสงค์ มีข้อ จำกัด เรื่องน้ำหนักสูงสุดเท่านั้น:

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


สำหรับการฝึกอบรมเท่าที่ฉันเข้าใจการใช้งานที่อธิบายไว้คอนโทรลเลอร์ PIC ได้รับพารามิเตอร์จากแหล่งภายนอก

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

[ ... ]

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

ฉันสงสัยว่าการฝึกอบรมจะดำเนินการจากภายนอกเช่นกัน

กระดาษยังให้การอ้างอิงสำหรับ Neural Network Trainers ซึ่งอาจใช้เพื่อกำหนดค่าที่โปรแกรมล่วงหน้าไว้ในหน่วยความจำของ PIC

ตอนนี้ฉันได้ตรวจสอบสิ่งแรกที่อธิบายสถาปัตยกรรมเครือข่ายและอัลกอริทึมที่จะใช้กับพวกเขา แต่ซอฟต์แวร์ Neural Network Trainer ที่ใช้ในที่นี้ถูกนำมาใช้ใน MATLAB

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

ฉันต้องพูดถึงว่าเครือข่ายที่เชื่อมต่ออย่างสมบูรณ์มีหมายเลขน้ำหนักต่ำกว่าสำหรับงานเดียวกันมากกว่าสถาปัตยกรรมแบบเลเยอร์ ทำให้เหมาะสำหรับไมโครคอนโทรลเลอร์มากกว่า

ฉันไม่ใช่ผู้เชี่ยวชาญเครือข่ายประสาทและมันค่อนข้างซับซ้อนดังนั้นฉันจึงผิด แต่จากเอกสารเหล่านี้ฉันจะบอกว่าวิธีของ Cotton, Wilamowski และDündarต้องการแพลตฟอร์มภายนอกที่มีประสิทธิภาพมากกว่าในการฝึกอบรม


เกี่ยวกับการใช้งานโครงข่ายประสาทเทียมบนไมโครคอนโทรลเลอร์ ST Microelectronics เพิ่งประกาศชุดเครื่องมือSTM32Cube.AI: แปลงเครือข่ายประสาทให้เป็นรหัสที่ปรับให้เหมาะสมสำหรับ STM32เพื่อแปลงเครือข่ายประสาทที่ผ่านการฝึกอบรมจากห้องสมุดยอดนิยมไปเป็น STM32 MCU ส่วนใหญ่

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