首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

多变量多因子的非线性模型

一、神经网络模型

神经网络模型的灵感来源于生物体内的神经网络,大量的神经元(可以理解为变量)之间相互联系,共同协作处理问题。在模型中,同样存在诸多神经元,他们之间相互作用决定输出的结果。通过不断调整输入神经元的权重,以达到目标值,这也就是训练的过程

二、BP神经网络

BP的全称是Backpropagation,译为反向传播,是目前应用最为广泛的神经网络模型之一。神经网络的训练目的是为了获得一组权重,使得输入量带入模型得出的输出量与目标变量误差最小,若误差值不符合条件,则返回将权重增加或减小,再次带入模型验证,这样的一个反向修改带入模型的过程就是BP神经网络的训练过程

如果输入神经元与输出神经元是线性关系,可以直接进行线性回归,若非线性关系,就可以利用BP神经网络模型。BP神经网络模型特别适用于存在众多变量的多层非线性网络,给出的结果既可以是定性的(如男/女)也可以是定量的(如3/5/7)

三、过程

神经网络结构图举例:

该结构包括1个隐含层,输入层,隐含层和输出层分别包含3个,2个和2个神经元

首先确定隐含层数量和隐含层神经元个数

分别选择输入层至隐含层,隐含层至输出层的传递函数

确定初始权重,包括输入层神经元和隐含层神经元的权重

运行模型,得到输出值,计算输出值与目标输出的误差,如误差大于预先设定的参数,则返回修改权重,直到误差降到可以接受的范围

Note 1:

隐含层太多和层中神经元太多,会产生过度拟合,即模型对于训练集内的数据测试效果极好,误差极小,但训练集外的数据,效果极差,误差极大

隐含层太少和层中神经元太少,则会在训练时就产生较大误差

当前并没有标准的确定方法,但通常会设定一个隐含层,而隐含层神经元的数量随着输入神经元的个数变大变小

隐含层个数和层中神经元个数的确定缺乏理论依据是BP神经网络的缺点之一,很多时候改变这些就会改变模型的输出结果,这时候就显得这个声名赫赫的模型不甚靠谱,当然百分百准确的模型是不存在的

Note 2:

传递函数的存在使得BP神经网络可以处理非线性问题,他们将上一层神经元的加权和投射到下一层的神经元上。可微分的函数都可以作为传递函数,常用的有两种,一是Sigmoid函数,1/(1+e^(-x)),结果在到1之间,二是Hyperbolictangent函数,[(e^x-e^(-x))/[e^x +e^(-x)],结果在-1到1之间

Note 3:

计量输出值与目标值的偏差时,一般选用均方误差,即输出值与目标值差值平方的均值

Note 4:

以流程的训练过程举个栗子:输入层神经元ABC隐含层神经元JF输出层M为例,其中w1,w2和w3为输入层至隐含层神经元J的权重,w4和w5为隐含层至输出层神经元M的权重,设定初始权重后,两次的传递函数都选择Sigmoid函数f(x)=1/(1+e^(-x)),流程大致是:

首先计算输入层神经元加权和:j = w1×A + w2×B + w3× C

接着动用传递函数,将输入层的值彻底传递到隐含层神经元J:J = f(j) = 1/[(1+e^(-j)]

然后计算隐含层神经元加权和:m = w4×J + w5×K

继续动用传递函数,将隐含层的值彻底传递到输出层神经元M:M = f(m) = 1/[(1+e^(-m))]

计算总误差:[(M’ – M)^2 + (N’ – N)^2]/2

若总误差可接受,则w1,w2,w3,w4和w5就是所求的权重,带入模型即可以用于检验和预测,如不可接受则更新这5个权重,重新跑流程

  • 发表于:
  • 原文链接http://kuaibao.qq.com/s/20180127G063U100?refer=cp_1026
  • 腾讯「腾讯云开发者社区」是腾讯内容开放平台帐号(企鹅号)传播渠道之一,根据《腾讯内容开放平台服务协议》转载发布内容。
  • 如有侵权,请联系 cloudcommunity@tencent.com 删除。

扫码

添加站长 进交流群

领取专属 10元无门槛券

私享最新 技术干货

扫码加入开发者社群
领券