神经网络模型和算法:

Bp神经网络是一种反向传播机制,反馈错误,固化期望输出

神经网络,深度学习的底层

神经元由三层结构组成:

输入层【例如信号、知识的输入】,隐藏层【用作处理、训练、学习,必不可少,相当于知识的理解】,输出层【经过“学习”后的输出】。

误差反馈办法:在模拟,交互时,常用到线性拟合,然而现实中大部分事务时是非线性的,而神经网络就是通过不断的误差反馈,来拟合这种非线性的事务。

神经网络结构确定,最重要的就是权值确定【神经网络算法就是权值的调整确定】

生物神经元:输入,信号加工、传递,输出

人工神经模型:输入信号x,权值w【不知关系,黑箱模型】,阈值θ【产生刺激最低的信号值,用于选择要处理的信号,防止处理过多】,输出y。x和y用大量的权w来链接。

神经网络系统是多输入,单输出的非线性系统。

神经元输入输出关系【与权、阈有关】,net=wx,y=f(net),f是一种激活函数

上面的关系也可以用向量表示,激活函数常为s函数、双极s函数,均为连续函数

学习训练的模式有前馈,反馈【最好】,自由神经网络,其中反馈模式最好。

神经网络工作状态:学习【利用学习调整权重,使网络输出符合实际】和工作【链接权重不变,作为分类器或预测数据用】

BP是一种有导师、有监督的反馈学习方式。

BP神经网络分类器 bp神经网络分类模型_权值

BP神经网络的连接,每根线都是一个权值。

神经网络就是找正确权值,而权值被输入、输出所固定。

找到一组实际输出标准输出误差最小的权值,找的他最小值,即函数的极值,所以激活函数要连续。

BP神经网络分类器 bp神经网络分类模型_拟合_02

神经网络工作步骤如下

首先,计算个神经元输入和输出,第二步计算误差函数对各输出层神经元偏导数,第三步计算误差函数对隐藏层神经元求偏导数,利用前两步的结果修正权值,这其中有个学习率来修正【学习】。计算全局误差,决定是否满足要求,不满足则继续修正。

关键在于有正确标准数据,建立起了对应数据、标准输出,不满足则继续修正·,所以神经网络难以处理没有预料到的情况。

应用最多的地方:拟合,评价,分类。

总结:神经网络由三层架构组成,通过黑箱,构建了一个x【输入】/y【输出】关系,黑箱进行误差、修正误差、修正全过程、训练过程。

神经网络编程:

神经网络编程案例推荐书:《MATLAB神经网络43个案例分析》

普通的分类,通常用画线把它们区分开来,而有时候不规则,使用不了画线

则可用数据作为输入,类型作为输出来分类。

神经网络还可用于评价类、预测类有输入输出关系的问题。

参数:数量【输入】,输出的一般为一个参数。

在MATLAB中编码神经网络算法,有的函数要作为激发,有的要作为输出,有的要作为学习规则,例如下面这个例子:

BP神经网络分类器 bp神经网络分类模型_拟合_03

如何用代码构建神经网络?至少要满足三层架构,否则得到的输出难以符合期望,其中隐藏层更是必不可少,甚至不能过于简单的。

下图希望训练点,期望输出线,得到的结果却不拟合。

BP神经网络分类器 bp神经网络分类模型_BP神经网络分类器_04

这是因为没有训练。故隐藏神经元越多越好【实际上多则慢】

BP神经网络分类器 bp神经网络分类模型_权值_05

大量的现实表明,神经网络模型适合大样本的拟合,适合大样本数据量。如果小样本时用神经网络则显的外行,反而不如最小二乘拟合有效。