人工神经网络(Artificial Neural Network)算法简介
人工神经网络,简称神经网络,是一种模仿生物神经网络的结构和功能的数学模型或者计算模型。其实是一种与贝叶斯网络很像的一种算法。之前看过一些内容始终云里雾里,这次决定写一篇博客。弄懂这个基本原理,毕竟现在深度学习太火了。
神经网络是一种方法,既可以用来做有监督的任务,如分类、视觉识别等,也可以用作无监督的任务。首先,我们看一个简单的例子。如下图所示(这个图网上有很多人引用了,但我找不到出处,欢迎指正),如果我们想训练一个算法可以使其识别出是猫还是狗,这是很简单的一个分类任务,我们可以找一条线(模型),在这个二元坐标中进行“一刀切”,把这两组数据分开。我们知道,在解析几何中,这条直线可以用如下的公式表达:
y = w_1 \cdot x_1 + w_2 \cdot x_2 + w_0


这里的$w_1$和$w_2$就是两个坐标轴上的系数,可以称为权重。$w_0$可以称作截距,也叫做偏移。新来一个数据点,也就是一组输入值$(x_1,x_2)$,如果在这条线的左边,那么它就是一只狗,如果在右边就是一只猫了。这就可以用一个简单的神经网络来表示。如图2所示,$x_1$和$x_2$分别是输入值,Y是输出值,两条边的权重分别是$w_1$和$w_2$。这是一个最简单的神经网络了。这就是使用神经网络定义了一个线性分类器了。这里的一个圆形的节点就是一个。我们也可以采用另一种方式,即在输入输出之间加一个中间节点S,然后增加一个输出层,包括两个节点$Y_1$和$Y_2$,分别对应猫和狗,最后哪个输出节点的值大,那么这个数据就属于哪个类别(猫或者狗)。



