說起樂高積木,大多數人一定都想的是小孩子的玩具吧?但如果再加上Cortex-M4處理器,一兩個馬達和一些電線綁帶,你能把它玩得有“技術含量”嗎?當然,“技術流”玩家還是有的,Sebastian F?rster,這位來自德國的嵌入式系統開發者,便用這些東西搭建了一個四足機器人,并且用神經網絡教會它走路。這個被命名為“Scratchy”小怪物的機器人,一共有四個伺服電機控制四條腿,使用超聲波探測距離,主控則用的是STM32F407探索開發板。
對此,Arm深度學習技術總監Mark Connor專程和Sebstian見面并對他進行了采訪,請他談了一下為什么要做這個“小怪物”以及他的心得體會,讓我們一起來圍觀下吧。
能否談談你怎么想到要去做這個“小怪物”的嗎?
我目前碩士學位論文的題目就是有關如何在更小的Cortex-M處理器上實現機器學習,通過一個神經網絡的實例來做性能測試。而作為測試的一部分,我把FANN神經網絡庫移植到了Cortex-M4上,并且我不想做太學術太死板的東西,而希望是有型的東西,于是我選擇做個機器人。如你所見,其實我沒做的很復雜,就先把一些樂高積木連到電機上,然后再連到一塊有足夠Flash和SRAM的STM32F4開發板上。
“小怪物”的成功也證明了我論文的結論——在小型的基于Cortex-M設備上運行機器學習算法是完全可能的。
你有沒有試圖自己對腿部動作進行編程?
當然沒有,這顯然應該是讓AI去干的!“小怪物”的結構允許我可以獨立地訓練向前和向后的步法,讓我大吃一驚的是,雖然它沒有膝關節,但是也能工作。因為Deep Mind在 Atari Q-Learner上取得了很大的成功,所以我也決定使用Q-Learning,并且我可以在他們的基礎之上編寫Q-learning的代理。 FANN庫其實是由其他人開發并在LGPL許可下開源的,我只是單純移植到了Cortex-M4上。
你是如何決定網絡拓撲的?
SRAM的大小限制了拓補結構,神經網絡可以做的更大,但使用額外的變量會消耗非常多的存儲器空間,而我更想直接在Cortex-M4上直接進行訓練。在我看來,使用兩個或三個前饋層并沒有太大區別,盡管我沒有直接比較它們,而我想壓榨一下處理器!
用微控制器進行當前的神經網絡研究是否容易?
其實裸C(非CUDA)框架完全可以適用于512Kb閃存和256Kb SRAM,我很幸運地找到FANN,但是我需要編寫一個小文件系統,以便庫可以直接從閃存加載保存的網絡權重。”
你對那些有興趣構建和培訓自己的機器人的開發者,有什么建議嗎?
-
機器人
+關注
關注
211文章
28809瀏覽量
209159 -
神經網絡
+關注
關注
42文章
4787瀏覽量
101377
原文標題:如何利用神經網絡教會“小怪物”走路?
文章出處:【微信號:arm_china,微信公眾號:Arm芯聞】歡迎添加關注!文章轉載請注明出處。
發布評論請先 登錄
相關推薦
人工神經網絡的原理和多種神經網絡架構方法

評論