2018-8-4 YY电话面经

1 问 了项目中人脸识别项目具体流程:

回答了比较传统的方式:人脸识别包括了人脸检测,人脸识别两部分。

 

2 家具分类中存在很相似的图片,如何去通过模型算法或者训练过程中如何去解决这个问题?

 

 

3 回答随机梯度下降的概念,(Stochastic Gradient Descent, SGD),其中动量项、学习率,权值衰减三个项的概念。

 推荐一个博客  

https://blog.csdn.net/tsyccnh/article/details/76270707

https://blog.csdn.net/tsyccnh/article/details/76064087

https://blog.csdn.net/chezhai/article/details/79653443

在使用随机梯度下降(SGD)的学习方法时,一般来说有以下几个可供调节的参数:

  • Learning Rate 学习率
  • Weight Decay 权值衰减
  • Momentum 动量
  • Learning Rate Decay 学习率衰减

Learning Rate

学习率决定了权值更新的速度,设置得太大会使结果越过最优值,太小会使下降速度过慢。仅靠人为干预调整参数需要不断修改学习率

Weight decay

在实际运用中,为了避免模型的over-fitting,需要对cost function加入规范项,在SGD中我们加入$−ηλw_i$这一项来对cost function进行规范化。


这个公式的基本思路是减小不重要的参数对结果的影响,而有用的权重则不会受到Weight decay的影响,这种思路与Dropout的思路原理上十分相似。

Link 1
Link 2

Learning Rate Decay

一种提高SGD寻优能力的方法,具体做法是每次迭代减小学习率的大小。


在许多论文中,另一种比较常见的方法是迭代30-50次左右直接对学习率进行操作

Momentum

灵感来自于牛顿第一定律,基本思路是为寻优加入了“惯性”的影响,这样一来,当误差曲面中存在平坦区SGD可以一更快的速度学习。


注意:这里的表示方法并没有统一的规定,这里只是其中一种

Link 1
Link 2
Link 3
Link 4

(1)动量项

训练网络时,通常先对网络的初始权值按照某种分布进行初始化,如:高斯分布。初始化权值操作对最终网络的性能影响比较

大,合适的网络初始权值能够使得损失函数在训练过程中的收敛速度更快,从而获得更好的优化结果。但是按照某类分布随机初始化网络权值时,存在一些不确定因素,并不能保证每一次初始化操作都能使得网络的初始权值处在一个合适的状态。不恰当的初始权值可能使得网络的损失函数在训练过程中陷入局部最小值,达不到全局最优的状态。因此,如何消除这种不确定性,是训练深度网络是必须解决的一个问题。 

       momentum 动量能够在一定程度上解决这个问题。momentum 动量是依据物理学的势能与动能之间能量转换原理提出来的。

当 momentum 动量越大时,其转换为势能的能量也就越大,就越有可能摆脱局部凹域的束缚,进入全局凹域。momentum 动量主

要用在权重更新的时候。

        一般,神经网络在更新权值时,采用如下公式 w = w - learning_rate * dw

        引入momentum后,采用如下公式:v = mu * v - learning_rate * dw

                                                       w = w + v

        其中,v初始化为0,mu是设定的一个超变量,最常见的设定值是0.9。可以这样理解上式:如果上次的momentum(v)与这次的。负梯度方向是相同的,那这次下降的幅度就会加大,从而加速收敛。

(2)随机梯度下降

在梯度下降法的求解过程中,只需求解损失函数的一阶导数,计算的代价比较小,这使得梯度下降法能在很多大规模数据集上得到应用。梯度下降法的含义是通过当前点的梯度方向寻找到新的迭代点。

随机梯度下降的想法很简单,就是不直接计算梯度的精确值,而是用梯度的无偏估计代替之作为下降方向

  基本思想可以这样理解:我们从山上的某一点出发,找一个最陡的坡走一步(也就是找梯度方向),到达一个点之后,再找最陡的坡,再走一步,直到我们不断的这么走,走到最“低”点(最小花费函数收敛点)。

        这里写图片描述 
  如上图所示,得到了局部最优解。x,y表示的是theta0和theta1,z方向表示的是花费函数,很明显出发点不同,最后到达的收敛点可能不一样。当然如果是碗状的,那么收敛点就应该是一样的。

随机梯度下降的代价函数如下: 

 

随机梯度下降算法中,我们的步骤如下:

  1. 将所有数据打乱。
  2. 重复执行梯度下降计算,注意,这里每一次计算θjθj不是遍历全部的训练集m,而是从m个训练集里取出1个样本来计算。所以每次梯度下降的计算只需要一个样本代入计算。这一点是和批量梯度下降最大的不同。

随机梯度下降过程中,相比于批量梯度下降,会更曲折一些,但每一次的迭代都会更快,因为我们不需要对所有样本求和,每一次只需要保证拟合一个样本即可。

实际上,运行随机梯度下降和批量梯度下降这两种算法的收敛形式是不同的,你会发现随机梯度下降最终会在靠近全局最小值的区域内徘徊,而不是直接逼近全局最小值并停留在那里。但实际上这并没有太大问题,只要参数最终移动到某个非常靠近全局最小值的区域内,这也会得到一个较为不错的假设。

由于随机梯度下降每一次的梯度下降计算只需要计算单个样本,而不是像批量梯度下降那样每次计算全部样本,所以随机梯度下降的下降过程会很快。

4 介绍一下深度残差网络的模型结构,特点,一个基本的残差模块中间的激活函数一般放在什么位置,取什么激活函数。

 

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值