zoukankan      html  css  js  c++  java
  • 【自己动手写神经网络】小白入门连载(二)--机器人时代必须得有人工神经(不是神经病)

    【自己动手写神经网络】小白入门连载(一)

    葛一鸣老师写作的《自己动手写神经网络》电子书在百度阅读上线了。

    主页:http://t.cn/RPjZvzs

        在上一章中。我们已经介绍了神经网络的基本概念、思想。并提及了有关人工神经元模型的部分内容。在本章中。将对人工神经元模型做很多其它的介绍。


    2.1 多输入生物神经元示意图

    在上一章中提到了一个简单的神经元模型。而且该模型仅仅有一个输入p。这意味着仅仅能有一个额外的神经元与之相连接。这显然是不够的。

    因此。一个有用的神经元必须是能够接受多个输入的,如图2.1所看到的,神经元拥有3个输入p1、p2和p3。当中,w和b是依据网络情况不断进行调整的,而传入函数s和传输函数f是事先选定。那到底有哪些函数能够选择呢?传入函数比較简单。最经常使用的仅仅有依照权重求和,在本例中,s处的输出(净输入n)就是:

    p1*w1+p2*w2+p3*w3+b*1

        将该输出会作为參数传入输出函数f。并作为该神经元的终于输出。

    一般来说,经常使用的传输函数如表2.1所看到的。

    2.1 经常使用传输函数列表

    函数名称

    映射关系

    图像

    缩写

    说明

    阶梯函数

    a=0, n<=0

    a=1, n>0

    Step

    n大于等于0时,输出1。否则输出0

    符号函数

    a=-1, n<=0

    a=1, n>0

    Sgn

    n大于等于0时,输出1,否则输出-1

    线性函数

    a=n

    Linear

    n本身就是神经元的输出

    饱和线性函数

    a=0, n<0

    a=n, 0<=n<=1

    a=1, n>1 

    Ramp

    n小于0时。输出0,n在0到1区间时,输出n。n大于1时,输出1

    对数S形函数

    a=1/(1+exp(-n))

    Sigmoid

    有界函数。不管n怎样,输出永远在(0,1)的开区间。

    双曲正切S形函数

    Tanh

    有界函数,不管n怎样,输出永远在(-1,1)的开区间。

    在图2.1中,如果p1=1,p2=0。p3=2,w1=1。w2=-1,w3=1。b=-1。则神经元的净输入为:p1*w1+p2*w2+p3*w3+b*1

    =1*1+0*-1+2*1-1

    =2

    此时,传输函数与神经元输出的关系如表2.1所看到的。

    2.1 传输函数输出值

    Step

    Sgn

    Linear

    Ramp

    Sigmoid

    Tanh

    1

    1

    2

    1

    0.881

    0.964

    传输函数在神经元模型中很重要。一般会选择特定的传输函数来解决特定的问题。

    这里再强调3类函数。

    首先值得注意的是Step函数。它很easy。当输入小于0时,函数输出0,大于0时,输出1。

    该函数能够把输入简单得分为2类。

    在兴许讲到的感知机中,就使用了该函数。

    其次。另外一个值得注意的函数是Linear线性函数,它总是简单的返回输入值。在一个Adaline网络中,会使用该函数。Adaline类似于感知机。可是由于使用线性函数和其相应的改良学习算法,Adaline相比感知机,能够更好的处理网络噪声。

    最后一个值得注意的函数是Sigmoid函数,它接收随意实数输入,并将结果相应到0和1之间。

    该函数是可导的。因此,在BP神经网络中使用该函数(BP神经网络学习过程中,须要对传输函数求导)。

    单个神经元就能够构成一个最简单的神经网络——感知机。

    感知机能够处理简单的分类问题。

    比方,如今有2类水果。苹果和香蕉。人们通过识别苹果和香蕉的形状和颜色区别,来区分苹果和香蕉两种水果。

    刚出生的婴儿无法区分苹果和香蕉。由于在他们的大脑里。没有相应的分类信息。但通过不断地训练和外部刺激。告诉他们红色的圆形的是苹果。黄色的弯形的是香蕉,不须要多久。婴儿就能够分区这两类水果。用类似的方法也能够让感知机正确得对苹果和香蕉分类。详细的分类过程和原理,将在下一章节介绍。

    【自己动手写神经网络】小白入门连载(一)

    购买《自己动手写神经网络》电子书你将会获得:

    1. QQ群96980352跟【葛一鸣老师】面对面交流!

    2.  一本改变你命运的《自己动手写神经网络》全本电子书!

    3.  随书源码,帮你构建属于自己的神经网络!

    4.  http://bbs.uucode.net/论坛交流,看见看不见的技术!

    5.  “神经网络”公众号shenjingwangluo11,学习很多其它人工智能、机器学习的相关内容!

    扫描公众号二维码!




  • 相关阅读:
    Android SQLite 建立多表间的主外键关系 Binary
    Android——扩大ImageButton的点击区域 Binary
    Android——刷新媒体库 Binary
    Oracle数据导入导出imp/exp命令 10g以上expdp/impdp命令 转自:南水江的鸽子窝
    在同一应用中混合使用ASP.NET窗体和ASP.NET MVC 转自:geez的个人空间
    ASP.NET WebApplication 发布部署
    Oracle 导出索引Sequence!!
    获取ORACLE 表字段,表名,以及主键之类等等的信息
    FlexGrid 控件的使用 摘自:大道至简
    整合 DZNT到自己网站
  • 原文地址:https://www.cnblogs.com/lcchuguo/p/5127266.html
Copyright © 2011-2022 走看看