1:什么是神经网络?什么是bp神经网络
百度百科:人工神经网络(Artificial Neural Network,即ANN ),是20世纪80 年代以来人工智能领域兴起的研究热点。它从信息处理角度对人脑神经元网络进行抽象, 建立某种简单模型,按不同的连接方式组成不同的网络。在工程与学术界也常直接简称为神经网络或类神经网络。神经网络是一种运算模型,由大量的节点(或称神经元)之间相互联接构成。每个节点代表一种特定的输出函数,称为激励函数(activation function)。每两个节点间的连接都代表一个对于通过该连接信号的加权值,称之为权重,这相当于人工神经网络的记忆。网络的输出则依网络的连接方式,权重值和激励函数的不同而不同。而网络自身通常都是对自然界某种算法或者函数的逼近,也可能是对一种逻辑策略的表达。
神经网络基础:http://www.cnblogs.com/maybe2030/p/5597716.html
比较详细:http://www.360doc.com/content/16/0620/17/32147637_569317441.shtml
bp神经网络:BP神经网络是一种按误差逆传播算法训练的多层前馈网络,是目前应用最广泛的神经网络模型之一。BP网络能学习和存贮大量的 输入-输出模式映射关系,而无需事前揭示描述这种映射关系的数学方程。它的学习规则是使用最速下降法,通过反向传播来不断 调整网络的权值和阈值,使网络的误差平方和最小。
2:为什么单层感知机无法解决最简单的非线性可分问题——异或问题?
1)什么是线性可分问题:
凸壳与线性可分:https://blog.csdn.net/y954877035/article/details/52210734。有严格的数学定义,很清晰。
样本集线性可分的充分必要条件使正实例点集构成的凸壳与负实例点集所构成的凸壳互不相交。
超平面:是n维欧氏空间中余维度等于一的线性子空间,也就是必须是(n-1)维度。
2:bp神经网络深入探究:
一文弄懂bp神经网络:https://www.cnblogs.com/charlotte77/p/5629865.html
写的很详细,有具体的推导过程。关键点是误差进行反向传播,更新权值。
方法是最速下降法:https://blog.csdn.net/mjie_liang/article/details/22427661。使用了泰勒展开去做了简单证明
3:案例
doc 函数名//显示函数的参考文档。
view(net)//显示神经网络图形
这里有利用bp测试集辛烷值含量的完整代码和数据:https://pan.baidu.com/s/1CgncrQor-usOkvUuc7tPTQ
使用: newff(训练集,训练集目标集,隐含层神经元个数)创建神经网络时,
newff(P,T,S) takes,
P - 输入向量
T - 目标向量
Si -隐藏层的大小,如[9,5,3]将有三层隐藏层,个数分别是9,5,3。输出层个数由T决定
返回一个N层前馈反向传播网络。
newff(P,T,S,TF,BTF,BLF,PF,IPF,OPF,DDF) takes optional inputs,
TFi - 第i层的传递函数。 默认为'tansig' 隐藏层和输出层的'purelin'。 BTF - Backprop网络训函数,默认='trainlm'。不是梯度下降法,但是matlab参考文档说是最快的反向传播算法。该算法似乎是训练中等大小的前馈神经网络(最高达几百个权重)的最快方法 BLF - Backprop 权重/偏好学习函数,默认='learngdm'。 PF - 性能函数,默认='mse'。 IPF - Row cell array of input processing functions. Default is {'fixunknowns','remconstantrows','mapminmax'}. OPF - Row cell array of output processing functions. Default is {'remconstantrows','mapminmax'}. DDF - Data division function, default = 'dividerand';