【深度学习】之一:神经网络

神经网络的本质就是,一层一层的提取特征,一般层数越多,提取的特征就越抽象,就越更接近原始数据的本质。最后对这些特征进行预测输出。
一个神经网络的训练算法就是让权重(通常用w表示)的值调整到最佳,以使得整个网络的预测效果最好。
事实上,在神经网络的每个层次中,除了输出层以外,都会含有这样一个偏置单元。这些节点是默认存在的。它本质上是一个只含有存储功能,且存储值永远为1的单元。
神经网络中,除了输入层、输出层,其他的都为隐层。
对于隐层较少(2个隐层以下)的神经网络叫做浅层神经网络,也叫做传统神经网络。增加隐层的话,就成为深层神经网络(DNN)。
1989年Rober Hecht-Nielsen证明了对于任何闭区间内的一个连续函数都可以用一个隐含层(神经元个数足够多)的神经网络来逼近,这就是万能逼近定理。输入层和输出层的节点个数都是确定的,而隐含层节点个数不确定。
1.单隐层神经网络可以逼近任何连续函数:连续函数你可以看成是一条不断的线,可以是一条任何弯曲的线,线的两测是被区分的两个类别。之所以说可以是任一的线,是因为再怎么扭曲的线都是可以用无限小的直线连接而成,既然是直线,那就可以使用线性分类器,所以,一条曲线就可以用许多线性分类器组成,当同时满足线性分类器都为1时,那么整个曲线的神经网络就被满足为1了。一个神经元就是一个线性分类器,分类器越多,就越拟合曲线。
2.多隐层比单隐层效果好,更好的效率。
3.对于分类,3层神经网(1个隐层)比2层神经网(无隐层)的效果好,因为前者可以区分非线性。但是,层数再往上增多,则效果的上升就不那么明显了。
4.图像处理之所以需要深层次的神经网,是因为将图像转换成结构化的数据需要有非常多的维度,也就是说需要非常多的特征才能来描述图片。

BP算法
BP算法用在传统神经网络上,是一种求解权重w的算法,通常分为两部:
(1)FP:信号正向传递(FP)求损失(输出层误差)
(2)BP:损失反向回传(BP)误差
算法推导过程:
(1)正向传递求损失(正向误差),这个过程较为简单,即对于输入x、偏置1与权重w和b进行各个层次的加权、并通过激活函数的计算,求出输出值。
在这里插入图片描述
在这里插入图片描述
(2)反向损失回传(输出层误差回)
当误差求出来之后,采用随机梯度下降的方法(SGD),每看一个数据就算一下损失函数,然后求梯度更新参数,这个称为随机梯度下降。即对于误差E求他的梯度,即误差下降最快的方向,然后根据这个值修正权值,即当权值为这个修正值时,求的误差会比当前的误差小的最大。
在这里插入图片描述
想要修正权值,这个△w1需要通过随机梯度下降法求得,即对误差求梯度,让这个误差下降最大方向的值作为修正误差。

RBF(径向基)算法
RBF算法应用在传统神经网络上,是使用BP算法神经网络的一个特例。再讲RBF算法神经网络之前,先引入一些数学概念。
1.数学思维方法:几何方法。在读大学之前,我们学习过一次函数、二次函数、三角函数、指数函数、对数函数等,方程则是求函数的零点;到了大学,我们学微积分、复变函数、实变函数、泛函数等。函数是数学一条重要线索,另一条线索是几何,几何是函数形象表达,函数是几何抽象描述,几何研究“形”,函数研究“数”,它们交织在一起推动数学向更深更抽象的方向发展。
函数图像联系了函数和几何,表达两个数之间的变化关系,映射推广了函数的概念,使得自变量不再仅仅局限于一个数,也不再局限于一维,任何事物都可以拿来做映射,维数可以是任意维,传统的函数图像已无法直观地表达高维对象之间的映射关系,这就要求我们在观念中,把三维的几何空间推广到抽象的n维空间。
映射表达的就是一个集合通过某种关系转为另外一个集合。由于映射的对象可以是任何事物,为了便于研究映射的性质以及数学表达,我们首先需要对映射的对象进行“量化”,取定一组“基”,确定事物在这组基下的坐标,事物同构于我们所熟悉的抽象几何空间中的点,事物的映射可以理解为从一个空间中的点到另一个空间的点的映射,而映射本身也是事物,自然也可以抽象为映射空间中的一个点,这就是泛函中需要研究的对象—函数。
从一个线性空间到另一个线性空间的线性映射,可以用一个矩阵来表达,矩阵被看作线性映射,线性映射的性子可以通过研究矩阵的性质来获得,比如矩阵的秩反映了线性映射值域空间的维数,可逆矩阵反映了线性映射的可逆,而矩阵的范数反映了线性映射把一个向量映射为另一个向量,向量的“长度”缩放的比例。
2.范数:把一个事物映射到非负实数,且满足非负性、齐次性、三角不等式,符合以上定义的都可以称之为范数。如上所述,为了更好的在数学上表达这种映射关系,(这里特指线性关系)于是就引进了矩阵。这里的矩阵就是表征上述空间映射的线性关系。而通过向量来表示上述映射中所说的这个集合,而我们通常所说的基,就是这个集合的最一般关系。于是我们可以这样理解,一个集合(向量),通过一种映射关系(矩阵),得到另外一个几何(另外一个向量)。
向量的范数,就是表示这个原有集合的大小。
矩阵的范数,就是表示这个变化过程的大小的一个度量。
那么说到具体几几范数,其不过是定义不同,一个矩阵范数往往由一个向量范数引出,我们称之为算子范数。
0范数–向量中非零元素的个数。
1范数–为绝对值之和。
2范数–就是通常意义上的模
无穷范数–就是取向量的最大值
在这里插入图片描述
在这里插入图片描述
具体怎么用,看不同的领域,来自计算机领域用的比较多的就是迭代过程中收敛性质的判断,一般迭代前后步骤的差值的范数表示其大小,常用的是二范数,差值越小表示越逼近实际值,可以认为达到要求的精度收敛。
总的来说,范数的本质是距离,存在的意义是为了实现比较。一范数二范数也是用来度量一个整体,比如我们两个班的人比较高度,你可以用班里面最高的人(无穷范数)去比较,也可以用班里所有人的身高总和比较(一范数)。
3.距离度量方法

  • 欧式距离(Euclidean Distance)
    中学阶段接触到的两个点在空间中的距离一般都是指欧式距离。在这里插入图片描述

  • 曼哈顿距离(Manhattan Distance)
    顾名思义,在曼哈顿街区要从一个十字路口开车到另一个十字路口,驾驶距离显然不是两点间的直线距离。这个实际驾驶距离就是“曼哈顿距离”。曼哈顿距离也称为“城市街区距离”(City Block distance).在这里插入图片描述

  • 切比雪夫距离(Chebyshev Distance)
    国际象棋中,国王可以直行、横行、斜行,所以国王走一步可以移动到相邻8个方格中的任意一个。国王从格子(x1,y1)走到格子(x2,y2)最少需要都少步?这个距离就叫切比雪夫距离。在这里插入图片描述

  • 闵可夫斯基距离(Minkowski Distance)
    闵氏距离不是一种距离,而是一组距离的定义,是对多个距离度量公式的概括性表述。
    在这里插入图片描述
    因此,根据变参数的不同,闵氏距离可以表示某一类/种的距离。
    闵氏距离,包括曼哈顿距离、欧式距离和切比雪夫距离都存在明显的缺点。例如,二维样本(身高[单位:cm],体重[单位:kg],现有三个样本:a(180,50),b(190,50),c(180,60)。那么a与b的闵氏距离(无论是曼哈顿距离、欧式距离或切比雪夫距离)等于a与c闵氏距离。但实际上身高的10cm并不能和体重的10kg划等号。
    闵氏距离的缺点:
    (1)将各个分量的量纲(scale),也就是“单位”相同的看待了;
    (2)未考虑各个分量的分布(期望,方差等)可能是不同的。

  • 标准化欧式距离(Standardized Euclidean Distance)
    定义:标准化欧式距离是针对欧式距离的缺点而作的一种改进。标准欧式距离的思路:既然数据各维分量的分布不一样,那先将各个分量都“标准化”到均值、方差相等。假设样本集X的均值(mean)为m,标准差(standard devidation)为s,X的"标准化变量"表示为:
    在这里插入图片描述
    标准化欧式距离公式:
    在这里插入图片描述
    如果将方差的倒数看成一个权重,也可称之为加权欧式距离(Weighted Euclidean distance)。

  • 马氏距离(Mahalanobis Distance)
    马氏距离的引出:
    在这里插入图片描述
    上图有两个正态分布的总体,它们的均值分别为a和b,但方差不一样,则图中的A点离哪个总体更近?或者说A有更大的概率属于谁?显然,A离左边的更近,A属于左边总体的概率更大,尽管A与a的欧式距离远一些。这就是马氏距离的直观解释。
    马氏距离是基于分布的一种距离。物理意义就是在规范化的主成分空间中的欧式距离。所谓规范化的主成分空间就是利用主成分分析对一些数据进行主成分分解。再对所有主成分分解轴做归一化,形成新的坐标轴。由这些坐标轴长成的空间就是规范化的主成分空间。
    在这里插入图片描述
    定义:有M个样本向量X1~Xm,协方差矩阵记为S,均值均为向量u,则其中样本向量X到u的马氏距离表示为:
    在这里插入图片描述
    向量Xi与Xj之间的马氏距离定义为:
    在这里插入图片描述
    若协方差矩阵是单位矩阵(各个样本向量之间独立同分布),则Xi与Xj之间的马氏距离等于它们的欧式距离:
    在这里插入图片描述
    若协方差矩阵是对角矩阵,则就是标准化欧式距离。
    欧式距离&马氏距离
    在这里插入图片描述
    马氏距离的特点:
    (1)量纲无关,排除变量之间的相关性的干扰;
    (2)马氏距离的计算是建立在总体样本的基础上的,如果拿同样的两个样本,放入两个不同的总体中,最后计算得出的两个样本间的马氏距离通常是不相同的,除非这两个总体的协方差矩阵碰巧相同;
    (3)计算马氏距离过程中,要求总体样本数大于样本的维数,否则得到的总体样本协方差矩阵逆矩阵不存在,这种情况下,用欧式距离计算即可。

  • 余弦距离(Cosine Distance)
    几何中,夹角余弦可用来衡量两个向量方向的差异;机器学习中,借用这一个概念来衡量样本向量之间的差异。
    (1)二维空间中向量A(x1,y1)与向量B(x2,y2)的夹角余弦公式:
    在这里插入图片描述
    (2)两个n维样本点a(x11,x12,…,x1n)和b(x21,x22,…x2n)的夹角余弦为:
    在这里插入图片描述

    在这里插入图片描述
    夹角余弦取值范围为[-1,1]。余弦越大表示两个向量的夹角越小,余弦越小表示两向量的夹角越大。当两个向量的方向重合时余弦取最大值1,当两个向量的方向完全相反余弦取最小值-1。

  • 汉明距离(Hamming Distance)
    定义:两个等长字符串s1与s2的汉明距离为:将其中一个变为另外一个所需要作的最小字符替换次数。
    汉明重量:是字符串相对于同样长度的零字符串的汉明距离,也就是说,它是字符串中非零的元素个数:对于二进制字符串来说,就是1的个数,所以11101的汉明重量是4。因此,如果向量空间中的元素a和b之间的汉明距离等于它们汉明重量的差a-b。
    应用:汉明重量分析在包括信息论、编码理论、密码学等领域都有应用。比如在信息编码过程中,为了增强容错性,应使得编码间的最小汉明距离尽可能大。但是,如果要比较两个不同长度的字符串,不仅要进行替换,而且要进行插入与删除的运算,在这种场合下,通常使用更加复杂的编辑距离等算法。

  • 杰卡德距离(Jaccard Distance)
    杰卡德相似系数(Jaccard similarity coefficient):两个集合A和B的交集元素在A,B的并集所占的比例,称为两个集合的杰卡德相似系数,用符号J(A,B)表示:
    在这里插入图片描述
    杰卡德距离(Jaccard Distance):与杰卡德相似系数相反,用两个集合中不同元素占所有元素的比例来衡量两个集合的区分度:
    在这里插入图片描述

  • 相关距离(Correlation distance)
    相关系数:是衡量随机变量X与Y相关程度的一种方法,相关系数的取值范围是[-1,1]。相关系数的绝对值越大,则表明X与Y相关度越高。当X与Y线性相关时,相关系数取值为1(正线性相关)或-1(负线性相关):
    在这里插入图片描述
    相关距离:
    在这里插入图片描述

  • 信息熵(Information Entropy)
    以上的距离度量方法度量的皆为两个样本(向量)之间的距离,而信息熵描述的是整个系统内部样本之间的一个距离,或者称之为系统内样本分布的集中程度(一致程度)、分散程度、混乱程度(不一致程度)。
    系统内样本分布越分散(或者说分布越均匀),信息熵越大。分布越有序(或者说分布越集中),信息熵就越小。
    计算给定的样本集X的信息熵的公式:
    在这里插入图片描述
    参数的含义:
    n:样本集X的分类数;
    pi:X中第i类元素出现的概率
    信息熵越大表明样本集S的分布越分散(分布均衡),信息熵越小则表明样本集X的分布越集中(分布不均衡)。当S中n个分类出现的概率一样大时(都是1/n),信息熵取最大值log2(n)。当X只有一个分类时,信息熵取最小值0。
    径向基函数是某种沿径向对称的标量函数,一个取值仅仅依赖于离原点距离的实值函数,也就是
    在这里插入图片描述
    或者还可以是到任意一点c的距离,c点称为中心点,也就是在这里插入图片描述
    任意一个满足上面公式特性的函数φ都叫做径向基函数,标准的一般使用欧式距离(也叫做欧式径向基函数),尽管其他距离函数也是可以的。最常用的径向基函数是高斯核函数,形式为
    在这里插入图片描述
    其中,
    ||x-x’||22可以看做两个特征向量之间的平方欧几里得距离’
    x’为核函数中心;
    δ是一个自由参数,是函数的宽度参数,控制了函数的径向作用范围
    因为RBF核函数的值随距离减小,并介于0(极限)和1(当x=x’的时候)之间,所以它是一种现成的相似性度量表示法。
    RBF神经网络是一种三层神经网络,其包括输入层、隐层、输出层。从输入空间到隐层空间的变换是非线性的,而从隐层空间到输出层空间变换是现行的。流程如下:
    在这里插入图片描述
    (1)RBF网络能够逼近任意非线性的函数;
    (2)可以处理系统内难以解析的规律性,具有很好的泛化能力,并且具有较快的学习速度;
    (3)有很快的学习收敛速度,已成功应用于非线性函数逼近、时间序列分析、数据分类、模式识别、信息处理、图像处理、系统建模、控制和故障诊断等。
    (4)当网络的一个或多个可调参数(权值或阈值)对任何一个输出都有影响时,这样的网络称为全局逼近网络。由于对于每次输入,网络上的每一个权值都要调整,从而导致全局逼近网络的学习速度很慢,比如BP网络。
    (5)如果对于输入空间的某个局部区域只有少数几个连接权值影响输出,则 该网络称为局部逼近网络,比如RBF网络。

RBF网络的基本思想是:用RBF作为隐单元的“基”构成隐含层空间,这样就可以将输入矢量直接映射到隐空间,而不需要通过权连接。当RBF的中心点确定以后,这种映射关系就确定了。而隐含层空间到输出空间的映射是线性的,即网络的输出是隐单元输出的线性加权和,此处的权即为网络可调参数。其中,隐含层的作用是把向量从低维度的p映射到高维度的h,这样低维度线性不可分的情况到高维度就可以变得线性可分了,主要就是核函数的思想。这样,网络由输入到输出的映射是非线性的,而网络输出对可调参数而言却又是线性的。网络的权就可由线性方程组直接解出,从而大大加快学习速度并避免局部极小问题。
径向基神经网络的激活函数可表示为:
在这里插入图片描述
其中xp径向基神经网络的结构可得到网络的输出为:
在这里插入图片描述
在这里插入图片描述
当然,采用最小二乘的损失函数表示:
在这里插入图片描述
(1)完全内插法要求差值函数经过每个样本点,即F(Xp)=dp.样本点总共有P个。
(2)RBF的方法是要选择P个基函数,每个基函数对应的一个训练样本,各基函数的形式φ(||X-Xp||)由于距离是径向同性的,因此称为径向基函数。||X-Xp||表示差向量的模,或者叫做2范数。
(3)隐含层的作用是把向量从低维度的m映射到高维度的P,这样低维度线性不可分的情况到高维线性可分了。
(4)RBF函数中心、扩展常数、输出权值都应该采用监督学习算法进行训练,经历一个误差修正学习的过程,与BP网络的学习原理一样。同样采用梯度下降法,定义目标函数为在这里插入图片描述
ei为输入第i个样本时的误差信号。
在这里插入图片描述

猜你喜欢

转载自blog.csdn.net/weixin_42104289/article/details/85106992