Auto Byte

专注未来出行及智能汽车科技

微信扫一扫获取更多资讯

Science AI

关注人工智能与其他前沿技术、基础学科的交叉研究与融合发展

微信扫一扫获取更多资讯

Albert Ren作者

深度学习笔记之《解析卷积神经网络》附下载地址

《解析卷积神经网络》是 @魏秀参 博士撰写的深度学习实践手册,主要以卷积神经网络为主体,可以在魏博士个人主页获取电子版或者在文末下载,解析卷积神经网络——深度学习实践手册 [1],基本涵盖了卷积神经网络的基础概念、实践操作等,内容也不多,平时看看复习一下也不错,这篇文章的目的是为方便大家快速学习和复习所用,同时也便于之后在这个基础上丰富卷积神经网络相关知识。下面的内容,一部分将以自己的口吻描述,也有一部分参考了原文。

深度学习的前世今生

实际上深度学习,只是机器学习的一个子领域,同样地,机器学习也是人工智能的一个子领域。但是随着深度学习的发展,尤其是在AlphaGo那场世纪大战之后,深度学习渐渐地脱离于机器学习,人们口中的“机器学习”逐渐地成了传统机器学习,即不包含深度学习的那部分。与此同时,机器学习深度学习同时也是计算机视觉自然语言处理语音识别的工具,上述领域的关系相辅相成,不能割裂地看待。

深度学习,尤其指的是人工神经网络,其实早在上个世纪就存在,而不是最近几年的产物(深度学习不一定指深度神经网络,其他的形式还有深度森林等模型)。1948 年,诺伯特·维纳发表了著名的《控制论——关于在动物和机器中控制和通讯的科学》,这是非常经典的巨作之一,其他还有《信息论》、《博弈论》等。控制论的出现,提出了一些简单的线性模型,但是这些简单模型无法处理异或问题,并且那个年代的计算力有限,神经网络的研究进入寒冬。1986年,Rumelhart, D. E., Hinton, G. E.等人提出了Learning internal representations by error propagation [2],用于解决神经网络的复杂计算量问题,并且可以使用神经网络计算异或问题。深度学习在十九世纪八十年代迎来了第二个春天,但是硬件设备不足,无法提供足够算力,同时传统机器学习算法的不断发展,使得深度学习再次迎来寒冬。

本世纪初,随着各种智能设备的出现,数据获取变得非常简单,与此同时硬件也不断发展,高性能计算机、图形处理器等也加速了其发展。2012年,在计算机视觉领域权威赛事ImageNet挑战赛上AlexNet强势夺冠;2015年,ResNet在视觉分类任务上超越人类水平。除此以外,算法也得到不断发展,从朴素神经网络卷积神经网络、循环神经网络、对抗生成网络、图神经网络,也发生了翻天覆地的变化,这也离不开深度学习三雄Hinton、LeCun、Bengio等前辈在领域的不断深耕,深度学习也迎来了第三个春天。

  • 1940s - 1960s,控制论等的出现,但仍然无法解决异或问题、计算力问题等;

  • 1980s - 1990s,反向传播算法的出现,连接主义的兴起,异或问题得到解决,但是数据获取困难,硬件受限,深度学习本身是个黑箱问题,同时传统机器学习算法不断发展;

  • 2000s - 至今,随着数据、算力、算法的不断发展,深度学习在多项任务上的性能先后超越人类;

深度学习有一个比较重要的思想——“end-to-end”,中文译为“端到端”,这是深度学习区别于其他机器学习算法的一个方面。传统的机器学习,一般使用特征工程以及特定某个问题涉及的机器学习算法。使用手工设计的特征,如计算机领域经典的一些算子(全局特征算子、局部特征算子,常见描述局部特征的算子有SIFT、PCA-SIFT、SURF、HOG等,可以参考这篇文章A performance evaluation of local descriptors [3]),对这些特征加以选择、降维等,再针对某个特定问题选择或者设计一个机器学习算法。难免会出现以下两个问题:

  • 针对每个问题,都需要选择或者设计新的特征以及机器学习算法,这样的代价比较大。

  • 机器学习问题中,经常使用分治法,将一个问题分成若干子问题,针对每个子问题分别解决,但是每个子问题的最优解,未必会在整体问题上具有最优解。

深度学习通过端到端的学习自动学习特征,而不再需要手工提取的特征,能够学到更加适合任务的表示,可见深度学习其实也是表示学习的一种方式。区别于之前的离散式表示(比如对一个图像使用特征描述算子提取特征,使用词袋模型表示这个图像),深度学习更多的是分布式表示(distributed representation),这里指:

语义概念(concept)到神经元(neuron)的一个多对多映射,即每个语义概念由许多分布在不同神经元中被激活的模式表示;而每个神经元又可以参与许多不同语义概念的表示中去。

上述内容也就凸显出深度学习在这些方面的必要性,但是同样地深度学习也具有一些问题,比如一直被人诟病的解释性问题或者叫黑盒问题,以及在实际训练过程中如何让网络快速收敛并且达到实际之初的期望等。

卷积神经网络那些事

1958年,加拿大神经科学家Hubel与Wiesel在猫视觉皮层实验中,详细描述了发现视觉皮层的简单细胞,观察到视觉初级皮层的神经元对移动的边缘刺激敏感,提出了猫视觉皮层的感受野(receptive field)等,为后续视觉神经研究奠定了重要的基础。1980前后,日本科学家Kunihiko Fukushima提出神经认知模型,在该单元中最重要的两类细胞是,“S型细胞”(用于抽取局部特征)和“C型细胞”(用于抽象和容错),与如今的卷积层和池化层有异曲同工之妙。此后,先后诞生了一系列非常经典的卷积神经网络结构,如LeNet、AlexNet、VGG、GoogLeNet、Network in Network、Resnet、SENet、SKNet,以及轻量级的结构,如ShuffleNet系列、MobileNet系列等。甚至在今天,可以使用NAS(网络结构搜索)去让计算机自己“设计”一个性能极佳的神经网络。与此同时,卷积神经网络也被广泛应用于各类任务中,尤其是视觉相关的诸多任务,如目标检测RCNN系列、YOLO系列、Anchor-Free系列)、目标追踪(Siamese系列)、人体姿态估计(OpenPose、AlphaPose)等。

目标检测,Darknet Demo卷积神经网络实际上是层次模型(hierarchical model),原始输出通常经过卷积操作、池化操作和非线性激活函数映射等的层层组合(2012年ImageNet视觉挑战赛获胜网络AlexNet本质上,与上个世纪九十年代左右的LeNet其实没有太大差别)。原始数据一层层经过网络,逐渐抽取出低层特征,直至高级语义特征,这一过程为前馈运算;网络根据前馈运算的结果,与真实结果之间的误差,通过反向传播算法由最后一层逐渐向前反馈,更新模型的参数;在更新参数的模型上进行再次前馈运算,重复上述步骤,直至整个网络模型收敛。一般地,前馈运算指对样本进行推理或者预测,反馈运算指预测误差反向传播更新参数

卷积操作

卷积本质上就是矩阵和矩阵之间的对应元素相乘,再加结果求和的过程,二维情况可以参考下图,三维情况类似,如果输入数据深度为3,对应的卷积核深度也为3,仍然是对应位置的元素相加再求和。对于卷积操作,需要选择的是卷积核大小(kernel size)、卷积步长(stride)、填充(padding,通常填充0)经过卷积操作后的特征图尺寸(F表示输入大小,K表示卷积核大小,P表示填充,S表示步长,⌊⌋表示向下取整):

实际上卷积核传统数字图像处理中各类滤波器非常像,只是卷积神经网络中的卷积核参数是通过网络学习得到的,通常在浅层的卷积核对边缘等敏感,而高层的卷积核对高级特征敏感。除常规卷积外,还有一些特殊的卷积,比如空洞卷积、可变形卷积、转置卷积等,这里便不再一一赘述,后续会写一个系列文章,分别来详细叙述深度学习各部分以及相关实践。

池化操作

池化,又可以称作汇合,英文pooling,本质是一种降采样,具有特征不变性、特征降维、防止过拟合等作用,一般是均值池化(average pooling)和最大池化(max pooling)。对于均值池化池化操作的核大小区域内的值平均后,代替原区域,如2*2的区域内有 2,1,3,6,均值池化后该区域就变成只有一个值3;对于最大值池化,则是选取池化操作的核大小区域内的最大值,代替原区域,上述例子中结果为6。

激活函数

如果没有激活函数,或者称为非线性映射,整个网络缺失非线性,再多层的堆叠,其本质仍然是线性的。从生物角度来看,神经元获得的信号输入积累大于某一阈值后,神经元才会被激活,激活函数从某种程度上讲,与此也有异曲同工之妙。常见的激活函数有Sigmoid、tanh、ReLU(参数化ReLU、随机ReLU、leaky ReLU等),Sigmoid与tanh容易发生饱和区,容易造成梯度消失,同时Sigmoid的值域被压到[0, 1]。

此外,由于一些模型参数比较多,需要的算力比较大,由此也衍生了一个研究热点:模型压缩。目前很多嵌入式设备上需要搭载深度学习模型,需要更轻量化的结构。同时,很多深度学习参数化,存在着冗余,但是该冗余又十分有必要:深度神经网络要解决的是一个很复杂的非凸优化问题,参数上的冗余保证了网络能够收敛到比较好的最优值。目前存在的一些办法有:

  • 知识蒸馏、紧凑的网络设计、滤波器层面的剪枝(如何衡量滤波器的重要性以确定剪枝对象)等

  • 低秩近似(稠密矩阵能够由若干低秩小矩阵近似重构)、未加限制的剪枝参数量化(使用聚类中心的权重代替原有权重或使用哈希)、二值网络(参数量化的极端情况,如何二值化权重?如何传递梯度?)等。

卷积神经网路之纸上得来终觉浅

在真实场景下,训练一个好的深度学习模型,掌握上述内容往往是不够的,还有一些实践的知识需要了解。

数据增广与不平衡样本处理

对数据简单进行数据增广,比如水平翻转、随机截取、尺度变换、旋转等;同时,可对颜色等进行改变从而增加数据,比如颜色抖动,改变RGB或者HSV空间的值。特殊地,如AlexNet中使用Fancy PCA,或者针对不同的任务有不同的增广方式,如目标检测领域还涉及到检测框,可以参见之前的一篇文章,谷歌使用数据增广策略在目标检测任务上达到SOTA [4]。

对于不平衡样本,需要从数据、算法两个层面解决。

  • 数据层面:数据重采样上采样,复制或者数据扩充使得样本少类与样本最多的类一致;下采样,比如在每个batch中保证正负比例相等)、类别平衡采样(将样本归类,将所有类扩充到与样本最多的类一致后随机打乱,方法与数据重采样中的上采样类似)

  • 算法层面:代价敏感

模型集成

  • 数据层面:测试阶段数据增广(对同一张图像增广成n张,将n张输入模型得到n个结果进行集成)、简易集成法

  • 模型层面:单模型集成(多层特征融合,将多层特征融合;网络快照法)、多模型集成(多模型生成,同一模型不同初始化、同一模型不同训练轮数、不同目标函数、不同网络结构;多模型集成,直接平均、加权平均、投票法、堆叠法(将集成结果作为新的特征训练另一个模型,这里的模型可以是神经网络,也可以是传统机器学习方法))

网格参数初始化

  • 全零初始化,但是当全零初始化时,导致网络输出全部相同,梯度更新完全相同,模型无法训练

  • 随机初始化,在实际应用,通常将随机参数服从均匀分布或者高斯分布,具体的由Xavier方法等

激活函数

上述内容已经叙述,这里不再赘述

目标函数损失函数,个人认为非常重要)

  • 分类任务:交叉熵损失函数(常用目标函数)合页损失函数、坡道损失函数、中心损失函数

  • 回归任务:L1损失函数、L2损失函数

网络正则化(保证范化能力的同时,避免过拟合

  • L2正则化(在机器学习中被称为岭回归)、L1正则化(相比于L2,能够产生更稀疏的参数)、Elastic网络正则化(L1和L2按比例混合)

  • 随机失活,注意训练阶段和测试阶段的区别,需要乘系数

  • 增加训练数据,使用更多的数据扩充方式

  • 加入随机噪声

参数设定与网络训练

  • 参数设定:输入数据像素大小、卷积层参数设定(卷积核大小、卷积操作的步长、卷积核个数;通常卷积核大小为奇数,一般推荐为3、5;卷积核个数一般为2的次幂)、池化参数设定

  • 网络训练:在每轮训练前将训练集顺序打乱(参考依据:信息论中从不相似的事件中学习总是比从相似事件中学习更具信息量)、学习率设定(初始不宜过大,后续需要减缓)、是否使用Batch Normalization、优化算法的选择(SGD、基于动量的SGD、Nesterov、Adagrad、Adadelta、RMSProp、Adam等)

一些术语

epoch、batch与batch size:遍历用于训练的数据集(训练集)一次,称为一轮,one epoch。在反馈运算中,经常使用的是梯度下降算法,但是进行一次梯度下降算法需要遍历整个训练集,在训练集比较庞大的时候,代价很高,之后就有随机梯度下降,每次只使用一个样本后更新参数;批处理的随机梯度下降,每次遍历一批(batch)样本后更新参数,每批(batch)的样本数量即为batch size。假设有一个训练集,有160000个样本,假设batch size为32,训练10000个batch之后,训练的样本数为320000,相当于2个epoch。

下载地址

https://t.zsxq.com/IiYzNNF

参考链接:

[1] http://www.weixiushen.com/book/CNN_book_small.pdf

[2] http://www.cs.toronto.edu/~hinton/absps/pdp8.pdf

[3] http://www.ai.mit.edu/courses/6.891/handouts/mikolajczyk_cvpr2003.pdf

[4] https://zhuanlan.zhihu.com/p/76446741

[5] https://www.cnblogs.com/duinduin/archive/2013/03/29/hubelwiesel.html

DataWhale
DataWhale

一个专注于AI领域的开源组织,汇聚了众多顶尖院校和知名企业的优秀学习者,聚集了一群有开源精神和探索精神的团队成员。愿景-for the learner,和学习者一起成长。

入门深度学习卷积神经网络池化目标函数
14
相关数据
诺伯特·维纳人物

1894年-1964年,生于美国密苏里州哥伦比亚,美国应用数学家,在电子工程方面贡献良多。他是随机过程和噪声信号处理的先驱,又提出“控制论”一词。

重采样技术

重采样是指根据一类象元的信息内插出另一类象元信息的过程。在遥感中,重采样是从高分辨率遥感影像中提取出低分辨率影像的过程。常用的重采样方法有最邻近内插法(nearest neighbor interpolation)、双线性内插法(bilinear interpolation)和三次卷积法内插(cubic convolution interpolation)。

深度学习技术

深度学习(deep learning)是机器学习的分支,是一种试图使用包含复杂结构或由多重非线性变换构成的多个处理层对数据进行高层抽象的算法。 深度学习是机器学习中一种基于对数据进行表征学习的算法,至今已有数种深度学习框架,如卷积神经网络和深度置信网络和递归神经网络等已被应用在计算机视觉、语音识别、自然语言处理、音频识别与生物信息学等领域并获取了极好的效果。

池化技术

池化(Pooling)是卷积神经网络中的一个重要的概念,它实际上是一种形式的降采样。有多种不同形式的非线性池化函数,而其中“最大池化(Max pooling)”是最为常见的。它是将输入的图像划分为若干个矩形区域,对每个子区域输出最大值。直觉上,这种机制能够有效的原因在于,在发现一个特征之后,它的精确位置远不及它和其他特征的相对位置的关系重要。池化层会不断地减小数据的空间大小,因此参数的数量和计算量也会下降,这在一定程度上也控制了过拟合。通常来说,CNN的卷积层之间都会周期性地插入池化层。

激活函数技术

在 计算网络中, 一个节点的激活函数定义了该节点在给定的输入或输入的集合下的输出。标准的计算机芯片电路可以看作是根据输入得到"开"(1)或"关"(0)输出的数字网络激活函数。这与神经网络中的线性感知机的行为类似。 一种函数(例如 ReLU 或 S 型函数),用于对上一层的所有输入求加权和,然后生成一个输出值(通常为非线性值),并将其传递给下一层。

权重技术

线性模型中特征的系数,或深度网络中的边。训练线性模型的目标是确定每个特征的理想权重。如果权重为 0,则相应的特征对模型来说没有任何贡献。

交叉熵技术

交叉熵(Cross Entropy)是Loss函数的一种(也称为损失函数或代价函数),用于描述模型预测值与真实值的差距大小

机器学习技术

机器学习是人工智能的一个分支,是一门多领域交叉学科,涉及概率论、统计学、逼近论、凸分析、计算复杂性理论等多门学科。机器学习理论主要是设计和分析一些让计算机可以自动“学习”的算法。因为学习算法中涉及了大量的统计学理论,机器学习与推断统计学联系尤为密切,也被称为统计学习理论。算法设计方面,机器学习理论关注可以实现的,行之有效的学习算法。

二值化技术

二值化是将像素图像转换为二进制图像的过程。

高斯分布技术

正态分布是一个非常常见的连续概率分布。由于中心极限定理(Central Limit Theorem)的广泛应用,正态分布在统计学上非常重要。中心极限定理表明,由一组独立同分布,并且具有有限的数学期望和方差的随机变量X1,X2,X3,...Xn构成的平均随机变量Y近似的服从正态分布当n趋近于无穷。另外众多物理计量是由许多独立随机过程的和构成,因而往往也具有正态分布。

深度森林技术

重构技术

代码重构(英语:Code refactoring)指对软件代码做任何更动以增加可读性或者简化结构而不影响输出结果。 软件重构需要借助工具完成,重构工具能够修改代码同时修改所有引用该代码的地方。在极限编程的方法学中,重构需要单元测试来支持。

VGG技术

2014年,牛津大学提出了另一种深度卷积网络VGG-Net,它相比于AlexNet有更小的卷积核和更深的层级。AlexNet前面几层用了11×11和5×5的卷积核以在图像上获取更大的感受野,而VGG采用更小的卷积核与更深的网络提升参数效率。VGG-Net 的泛化性能较好,常用于图像特征的抽取目标检测候选框生成等。VGG最大的问题就在于参数数量,VGG-19基本上是参数量最多的卷积网络架构。VGG-Net的参数主要出现在后面两个全连接层,每一层都有4096个神经元,可想而至这之间的参数会有多么庞大。

神经科学技术

神经科学,又称神经生物学,是专门研究神经系统的结构、功能、发育、演化、遗传学、生物化学、生理学、药理学及病理学的一门科学。对行为及学习的研究都是神经科学的分支。 对人脑研究是个跨领域的范畴,当中涉及分子层面、细胞层面、神经小组、大型神经系统,如视觉神经系统、脑干、脑皮层。

参数技术

在数学和统计学裡,参数(英语:parameter)是使用通用变量来建立函数和变量之间关系(当这种关系很难用方程来阐述时)的一个数量。

剪枝技术

剪枝顾名思义,就是删去一些不重要的节点,来减小计算或搜索的复杂度。剪枝在很多算法中都有很好的应用,如:决策树,神经网络,搜索算法,数据库的设计等。在决策树和神经网络中,剪枝可以有效缓解过拟合问题并减小计算复杂度;在搜索算法中,可以减小搜索范围,提高搜索效率。

收敛技术

在数学,计算机科学和逻辑学中,收敛指的是不同的变换序列在有限的时间内达到一个结论(变换终止),并且得出的结论是独立于达到它的路径(他们是融合的)。 通俗来说,收敛通常是指在训练期间达到的一种状态,即经过一定次数的迭代之后,训练损失和验证损失在每次迭代中的变化都非常小或根本没有变化。也就是说,如果采用当前数据进行额外的训练将无法改进模型,模型即达到收敛状态。在深度学习中,损失值有时会在最终下降之前的多次迭代中保持不变或几乎保持不变,暂时形成收敛的假象。

凸优化技术

凸优化,或叫做凸最优化,凸最小化,是数学最优化的一个子领域,研究定义于凸集中的凸函数最小化的问题。凸优化在某种意义上说较一般情形的数学最优化问题要简单,譬如在凸优化中局部最优值必定是全局最优值。凸函数的凸性使得凸分析中的有力工具在最优化问题中得以应用,如次导数等。 凸优化应用于很多学科领域,诸如自动控制系统,信号处理,通讯和网络,电子电路设计,数据分析和建模,统计学(最优化设计),以及金融。在近来运算能力提高和最优化理论发展的背景下,一般的凸优化已经接近简单的线性规划一样直捷易行。许多最优化问题都可以转化成凸优化(凸最小化)问题,例如求凹函数f最大值的问题就等同于求凸函数 -f最小值的问题。

学习率技术

在使用不同优化器(例如随机梯度下降,Adam)神经网络相关训练中,学习速率作为一个超参数控制了权重更新的幅度,以及训练的速度和精度。学习速率太大容易导致目标(代价)函数波动较大从而难以找到最优,而弱学习速率设置太小,则会导致收敛过慢耗时太长

损失函数技术

在数学优化,统计学,计量经济学,决策理论,机器学习和计算神经科学等领域,损失函数或成本函数是将一或多个变量的一个事件或值映射为可以直观地表示某种与之相关“成本”的实数的函数。

超参数技术

在机器学习中,超参数是在学习过程开始之前设置其值的参数。 相反,其他参数的值是通过训练得出的。 不同的模型训练算法需要不同的超参数,一些简单的算法(如普通最小二乘回归)不需要。 给定这些超参数,训练算法从数据中学习参数。相同种类的机器学习模型可能需要不同的超参数来适应不同的数据模式,并且必须对其进行调整以便模型能够最优地解决机器学习问题。 在实际应用中一般需要对超参数进行优化,以找到一个超参数元组(tuple),由这些超参数元组形成一个最优化模型,该模型可以将在给定的独立数据上预定义的损失函数最小化。

降采样技术

降采样是数位信号处理领域中的一种多速频数字信号处理(multi-rate digital signal processing)系统中采样率转换(sample rate conversion)技术的一种,或指代用来降低信号采样率的过程,与插值相反——插值用来增加取样频率——降采样通常用于降低数据传输速率或者数据大小。因为降采样会有混叠的情形发生,系统中具有降采样功能的部分称为降频器(decimator)。

YOLO技术

YOLO 模型最早是由 Joseph Redmon 等人在 2015 年发布的,并在随后的两篇论文中进行了修订。

计算机视觉技术

计算机视觉(CV)是指机器感知环境的能力。这一技术类别中的经典任务有图像形成、图像处理、图像提取和图像的三维推理。目标识别和面部识别也是很重要的研究领域。

LeNet技术

LeNet 诞生于 1994 年,是最早的卷积神经网络之一,并且推动了深度学习领域的发展。自从 1988 年开始,在许多次成功的迭代后,这项由 Yann LeCun 完成的开拓性成果被命名为 LeNet5。LeNet5 的架构基于这样的观点:(尤其是)图像的特征分布在整张图像上,以及带有可学习参数的卷积是一种用少量参数在多个位置上提取相似特征的有效方式。在那时候,没有 GPU 帮助训练,甚至 CPU 的速度也很慢。因此,能够保存参数以及计算过程是一个关键进展。这和将每个像素用作一个大型多层神经网络的单独输入相反。LeNet5 阐述了那些像素不应该被使用在第一层,因为图像具有很强的空间相关性,而使用图像中独立的像素作为不同的输入特征则利用不到这些相关性。

最大池化技术

最大池化(max-pooling)即取局部接受域中值最大的点。

神经网络技术

(人工)神经网络是一种起源于 20 世纪 50 年代的监督式机器学习模型,那时候研究者构想了「感知器(perceptron)」的想法。这一领域的研究者通常被称为「联结主义者(Connectionist)」,因为这种模型模拟了人脑的功能。神经网络模型通常是通过反向传播算法应用梯度下降训练的。目前神经网络有两大主要类型,它们都是前馈神经网络:卷积神经网络(CNN)和循环神经网络(RNN),其中 RNN 又包含长短期记忆(LSTM)、门控循环单元(GRU)等等。深度学习是一种主要应用于神经网络帮助其取得更好结果的技术。尽管神经网络主要用于监督学习,但也有一些为无监督学习设计的变体,比如自动编码器和生成对抗网络(GAN)。

反向传播算法技术

反向传播(英语:Backpropagation,缩写为BP)是“误差反向传播”的简称,是一种与最优化方法(如梯度下降法)结合使用的,用来训练人工神经网络的常见方法。该方法计算对网络中所有权重计算损失函数的梯度。这个梯度会反馈给最优化方法,用来更新权值以最小化损失函数。 在神经网络上执行梯度下降法的主要算法。该算法会先按前向传播方式计算(并缓存)每个节点的输出值,然后再按反向传播遍历图的方式计算损失函数值相对于每个参数的偏导数。

梯度下降技术

梯度下降是用于查找函数最小值的一阶迭代优化算法。 要使用梯度下降找到函数的局部最小值,可以采用与当前点的函数梯度(或近似梯度)的负值成比例的步骤。 如果采取的步骤与梯度的正值成比例,则接近该函数的局部最大值,被称为梯度上升。

卷积神经网络技术

卷积神经网路(Convolutional Neural Network, CNN)是一种前馈神经网络,它的人工神经元可以响应一部分覆盖范围内的周围单元,对于大型图像处理有出色表现。卷积神经网路由一个或多个卷积层和顶端的全连通层(对应经典的神经网路)组成,同时也包括关联权重和池化层(pooling layer)。这一结构使得卷积神经网路能够利用输入数据的二维结构。与其他深度学习结构相比,卷积神经网路在图像和语音识别方面能够给出更好的结果。这一模型也可以使用反向传播算法进行训练。相比较其他深度、前馈神经网路,卷积神经网路需要考量的参数更少,使之成为一种颇具吸引力的深度学习结构。 卷积网络是一种专门用于处理具有已知的、网格状拓扑的数据的神经网络。例如时间序列数据,它可以被认为是以一定时间间隔采样的一维网格,又如图像数据,其可以被认为是二维像素网格。

词袋模型技术

词袋模型(英语:Bag-of-words model)是个在自然语言处理和信息检索(IR)下被简化的表达模型。此模型下,像是句子或是文件这样的文字可以用一个袋子装着这些词的方式表现,这种表现方式不考虑文法以及词的顺序。最近词袋模型也被应用在电脑视觉领域。

特征工程技术

特征工程是利用数据所在领域的相关知识来构建特征,使得机器学习算法发挥其最佳的过程。它是机器学习中的一个基本应用,实现难度大且代价高。采用自动特征工程方法可以省去采用人工特征工程的需求。Andrew Ng 说“挖掘特征是困难、费时且需要专业知识的事,应用机器学习其实基本上是在做特征工程。”

映射技术

映射指的是具有某种特殊结构的函数,或泛指类函数思想的范畴论中的态射。 逻辑和图论中也有一些不太常规的用法。其数学定义为:两个非空集合A与B间存在着对应关系f,而且对于A中的每一个元素x,B中总有有唯一的一个元素y与它对应,就这种对应为从A到B的映射,记作f:A→B。其中,y称为元素x在映射f下的象,记作:y=f(x)。x称为y关于映射f的原象*。*集合A中所有元素的象的集合称为映射f的值域,记作f(A)。同样的,在机器学习中,映射就是输入与输出之间的对应关系。

随机梯度下降技术

梯度下降(Gradient Descent)是遵循成本函数的梯度来最小化一个函数的过程。这个过程涉及到对成本形式以及其衍生形式的认知,使得我们可以从已知的给定点朝既定方向移动。比如向下朝最小值移动。 在机器学习中,我们可以利用随机梯度下降的方法来最小化训练模型中的误差,即每次迭代时完成一次评估和更新。 这种优化算法的工作原理是模型每看到一个训练实例,就对其作出预测,并重复迭代该过程到一定的次数。这个流程可以用于找出能导致训练数据最小误差的模型的系数。

GoogLeNet技术

同样在2014年,谷歌提出了 GoogLeNet(或Inception-v1)。该网络共有22层,且包含了非常高效的Inception模块,它同样没有如同VGG-Net那样大量使用全连接网络,因此参数量非常小。GoogLeNet最大的特点就是使用了Inception模块,它的目的是设计一种具有优良局部拓扑结构的网络,即对输入图像并行地执行多个卷积运算或池化操作,并将所有输出结果拼接为一个非常深的特征图。

目标函数技术

目标函数f(x)就是用设计变量来表示的所追求的目标形式,所以目标函数就是设计变量的函数,是一个标量。从工程意义讲,目标函数是系统的性能标准,比如,一个结构的最轻重量、最低造价、最合理形式;一件产品的最短生产时间、最小能量消耗;一个实验的最佳配方等等,建立目标函数的过程就是寻找设计变量与目标的关系的过程,目标函数和设计变量的关系可用曲线、曲面或超曲面表示。

过拟合技术

过拟合是指为了得到一致假设而使假设变得过度严格。避免过拟合是分类器设计中的一个核心任务。通常采用增大数据量和测试样本集的方法对分类器性能进行评价。

博弈论技术

博弈论,又译为对策论,或者赛局理论,应用数学的一个分支,1944年冯·诺伊曼与奥斯卡·摩根斯特恩合著《博弈论与经济行为》,标志着现代系统博弈理论的的初步形成,因此他被称为“博弈论之父”。博弈论被认为是20世纪经济学最伟大的成果之一

神经元技术

(人工)神经元是一个类比于生物神经元的数学计算模型,是神经网络的基本组成单元。 对于生物神经网络,每个神经元与其他神经元相连,当它“兴奋”时会向相连的神经元发送化学物质,从而改变这些神经元的电位;神经元的“兴奋”由其电位决定,当它的电位超过一个“阈值”(threshold)便会被激活,亦即“兴奋”。 目前最常见的神经元模型是基于1943年 Warren McCulloch 和 Walter Pitts提出的“M-P 神经元模型”。 在这个模型中,神经元通过带权重的连接接处理来自n个其他神经元的输入信号,其总输入值将与神经元的阈值进行比较,最后通过“激活函数”(activation function)产生神经元的输出。

降维技术

降维算法是将 p+1 个系数的问题简化为 M+1 个系数的问题,其中 M<p。算法执行包括计算变量的 M 个不同线性组合或投射(projection)。然后这 M 个投射作为预测器通过最小二乘法拟合一个线性回归模型。两个主要的方法是主成分回归(principal component regression)和偏最小二乘法(partial least squares)。

语音识别技术

自动语音识别是一种将口头语音转换为实时可读文本的技术。自动语音识别也称为语音识别(Speech Recognition)或计算机语音识别(Computer Speech Recognition)。自动语音识别是一个多学科交叉的领域,它与声学、语音学、语言学、数字信号处理理论、信息论、计算机科学等众多学科紧密相连。由于语音信号的多样性和复杂性,目前的语音识别系统只能在一定的限制条件下获得满意的性能,或者说只能应用于某些特定的场合。自动语音识别在人工智能领域占据着极其重要的位置。

图像处理技术

图像处理是指对图像进行分析、加工和处理,使其满足视觉、心理或其他要求的技术。 图像处理是信号处理在图像领域上的一个应用。 目前大多数的图像均是以数字形式存储,因而图像处理很多情况下指数字图像处理。

正则化技术

当模型的复杂度增大时,训练误差会逐渐减小并趋向于0;而测试误差会先减小,达到最小值后又增大。当选择的模型复杂度过大时,过拟合现象就会发生。这样,在学习时就要防止过拟合。进行最优模型的选择,即选择复杂度适当的模型,以达到使测试误差最小的学习目的。

图神经网络技术

图网络即可以在社交网络或其它基于图形数据上运行的一般深度学习架构,它是一种基于图结构的广义神经网络。图网络一般是将底层图形作为计算图,并通过在整张图上传递、转换和聚合节点特征信息,从而学习神经网络基元以生成单节点嵌入向量。生成的节点嵌入向量可作为任何可微预测层的输入,并用于节点分类或预测节点之间的连接,完整的模型可以通过端到端的方式训练。

上采样技术

在数字信号处理中,上采样、扩展和内插是与多速率数字信号处理系统中的重采样过程相关的术语。 上采样可以与扩展同义,也可以描述整个扩展和过滤(插值)过程。

自然语言处理技术

自然语言处理(英语:natural language processing,缩写作 NLP)是人工智能和语言学领域的分支学科。此领域探讨如何处理及运用自然语言;自然语言认知则是指让电脑“懂”人类的语言。自然语言生成系统把计算机数据转化为自然语言。自然语言理解系统把自然语言转化为计算机程序更易于处理的形式。

动量技术

优化器的一种,是模拟物理里动量的概念,其在相关方向可以加速SGD,抑制振荡,从而加快收敛

知识蒸馏技术

Hinton 的工作引入了知识蒸馏压缩框架,即通过遵循“学生-教师”的范式减少深度网络的训练量,这种“学生-教师”的范式,即通过软化“教师”的输出而惩罚“学生”。为了完成这一点,学生学要训练以预测教师的输出,即真实的分类标签。这种方法十分简单,但它同样在各种图像分类任务中表现出较好的结果。

空洞卷积技术

空洞卷积最大的特性就是扩张感受野,它不是在像素间插入空白像素,而是略过一些已有的像素。当然,我们也可以理解为保持输入不变,并向卷积核中添加一些值为零的权重,从而在计算量基本不变的情况下增加网络观察到的图像范围或序列长度。

控制论技术

控制论是一门跨学科研究, 它用于研究控制系统的结构,局限和发展。在21世纪,控制论的定义变得更加宽泛,主要用于指代“对任何使用科学技术的系统的控制”。由于这一定义过于宽泛,许多相关人士不再使用“控制论”一词。 控制论与对系统的研究有关,如自动化系统、物理系统、生物系统、认知系统、以及社会系统等等。

堆叠技术

堆叠泛化是一种用于最小化一个或多个泛化器的泛化误差率的方法。它通过推导泛化器相对于所提供的学习集的偏差来发挥其作用。这个推导的过程包括:在第二层中将第一层的原始泛化器对部分学习集的猜测进行泛化,以及尝试对学习集的剩余部分进行猜测,并且输出正确的结果。当与多个泛化器一起使用时,堆叠泛化可以被看作是一个交叉验证的复杂版本,利用比交叉验证更为复杂的策略来组合各个泛化器。当与单个泛化器一起使用时,堆叠泛化是一种用于估计(然后纠正)泛化器的错误的方法,该泛化器已经在特定学习集上进行了训练并被询问了特定问题。

信息论技术

信息论是在信息可以量度的基础上,研究有效地和可靠地传递信息的科学,它涉及信息量度、信息特性、信息传输速率、信道容量、干扰对信息传输的影响等方面的知识。通常把上述范围的信息论称为狭义的信息论,又因为它的创始人是香农,故又称为香农信息论。

深度神经网络技术

深度神经网络(DNN)是深度学习的一种框架,它是一种具备至少一个隐层的神经网络。与浅层神经网络类似,深度神经网络也能够为复杂非线性系统提供建模,但多出的层次为模型提供了更高的抽象层次,因而提高了模型的能力。

聚类技术

将物理或抽象对象的集合分成由类似的对象组成的多个类的过程被称为聚类。由聚类所生成的簇是一组数据对象的集合,这些对象与同一个簇中的对象彼此相似,与其他簇中的对象相异。“物以类聚,人以群分”,在自然科学和社会科学中,存在着大量的分类问题。聚类分析又称群分析,它是研究(样品或指标)分类问题的一种统计分析方法。聚类分析起源于分类学,但是聚类不等于分类。聚类与分类的不同在于,聚类所要求划分的类是未知的。聚类分析内容非常丰富,有系统聚类法、有序样品聚类法、动态聚类法、模糊聚类法、图论聚类法、聚类预报法等。

目标检测技术

一般目标检测(generic object detection)的目标是根据大量预定义的类别在自然图像中确定目标实例的位置,这是计算机视觉领域最基本和最有挑战性的问题之一。近些年兴起的深度学习技术是一种可从数据中直接学习特征表示的强大方法,并已经为一般目标检测领域带来了显著的突破性进展。

感受野技术

一个感觉神经元的感受野是指这个位置里适当的刺激能够引起该神经元反应的区域。感受野一词主要是指听觉系统、本体感觉系统和视觉系统中神经元的一些性质。

推荐文章
暂无评论
暂无评论~