1、梯度下降算法的正确步骤,(正确步骤dcaeb)(梯度下降法其实是根据函数的梯度来确定函数的极小值),这里的问题与其说是梯度下降算法的步骤不如说类似图图像分类训练的整个流程:网络初始化-输入to输出-期望输出与实际差值-根据误差计算更新权值-迭代进行。
a.计算预测值和真实值之间的误差; b.重复迭代,直至得到网络权重的最佳值; c.把输入传入网络,得到输出值 ;d.用随机值初始化权重和偏差; e.对每一个产生误差的神经元,调整相应的(权重)值以减小误差。
2、已知:大脑是有很多个叫做神经元的东西构成,神经网络是对大脑的简单的数学表达。每一个神经元都有输入、处理函数和输出。神经元组合起来形成了网络,可以拟合任何函数。为了得到最佳的神经网络,我们用梯度下降方法不断更新模型。
给定上述关于神经网络的描述,什么情况下神经网络模型被称为深度学习模型?(正确是A)
A.加入更多层,使神经网络的深度增加; B.有维度更高的数据; C.当这是一个图形识别的问题时; D.以上都不正确
神经网络理论上说是仿照生物神经学一层层迭代处理结构(生物学认为视觉系统是层级结构),层层抽象与迭代,多少层算深层结构没有硬性的规定,一般要超过2层。
3、训练CNN时,可以对输入进行旋转、平移、缩放等预处理提高模型泛化能力。这么说是对,还是不对?(正确答案:对)
扩充数据是提高泛化能力常用的方式,对数据的平移、旋转等是对CNN训练数据的扩充的操作方式。
4、下面哪项操作能实现跟神经网络中Dropout的类似效果?
A.Boosting B.Bagging C.Stacking D.Mapping(正确:B)
典型的神经网络其训练流程是将输入通过网络进行正向传导,然后将误差进行反向传播,Dropout就是针对这一过程之中,随机地删除隐藏层的部分单元,进行上述过程。步骤为:1)随机删除网络中的一些隐藏神经元,保持输入输出神经元不变;2)将输入通过修改后的网络进行前向传播,然后将误差通过修改后的网络进行反向传播;3)对于另外一批的训练样本,重复上述操作。他的作为从Hinton的原文以及后续的大量实验论证发现,dropout可以比较有效地减轻过拟合的发生,一定程度上达到了正则化的效果。A:Boosting方法是一种用来提高弱分类算法准确度的方法,这种方法通过构造一个预测函数系列,然后以一定的方式将他们组合成一个预测函数。B:bagging同样是弱分类器组合的思路,它首先随机地抽取训练集(training set),以之为基础训练多个弱分类器。然后通过取平均,或者投票(voting)的方式决定最终的分类结果。因为它随机选取训练集的特点,Bagging可以一定程度上避免过渡拟合(overfit)。C:stacking:它所做的是在多个分类器的结果上,再套一个新的分类器。这个新的分类器就基于弱分类器的分析结果,加上训练标签(training label)进行训练。一般这最后一层用的是LR。D:Sammon Mapping降维算法。
5、下列哪一项在神经网络中引入了非线性?(正确:B)
A.随机梯度下降 ; B.修正线性单元(ReLU) ;C.卷积函数 ;D.以上都不正确
"线性"="齐次性"+"可加性","齐次性"是指类似于: f(ax)=af(x),"可加性"是指类似于: f(x+y)=f(x)+f(y),
这里没有太多特别的原因, 就是一个名字. "非线性"当然就是这两条至少之一不成立。修正线性单元是非线性的激活函数。
6.CNN的卷积核是单层的还是多层的?
一般而言,深度卷积网络是一层又一层的。层的本质是特征图, 存贮输入数据或其中间表示值。一组卷积核则是联系前后两层的网络参数表达体, 训练的目标就是每个卷积核的权重参数组。描述网络模型中某层的厚度,通常用名词通道channel数或者特征图feature map数。不过人们更习惯把作为数据输入的前层的厚度称之为通道数(比如RGB三色图层称为输入通道数为3),把作为卷积输出的后层的厚度称之为特征图数。卷积核(filter)一般是3D多层的,除了面积参数, 比如3x3之外, 还有厚度参数H(2D的视为厚度1). 还有一个属性是卷积核的个数N。卷积核的厚度H, 一般等于前层厚度M(输入通道数或feature map数). 特殊情况M > H。卷积核的个数N, 一般等于后层厚度(后层feature maps数,因为相等所以也用N表示)。卷积核通常从属于后层,为后层提供了各种查看前层特征的视角,这个视角是自动形成的。卷积核厚度等于1时为2D卷积,对应平面点相乘然后把结果加起来,相当于点积运算;卷积核厚度大于1时为3D卷积,每片分别平面点求卷积,然后把每片结果加起来,作为3D卷积结果;1x1卷积属于3D卷积的一个特例,有厚度无面积, 直接把每片单个点乘以权重再相加。归纳之,卷积的意思就是把一个区域,不管是一维线段,二维方阵,还是三维长方块,全部按照卷积核的维度形状,对应逐点相乘再求和,浓缩成一个标量值也就是降到零维度,作为下一层的一个feature map的一个点的值!可以比喻一群渔夫坐一个渔船撒网打鱼,鱼塘是多层水域,每层鱼儿不同。船每次移位一个stride到一个地方,每个渔夫撒一网,得到收获,然后换一个距离stride再撒,如此重复直到遍历鱼塘。A渔夫盯着鱼的品种,遍历鱼塘后该渔夫描绘了鱼塘的鱼品种分布;B渔夫盯着鱼的重量,遍历鱼塘后该渔夫描绘了鱼塘的鱼重量分布;还有N-2个渔夫,各自兴趣各干各的;最后得到N个特征图,描述了鱼塘的一切!2D卷积表示渔夫的网就是带一圈浮标的渔网,只打上面一层水体的鱼;3D卷积表示渔夫的网是多层嵌套的渔网,上中下层水体的鱼儿都跑不掉;1x1卷积可以视为每次移位stride,甩钩钓鱼代替了撒网;下面解释一下特殊情况的 M > H:实际上,除了输入数据的通道数比较少之外,中间层的feature map数很多,这样中间层算卷积会累死计算机(鱼塘太深,每层鱼都打,需要的鱼网太重了)。所以很多深度卷积网络把全部通道/特征图划分一下,每个卷积核只看其中一部分(渔夫A的渔网只打捞深水段,渔夫B的渔网只打捞浅水段)。这样整个深度网络架构是横向开始分道扬镳了,到最后才又融合。这样看来,很多网络模型的架构不完全是突发奇想,而是是被参数计算量逼得。特别是现在需要在移动设备上进行AI应用计算(也叫推断), 模型参数规模必须更小, 所以出现很多减少握手规模的卷积形式, 现在主流网络架构大都如此。
7.什么是卷积?
对图像(不同的数据窗口数据)和滤波矩阵(一组固定的权重:因为每个神经元的多个权重固定,所以又可以看做一个恒定的滤波器filter)做内积(逐个元素相乘再求和)的操作就是所谓的『卷积』操作,也是卷积神经网络的名字来源。https://blog.csdn.net/dingyahui123/article/details/72808985
8.什么是CNN的池化pool层?
池化,简言之,即取区域平均或最大,如下图所示(图引自cs231n)上图所展示的是取区域最大,即下图左边部分中 左上角2x2的矩阵中6最大,右上角2x2的矩阵中8最大,左下角2x2的矩阵中3最大,右下角2x2的矩阵中4最大,所以得到上图右边部分的结果:6 8 3 4。关于池化的作用最可靠的解释是在尽量保持原数据关系的基础上进行变化降低维度,常用的是平均和最大池化法。
9.简述下什么是生成对抗网络。
GAN之所以是对抗的,是因为GAN的内部是竞争关系,一方叫generator,它的主要工作是生成图片,并且尽量使得其看上去是来自于训练样本的。另一方是discriminator,其目标是判断输入图片是否属于真实训练样本。更直白的讲,将generator想象成假币制造商,而discriminator是警察。generator目的是尽可能把假币造的跟真的一样,从而能够骗过discriminator,即生成样本并使它看上去好像来自于真实训练样本一样。GAN的主要思想是拥有两个竞争的神经网络模型。 一个将噪声数据作为输入,并产生样本(所谓的生成器)。 另一个模型(称为判别器)从生成器和训练数据接收样本,并且必须能够区分两个来源。 这两个网络进行连续的博弈,生成器学习产生越来越多的现实样本,鉴别器正在学习越来越好地区分生成的数据和实际数据。 这两个网络同时进行训练,最后的希望是竞争能够使生成器生成的样本与实际数据不可区分。
10.学梵高作画的原理是什么?
一个训练好的图像识别模型,比如训练毕加索画式的猫的分类模型会给你反馈一个概率分数,表示它相信这是一张“毕加索猫”照片的程度。这中间经历了很多CNN层,每层CNN都在狗狗照片上寻找输入样本是毕加索猫的图形特征证据,越底层的神经元分析的特征越具体,越高层越抽象。当然,最后模型会给出很低的分数,如果输入是一个狗照片识别毕加索猫的过程中,如果让模型能够修改输入的样本又会怎样呢?给模型网络中加一个反馈回路,让每一层网络可以朝着使最后分数变大的方向上修改狗狗照片。每次迭代网络中的每层都会在狗照上增加一些毕加索猫的特征痕迹,可以迭代很多次,让狗狗照片中加入越来越多的毕加索猫的实物特征。这就是使用卷积神经网络艺术作画的概念基础,让艺术风格模型的CNN按图形特征修改输入图片,叠加艺术效果。大致的实现思路如下:1)输入特征图像,训练风格模型,让计算机学会艺术风格。2)输入待处理图,风格模型引导修改输入图片,生成新的图像,输出“艺术画”。
11.请简要介绍下tensorflow的计算图。
Tensorflow是一个通过计算图的形式来表述计算的编程系统,计算图也叫数据流图,可以把计算图看做是一种有向图,Tensorflow中的每一个节点都是计算图上的一个Tensor, 也就是张量,而节点之间的边描述了计算之间的依赖关系(定义时)和数学操作(运算时)。a=x*y; b=a+z; c=tf.reduce_sum(b);
12.你有哪些deep learning(rnn、cnn)调参的经验?
1、参数初始化,参数初始化影响收敛速度和收敛结果甚至造成Nan等问题,下面的n_in为网络的输入大小,uniform均匀分布初始化:w = np.random.uniform(low=