0
  • 聊天消息
  • 系统消息
  • 评论与回复
登录后你可以
  • 下载海量资料
  • 学习在线课程
  • 观看技术视频
  • 写文章/发帖/加入社区
创作中心

完善资料让更多小伙伴认识你,还能领取20积分哦,立即完善>

3天内不再提示

机器人编程让程序员再次火热 身价也水涨船高

jmiy_worldofai 来源:未知 作者:胡薇 2019-01-22 10:00 次阅读

机器人编程程序员再次火热,身价也水涨船高。

首先我们来测试一下,可以发现调整训练集之后,输出的结果虽然有变化,但仍然是一个非常接近1的数。

运行完整代码看看具体的权重值,可见第三列的权重值极小接近于0,而第一、二列的权重值绝对值相当。所以我们的这个单细胞神经网络,并没有“学会”期望的逻辑关系。

这是因为,“第一列与第三列同时为1->1,否则->0”是一个非线性关系。与上一篇的“输入=第一列”不同,后者是高度线性的(不能再线性了)。要解决更复杂的非线性问题,就需要把多个神经元连接起来,真正形成“网络”。

在Milo的原文中,他也提出了一个非常类似的问题,就是“异或”。

正文

下表的?处应该是什么?

训练集与新形势

经过观察可以发现,第三列是无关的,而前两列成“异或”关系——相等为0,相异为1。所以正确答案应为0。

对于单个神经元来说,这样的线性关系太复杂了,输入-输出之间没有一对一的映射关系。所以我们必须加入一个含4个神经元的隐藏层(Layer 1),这一层使得神经网络能够思考输入的组合问题。

蓝线代表神经突触,图来自https://github.com/miloharper/visualise-neural-network

由图可见,Layer 1的输出给了Layer 2,如此神经网络就可以学习Layer 1的输出和训练集的输出之间的关系。在学习过程中,这些关系会随着两层的权重调整而加强。

实际上,图像识别的原理就很相似。一个像素点和苹果之间并没有直接关系,但是像素点组合起来,就和苹果发生了关系。

往神经网络中加更多的层,使其思考状态组合,这就是“深度学习”。首先放出代码,之后我会进一步详解。

两层神经网络

运行

跟上一版代码最大的不同在于,这次有多层。当神经网络计算第二层的误差时,这个误差会被反向传播回第一层,并影响权重值的调整。这就是反向传播算法(Back Propagation)。

点击运行键,观察输出结果,这次的输出会比较多,主要看最后的预测结果。我们得到了0.0078876,这与正确答案0非常接近了。

虽然看起来很轻松,其实计算机在背后执行了大量的矩阵运算,而且这个过程不是很容易可视化。在下一篇文章中,我将把我们的神经网络的神经元和突触都做个可视化,让我们看看她究竟是如何思考的。

后记

现在我们已经有了一个可以思考非线性关系的神经网络,那么回到开头的那个问题,能否识别出“第一列与第三列同时为1->1,否则->0”的关系呢?

请将相应的代码替换为:

新训练集

training_set_inputs = array([[0, 0, 1], [1, 1, 1], [1, 0, 1], [0, 1, 1],[1,1,0],[0,1,0],[0,0,0]]) training_set_outputs = array([[0, 1, 1, 0,0,0,0]]).T

同时也不要忘记调整

hidden_state, output = neural_network.think(array([1, 1, 0]))

里的测试样本(array([1,1,0]))。重新点击运行,观察我们现在的神经网络能否解决问题。

声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉
  • 神经网络
    +关注

    关注

    42

    文章

    4558

    浏览量

    98607
  • python
    +关注

    关注

    51

    文章

    4666

    浏览量

    83433

原文标题:机器人编程 | 小伙利用Python搭建多层神经网络,三天内被邀请去腾讯阿里面试!

文章出处:【微信号:worldofai,微信公众号:worldofai】欢迎添加关注!文章转载请注明出处。

收藏 人收藏

    评论

    相关推荐

    程序员的十大技术烦恼

    我们都明白,这是我们有我们行业里的特定的烦恼。 下面要说的就是程序员们烦恼的十件事情。 10. 注释 — 只解释了“how”却没有解释“why” 入门级的编程课程通常会教育学生们写代码前先写注释
    发表于 11-14 15:51

    什么是工业机器人

    各种功能的一种机器。它可以接受人类指挥,可以按照预先编排的程序运行,现代的工业机器人还可以根据人工智能技术制定的原则纲领行动。 1920年捷克作家卡雷尔·查培克在其剧本《罗萨姆的万能
    发表于 01-19 10:58

    国内首家机器人“服务”餐厅

    ` 2015年正月初五,江苏省盐城市区一家用机器人做“服务”的餐厅“思坊机器人餐饮”悄然开业,机器人服务可以为客人点餐、端茶、送菜,当顾
    发表于 03-03 09:51

    最让程序员感到崩溃的10种编程语言,有你崩溃的那个吗?

    过于灵活)、差劲的调试功能或其它原因你抓狂,甚至崩溃。据程序员在 Quora,Stack Overflow和Hacker News这三大国外论坛上的讨论,挑选了其中10大最让程序员不爽的编程
    发表于 09-11 10:03

    程序员越老越优秀吗?

    。帖子的质量,例如每个帖子的分值,随着年龄只有微弱的增加。老程序员通过更活跃的回答问题来赢得声誉。明年我就年满40,在很多编程相关的社交圈里都被公认为“老程序员”。我的经验如下:每年,我都能更进一步
    发表于 10-25 10:04

    机器人10大流行编程语言对比,你学会了哪种?

    导语:机器人编程语言是一种程序描述语言,它能十分简洁地描述工作环境和机器人的动作,能把复杂的操作内容通过尽可能简单的程序来实现。从实际应用的
    发表于 12-05 16:42

    机器人控制的入门经验

    对于工科领域来说,脱离实践的学习都是肤浅的,对于控制这种强调经验的技术更是如此。如果去问一个程序员怎么学习一块技术,他必然你去多编程机器人领域也是。如果想把基本功打扎实,那么实践更
    发表于 05-24 07:43

    机器人未来设想

    对于机器人得几个场景的回忆!曾经在星球大战里面见到了各种机器人,一下子把人们带到了太空的科幻之境界。而后来又出现了机器人瓦力,当然里面充满了各种技术结晶!最近几年我看过的比较经典的
    发表于 11-22 22:37

    工业机器人应用编程考核设备分享

    ZNH-KH01工业机器人应用编程考核设备一、概述工业机器人应用编程考核设备能满足工业机器人应用编程
    发表于 07-01 11:06

    机器人编程的区别

    在前一篇文章中讲了机器人编程的区别,但总感觉讲的比较空泛,这篇文章继续讲讲那些区别。计算机编程机器人编程最大的区别就是一个是控制虚拟的,
    发表于 09-01 07:12

    Motoman机器人离线编程

    欢迎关注Jungle的Motoman机器人离线编程专栏系列文章:Motoman机器人离线编程——Motocom32开发简介Motoman机器人
    发表于 09-07 07:33

    设计机器人程序员系统的编程技能

    。那么,我们在设计机器人程序员系统时,需要刻意的设计,尽量编程者只利用很少的知识,轻松掌握编程技能,同时尽量减少
    发表于 09-09 06:45

    如何避免程序员面向监狱编程

    Github上火了起来,不过联想到年初Pandownload事件主角因贩卖不限速网盘APP而获罪的新闻,笔者不禁为这个项目的发起略感到担心。当然避免面向监狱编程并不是普通程序员才要考虑的问题,9月末百度元老史有才被警方带走,可
    发表于 09-14 07:51

    机器人是什么?

    机器。一些书呆子式的语言可能会把它描述成“一个可重新编程的多功能机械手,旨在通过各种编程的动作移动材料、部件、工具或专门设备,以完成各种任务”。这个定义非常具有表现力。那么制造机器人
    发表于 03-31 10:31

    制作一个教育机器人

    描述K-Bot版本4机器人的设计理念是,任何人都可以使用教育机器人进行组装、编程和教学活动。主要是为了任何教育水平的老师都能在课堂上和学生一起使用它。为了做到这一点,你只需要使用定制
    发表于 08-19 07:25