深度学习面试大题

深度学习面试大题

文章目录:


由于目录比较长,一个一个手写比较麻烦,手写了几行代码,自动生成目录

目录结构:

## 1、
## 2、
...
...
## 70、

自动生成代码:

def build_catalog(start, end):
    with open('catalog.txt', 'w', encoding='utf-8') as f:
        for i in range(start, end):
            f.write('## ' + str(i + 1) + '、\n')

if __name__ == '__main__':
    build_catalog(0, 70)

1、谈谈深度学习中的归一化问题。


2、CNN的卷积核是单层的还是多层的?

  一般而言,深度卷积网络是一层又一层的。层的本质是特征图(例如输入的RGB三通道的图片,可以看成是3张个feature map特征图), 存贮输入数据或其中间表示值。一组卷积核则是联系前后两层的网络参数表达体(卷积之后又会得到新feature map,不断的提取更多的特征), 训练的目标就是每个卷积核的权重参数组。

  至于卷积核是多层还是单层的,这个要看上一层的feature map的数量是多少,例如,输入是RGB三通道图片(3个feature map),那么卷积核的层数也是3(这里的层数其实就是指filter 的channel,而不是卷积核的个数,这个要分清楚)

  下面我画了一张图简要说明一下:
(feature map 和 kernel 中的值我没有填充,各位好汉自行脑补吧)
在这里插入图片描述


3、什么是卷积?

  对图像(不同的数据窗口数据)和滤波矩阵(卷积核)(一组固定的权重:因为每个神经元的多个权重固定,所以又可以看做一个恒定的滤波器filter)做内积(逐个元素相乘再求和)的操作就是所谓的『卷积』操作,也是卷积神经网络的名字来源。


4、什么是CNN的池化pool层?

首相说明池化分成两种:

  • 1、平均池化
  • 2、最大池(比较常用)
      什么是池化层,这个问题还是很好回答的,简而言之就是可视野中的平均值或最大值,如下图所示:
    在这里插入图片描述
      图所展示的是取区域最大,即上图左边部分中 左上角2x2的矩阵中6最大,右上角2x2的矩阵中8最大,左下角2x2的矩阵中3最大,右下角2x2的矩阵中4最大,所以得到上图右边部分的结果:6 8 3 4。

   池化的主要作用是降维


5、简述什么是生成对抗网络

GAN: Generative Adversarial Nets
  GAN之所以是对抗的,是因为GAN的内部是竞争关系,一方叫generator,它的主要工作是生成图片,并且尽量使得其看上去是来自于训练样本的。另一方是discriminator,其目标是判断输入图片是否属于真实训练样本

  更直白的讲,将generator想象成假币制造商,而discriminator是警察。generator目的是尽可能把假币造的跟真的一样,从而能够骗过discriminator,即生成样本并使它看上去好像来自于真实训练样本一样。

更多有关GAN的内容不做展开讲述


6、梵高作画的原理是什么?

  梵高作画背后的原理其实就把一张具有梵高风格的图片中的风格迁移到一张普通的内容图片中去,这就是风格迁移,有关风格迁移的相关原理可以参考:


7、请简要介绍下tensorflow的计算图

  Tensorflow是一个通过计算图的形式来表述计算的编程系统,计算图也叫数据流图,可以把计算图看做是一种有向图,Tensorflow中的每一个节点都是计算图上的一个Tensor, 也就是张量,而节点之间的边描述了计算之间的依赖关系(定义时)和数学操作(运算时)。如下两图表示:
a=x*y; b=a+z; c=tf.reduce_sum(b);


8、你有哪些深度学习(rnn、cnn)调参的经验?

下面的解析进攻参考:
一、参数初始化

  下面几种方式,随便选一个,结果基本都差不多。但是一定要做。否则可能会减慢收敛速度,影响收敛结果,甚至造成Nan等一系列问题。
下面的n_in为网络的输入大小,n_out为网络的输出大小,n为n_in或(n_in+n_out)*0.5
Xavier初始法论文:http://jmlr.org/proceedings/papers/v9/glorot10a/glorot10a.pdf

He初始化论文:https://arxiv.org/abs/1502.01852
A)uniform均匀分布初始化:w = np.random.uniform(low=-scale, high=scale, size=[n_in,n_out])
①Xavier初始法,适用于普通激活函数(tanh,sigmoid):scale = np.sqrt(3/n)
②He初始化,适用于ReLU:scale = np.sqrt(6/n)

B)normal高斯分布初始化:w = np.random.randn(n_in,n_out) * stdev # stdev为高斯分布的标准差,均值设为0
①Xavier初始法,适用于普通激活函数 (tanh,sigmoid):stdev = np.sqrt(n)
②He初始化,适用于ReLU:stdev = np.sqrt(2/n)

C)svd初始化:对RNN有比较好的效果。参考论文:https://arxiv.org/abs/1312.6120

二、数据预处理方式

  zero-center ,这个挺常用的.X -= np.mean(X, axis = 0) # zero-centerX /= np.std(X, axis = 0) # normalize
PCA whitening,这个用的比较少.

三、训练技巧

  要做梯度归一化,即算出来的梯度除以minibatch size clip c(梯度裁剪): 限制最大梯度,其实是value =sqrt(w12+w22….),如果value超过了阈值,就算一个衰减系系数,让value的值等于阈值: 5,10,15

  dropout对小数据防止过拟合有很好的效果,值一般设为0.5,小数据上dropout+sgd在我的大部分实验中,效果提升都非常明显.因此可能的话,建议一定要尝试一下。 dropout的位置比较有讲究, 对于RNN,建议放到输入->RNN与RNN->输出的位置.关于RNN如何用dropout,可以参考这篇论文:http://arxiv.org/abs/1409.2329

  adam,adadelta等,在小数据上,我这里实验的效果不如sgd, sgd收敛速度会慢一些,但是最终收敛后的结果,一般都比较好。如果使用sgd的话,可以选择从1.0或者0.1的学习率开始,隔一段时间,在验证集上检查一下,如果cost没有下降,就对学习率减半. 我看过很多论文都这么搞,我自己实验的结果也很好. 当然,也可以先用ada系列先跑,最后快收敛的时候,更换成sgd继续训练.同样也会有提升.据说adadelta一般在分类问题上效果比较好,adam在生成问题上效果比较好。

  除了gate之类的地方,需要把输出限制成0-1之外,尽量不要用sigmoid,可以用tanh或者relu之类的激活函数.1. sigmoid函数在-4到4的区间里,才有较大的梯度。之外的区间,梯度接近0,很容易造成梯度消失问题。2. 输入0均值,sigmoid函数的输出不是0均值的。
  rnn的dim和embdding size,一般从128上下开始调整. batch size,一般从128左右开始调整.batch size合适最重要,并不是越大越好.

  word2vec初始化,在小数据上,不仅可以有效提高收敛速度,也可以可以提高结果.

四、尽量对数据做shuffle

  LSTM 的forget gate的bias,用1.0或者更大的值做初始化,可以取得更好的结果,来自这篇论文:http://jmlr.org/proceedings/papers/v37/jozefowicz15.pdf, 我这里实验设成1.0,可以提高收敛速度.实际使用中,不同的任务,可能需要尝试不同的值.

  Batch Normalization据说可以提升效果,不过我没有尝试过,建议作为最后提升模型的手段,参考论文:Accelerating Deep Network Training by Reducing Internal Covariate Shift如果你的模型包含全连接层(MLP),并且输入和输出大小一样,可以考虑将MLP替换成Highway Network,我尝试对结果有一点提升,建议作为最后提升模型的手段,原理很简单,就是给输出加了一个gate来控制信息的流动,详细介绍请参考论文: http://arxiv.org/abs/1505.00387
来自@张馨宇的技巧:一轮加正则,一轮不加正则,反复进行。

五、Ensemble
  Ensemble是论文刷结果的终极核武器,深度学习中一般有以下几种方式
同样的参数,不同的初始化方式
不同的参数,通过cross-validation,选取最好的几组
同样的参数,模型训练的不同阶段,即不同迭代次数的模型。
不同的模型,进行线性融合. 例如RNN和传统模型.
更多深度学习技巧,请参见专栏:炼丹实验室 - 知乎专栏(链接:https://zhuanlan.zhihu.com/easyml)

本解析一来源@萧瑟,链接:https://www.zhihu.com/question/41631631/answer/94816420


9、CNN最成功的应用是在CV,那为什么NLP和Speech的很多问题也可以用CNN解出来?为什么AlphaGo里也用了CNN?这几个不相关的问题的相似性在哪里?CNN通过什么手段抓住了这个共性?

  1. 以上几个不相关问题的相关性:

  都存在局部与整体的关系,由低层次的特征经过组合,组成高层次的特征,并且得到不同特征之间的空间相关性(每一特征对应汽车的位置)。如下图:低层次的直线/曲线等特征,组合成为不同的形状,最后得到汽车的表示。
在这里插入图片描述
2、以上几个不相关问题的共同性:

  CNN抓住此共性的手段主要有四个:

  • 局部连接
  • 权值共享
  • 池化操作
  • 多层次结构。

  局部连接使网络可以提取数据的局部特征;权值共享大大降低了网络的训练难度,一个Filter只提取一个特征,在整个图片(或者语音/文本) 中进行卷积;池化操作与多层次结构一起,实现了数据的降维,将低层次的局部特征组合成为较高层次的特征,从而对整个图片进行表示。如下图:
在这里插入图片描述
上图中,如果每一个点的处理使用相同的Filter,则为全卷积,如果使用不同的Filter,则为Local-Conv。


10、LSTM结构推导,为什么比RNN好?

  推导forget gateinput gatecell statehidden information等的变化;因为LSTM有进有出且当前的cell informaton是通过input gate控制之后叠加的,RNN是叠乘,因此LSTM可以防止梯度消失或者爆炸


11、Sigmoid、Tanh、ReLu这三个激活函数有什么缺点或不足,有没改进的激活函数

  下面用一张图列举如下:
在这里插入图片描述

12、为什么引入非线性激励函数?

  第一,对于神经网络来说,网络的每一层相当于f(wx+b)=f(w’x),对于线性函数,其实相当于f(x)=x,那么在线性激活函数下,每一层相当于用一个矩阵去乘以x,那么多层就是反复的用矩阵去乘以输入。根据矩阵的乘法法则,多个矩阵相乘得到一个大矩阵。所以线性激励函数下多层网络与一层网络相当。比如,两层的网络f(W1*f(W2x))=W1W2x=Wx。

  第二,非线性变换是深度学习有效的原因之一。原因在于非线性相当于对空间进行变换,变换完成后相当于对问题空间进行简化,原来线性不可解的问题现在变得可以解了。

  下图可以很形象的解释这个问题,左图用一根线是无法划分的。经过一系列变换后,就变成线性可解的问题了。
在这里插入图片描述
  如果不用激励函数(其实相当于激励函数是f(x) = x),在这种情况下你每一层输出都是上层输入的线性函数,很容易验证,无论你神经网络有多少层,输出都是输入的线性组合,与没有隐藏层效果相当,这种情况就是最原始的感知机(Perceptron)了。

  正因为上面的原因,我们决定引入非线性函数作为激励函数,这样深层神经网络就有意义了(不再是输入的线性组合可以逼近任意函数)。最早的想法是sigmoid函数或者tanh函数,输出有界,很容易充当下一层输入(以及一些人的生物解释)。

13、请问人工神经网络中为什么ReLu要好过于tanh和sigmoid function?

先看sigmoid、tanh和RelU的函数图:在这里插入图片描述
  第一,采用sigmoid等函数,算激活函数时(指数运算),计算量大,反向传播求误差梯度时,求导涉及除法和指数运算,计算量相对大,而采用Relu激活函数,整个过程的计算量节省很多。

  第二,对于深层网络sigmoid函数反向传播时,很容易就会出现梯度消失的情况(在sigmoid接近饱和区时,变换太缓慢,导数趋于0,这种情况会造成信息丢失),这种现象称为饱和,从而无法完成深层网络的训练。而ReLU就不会有饱和倾向,不会有特别小的梯度出现。

  第三,Relu会使一部分神经元的输出为0,这样就造成了网络的稀疏性,并且减少了参数的相互依存关系,缓解了过拟合问题的发生(以及一些人的生物解释balabala)。当然现在也有一些对relu的改进,比如prelu,random relu等,在不同的数据集上会有一些训练速度上或者准确率上的改进,具体的大家可以找相关的paper看。

  多加一句,现在主流的做法,会多做一步batch normalization,尽可能保证每一层网络的输入具有相同的分布[1]。而最新的paper[2],他们在加入bypass connection之后,发现改变batch normalization的位置会有更好的效果。

14、为什么LSTM模型中既存在sigmoid又存在tanh两种激活函数,而不是选择统一一种sigmoid或者tanh?这样做的目的是什么?

在这里插入图片描述
  sigmoid用在了各种gate上,产生0~1之间的值,这个一般只有sigmoid最直接了,相当于要么是1则记住,要么是0则忘掉。

  tanh用在了状态和输出上,是对数据的处理,这个用其他激活函数或许也可以。

15、如何解决RNN梯度爆炸和弥散的问题?

  1. RNN梯度爆炸解决方法:
  • 采用梯度截断

  为了解决梯度爆炸问题,Thomas Mikolov首先提出了一个简单的启发性的解决方案,就是当梯度大于一定阈值的时候,将它截断为一个较小的数。具体如算法1所述:
算法:当梯度爆炸时截断梯度(伪代码)
在这里插入图片描述

  下图可视化了梯度截断的效果。它展示了一个小的rnn(其中W为权值矩阵,b为bias项)的决策面。这个模型是一个一小段时间的rnn单元组成;实心箭头表明每步梯度下降的训练过程。当梯度下降过程中,模型的目标函数取得了较高的误差时,梯度将被送到远离决策面的位置。截断模型产生了一个虚线,它将误差梯度拉回到离原始梯度接近的位置。
在这里插入图片描述
2. 梯度弥散(消失)解决方法:

  • 随机初始化W(hh) 改为一个有关联的的矩阵初始化
  • 使用ReLU(Rectified Linear Units)代替Sigmoid激活函数ReLU的导数不是0就是1.因此,神经元的梯度将始终为1,而不会当梯度传播了一定时间之后变小(梯度消失)。

16、什么样的资料集不适合用深度学习?

  1、数据集太小,数据样本不足时,深度学习相对其它机器学习算法,没有明显优势。

  2、数据集没有局部相关特性,目前深度学习表现比较好的领域主要是图像/语音/自然语言处理等领域,这些领域的一个共性是局部相关性。图像中像素组成物体,语音信号中音位组合成单词,文本数据中单词组合成句子,这些特征元素的组合一旦被打乱,表示的含义同时也被改变。对于没有这样的局部相关性的数据集,不适于使用深度学习算法进行处理。举个例子:预测一个人的健康状况,相关的参数会有年龄、职业、收入、家庭状况等各种元素,将这些元素打乱,并不会影响相关的结果。

17、广义线性模型是怎被应用在深度学习中?

  深度学习从统计学角度,可以看做递归的广义线性模型。
广义线性模型相对于经典的线性模型(y=wx+b),核心在于引入了连接函数g(.),形式变为:y=g−1(wx+b)。深度学习时递归的广义线性模型,神经元的激活函数,即为广义线性模型的链接函数。逻辑回归(广义线性模型的一种)的Logistic函数即为神经元激活函数中的Sigmoid函数,很多类似的方法在统计学和神经网络中的名称不一样

18、如何解决梯度消失(/梯度弥散)和梯度膨胀

(1)梯度消失:
  根据链式法则,如果每一层神经元对上一层的输出的偏导乘上权重结果都小于1的话,那么即使这个结果是0.99,在经过足够多层传播之后,误差对输入层的偏导会趋于0,可以采用ReLU激活函数有效的解决梯度消失的情况,也可以用Batch Normalization(使每一层的输出都有相同的分布)解决这个问题。关于深度学习中 Batch Normalization为什么效果好?参见:https://www.zhihu.com/question/38102762

(2)梯度膨胀
  根据链式法则,如果每一层神经元对上一层的输出的偏导乘上权重结果都大于1的话,在经过足够多层传播之后,误差对输入层的偏导会趋于无穷大,可以通过激活函数来解决,或用Batch Normalization解决这个问题。

19、简述神经网络的发展历史

  1949年Hebb提出了神经心理学学习范式——Hebbian学习理论

  1952年,IBM的Arthur Samuel写出了西洋棋程序

  1957年,Rosenblatt的感知器算法是第二个有着神经系统科学背景的机器学习模型.

  3年之后,Widrow因发明Delta学习规则而载入ML史册,该规则马上就很好的应用到了感知器的训练中,感知器的热度在1969被Minskey一盆冷水泼灭了。他提出了著名的XOR问题,论证了感知器在类似XOR问题的线性不可分数据的无力。

  尽管BP的思想在70年代就被Linnainmaa以“自动微分的翻转模式”被提出来,但直到1981年才被Werbos应用到多层感知器(MLP)中,NN新的大繁荣。

  1991年的Hochreiter和2001年的Hochreiter的工作,都表明在使用BP算法时,NN单元饱和之后会发生梯度损失。又发生停滞。

  时间终于走到了当下,随着计算资源的增长和数据量的增长。一个新的NN领域——深度学习出现了。

  简言之,MP模型+sgn—->单层感知机(只能线性)+sgn— Minsky 低谷 —>多层感知机+BP+sigmoid—- (低谷) —>深度学习+pre-training+ReLU/sigmoid

20、深度学习常用方法

全连接DNN(相邻层相互连接、层内无连接):
AutoEncoder(尽可能还原输入)、Sparse Coding(在AE上加入L1规范)、RBM(解决概率问题)—–>特征探测器——>栈式叠加 贪心训练
RBM—->DBN
解决全连接DNN的全连接问题—–>CNN
解决全连接DNN的无法对时间序列上变化进行建模的问题—–>RNN—解决时间轴上的梯度消失问题——->LSTM
解析来源:@SmallisBig,链接:http://blog.csdn.net/u010496169/article/details/73550487

  现在在应用领域应用的做多的是DNN,CNN和RNN。
DNN是传统的全连接网络,可以用于广告点击率预估,推荐等。其使用embedding的方式将很多离散的特征编码到神经网络中,可以很大的提升结果。

  CNN主要用于计算机视觉(Computer Vision)领域CNN的出现主要解决了DNN在图像领域中参数过多的问题。同时,CNN特有的卷积、池化、batch normalization、Inception、ResNet、DeepNet等一系列的发展也使得在分类、物体检测、人脸识别、图像分割等众多领域有了长足的进步。同时,CNN不仅在图像上应用很多,在自然语言处理上也颇有进展,现在已经有基于CNN的语言模型能够达到比LSTM更好的效果。在最新的AlphaZero中,CNN中的ResNet也是两种基本算法之一。

  GAN是一种应用在生成模型的训练方法,现在有很多在CV方面的应用,例如图像翻译,图像超清化、图像修复等等。

  RNN主要用于自然语言处理(Natural Language Processing)领域,用于处理序列到序列的问题。普通RNN会遇到梯度爆炸和梯度消失的问题。所以现在在NLP领域,一般会使用LSTM模型。在最近的机器翻译领域,Attention作为一种新的手段,也被引入进来。

  除了DNN、RNN和CNN外, 自动编码器(AutoEncoder)、稀疏编码(Sparse Coding)、深度信念网络(DBM)、限制玻尔兹曼机(RBM)也都有相应的研究

21、请简述神经网络的发展史。

sigmoid会饱和,造成梯度消失。于是有了ReLU。
ReLU负半轴是死区,造成梯度变0。于是有了LeakyReLU,PReLU。
强调梯度和权值分布的稳定性,由此有了ELU,以及较新的SELU。
太深了,梯度传不下去,于是有了highway。
干脆连highway的参数都不要,直接变残差,于是有了ResNet.

强行稳定参数的均值和方差,于是有了BatchNorm。
在梯度流中增加噪声,于是有了 Dropout。
RNN梯度不稳定,于是加几个通路和门控,于是有了LSTM。
LSTM简化一下,有了GRU。
GAN的JS散度有问题,会导致梯度消失或无效,于是有了WGAN。
WGAN对梯度的clip有问题,于是有了WGAN-GP。

22、神经网络中激活函数的真正意义?一个激活函数需要具有哪些必要的属性?还有哪些属性是好的属性但不必要的?

  1. 非线性:

  即导数不是常数。这个条件是多层神经网络的基础,保证多层网络不退化成单层线性网络。这也是激活函数的意义所在

  1. 几乎处处可微:

  可微性保证了在优化中梯度的可计算性。传统的激活函数如sigmoid等满足处处可微。对于分段线性函数比如ReLU,只满足几乎处处可微(即仅在有限个点处不可微)。对于SGD算法来说,由于几乎不可能收敛到梯度接近零的位置,有限的不可微点对于优化结果不会有很大影响。

  1. 计算简单:

  非线性函数有很多。极端的说,一个多层神经网络也可以作为一个非线性函数,类似于Network In Network[2]中把它当做卷积操作的做法。但激活函数在神经网络前向的计算次数与神经元的个数成正比,因此简单的非线性函数自然更适合用作激活函数。这也是ReLU之流比其它使用Exp等操作的激活函数更受欢迎的其中一个原因。

  1. 非饱和性(saturation):

  饱和指的是在某些区间梯度接近于零(即梯度消失),使得参数无法继续更新的问题。最经典的例子是Sigmoid,它的导数在x为比较大的正值和比较小的负值时都会接近于0。更极端的例子是阶跃函数,由于它在几乎所有位置的梯度都为0,因此处处饱和,无法作为激活函数。ReLU在x>0时导数恒为1,因此对于再大的正值也不会饱和。但同时对于x<0,其梯度恒为0,这时候它也会出现饱和的现象(在这种情况下通常称为dying ReLU)。Leaky ReLU和PReLU的提出正是为了解决这一问题。

  1. 单调性(monotonic):

  即导数符号不变。这个性质大部分激活函数都有,除了诸如sin、cos等。个人理解,单调性使得在激活函数处的梯度方向不会经常改变,从而让训练更容易收敛。

  1. 输出范围有限:

  有限的输出范围使得网络对于一些比较大的输入也会比较稳定,这也是为什么早期的激活函数都以此类函数为主,如Sigmoid、TanH。但这导致了前面提到的梯度消失问题,而且强行让每一层的输出限制到固定范围会限制其表达能力。因此现在这类函数仅用于某些需要特定输出范围的场合,比如概率输出(此时loss函数中的log操作能够抵消其梯度消失的影响)、LSTM里的gate函数。

  1. 接近恒等变换(identity):

  即约等于x。这样的好处是使得输出的幅值不会随着深度的增加而发生显著的增加,从而使网络更为稳定,同时梯度也能够更容易地回传。这个与非线性是有点矛盾的,因此激活函数基本只是部分满足这个条件,比如TanH只在原点附近有线性区(在原点为0且在原点的导数为1),而ReLU只在x>0时为线性。这个性质也让初始化参数范围的推导更为简单。额外提一句,这种恒等变换的性质也被其他一些网络结构设计所借鉴,比如CNN中的ResNet和RNN中的LSTM。

  1. 参数少:

  大部分激活函数都是没有参数的。像PReLU带单个参数会略微增加网络的大小。还有一个例外是Maxout,尽管本身没有参数,但在同样输出通道数下k路Maxout需要的输入通道数是其它函数的k倍,这意味着神经元数目也需要变为k倍;但如果不考虑维持输出通道数的情况下,该激活函数又能将参数个数减少为原来的k倍。

  1. 归一化(normalization):

  这个是最近才出来的概念,对应的激活函数是SELU,主要思想是使样本分布自动归一化到零均值、单位方差的分布,从而稳定训练。在这之前,这种归一化的思想也被用于网络结构的设计,比如Batch Normalization

23、梯度下降法的神经网络容易收敛到局部最优,为什么应用广泛?

24、简单说说CNN常用的几个模型

25、为什么很多做人脸的Paper会最后加入一个Local Connected Conv?

26、什么是梯度爆炸?

27、梯度爆炸会引发什么问题?

28、如何确定是否出现梯度爆炸?

29、如何修复梯度爆炸问题?

30、LSTM神经网络输入输出究竟是怎样的?

31、什么是RNN?

32、RNN是怎么从单层网络一步一步构造的?

33、简单说下sigmoid激活函数

34、如何从RNN起步,一步一步通俗理解LSTM

35、请详细说说CNN的工作原理

36、CNN究竟是怎样一步一步工作的?

37、rcnn、fast-rcnn和faster-rcnn三者的区别是什么

38、在神经网络中,有哪些办法防止过拟合?

39、CNN是什么,CNN关键的层有哪些?

40、GRU是什么?GRU对LSTM做了哪些改动?

41、请简述应当从哪些方向上思考和解决深度学习中出现的的over fitting问题?

42、神经网络中,是否隐藏层如果具有足够数量的单位,它就可以近似任何连续函数?

43、为什么更深的网络更好?

44、更多的数据是否有利于更深的神经网络?

45、不平衡数据是否会摧毁神经网络?

46、你如何判断一个神经网络是记忆还是泛化?

47、无监督降维提供的是帮助还是摧毁?

48、是否可以将任何非线性作为激活函数?

49、批大小如何影响测试正确率?

50、损失函数重要吗?

51、初始化如何影响训练?

52、不同层的权重是否以不同的速度收敛?

53、正则化如何影响权重?

54、什么是fine-tuning?

55、什么是边框回归Bounding-Box regression,以及为什么要做、怎么做

56、请阐述下Selective Search的主要思想

57、什么是非极大值抑制(NMS)?

58、什么是深度学习中的anchor?

59、CNN的特点以及优势

60、深度学习中有什么加快收敛/降低训练难度的方法?

61、请简单说下计算流图的前向和反向传播

62、请写出链式法则并证明

63、请写出Batch Normalization的计算方法及其应用

64、神经网络中会用到批量梯度下降(BGD)吗?为什么用随机梯度下降(SGD)?

65、当神经网络的调参效果不好时,从哪些角度思考?(不要首先归结于overfiting)

66、请阐述下卷积神经网络CNN的基本原理

67、了解无人驾驶的核心技术么?

68、如何形象的理解LSTM的三个门

69、通过一张张动图形象的理解LSTM

70、如何理解反向传播算法BackPropagation

在这里插入图片描述


在这里插入图片描述


在这里插入图片描述
♠ ⊕ ♠ ⊕ ♠ ⊕ ♠ ⊕ ♠ ⊕ ♠ ⊕ ♠ ⊕ ♠ ⊕ ♠ ⊕ ♠ ⊕ ♠ ⊕ ♠ ⊕ ♠ ⊕ ♠ ⊕ ♠ ⊕ ♠ ⊕ ♠ ⊕ ♠ ⊕ ♠ ⊕ ♠ ⊕ ♠ ⊕ ♠ ⊕ ♠ ⊕ ♠ ⊕ ♠ ⊕ ♠ ⊕ ♠ ⊕ ♠ ⊕ ♠ ⊕ ♠ ⊕ ♠

猜你喜欢

转载自blog.csdn.net/weixin_41010198/article/details/102820095