神经网络算法——解决非线性分类复杂问题

神经网络的定义 

把神经元模拟成一个逻辑单元,在神经网络的模型中,神经元收到来自n个其余神经元传递过来的输入信号,这些输入信号经过带权重的链接进行传递,神经元收到的总输入值将与神经元的阈值进行比较,而后经过激活函数(activation funciton)处理以产生神经元的输出。算法

把许多个这样的神经元按必定的层次结构链接起来,就获得了神经网络。网络

 一个神经元能够当作包含两个部分,一个是对输入的加权求和加上偏置,一个是激活函数对求和后的激活或者抑制。架构

与神经网络有关的几个重要术语:ide

阈值(threshhold)

阈值逻辑单元(Threshold Logic Unit,TLU),它能够输入一组加权系数的量,对它们进行求和,若是这个和达到或者超过了某个阈值,输出一个量。函数

激励函数(activation function)

所谓激活函数,就是在神经网络的神经元上运行的函数,负责将神经元的输入映射到输出端。学习

一个前馈神经网络若是具备线性层和至少一层具备 "挤压" 性质的激活函数(如 signmoid 等),给定网络足够数量的隐藏单元,它能够以任意精度来近似任何从一个有限维空间到另外一个有限维空间的  可测函数。spa

要相符上面的定理,也就是想拟合任意函数,一个必须点是 “要有带有 “挤压” 性质的激活函数”。这里的 “挤压” 性质是由于早期对神经网络的研究用的是 sigmoid 类函数,因此对其数学性质的研究也主要基于这一类性质:将输入数值范围挤压到必定的输出数值范围。设计

权重

链接是神经元中最重要的东西。每个链接上都有一个权重。blog

一个神经网络的训练算法就是让权重的值调整到最佳,以使得整个网络的预测效果最好。ci

例如:咱们使用a来表示输入,用w来表示权值。一个表示链接的有向箭头能够这样理解:在初端,传递的信号大小仍然是a,端中间有加权参数w,通过这个加权后的信号会变成a*w,所以在链接的末端,信号的大小就变成了a*w。

若是咱们将神经元图中的全部变量用符号表示,而且写出输出的计算公式的话,就是下图。

 

输入层、输出层、隐藏层

  • 输入层(input layer)输入层各神经元负责接收来自外界的输入信息,并传递给中间层各神经元;
  • 隐藏层(Hidden Layer):中间层是内部信息处理层,负责信息变换,根据信息变化能力的需求,中间层能够设计为单隐层或者多隐层结构;最后一个隐层传递到输出层各神经元的信息,经进一步处理后,完成一次学习的正向传播处理过程
  • 输出层(Output Layer):顾名思义,输出层向外界输出信息处理结果

偏置单元( bias unit)

它本质就是函数的截距,与线性方程 y=wx+b 中的 b 的意义是一致的。在 y=wx+b中,b表示函数在y轴上的截距,控制着函数偏离原点的距离,其实在神经网络中的偏置单元也是相似的做用。 
所以,神经网络的参数也能够表示为:(W, b),其中W表示参数矩阵,b表示偏置项或截距项。

 bias的计算方式

 神经网络结构中对偏置单元的计算处理方式有两种, 
 (1)设置偏置单元=1,并在参数矩阵 Θ 中设置第 0 列对应偏置单元的参数,对应的神经网络以下: 
 神经网络架构 
 其中,x0 是第一层的偏置单元(设置为1),Θ(1)10 是对应该偏置单元 x0 的参数;a(2)0 是第二层的偏置单元,Θ(2)10 是对应的参数。 
 在计算激活值时按照(以a(2)1为例): 
 激活值计算公式

   至关于bias自己值为1,但它链接各个神经元的权重不为1,即---整个神经网络只有1个bias,对应有多个不一样的权重(权重个数等于hide层和out层神经元的个数)

 

2)设置偏置单元,不在参数矩阵中设置对应偏置单元的参数,对应的神经网络以下: 
 神经网络架构 
 其中,b(1) 是 W(1) 对应的偏置单元向量,b(2) 是 W(2) 对应的偏置单元向量,b(1)1 是对应 a(2)1 的偏置单元。注意,此时神经网络的参数表示更改成:(W, b) 
 在计算激活值时按照: 
 激活值计算公式 

   至关于bias链接各个神经元的全部权重都为1,但bias自己不为1,即---有多个bias,但全部的bias对应的权重都为1(bias的个数等于hide层和out层神经元的个数)

 偏置的大小度量了神经元产生正 (负) 激励的难易程度

 

感知器

定义: 感知器就是神经网络中的神经元

 

图示:
 
 

输入:x1-xn

权值:w1-wn
偏置 :w0

激活函数 :跳跃函数
 
 

 

 

输出
 
 

用途:能够拟合全部的线性函数(线性分类、线性回归) 线性分类:可用一条线对目标进行分类。
感知器的训练训练方法:将权重项和偏置项初始化为0,利用感知器规则迭代的修改w 和b,直到完成。

 

关于神经网络,最后提炼了几条要点:

  1. 设计一个神经网络时,输入层与输出层的节点数每每是固定的,中间层则能够自由指定;
  2. 神经网络结构图中的拓扑与箭头表明着预测过程时数据的流向,跟训练时的数据流有必定的区别;
  3. 结构图里的关键不是圆圈(表明“神经元”),而是链接线(表明“神经元”之间的链接)。每一个链接线对应一个不一样的权重(其值称为权值),这是须要训练获得的。  

 以前咱们一直学习线性回归问题和神经网络之间的联系:

好比基础的逻辑回归,结合上面的神经元知识,能够发现,逻辑回归就是激活函数是sigmoid 的单层简单神经网络。也就是说,只要在神经元的输出端有一个合适的损失函数,就能让单个神经元变成一个线性分类器。所以说,那些线性的分类器自己就是一个单层神经网络。

相关文章
相关标签/搜索