浅谈神经网络
首先附上一大牛的博客 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/
可以调**函数、隐含层层数、每层隐含层神经元的个数、学习率,然后观察训练的结果。惊艳!!!