深度学习名词解释

目录

pixel-wise,patch-wise,image-wise

Soft-NMS和NMS

batch | epoches|dacay |iteration

Maxout

global averagepooling&average pooling

交叉熵的定义:

pixel-wise,patch-wise,image-wise

pixel-wise,patch-wise,image-wise的含义如下

pixel-wise字面上的理解一样,一张图片是由一个个pixel组成的,这个是图像的基本单位,像素级别的

image-wise图像级别,比如一张图片的标签是狗,是对整个图片的标注

patch-wise介于像素级别和图像级别的区域,也就是块,每个patch都是由好多个pixel组成的

Soft-NMS和NMS

https://www.cnblogs.com/makefile/p/nms.html

http://www.sohu.com/a/135469270_642762

batch | epoches|dacay |iteration

参考google group:

https://groups.google.com/forum/#!searchin/darknet/subdivisions|sort:relevance/darknet/WgFJDkVc7z4/V56hc5w_AwAJ

https://groups.google.com/forum/#!searchin/darknet/subdivisions|sort:relevance/darknet/qZp5P0I4iGA/OexXrkK7DwAJ

 

batch sizes

https://www.zhihu.com/question/32673260

batch: how many images load at once;

epoches

一个epoch是指把所有训练数据完整的过一遍;

一次epoch=所有训练数据forward+backward后更新参数的过程。
一次iteration=[batch size]个训练数据forward+backward后更新参数过程

dacay

iterations(迭代)

每一次迭代都是一次权重更新,每一次权重更新需要batch size个数据进行Forward运算得到损失函数,再BP算法更新参数

 one epoch = numbers of iterations = N = 训练样本的数量/batch size
subdivisions:

how many times to break image batch into smaller pieces;
batch / subdivisions:how many images are loaded and feed to network.

Maxout

maxout:http://arxiv.org/pdf/1302.4389v4.pdf 
NIN:http://arxiv.org/abs/1312.4400

Maxout
maxout出现在ICML2013上,作者Goodfellow将maxout和dropout结合后,号称在MNIST, CIFAR-10, CIFAR-100, SVHN这4个数据上都取得了start-of-art的识别率。

从论文中可以看出,maxout其实一种激发函数形式。通常情况下,如果激发函数采用sigmoid函数的话,在前向传播过程中,隐含层节点的输出表达式为: 

è¿éåå¾çæè¿°


其中W一般是2维的,这里表示取出的是第i列,下标i前的省略号表示对应第i列中的所有行。

如果是maxout激发函数,则其隐含层节点的输出表达式为: 

 

è¿éåå¾çæè¿°


 这里的W是3维的,尺寸为d m k,

d表示输入层节点的个数,
m表示隐含层节点的个数,
k表示每个隐含层节点对应了k个”隐隐含层”节点,

这k个“隐隐含层”节点都是线性输出的,而maxout的每个节点就是取这k个“隐隐含层”节点输出值中最大的那个值。因为激发函数中有了max操作,所以整个maxout网络也是一种非线性的变换。

因此当我们看到常规结构的神经网络时,如果它使用了maxout激发,则我们头脑中应该自动将这个”隐隐含层”节点加入。 

è¿éåå¾çæè¿°


maxout的拟合能力是非常强的,它可以拟合任意的的凸函数。最直观的解释就是任意的凸函数都可以由分段线性函数以任意精度拟合,而maxout又是取k个隐隐含层节点的最大值,这些”隐隐含层”节点也是线性的,所以在不同的取值范围下,最大值也可以看做是分段线性的(分段的个数与k值有关)。论文中的图1如下(它表达的意思就是可以拟合任意凸函数,当然也包括了ReLU了) 

è¿éåå¾çæè¿°


作者从数学的角度上也证明了这个结论,即只需2个maxout节点就可以拟合任意的凸函数了(相减),前提是“隐隐含层”节点的个数可以任意多,如下图所示 

è¿éåå¾çæè¿°


 
maxout的一个假设是潜在概念的实例是位于输入空间的凸集中。

参考 
maxout和NIN具体内容可以参考:Deep learning:四十五(maxout简单理解) 
Network In Network

各用一句话概括 

  • 常规卷积层: conv→relu 
  • maxout: several conv(full)→max 
  • NIN: serveral conv(full)→relu→conv(1x1)→relu 

具体一点 

  • 常规卷积层:conv→relu 

conv: conv_out=∑(x·w) 
relu: y=max(0, conv_out)

maxout:several conv(full)→max 
several conv (full): conv_out1 = x·w_1, conv_out2 = x·w_2, … 
max: y = max(conv_out1, conv_out2, …)

  • NIN: conv→relu→conv(1x1)→relu 

several conv (full): conv_out1 = x·w_1, conv_out2 = x·w_2, … 
relu: relu_out1 = max(0, conv_out1), relu_out2 = max(0, conv_out2), … 
conv(1x1): conv_1x1_out = [relu_out1, relu_out2, …]·w_1x1 
relu: y = max(0, conv_1x1_out)

例子 
假设现在有一个3x3的输入,用一个9维的向量x代表,卷积核大小也是3x3,也9维的向量w代表。

  • 对于常规卷积层,直接x和w求卷积,然后relu一下就好了。 
  • maxout,有k个的3x3的w(这里的k是自由设定的),分别卷积得到k个1x1的输出,然后对这k个输入求最大值 
  • NIN,有k个3x3的w(这里的k也是自由设定的),分别卷积得到k个1x1的输出,然后对它们都进行relu,然后再次对它们进行卷积,结果再relu。(这个过程,等效于一个小型的全连接网络 


总结

总的来说,maxout和NIN都是对传统conv+relu的改进。 
maxout想表明它能够拟合任何凸函数,也就能够拟合任何的激活函数(默认了激活函数都是凸的) 
NIN想表明它不仅能够拟合任何凸函数,而且能够拟合任何函数,因为它本质上可以说是一个小型的全连接神经网络
 

global averagepooling&average pooling

理解《一》:

比如:“最后一个卷积层输出10个feature map”,“而average pooling是对每个feature map分别求平均,输出10个feature map”,这个理解是没问题的,“global average pooling是对10个feature map求平均值,输出一个feature map”,这个理解就不太对了。论文里面有这么一句话


Instead of adding fully connected layers on top of the feature maps, we take the average of each feature map, and the resulting vector is fed directly into the softmax layer.


其实就是表示global average pooling是对每个feature map内部取平均,每个feature map变成一个值(因为kernel的大小设置成和feature map的相同),10个feature map就变成一个10维的向量,然后直接输入到softmax中。
另外也可以参考一下颜老师组在ILSVRC2014报告中的ppt,(里面有这么一个图,可以很明显看出来是对每个feature map内部取平均。

                    

1.JPG


有兴趣还可以看看caffe中NIN的proto文件,global average pooling层使用的就是普通的pooling层,只是类型改成了ave。
 

理解《二》:

global average pooling 与 average pooling 的差别就在 "global" 这一个字眼上。global 与 local 在字面上都是用来形容 pooling 窗口区域的。 local 是取 feature map 的一个子区域求平均值,然后滑动这个子区域; global 显然就是对整个 feature map 求平均值了。

因此,global average pooling 的最后输出结果仍然是 10 个 feature map,而不是一个,只不过每个 feature map 只剩下一个像素罢了。这个像素就是求得的平均值。
官方 prototxt 文件 里写了。网络进行到最后一个 average pooling 层的时候,feature map 就剩下了 10 个,每个大小是 8 * 8。顺其自然地作者就把 pooling 窗口设成了 8 个像素,意会为 global average pooling 。可见,global average pooling 就是窗口放大到整个 feature map 的 average pooling 。

交叉熵的定义:

在信息论中,交叉熵是表示两个概率分布p,q,其中p表示真实分布,q表示非真实分布,在相同的一组事件中,其中,用非真实分布q来表示某个事件发生所需要的平均比特数。从这个定义中,我们很难理解交叉熵的定义。下面举个例子来描述一下:

假设现在有一个样本集中两个概率分布p,q,其中p为真实分布,q为非真实分布。假如,按照真实分布p来衡量识别一个样本所需要的编码长度的期望为:

但是,如果采用错误的分布q来表示来自真实分布p的平均编码长度,则应该是

此时就将H(p,q)称之为交叉熵。交叉熵的计算方式如下:

对于离散变量采用以下的方式计算:

对于连续变量采用以下的方式计算:

实际上,交叉熵是衡量两个概率分布p,q之间的相似性。这可以在特征工程中,用来衡量变量的重要性。

 2、交叉熵的应用:

(1)在特征工程中,可以用来衡量两个随机变量之间的相似度

(2)语言模型中(NLP),由于真实的分布p是未知的,在语言模型中,模型是通过训练集得到的,交叉熵就是衡量这个模型在测试集上的正确率。其计算方式如下:

    

其中,N是表示的测试集的大小,q(x)表示的是事件x在训练集中的概率(在nlp中就是关键词在训练语料中的概率)。

(3)在逻辑回归中的应用。

由于交叉熵是衡量两个分布之间的相似度,在逻辑回归中,首先数据集真实的分布是p,通过逻辑回归模型预测出来的结果对应的分布是q,此时交叉熵在这里就是衡量预测结果q与真实结果p之间的差异程度,称之为交叉熵损失函数。具体如下:

假设,对应两分类的逻辑回归模型logistic regression来说,他的结果有两个0或者1,在给定预测向量x,通过logistics regression回归函数g(z)=1/(1+e-z),则真实结果y=1,对应预测结果y'=g(wx);真实结果y=0,对应预测结果y'=1-g(wx);以上就是通过g(wx)和1-g(wx)来描述原数据集0-1分布。根据交叉熵的定义可知:

上式是针对测试集一个样本得到的交叉熵。若测试集有N个样本,对应的交叉熵损失函数表示方式如下:

  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
⼈⼯智能、机器学习与深度学习的区别与联系 你是否也有这样的疑惑,⼈⼯智能、机器学习、深度学习以及监督学习等名词之间到底有什么样的联系与区别,以及它们的应⽤场景呢。 下⾯就通过概念、区别和联系以及应⽤场景三个⽅⾯来具体的分析下他们。 ⼀、概念 1、⼈⼯智能 ⼈⼯智能(Artificial intelligence)简称AI。⼈⼯智能是计算机科学的⼀个分⽀,它企图了解智能的本质,并⽣产出⼀种新的能以⼈类智 能相似的⽅式做出反应的智能机器,是研究、开发⽤于模拟、延伸和扩展⼈的智能的理论、⽅法、技术及应⽤系统的⼀门新的技术科学。 ⼈⼯智能⽬前分为弱⼈⼯智能和强⼈⼯智能和超⼈⼯智能。 1)弱⼈⼯智能:弱⼈⼯智能(ArtificialNarrow Intelligence /ANI),只专注于完成某个特定的任务,例如语⾳识别、图象识别和翻译 等,是擅长于单个⽅⾯的⼈⼯智能。它们只是⽤于解决特定的具体类的任务问题⽽存在,⼤都是统计数据,以此从中归纳出模型。由于弱⼈ ⼯智能智能处理较为单⼀的问题,且发展程度并没有达到模拟⼈脑思维的程度,所以弱⼈⼯智能仍然属于"⼯具"的范畴,与传统的"产 品"在本质上并⽆区别。 2) 强⼈⼯智能:强⼈⼯智能(Artificial Generallnteligence /AGI),属于⼈类级别的⼈⼯智能,在各⽅⾯都能和⼈类⽐肩,它能够进⾏ 思考、计划、解决问题、抽象思维、理解复杂理念、快速学习和从经验中学习等操作,并且和⼈类⼀样得⼼应⼿。 3)超⼈⼯智能:超⼈⼯智能(Artificial Superintelligence/ASI),在⼏乎所有领域都⽐最聪明的⼈类⼤脑都聪明许多,包括科学创 新、通识和社交技能。在超⼈⼯智能阶段,⼈⼯智能已经跨过"奇点",其计算和思维能⼒已经远超⼈脑。此时的⼈⼯智能已经不是⼈类可 以理解和想象。⼈⼯智能将打破⼈脑受到的维度限制,其所观察和思考的内容,⼈脑已经⽆法理解,⼈⼯智能将形成⼀个新的社会。 ⽬前我们仍处于弱⼈⼯智能阶段。 2、机器学习 机器学习(MachineLearning)简称ML。机器学习属于⼈⼯智能的⼀个分⽀,也是⼈⼯智能的和核⼼。机器学习理论主要是设计和分析 ⼀些让计算机可以⾃动"学习"的算法。 3、深度学习 深度学习(DeepLearning)简称DL。最初的深度学习是利⽤深度神经⽹络来解决特征表达的⼀种学习过程。深度神经⽹络本⾝并不是 ⼀个全新的概念,可⼤致理解为包含多个隐含层的神经⽹络结构。为了提⾼深层神经⽹络的训练效果,⼈们对神经元的连接⽅法和激活函数 等⽅⾯做出相应的调整。深度学习是机器学习研究中的⼀个新的领域,其动机在于建⽴、模拟⼈脑进⾏分析学习的神经⽹络,它模仿⼈脑的 机制来解释数据,如图象、声⾳、⽂本。 注意:你可能在接触深度学习的时候也听到过监督学习、⾮监督学习、半监督学习等概念,下⾯就顺便对这三个名词解析下: 1)监督学习:⽤⼀部分已知分类、有标记的样本来训练机器后,让它⽤学到的特征,对没有还分类、⽆标记的样本进⾏分类、贴标签。多 ⽤于分类。 2)⾮监督学习:所有的数据没有标记,类别未知,让它⾃⼰学习样本之间的相似性来进⾏分类。多⽤于聚类。 3)半监督学习:有两个样本集,⼀个有标记,⼀个没有标记。综合利⽤有类标的样本( labeled sample)和没有类标的样本( unlabeled sample),来⽣成合适的分类。 ⼆、区别于联系 下⾯⼀张图能更加细分其关系: 注意:在上幅图中,我们可以看下机器学习下的深度学习和监督学习以及⾮监督学习,那它们之间是什么关系呢,其实就是分类⽅法不同⽽ 已,他们之间可以互相包含。打个⽐⽅:⼀个⼈按性别可以分为男⼈和⼥⼈,⽽按年龄来分可以分为⽼⼈和⼩孩⼦。所以在深度学习中我们 可以⽤到监督学习和⾮监督学习,⽽监督学习中可以⽤到很基础的不含神经元的算法(KNN算法)也可以⽤到添加了多层神经元的深度学习 算法。 三、应⽤场景 1) ⼈⼯智能的研究领域在不断的扩⼤,包括专家系统、机器学习、进化计算、模糊逻辑、计算机视觉、⾃然语⾔处理、推荐系统等。并 且⽬前的科研⼯作都集中在弱⼈⼯智能这部分。 2) 机器学习直接来源于早期的⼈⼯智能领域,传统的算法包括决策树、聚类、贝叶斯分类、⽀持向量机、EM、Adaboost等等。从学习 ⽅法上来分,机器学习可以分为监督学习(如分类问题)、⽆监督学习(如聚类问题)、半监督学习、集成学习、深度学习和强化学习。传统的 机器学习算法在指纹识别、⼈脸检测、特征物体检测等领域的应⽤基本达到了商业化的要求或特定场景的商业化⽔平。 3) 深度学习本来并不是⼀种独⽴的学习⽅法,其本⾝也会⽤到监督学习和⽆监督学习⽅法来训练深度神经⽹络,但由于近年来改领域发 展迅猛,⼀些特有的学习⼿段相继被提出(如残差

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值