CNN的进化
10.31报告
参考自:R-CNN系列算法精讲:R-CNN —》Fast R-CNN —》Faster R-CNN 进阶之路
深度学习——CNN(卷积神经网络)
如何理解CNN中的感受野(receptive-field)?
一、进击的网络(CNN/DNN)
1.1 DNN与CNN区别(卷积神经网络)
上图为DNN深度神经网络图
DNN((Deep Neural Networks,DNN)内部的神经网络层可以分为三类,输入层,隐藏层和输出层,一般来说第一层是输出层,最后一层是输出层,而中间的层数都是隐藏层。
上图为CNN神经网络
卷积神经网络(convolutional neural network, CNN),是一种专门用来处理具有类似网格结构的数据的神经网络。卷积网络是指那些至少在网络的一层中使用卷积运算来替代一般的矩阵乘法运算的神经网络。
总结:
(1)DNN是一种最简单的神经网络。各个神经元分别属于不同的层,每个神经元和前一层的所有神经元相连接,信号从输入层向输出层单向传播。
(2)CNN是一种通过卷积计算的前馈神经网络,其是受生物学上的感受野机制提出 ...
残差神经网络
链接:
一文读懂残差网络
残差网络的由来
残差操作这一思想起源于论文《Deep Residual Learning for Image Recognition》,目前的引用量已达3万多。这篇文章发现,如果存在某个层的网络是当前最优的网络,那么可以构造一个更深的网络,其最后几层仅是该网络第层输出的恒等映射(Identity Mapping),就可以取得与一致的结果;也许还不是所谓“最佳层数”,那么更深的网络就可以取得更好的结果。总而言之,与浅层网络相比,更深的网络的表现不应该更差。但是如下图所示,56层的神经网络表现明显要比20层的差。证明更深的网络在训练过程中的难度更大,因此作者提出了残差网络的思想。
网络层数加深导致的训练问题
残差网络的定义
残差网络依旧让非线形层满足 ,然后从输入直接引入一个短连接到非线形层的输出上,使得整个映射变为
这就是残差网路的核心公式,换句话说,残差是网络搭建的一种操作,任何使用了这种操作的网络都可以称之为残差网络。
一个具体的残差模块的定义如下图:
残差模块(由于先敲公式后引得图,容易混淆,图中的F(x)就是上文所说的H(x,w),下面也一样替换)
...
XGboost算法
XGBoost
1. 什么是XGBoost
XGBoost是陈天奇等人开发的一个开源机器学习项目,高效地实现了GBDT算法并进行了算法和工程上的许多改进,被广泛应用在Kaggle竞赛及其他许多机器学习竞赛中并取得了不错的成绩。
说到XGBoost,不得不提GBDT(Gradient Boosting Decision Tree)。因为XGBoost本质上还是一个GBDT,但是力争把速度和效率发挥到极致,所以叫X (Extreme) GBoosted。包括前面说过,两者都是boosting方法。
1.1 XGBoost树的定义
先来举个例子,我们要预测一家人对电子游戏的喜好程度,考虑到年轻和年老相比,年轻更可能喜欢电子游戏,以及男性和女性相比,男性更喜欢电子游戏,故先根据年龄大小区分小孩和大人,然后再通过性别区分开是男是女,逐一给各人在电子游戏喜好程度上打分,如下图所示。
就这样,训练出了2棵树tree1和tree2,类似之前gbdt的原理,两棵树的结论累加起来便是最终的结论,所以小孩的预测分数就是两棵树中小孩所落到的结点的分数相加:2 + 0.9 = 2.9。爷爷的预测分数同理:-1 ...
GBDT算法
GBDT算法 (梯度提升决策树)
1.GBDT算法的过程
1.1Boosting思想
Boosting方法训练基分类器时采用串行的方式,各个基分类器之间有依赖。它的基本思路是将**基分类器层层叠加,每一层在训练的时候,对前一层基分类器分错的样本,给予更高的权重。**测试时,根据各层分类器的结果的加权得到最终结果。
Bagging与Boosting的串行训练方式不同,Bagging方法在训练过程中,各基分类器之间无强依赖,可以进行并行训练。
GBDT(Gradient Boosting Decision Tree),全名叫梯度提升决策树,使用的是Boosting的思想。
1.2GBDT原理
GBDT的原理很简单,就是所有弱分类器的结果相加等于预测值,然后下一个弱分类器去拟合误差函数对预测值的残差(这个残差就是预测值与真实值之间的误差)。当然了,它里面的弱分类器的表现形式就是各棵树。
举一个非常简单的例子,比如我今年30岁了,但计算机或者模型GBDT并不知道我今年多少岁,那GBDT咋办呢?
它会在第一个弱分类器(或第一棵树中)随便用一个年龄比如20岁来拟合,然后发现误差有10岁;
接下来 ...
SVM支持向量机算法
1.SVM
支持向量机(support vector machines,SVM)是一种二分类模型,它将实例的特征向量映射为空间中的一些点,SVM 的目的就是想要画出一条线,以 “最好地” 区分这两类点,以至如果以后有了新的点,这条线也能做出很好的分类。SVM 适合中小型数据样本、非线性、高维的分类问题。
SVM 最早是由 Vladimir N. Vapnik 和 Alexey Ya. Chervonenkis 在1963年提出,目前的版本(soft margin)是由 Corinna Cortes 和 Vapnik 在1993年提出,并在1995年发表。深度学习(2012)出现之前,SVM 被认为机器学习中近十几年来最成功,表现最好的算法。
1.1 SVM 基本概念
将实例的特征向量(以二维为例)映射为空间中的一些点,如下图的实心点和空心点,它们属于不同的两类。SVM 的目的就是想要画出一条线,以“最好地”区分这两类点,以至如果以后有了新的点,这条线也能做出很好的分类。
本质上就是找到一条直线或曲线能够最佳程度拟合数据点。
Q1:能够画出多少条线对样本点进行区分?
答:线是有无数条可 ...
SMOTE过采样算法
一、问题背景:类别不平衡
从模型的训练过程来看
从训练模型的角度来说,如果某类的样本数量很少,那么这个类别所提供的“信息”就太少。
使用经验风险(模型在训练集上的平均损失)最小化作为模型的学习准则。设损失函数为0-1 loss(这是一种典型的均等代价的损失函数),那么优化目标就等价于错误率最小化(也就是accuracy最大化)。考虑极端情况:1000个训练样本中,正类样本999个,负类样本1个。训练过程中在某次迭代结束后,模型把所有的样本都分为正类,虽然分错了这个负类,但是所带来的损失实在微不足道,accuracy已经是99.9%,于是满足停机条件或者达到最大迭代次数之后自然没必要再优化下去,ok,到此为止,训练结束!
于是这个模型没有学习到如何去判别出少数类。
从模型的预测过程来看
考虑二项Logistic回归模型。输入一个样本 x ,模型输出的是其属于正类的概率 y’ 。当 y’>0.5时,模型判定该样本属于正类,否则就是属于反类。
为什么是0.5呢?可以认为模型是出于最大后验概率决策的角度考虑的,选择了0.5意味着当模型 ...
聚类算法简述
一、K-Means(K均值)聚类
算法步骤:
(1) 首先我们选择一些类/组,并随机初始化它们各自的中心点。中心点是与每个数据点向量长度相同的位置。这需要我们提前预知类的数量(即中心点的数量)。
(2) 计算每个数据点到中心点的距离,数据点距离哪个中心点最近就划分到哪一类中。
(3) 计算每一类中中心点作为新的中心点。
(4) 重复以上步骤,直到每一类中心在每次迭代后变化不大为止。也可以多次随机初始化中心点,然后选择运行结果最好的一个。
下图演示了K-Means进行分类的过程:
优点
速度快,计算简便
缺点
我们必须提前知道数据有多少类/组。
K-Medians是K-Means的一种变体,是用数据集的中位数而不是均值来计算数据的中心点。
K-Medians的优势是使用中位数来计算中心点不受异常值的影响;缺点是计算中位数时需要对数据集中的数据进行排序,速度相对于K-Means较慢。
KMeans 具体过程如下:
1、比如下面是随机的一些点,我们想将这些点分成三类,聚类中用簇(cluster)表示,那么离得比较近的点肯定归为一个簇,最理想的情况就是如下所示,不同簇用不同的 ...
Batch-Size解析
1.Batch Size 是什么?
Batch Size指的是一次训练所选取的样本数,
Batch Size的大小影响模型的优化程度和速度。
2.Batch Size 对训练效果的影响
当Batch Size太小时,比如Batch Size=1。一次迭代只需对一个样本进行计算,因此单次迭代速度很快,可用于在线学习。在实际过程中,由于单个样本的随机性,一方面,训练会剧烈波动;一方面, 这种波动可能使训练到达更好的局部最小值。
当Batch Size增大时,GPU的利用率会提高,对于相同的数据量处理的速度会更快一些。与此同时,Batch Size越大,其确定的下降方向越准,网络训练(收敛)的更快。
当Batch Size太大时,比如每次迭代更新使用所有的训练样本。那么迭代速度就会非常慢,甚至会出现训练不动的情况。
3.合理增大Batch Size 的好处
在合理范围内增大Batch Size 的好处在以下几个方面:
一次训练多组数据,内存利用率提高;GPU并行计算效率提高;
相比于小批量,对于相同的数据量,处理速度更快;
在一定范围内,一般来说,Batch Size 越大,其确定的 ...
优化算法
SGD、BGD、MBGD
现在所说的SGD一般都指MBGD(小批量梯度下降法Mini-batch Gradient Descent)。
三种梯度下降的方法用于更新参数,也就是当前参数等于上一时刻参数减去学习率乘以梯度。
三种方法的不同体现在计算梯度上
假设损失函数为二次函数,那么参数θ的更新公式为
SGD(随机梯度下降法Stochastic Gradient Descent)
SGD:mini-batch gradient descent(随机梯度下降)
SGD就是每一次迭代每次只用一个样本计算mini-batch的梯度,然后对参数进行更新,是最常见的优化方法了。
<img src=“https://ftp.bmp.ovh/imgs/2021/07/742b1819c08ba909.png” style=“zoom: 67%;” /
优点是速度快,缺点是可能陷入局部最优,搜索起来比较盲目,并不是每次都朝着最优的方向(因为单个样本可能噪音比较多),走的路径比较曲折(震荡)。
BGD (批梯度下降算法 Batch Gradient Descent)
计算梯度时候使用所有的数 ...
计算机顶级期刊会议及学习网址
CCF推荐计算机顶会/期刊
人工智能领域最核心的四大顶会AAAI、IJCAI、ICML和NIPS,以及作为计算机视觉和自然语言为代表的CVPR和ACL这两大学术会议,也涌现了许多“后起之秀”,比如仅创立六年却有深度学习顶会“无冕之王”之称的ICLR,还有创办于1996年的大有赶超ACL之势的自然语言处理领域顶会EMNLP。
作者:爱学习的团子酱
链接:https://zhuanlan.zhihu.com/p/339490850
来源:知乎
计算机视觉顶会
1、 ICCV (International Conference on Computer Vision)
ICCV 的全称是 IEEE International Conference on Computer Vision,即国际计算机视觉大会,由IEEE主办,与计算机视觉模式识别会议(CVPR)和欧洲计算机视觉会议(ECCV)并称计算机视觉方向的三大顶级会议,被澳大利亚ICT学术会议排名和中国计算机学会等机构评为最高级别学术会议,在业内具有极高的评价。不同于在美国每年召开一次的CVPR和只在欧洲召开的ECCV,ICCV在世 ...