BP 神经网络 —— 逆向传播的艺术 - 张磊的文章 - 知乎 https://zhuanlan.zhihu.com/p/36711903
超级推荐这篇文章,写得非常通透!
动手推导一下,对BP神经网络会有一个更深入的了解,有高等数学基础知识的同学都能看懂的!
BP神经网络的思想就是考虑如何利用神经网络参数W,使得经过神经网络模型的输出 尽可能地接近期望输出
.
因此有一个损失函数(loss function)用来描述测量值和实际值之间的关系,损失函数可以任意定义,只要反映了它们两者之间的关系。越好地解释这两个量之间的关系,当然这个损失函数也越好。
清华大学出版社的那一版“智能控制基础”中定义的损失函数就是最小二乘的形式:
而在上面那篇文章里介绍的损失函数的形式是:,具体为什么选择这种形式文章里面讲得很详细,我也查了其他资料,做人工智能方面分析的都采用的是这种损失函数(分类效果明显)。
根据梯度下降算法的原理,用来替换x,不断迭代,最终会找到一个符合误差条件的最小值。
那么在BP神经网络里面,用来替换w,最终也可以找到满足我们要求的一套参数,因为L与w之间一般没有直接的关系,
需要链式求导法则变换一下才得到。
那么可以利用BP神经网络做什么呢?
因为利用BP网络可以建立对象的结构模型,所以分类和预测问题是神经网络最常见的一种应用。举几个例子:根据商店前几年某商品的销量建立模型,用来预测今年的销量,提前备货;根据电影的关键词给电影分类(动作、爱情、悬疑....);建立数字/字母模型来识别车牌等。
百度百科中总结的应用类型有以下四个方面:
1)函数逼近:用输入向量和相应的输出向量训练一个网络逼近一个函数。
2)模式识别:用一个待定的输出向量将它与输入向量联系起来。
3)分类:把输入向量所定义的合适方式进行分类。
4)数据压缩:减少输出向量维数以便于传输或存储。