2018年(273)
分类: 大数据
2018-06-19 15:36:59
本文主要是学习BP神经网络的一个总结,其本身也是机器学习中比较基础、适合入门的模型。
目前本人对于机器学习也还只是入门状态,对于很多名词仍然是一知半解(感觉机器学习中的很多术语本身也是模棱两可的),对于很多公式也是不求甚解,因此这篇文章是尝试用自己的语言和理解来复述所学习到的知识,如果有错误之处还望大牛们不吝斧正。
霍金说过每多一个数学公式,就会少一半的读者,因此这里也会尽量少用公式,要用也只用简单易懂的公式。而且个人觉得神经网络中的很多公式是可以感性地去认识的,能完全明白推导过程自然最好,但在不求甚解的状态下能达到感性的认知也未必不是一个快速掌握的好方法。
另外本文中用到了不少矩阵相关的知识,忘记了的同学可以看附录中的整理。
神经元是神经网络的基本组成,如果把它画出来,大概就长成下面这样:
图中神经元左边的x表示对神经元的多个输入,w表示每个输入对应的权重,神经元右边的箭头表示它仅有一个输出。
当然神经元也有很多种,下面介绍两种比较基础的。
神经网络技术起源于上世纪五、六十年代,当时叫感知机(perceptron),其中的单个神经元我们可以叫作感知器。感知器的特点具有浓厚的时代气息:其输入输出都是二进制形式的(据说由于计算技术的落后,当时感知器传输函数是用线拉动变阻器改变电阻的方法机械实现的)。
如上图所示,感知器有多个二进制输入(值只能是0或1)X1、X2..Xn,每个输入有对应的权值W1、W2..Wn(图中没画出来),将每个输入值乘以对应的权值再求和( ∑XjWj ),然后与一个阈值(threshold) 比较,大于阈值则输出1、小于阈值则输出0。 写成公式的话如下:
如果把公式写成矩阵形式,再用b来表示负数的阈值(即b=-threshold),那就得到了如下公式:
例如你所在的城市将有一个你的偶像的演唱会,你正决定是否观看,你可能会通过以下三个方面来权衡你的决定: