浅谈神经网络

来源:互联网 发布:兰州文理学院网络教学 编辑:程序博客网 时间:2024/05/16 10:09

首先附上一大牛的博客 http://colah.github.io/
知乎上也有一些大牛的回答:https://www.zhihu.com/question/22553761

神经元

它是神经网络的基本处理单元。

下面一部分是转载的:地址如下:https://yjango.gitbooks.io/superorganism/content/shen_jing_yuan_ben_zhi.html

[转载]

神经元的工作原理如下:

这里写图片描述

  • 输入:把上方5个神经元(绿色)作为输入,每个神经元代表一个因素,以此就形成了维度为5的向量。这5个因素形成的向量可以表示一个事物的状态
    这里写图片描述

  • 权重:神经元之间所形成的连接,决定了 W⃗  的形状。装载着 W⃗  各个连接之间的强弱。表示着从 x⃗  传递过来的电信号会以何种方式进行线性变化这里写图片描述

  • 阈值: x⃗  经由 W⃗  的变化传递到下一个神经元(蓝色)时,会逐渐累积,但并不会立刻触发,而是当膜电位达到-55 mV时才会向下传递。这里写图片描述

  • 非线性传递的电信号并不会直接被下一个神经元接受,而是通过神经递质进行增强(正信号)或抑制(负信号)。使线性变化的这里写图片描述增加了非线性能力。生物中有多种 a() 表示不同的非线性能力

  • 输出:经由这里写图片描述得到的 y⃗  就可以看做1维向量,表示变化后的状态。这样一个基本动作就完成了。然而 y⃗  又可以看做为新的输入向量,通过其权重 [B1] 和其他的神经元共同作用,形成下一次的状态输出。

[转载]


神经网络

其实上面转载的神经元的工作原理就是一个系统的神经网络。

深层学习是借鉴了神经元的信息交互方式后,在计算机上的一种实现方式。

这里写图片描述

神经网络的三要素为:
1.突触之间的连接,一般用权重来表示。
2.对输入信号进行求和的加法器
3.激活函数:控制输入对输出的激活作用;对输入输出进行函数转换;将可能无限域的输入变换成指定的有限范围内的输出。

从而,神经元 k 的输出方程表示如下 :
这里写图片描述

OR

这里写图片描述

几种常用的作用函数 :
1、阈值型(硬限制型,Hardlim)
2、线性型(Purelin)
3、S型函数(Sigmoid)
4、径向基函数(Radial basis function)

神经网络有多个组成,每个层其实就是一个函数function,那么整个网络就是一个所包含函数的链式组合

神经网络的作用

  • 分类:
    这是神经网络最重要的一个作用。比如人脸识别就是一个典型的应用。
    能够对输入的数据进行自动分类的机器,就叫做分类器
    分类器的输入是一个数值向量,叫做特征(向量),比如输入一些猫和狗的照片,进行分类。
    分类器的输出也是一些数值,比如上面的例子,0表示猫,1表示狗。
    分类器如何进行分类?分类的正确率如何提高?这都是需要进行神经网络的训练

神经网络的训练

首先开始时,输入层输入特征向量,经过多层隐层后,获得输出。判断如果输出的误差与期望的输出不符时,则最后一层的单元进行参数调整,然而同时还会导致倒数第二层也进行调整,以此类推迭代到第一层(反向传播,进行误差反转),然后继续进行正向传播,不断循环,直到输出达到满意为止。这就是神经网络的训练机制

有个好玩的东西: http://playground.tensorflow.org/
这里写图片描述

可以调激活函数、隐含层层数、每层隐含层神经元的个数、学习率,然后观察训练的结果。惊艳!!!