Agenda
1. 人工神经网络ANN
以下都是以分类任务为例来理解神经网络的相关内容。
Version 1.0: 对于一系列的输入数据input data,如果目标是线性地分成两类。
- 最简单的情况也是大家比较熟悉的情况:对于二维数据(x1,x2)而言,就是找到一条直线把他们分隔开(如下图所示)。这条直线可以用 w 1 ∗ x 1 + w 2 ∗ x 2 + b = 0 w1*x1+w2*x2+b=0 w1∗x1+w2∗x2+b=0来表示。
这个时候如果用神经网络的角度来看的话就是
1.1 神经元模型/感知机
神经元模型就是如上图所示的对输入数据进行加权的一个模型(不太严谨,暂时先这样理解)。另外经常遇到的还有一个概念是感知机。感知机其实就是如上图所示的过程,有输入层,有神经元,最后经过激活函数得到输出。所以当提到神经元模型/感知机的时候,大家可以想一下上图这个比较形象的示意图。
1.2 激活函数
注意这里涉及到一个比较新的概念是激活函数(activation function)。主要是因为我们要做的是一个分类的任务,最后的输出希望得到的是一个类别,用数学的表示就是输出1还是0。经过神经元模型的处理以后得到的f并不是最终我们想要得到的结果,所以最后需要一个激活函数来处理一下得到最终想要的结果。对于这个简单的例子,我们可以设定说 f > = 0 f>=0 f>=0, 输出类别1; f < 0 f<0 f<0,输出类别0。看起来好像用一个step function就可以解决。但是考虑到step function 具有并不连续,不光滑这些不太好的性质,因为常常用sigmoid函数这个连续且光滑的函数来作为常用的激活函数。sigmoid函数的定义如下
s i g m o i d ( f ) = 1 1 + exp ( − f ) sigmoid(f)=\frac{1}{1+\exp(-f)} sigmoid(f)=1+exp(−f)1