人工智能三大学派

行为主义:

主要基于控制论,构建感知-动作控制系统,如倒立摆控制等等,平衡车之类的,主要用于模仿行为。

符号主义:

主要基于逻辑表达式,用if-else或者case之类的去求解问题,逻辑与或非等。如专家系统等等,主要用于模仿理性思维。

连接主义:

主要基于仿生学,模仿神经元连接。如神经网络等等,主要用于模仿自觉和感性思维。

但是这篇的话,主要介绍偏向于连接主义。

单输入神经元

01-神经网络模型简介

多输入神经网络

神经网络计算模型最早就是MP模型了:

w1
w2
w3
w4
b
**函数f
x1
求和
x2
x3
x4
1
输出a

当我们将阈值b看做权重w5,将1看做x5时,用数学公式可以简单描述为:

n = ∑ x = 1 5 w i x i n=\sum_{x=1}^{5}w_ix_i n=x=15wixi
a = f ( n ) a=f(n) a=f(n)

又或者直接描述为

n = ∑ x = 1 4 w i x i + b n=\sum_{x=1}^{4}w_ix_i +b n=x=14wixi+b
a = f ( n ) a=f(n) a=f(n)01-神经网络模型简介
01-神经网络模型简介

可以看到,原始数据为 X = [ x 1 , x 2 , x 3 , x 4 ] X=[x_1,x_2,x_3,x_4] X=[x1,x2,x3,x4],输入神经网络的话,得转变为齐次坐标 X = [ x 1 , x 2 , x 3 , x 4 , 1 ] X=[x_1,x_2,x_3,x_4,1] X=[x1,x2,x3,x4,1]
最后一个维度呢,主要是用来在特定方向平移原始X用的,后面感知机那里会举个例子。

传递函数

神经元的传输函数有很多种,常用的用三种:

硬极限传输函数hardlim

01-神经网络模型简介

线性传输函数purelin

01-神经网络模型简介

对数-S型传输函数sigmoid

01-神经网络模型简介

其他传输函数

01-神经网络模型简介

单层神经网络

N = W P + b N=WP+b N=WP+b,其中权重矩阵W如下:

01-神经网络模型简介
w 1 , 2 w_{1,2} w1,2代表该w属于第 1 个神经元 并且与第2个输入 p2 相连:
01-神经网络模型简介

A = F ( N ) A=F(N) A=F(N)

01-神经网络模型简介

图中,W是一个SxR的矩阵,b和n都是一个Sx1的向量,f为传输函数,a为一个Sx1的输出向量。

多层神经网络

通常我们使用sigmoid作为传输函数时,神经网络原则上一般不超过三层,也就是典型的BP网络。超过三层就会容易产生梯度消失问题。

01-神经网络模型简介
w 1 , 2 3 w_{1,2}^3 w1,23代表该w属于第3层,且输出为第 1 个神经元 并且与第2个输入 p2 相连:
01-神经网络模型简介

感知机

感知机主要用来处理二分类问题,常采用对称硬极限传输函数hardlims:
01-神经网络模型简介
对于单个神经元来说,W和P是一个维数相等的向量,感知机的分界线为:

W P + b = 0 WP + b =0 WP+b=0
移项得 W P = − b WP= -b WP=b ,即代表P在W向量上的投影长度等于 − b ∣ W ∣ \frac{-b}{|W|} Wb

例如当W=[-1,1],b= -1 时,判定边界为 ∣ P ∣ c o s ( a l p h a ) = − − 1 ( − 1 ) 2 + 1 2 |P|cos( alpha ) = -\frac{-1}{\sqrt{(-1)^2 + 1^2 }} Pcos(alpha)=(1)2+12 1
01-神经网络模型简介

通过上面例子,我们可以了解到,阈值b的作用,主要就是用来平移感知机边界的,平移就是沿着权重向量w的方向进行的。

递归网络

递归网络主要用来做与时间序列有关的分析。该网络是一个带有反馈的网络,即部分输出会连接到输入,常见的有RNN之类的。

01-神经网络模型简介

递归网络的构建子模块延时模块积分器模块

01-神经网络模型简介
01-神经网络模型简介

竞争网络

Hamming竞争网络

Hamming网络是专门为了求解二值模式识别问题而设计的竞争网络(输入必须是-1或者1),含有一个前馈层和一个递归层,用于判别输入向量P更接近哪个标准向量 w i w_i wi

01-神经网络模型简介

前馈层:

01-神经网络模型简介
由于输入向量元素都由-1和1组成,所以为了对任意输入P都有 W P + b > = 0 WP+b>=0 WP+b>=0,所以b中的元素值都为R,即当P的所有元素都为-1, w 1 w_1 w1的元素都为1时,仍有WP+b >=0:
01-神经网络模型简介
01-神经网络模型简介
b中的所有元素都为R

递归层:

01-神经网络模型简介

对于递归层的解释,有三种方法:
1、将其看做对向量的不断分解合成过程:

01-神经网络模型简介
01-神经网络模型简介

2、将其看做对向量元素的不断耦合计算过程:

01-神经网络模型简介

3、设离散动力系统方程为 X k + 1 = A ∗ X k X_{k+1}=A*X_k Xk+1=AXk 求动力系统轨迹

01-神经网络模型简介
我们很容易能看到,原点为鞍点,由于poslin**函数(现在一般深度学习叫ReLU函数)会将小于0的部分去掉:
01-神经网络模型简介
所以过了一层**函数以后,系统的运动轨迹即为:
01-神经网络模型简介

我个人更喜欢采用第三种方式去解释神经网络行为,因为只要你线性代数好点,这种方式非常直观形象,我们能够知道,如果 x 1 > x 2 x_1>x_2 x1>x2,那么动态系统收敛的结果必然是 x 2 = 0 x_2=0 x2=0,也就是说该递归网络能够通过递归计算,将除了最大值所在的维度以外的其他维度的值都变成0。

Hopfield竞争网络

Hopfield网络是一种递归网络,但完成Hamming网络两层所完成的工作。

01-神经网络模型简介

例如,W权重矩阵与偏置矩阵b如下:

01-神经网络模型简介
01-神经网络模型简介

和Hamming网络只有一个非0值输出不同,Hopfield网络是直接收敛到某个模式上。

01-神经网络模型简介

卷积神经网络

之前介绍的神经网络,基本上都是全连接神经网络,与全连接不同,卷积网络的卷积层是局部连接的。常见的如CNN网络结构如下:
01-神经网络模型简介

卷积层

假设不进行零填充( zero -padding )操作,那么输出的特征图尺寸就会比输入样本尺寸小。通常我们为了保持卷积后的特征图和原图大小一致,卷积时会采用padding操作。
01-神经网络模型简介

卷积操作

这个卷积操作使用的卷积核,在传统图像处理中,我们管它叫滤波核(滤波器),所谓的卷积在传统图像处理中叫滤波,但是传统图像处理是人为的设计滤波器,而CNN呢它是可以自己训练出一个合适的滤波器。
01-神经网络模型简介
卷积计算为:

5x4+3x(-1)+1x(-1)+2x(-1)+5x3+2x(-1)+1x(-1)+2x(-1)+6x3=42
即对应位置相乘,然后将结果再全部加起来。

传输函数

卷积结果不能直接作为特征图,需通过**函数计算后,把函数愉剧结果作为特征图,常见的**函数包括sigmoid,tanh,ReLU 等函数,深度学习中为了避免梯度消失,常采用ReLU这种线性的函数

padding操作

01-神经网络模型简介

池化层

池化层的作用是减小卷积层产生的特征图的尺寸选取个区域,根据该区域的特征图得到新的特征图,这个过程就称为池化操作。也可以理解为降采样过程。
01-神经网络模型简介

池化类型

如采用大小为2x2的池化核对下列特征图进行池化,可以采用不同的池化方式,如果目标对象是纹理,轮廓,则选用max-pooling比较好,如果目标对象是偏向于背景或者其他信息时,采用mean-pooling比较好。
01-神经网络模型简介

池化操作

以最大池化举例,采用池化核大小为2x2,池化:
01-神经网络模型简介

卷积和池化的联系

如果你比较熟悉信号处理的话,很容易就知道卷积层与连续小波变换提取低(高)频信号有着异曲同工的妙处,而池化层与离散小波变换提取低(高)频信号有着异曲同工的妙处。

卷积层 ----------> 连续小波变换(CWT)
池化层 ----------> 离散小波变换(DWT)

全连接层

和之前的全连接网络相同,其实就是传统BP网络,在次用于模式判别。
01-神经网络模型简介

输出层

如果是回归问题,我们原封不动输出,或者采用线性函数计算一下输出就好了:

y p = ∑ m = 1 M w p m x m y^p=\sum_{m=1}^Mw_{pm}x_m yp=m=1Mwpmxm

如果是分类问题,我们用softmax函数计算各类的似然概率就好了,然后将概率最大的类作为分类结果即可:

y k = e x p ( a k ) ∑ e x p ( a i ) y^k=\frac{exp(a_k)}{ \sum exp(a_i) } yk=exp(ai)exp(ak)

实际使用softmax函数时,如果由于网络输出有较大的数,比如500,经过指数运算很容易产生溢出,可以做如下处理:

取C为输出中的最大值,然后计算
y k = e x p ( a k − C ) ∑ e x p ( a i − C ) y^k=\frac{exp(a_k-C)}{ \sum exp(a_i-C) } yk=exp(aiC)exp(akC)

相关文章:

  • 2021-08-08
  • 2021-11-27
  • 2022-01-09
  • 2021-11-24
猜你喜欢
  • 2021-07-24
  • 2021-05-25
  • 2021-05-27
  • 2021-07-02
  • 2021-09-04
  • 2021-09-03
相关资源
相似解决方案