目录
一. 问题与背景
二、例子
三、常用的实际问题
本文讲述BP神经网络主要解决了什么场景的问题。
原文来自老饼玩转-BP神经网络http://bp.bbbdata.com/teach#91
一. 问题与背景
问题:已知y和X存在某种关系(X和y可以是一个向量),我们希望得到y和X的数学关系,这样在知道X的值,可以求得y的值。
第一种场景
我们完全知道X和y的内部机制,那么我们可以根据X和y的逻辑关系推导出X和y的数学关系。例如物体自由落体运动时,位置与时间的关系。
第二种场景
我们只知道X和y的部分逻辑关系,得到的数学表达式带有参数,那么,我们可以通过采集历史数据,用最小误差的方法,去估算参数。例如,根据胡克定律,我们知道力和变形量成线性关系,F=-kx,k待定,可以采集数据,估算出k。
第三种场景
完全不知道X和y的逻辑关系。这时的解决方案是,采集到大量历史数据样,再找一个函数,通过调整函数的参数,使函数与历史数据吻合。再用测试数据,检验该函数在新样本中是否可用。
通过对比,我们可以知道,第一种场景得到的数学关系是非常可靠的,第二种其次,第三种就纯属黑箱拟合了。但在X和y的内部逻辑完全不知道,或过于复杂时,第三种反而是一种唯一可用的方案。
而BP,就是解决第三种场景的众多方法中极为出采的方法之一。
二、例子
我们对系统采集了一些历史样本,投放到一个3个隐神经元的网络(实际就是一个函数F(X))中训练,在历史数据训练好后,就可以投入生产中进行预测,例如,输入【0.5,0.5】,网络就输出0.7636的预测值。具体实现在《一个简单的BP案例DEMO》
三、常用的实际问题
此外,BP在实际中,还常常用于,数值预测、模式识别、曲线拟合、数据压缩(特征提取) 等等。
BP神经网络是可以解决很多问题的,比较万能,但我们不会所有问题都会使用BP神经网络。
在我们在知道X,Y之间的一些特性的条件下,我们更愿意充分利用这些特性,建立其他模型,这样更具解释性。
相关文章
《BP神经网络梯度推导》
《BP神经网络提取的数学表达式》
《一个BP的完整建模流程》



