第四周 神经网络表示

https://www.coursera.org/learn/machine-learning/home/week/4

基本概念

wikipedia

人工神经网络(Artificial Neural Network,ANN)简称神经网络(Neural Network,NN)或类神经网络。在机器学习和认知科学领域,是一种模仿生物神经网络(动物的中枢神经系统,特别是大脑)的结构和功能的数学模型或计算模型,用于对函数进行估计或近似。神经网络由大量的人工神经元联结进行计算。大多数情况下人工神经网络能在外界信息的基础上改变内部结构,是一种自适应系统,通俗的讲就是具备学习功能。现代神经网络是一种非线性统计性数据建模工具。

Neuron

神经元是神经网络最基本的逻辑单元

  • $x_0$被称为偏置项(bias unit),值为1,$b$则为偏置项常数。
  • $w$ 神经元的各个突触的权值
  • $f$ 激励函数
  • $t$ 神经元的输出

一个神经元的功能是求得输入向量与权向量的内积后,经一个非线性传递函数得到一个标量结果。把一个n维向量空间用一个超平面分割成两部分(称之为判断边界),给定一个输入向量,神经元可以判断出这个向量位于超平面($wx+b=0$)的哪一边。

单层神经元网络

是最基本的神经元网络形式,由有限个神经元构成,所有神经元的输入向量都是同一个向量。由于每一个神经元都会产生一个标量结果,所以单层神经元的输出是一个向量,向量的维数等于神经元的数目。

多层神经元网络

通常来说,一个人工神经元网络是由一个多层神经元结构组成,每一层神经元拥有输入(它的输入是前一层神经元的输出)和输出,每一层$Layer^{(i)}$是由$N^{(i)}$($N^{(i)}$代表在第i层上的N)个网络神经元组成,每个$Layer^{(i)}$上的网络神经元把对应在$Layer^{(i-1)}$上的神经元输出做为它的输入,我们把神经元和与之对应的神经元之间的连线用生物学的名称,叫做突触(英语:Synapse),在数学模型中每个突触有一个加权数值,我们称做权重,那么要计算第i层上的某个神经元所得到的势能等于每一个权重乘以第i-1层上对应的神经元的输出,然后全体求和得到了第i层上的某个神经元所得到的势能,然后势能数值通过该神经元上的激活函数(activation function,常是∑函数(英语:Sigmoid function)以控制输出大小,因为其可微分且连续,方便差量规则(英语:Delta rule)处理。),求出该神经元的输出,注意的是该输出是一个非线性的数值,也就是说通过激励函数求的数值根据极限值来判断是否要激活该神经元,换句话说我们对一个神经元网络的输出是否线性不感兴趣。

前馈网络

一种常见的多层结构的前馈网络(Multilayer Feedforward Network)由三部分组成,

  • 输入层(Input layer),众多神经元(Neuron)接受大量非线形输入消息。输入的消息称为输入向量。
  • 输出层(Output layer),消息在神经元链接中传输、分析、权衡,形成输出结果。输出的消息称为输出向量。
  • 隐藏层(Hidden layer),简称“隐层”,是输入层和输出层之间众多神经元和链接组成的各个层面。隐层可以有一层或多层。隐层的节点(神经元)数目不定,但数目越多神经网络的非线性越显著,从而神经网络的强健性(robustness)(控制系统在一定结构、大小等的参数摄动下,维持某些性能的特性)更显著。习惯上会选输入节点1.2至1.5倍的节点。

这种网络一般称为感知器(对单隐藏层)或多层感知器(对多隐藏层),神经网络的类型已经演变出很多种,这种分层的结构也并不是对所有的神经网络都适用。

神经网络的表示

先说一下表达约定

  • $a_i^{(j)}$: 表示 第 j 层,的第 i 个神经元;特殊的$a_0^{(j)}$,与$x_0^{(j)}$类似,表示第 j 层的偏置单元。
  • $w_i^{(j)}$: 表示 $a_i^{(j+1)}$ 的树突权重向量,则 $w^{(j)}$: 表示第 i-1 层的权重矩阵,$w_{ik}^{(j)}$,则表示 $w_i^{(j)}$ 向量的第k个分量。
  • $g$: 表示激励函数。

则$Layer^{(2)}$计算表达为

$Layer^{(3)}$ 计算表达为

向量化表达

其中 w 矩阵的每一行都是对应神经元树突的权重向量。

假设原始样本特征为$\mathbb{R}^{31}$,第二层神经元个数为 7 个,则 w为 $\mathbb{R}^{74}$,输出为 $\mathbb{R}^{7*1}$

神经元模拟逻辑运算

对于 Sigmoid 函数,

假设 $x_1,x_2 \in \{1,0\}$

AND 运算

$x_1$ $x_2$ $x_1 \ and \ x_2$
0 0 $g(-30) \approx 0$
1 0 $g(-10) \approx 0$
0 1 $g(-10) \approx 0$
1 1 $g(10) \approx 1$

OR 运算

$x_1$ $x_2$ $x_1 \ or \ x_2$
0 0 $g(-10) \approx 0$
1 0 $g(10) \approx 1$
0 1 $g(10) \approx 1$
1 1 $g(30) \approx 1$

XNOR 运算

$x_1$ $x_2$ $a_1$ $a_2$ $x_1 \ XNOR \ x_2$
0 0 0 1 1
0 1 0 0 0
1 0 0 0 0
1 1 1 0 1

神经网络多分类

对于 $Layer^4$ 输出层来说,多分类不再输出一个标量,而是输出

1 所在的位置表明是这种分类,0 表示不是这种分类。则原始样本$(x^{(i)},y^{(i)})$的y值也应该是3维向量。训练的目标则是,让模型输出的$y’$向量尽可能与$y$向量相似。


- - - - - - - - End Thank For Your Reading - - - - - - - -
0%