如何利用神经网络教机器人走路?

说起乐高积木,大多数人一定都想的是小孩子的玩具吧?但如果再加上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,但是我需要编写一个小文件系统,以便库可以直接从闪存加载保存的网络权重。”
你对那些有兴趣构建和培训自己的机器人的开发者,有什么建议吗?

用StateCad实现帧定位系统
贸泽电子即日起备货Maxim Integrated 的MAX77734 电源管理IC
维修口诀
DLP平视显示器的原理及特点介绍
为什么华为只把麒麟芯片用在高端机上,而中低档却用高通、联发科的芯片?
如何利用神经网络教机器人走路?
大联大世平集团推出基于NXP LPC54101的E-Lock解决方案
采用TC35I的智能蓝牙无线电路设计
NVIDIA:自驾车发展单一运算平台机会不大
昂达瞄准内存市场,DDR3面向低端,面向AMD
基于DSP的高速实时语音识别系统的设计
LED芯片生产过程与MOCVD知识
智能汽车将促进嵌入式软件架构的接受度
新时代的扫地机器人未来该如何发展
电路交换的主要特点
单片机要如何寻址?
配电室智慧运维提高配电室的管理水平与运行效率
奥迪e-tronS 全球首次量产三电机动力系统开发解密
英特尔推进全新架构,面向数据中心、HPC-AI和客户端计算
坚果pro已经正式发布:vivoX9和锤子坚果pro评测对比,你会买谁?