深度学习在计算机视觉领域四大基本任务中的应用,包括分类(图a)、定位、检测(图b)、语义分割(图c)、和实例分割(图d)
广义线性模型(generalizedlinear model)
如果是连续的,就是多重线性回归;
如果是二项分布,就是Logistic回归;
如果是Poisson分布,就是Poisson回归;
如果是负二项分布,就是负二项回归;
Logistic回归的因变量可以是二分类的,也可以是多分类的,但是二分类的更为常用,也更加容易解释。所以实际中最常用的就是二分类的Logistic回归。
寻找危险因素:寻找某一疾病的危险因素等;
预测:根据模型,预测在不同的自变量情况下,发生某病或某种情况的概率有多大;
判别:实际上跟预测有些类似,也是根据模型,判断某人属于某病或属于某种情况的概率有多大,也就是看一下这个人有多大的可能性是属于某病。
Regression问题的常规步骤为:
Logistic回归虽然名字里带“回归”,但是它实际上是一种分类方法,主要用于两分类问题(即输出只有两种,分别代表两个类别),所以利用了Logistic函数(或称为Sigmoid函数),函数形式为:
下面左图是一个线性的决策边界,右图是非线性的决策边界。
对于线性边界的情况,边界形式如下:
构造预测函数为:
函数的值有特殊的含义,它表示结果取1的概率,因此对于输入x分类结果为类别1和类别0的概率分别为:
Cost函数和J函数如下,它们是基于最大似然估计推导得到的。
梯度下降法求的最小值
θ更新过程:
θ更新过程可以写成:
过拟合问题
对于线性回归或逻辑回归的损失函数构成的模型,可能会有些权重很大,有些权重很小,导致过拟合(就是过分拟合了训练数据),使得模型的复杂度提高,泛化能力较差(对未知数据的预测能力)。
问题的主因
过拟合问题往往源自过多的特征。
解决方法
1)减少特征数量(减少特征会失去一些信息,即使特征选的很好)
可用人工选择要保留的特征;
模型选择算法;
2)正则化(特征较多时比较有效)
保留所有特征,但减少θ的大小
正则化方法
正则化是结构风险最小化策略的实现,是在经验风险上加一个正则化项或惩罚项。正则化项一般是模型复杂度的单调递增函数,模型越复杂,正则化项就越大。
从房价预测问题开始,这次采用的是多项式回归。左图是适当拟合,右图是过拟合。
直观来看,如果我们想解决这个例子中的过拟合问题,最好能将x3 x4的影响消除,也就是让θ3 θ4 接近0。假设我们对进行惩罚,并且令其很小,一个简单的办法就是给原有的Cost函数加上两个略大惩罚项,例如:
这样在最小化Cost函数的时候,θ3 θ4 接近0
正则项可以取不同的形式,在回归问题中取平方损失,就是参数的L2范数,也可以取L1范数。取平方损失时,模型的损失函数变为:
如果它的值很大,说明对模型的复杂度惩罚大,对拟合数据的损失惩罚小,这样它就不会过分拟合数据,在训练数据上的偏差较大,在未知数据上的方差较小,但是可能出现欠拟合的现象;
如果它的值很小,说明比较注重对训练数据的拟合,在训练数据上的偏差会小,但是可能会导致过拟合。
正则化后的梯度下降算法θ的更新变为:
其他优化算法
Conjugate gradient method(共轭梯度法)
Quasi-Newton method(拟牛顿法)
BFGS method
L-BFGS(Limited-memory BFGS)
y=kx+b
在线性回归模型中,输出一般是连续的, 对于每一个输入的x,都有一个对应的输出y。因此模型的定义域和值域都可以是无穷。
但是对于逻辑回归,输入可以是连续的[-∞, +∞],但输出一般是离散的,通常只有两个值{0, 1}。
这两个值可以表示对样本的某种分类,高/低、患病/ 健康、阴性/阳性等,这就是最常见的二分类逻辑回归。因此,从整体上来说,通过逻辑回归模型,我们将在整个实数范围上的x映射到了有限个点上,这样就实现了对x的分类。因为每次拿过来一个x,经过逻辑回归分析,就可以将它归入某一类y中。
可以认为逻辑回归的输入是线性回归的输出,将逻辑斯蒂函数(Sigmoid曲线)作用于线性回归的输出得到输出结果。
线性回归y = ax + b, 其中a和b是待求参数;
逻辑回归p = S(ax + b), 其中a和b是待求参数, S是逻辑斯蒂函数,然后根据p与1-p的大小确定输出的值,通常阈值取0.5,若p大于0.5则归为1这类。
batchsize:中文翻译为批大小(批尺寸)。在深度学习中,一般采用SGD训练,即每次训练在训练集中取batchsize个样本训练;
iteration:中文翻译为迭代,1个iteration等于使用batchsize个样本训练一次;一个迭代 = 一个正向通过+一个反向通过
epoch:迭代次数,1个epoch等于使用训练集中的全部样本训练一次;一个epoch = 所有训练样本的一个正向传递和一个反向传递
举个例子,训练集有1000个样本,batchsize=10,那么:训练完整个样本集需要:100次iteration,1次epoch。
这是一场以误差(Error)为主导的反向传播(Back Propagation)运动,旨在得到最优的全局参数矩阵,进而将多层神经网络应用到分类或者回归任务中去。
前向传递输入信号直至输出产生误差,反向传播误差信息更新权重矩阵。这两句话很好的形容了信息的流动方向,权重得以在信息双向流动中得到优化。
假设输入层大小i,隐藏层h,输出层o:
则参数量为各层之间的参数+每层的偏差=(ih+ho)+(h+o)
例如输入大小3,隐藏层大小5,输出大小2:
则参数个数为:(3×5 + 5×2)+(5 + 2) = 32
举例:具有2个隐藏单元和输入尺寸3的LSTM:
则参数量为:g ×[ h(h + i)+ h ]= 4 ×[2(2 + 3)+ 2] = 48
具有5个隐藏单元和输入大小为8的堆叠双向GRU +具有50个隐藏单元的LSTM的参数数量为:
第一层参数:2 × g ×[ h(h + i)+ h ] = 2 ×3×[5(5 + 8)+ 5] = 420
第二层参数: g ×[ h(h + i)+ h ]= 4×[50(50 + 10)+ 50]= 12200
则总参数量为: 420 + 12200 = 12620
首先我们定义三个参数:i:输入尺寸,f:卷积核的大小,o:输出大小
则每个滤波器对应的输出映射参数为:num_params =权重+偏差= [ i×(f×f)×o ] + o
例如带有1 × 1滤波器的灰度图像,输出3个通道:
参数数量为: [ i×(f×f)×o ] + o= [1 ×(2 × 2)× 3] + 3= 15
经典的多层感知机由一系列全连接层组成,卷积神经网络中除全连接层外,还有卷积层和汇合(pooling)层。
(1) 卷积层
为什么要用卷积层 输入图像通常很维数很高,例如,1,000×1,000大小的彩色图像对应于三百万维特征。因此,继续沿用多层感知机中的全连接层会导致庞大的参数量。大参数量需要繁重的计算,而更重要的是,大参数量会有更高的过拟合风险。卷积是局部连接、共享参数版的全连接层。这两个特性使参数量大大降低。卷积层中的权值通常被成为滤波器(filter)或卷积核(convolution kernel )。
局部连接 在全连接层中,每个输出通过权值(weight)和所有输入相连。而在视觉识别中,关键性的图像特征、边缘、角点等只占据了整张图像的一小部分,图像中相距很远的两个像素之间有相互影响的可能性很小。因此,在卷积层中,每个输出神经元在通道方向保持全连接,而在空间方向上只和一小部分输入神经元相连。
共享参数 如果一组权值可以在图像中某个区域提取出有效的表示,那么它们也能在图像的另外区域中提取出有效的表示。也就是说,如果一个模式(pattern)出现在图像中的某个区域,那么它们也可以出现在图像中的其他任何区域。因此,卷积层不同空间位置的神经元共享权值,用于发现图像中不同空间位置的模式。共享参数是深度学习一个重要的思想,其在减少网络参数的同时仍然能保持很高的网络容量(capacity)。卷积层在空间方向共享参数,而循环神经网络(recurrent neural networks)在时间方向共享参数。
卷积层的作用 通过卷积,我们可以捕获图像的局部信息。通过多层卷积层堆叠,各层提取到特征逐渐由边缘、纹理、方向等低层级特征过度到文字、车轮、人脸等高层级特征。
描述卷积的四个量 一个卷积层的配置由如下四个量确定。
卷积输入输出的大小关系 假设输入高和宽为H和W,输出高和宽为H’和W’, 则H’=(H-F+2P)/S+1, W’=(W-F+2P)/S+1. 当S=1时,通过设定P=(F-1)/2, 可以保证输入输出空间大小相同。例如,3*3的卷积需要填补一个像素使得输入输出空间大小不变。
应该使用多大的滤波器 尽量使用小的滤波器,如3×3卷积。通过堆叠多层3×3卷积,可以取得与大滤波器相同的感受野,例如三层3×3卷积等效于一层7×7卷积的感受野。但使用小滤波器有以下两点好处。
1×1卷积 旨在对每个空间位置的D维向量做一个相同的线性变换。通常用于增加非线性,或降维,这相当于在通道数方向上进行了压缩。1×1卷积是减少网络计算量和参数的重要方式
https://zhuanlan.zhihu.com/p/40050371