深度学习面试总结(无序)

计算机视觉分类

深度学习在计算机视觉领域四大基本任务中的应用,包括分类(图a)、定位、检测(图b)、语义分割(图c)、和实例分割(图d)
在这里插入图片描述

逻辑回归

广义线性模型(generalizedlinear model)
如果是连续的,就是多重线性回归;
如果是二项分布,就是Logistic回归;
如果是Poisson分布,就是Poisson回归;
如果是负二项分布,就是负二项回归;

Logistic回归的因变量可以是二分类的,也可以是多分类的,但是二分类的更为常用,也更加容易解释。所以实际中最常用的就是二分类的Logistic回归。

Logistic回归的主要用途

寻找危险因素:寻找某一疾病的危险因素等;
预测:根据模型,预测在不同的自变量情况下,发生某病或某种情况的概率有多大;
判别:实际上跟预测有些类似,也是根据模型,判断某人属于某病或属于某种情况的概率有多大,也就是看一下这个人有多大的可能性是属于某病。

常规步骤

Regression问题的常规步骤为:

  • 寻找h函数预测函数(即hypothesis);
  • 构造J函数(损失函数);
  • 想办法使得J函数最小并求得回归参数(θ)

构造预测函数h

Logistic回归虽然名字里带“回归”,但是它实际上是一种分类方法,主要用于两分类问题(即输出只有两种,分别代表两个类别),所以利用了Logistic函数(或称为Sigmoid函数),函数形式为:
在这里插入图片描述
下面左图是一个线性的决策边界,右图是非线性的决策边界。
在这里插入图片描述
对于线性边界的情况,边界形式如下:
在这里插入图片描述
构造预测函数为:
在这里插入图片描述
函数的值有特殊的含义,它表示结果取1的概率,因此对于输入x分类结果为类别1和类别0的概率分别为:
在这里插入图片描述

构造损失函数J

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这类。

神经网络中的Epoch、Iteration、Batchsize

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

对于rnn网络

  • 首先我们定义三个参数:g:门的数量(RNN有1个门,GRU有3个,LSTM有4个),h:隐藏单元大小 ,i:输出层大小
  • 每个门中的权重实际上是一个输入大小(h + i)(解释:上一个时刻的隐状态和当前输入的拼接)和输出大小为h(解释:当前时刻的隐状态)的FFNN。所以每个门都有h(h + i)+ h个参数。即在RNN中参数数量为:g ×[ h(h + i)+ h ]
  • 注意:输出我们只关心h,不关心其上层的全连接或者softmax,因为这已经不是当前rnn的参数了。

举例:具有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

对于CNN网络:

首先我们定义三个参数:i:输入尺寸,f:卷积核的大小,o:输出大小
则每个滤波器对应的输出映射参数为:num_params =权重+偏差= [ i×(f×f)×o ] + o
例如带有1 × 1滤波器的灰度图像,输出3个通道:
在这里插入图片描述
参数数量为: [ i×(f×f)×o ] + o= [1 ×(2 × 2)× 3] + 3= 15

CNN

经典的多层感知机由一系列全连接层组成,卷积神经网络中除全连接层外,还有卷积层和汇合(pooling)层。
(1) 卷积层
为什么要用卷积层 输入图像通常很维数很高,例如,1,000×1,000大小的彩色图像对应于三百万维特征。因此,继续沿用多层感知机中的全连接层会导致庞大的参数量。大参数量需要繁重的计算,而更重要的是,大参数量会有更高的过拟合风险卷积是局部连接、共享参数版的全连接层。这两个特性使参数量大大降低。卷积层中的权值通常被成为滤波器(filter)或卷积核(convolution kernel )。

局部连接 在全连接层中,每个输出通过权值(weight)和所有输入相连。而在视觉识别中,关键性的图像特征、边缘、角点等只占据了整张图像的一小部分,图像中相距很远的两个像素之间有相互影响的可能性很小。因此,在卷积层中,每个输出神经元在通道方向保持全连接,而在空间方向上只和一小部分输入神经元相连。

共享参数 如果一组权值可以在图像中某个区域提取出有效的表示,那么它们也能在图像的另外区域中提取出有效的表示。也就是说,如果一个模式(pattern)出现在图像中的某个区域,那么它们也可以出现在图像中的其他任何区域。因此,卷积层不同空间位置的神经元共享权值,用于发现图像中不同空间位置的模式。共享参数是深度学习一个重要的思想,其在减少网络参数的同时仍然能保持很高的网络容量(capacity)。卷积层在空间方向共享参数,而循环神经网络(recurrent neural networks)在时间方向共享参数。

卷积层的作用 通过卷积,我们可以捕获图像的局部信息。通过多层卷积层堆叠,各层提取到特征逐渐由边缘、纹理、方向等低层级特征过度到文字、车轮、人脸等高层级特征。

描述卷积的四个量 一个卷积层的配置由如下四个量确定。

  1. 滤波器个数。使用一个滤波器对输入进行卷积会得到一个二维的特征图(feature map)。我们可以用时使用多个滤波器对输入进行卷积,以得到多个特征图。
  2. 感受野(receptive field) F,即滤波器空间局部连接大小。
  3. 零填补(zero-padding) P。随着卷积的进行,图像大小将缩小,图像边缘的信息将逐渐丢失。因此,在卷积前,我们在图像上下左右填补一些0,使得我们可以控制输出特征图的大小。
  4. 步长(stride) S。滤波器在输入每移动S个位置计算一个输出神经元。

卷积输入输出的大小关系 假设输入高和宽为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. 更少的参数量。假设通道数为D,三层3×3卷积的参数量为3×(D×D×3×3)=27D2, 而一层7×7卷积的参数量为D×D×7×7=49D2
  2. 更多非线性。由于每层卷积层后都有非线性激活函数,三层3×3卷积一共经过三次非线性激活函数,而一层7×7卷积只经过一次。

1×1卷积 旨在对每个空间位置的D维向量做一个相同的线性变换。通常用于增加非线性,或降维,这相当于在通道数方向上进行了压缩。1×1卷积是减少网络计算量和参数的重要方式
https://zhuanlan.zhihu.com/p/40050371

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值