人工神经网络是一种应用类似于大脑神经突触联接的结构进行信息处理的数学模型。在工程与学术界也常直接简称为神经网络或类神经网络。神经网络是一种运算模型,由大量的节点(或称神经元)和之间相互联接构成。每个节点代表一种特定的输出函数,称为激励函数(activation function)。每两个节点间的连接都代表一个对于通过该连接信号的加权值,称之为权重,这相当于人工神经网络的记忆。网络的输出则依网络的连接方式,权重值和激励函数的不同而不同。而网络自身通常都是对自然界某种算法或者函数的逼近,也可能是对一种逻辑策略的表达。
1、神经网络模型
神经网络就是一组神经元连接在一起的集合。如下图是一个简单的神经网络,包括三个层:输入层(Layer1)、输出层(Layer3)、隐藏层也叫中间层(Layer2)。输入层即我们输入特征X1、X2...的神经元,输出层是输出假设计算结果的神经元,而第二层在训练集中它既不是x也不是y,所以叫隐藏层。
下图可以清楚地看到,隐藏层是如何计算非线性假设的,
激活项,
为层与层之间的影射(权重)。
2、用向量形式计算假设函数(
上标为层数即为第二层)
1)首先用表示第二层的激活项
的输入特征(这为通过权重
和原始特征集计算得到的复杂特征,公式如下
),以此类推。
2)为第二层的输入特征集合,并可以求得第二层激活项的集合
,
3)上一步求出的激活项中,添加一个为偏置单元,求
为第三层的输入特征集。并由公式
求得假设函数。
这种从输入层开始计算假设函数的方法,称为“向前传播”
3、神经网络的架构
看下面神经网络当挡掉第一层,剩下的部分跟逻辑回归相似,前面我们说到了以向量的形式计算,第二层到第三层的计算公式
,与逻辑回归的假设方程为
一致。这部分实际上是逻辑回归,只是它输入的不是原始的特征,而是由第一层原始特征根据不同的参数(权重)通过逻辑回归的学习而得到的复杂特征。
神经网络不仅只有一个隐藏层,它还可以有多个隐藏层2,3以及更多隐藏层组成,如下,第二层第三层都是隐藏层
4、例子与直观感觉
神经网络可以用来计算复杂的非线性假设。如下面图形我们怎么用神经网络来计算,下面图形的假设函数?使正样本都尽可能的在决策边界红色线内。
首先我们简化这个图形,使其更直观看到神经网络的计算过程,如下图,简化成一个x1和x2相同为真或同时假,为正样本。即可以分解为AND 和OR的问题。
下面是神经网络AND运算的步骤及结果图,发现神经网络运算的结果与逻辑运算“与”的结果一致。
下面是神经网络OR运算的步骤及结果图
通过AND和OR的计算结果说明了单个神经元的计算过程。最后我们可以将单独的AND和OR得简单神经元整合成计算XNOR的神经网络模型,如下图(图比较明了,这里就不作详细描述)。我们可以看到左下角的神经网络的三个层。