深度学习 autoencoder_面试宝典之深度学习面试题(下)
点击上方“Python全家桶”,“星标”或"置顶"
关键时刻,第一时间送达
今天已经是三月十一号,金三银四的金三已经过了三分之一,不知道大家最近工作找的咋样?
身边最近也有好多朋友打算换工作,和他们交流了许多,都在说今年的就业市场没有之前那么好,以往简历投出去,马上就能收到好几个面试机会,而现在隔几天才能收到一个面试。确实是这样,毕竟今年是资本寒冬,大环境都不行,许多企业都已经开始裁员了,直接导致就业需求和往年相比大大降低,再加上被裁人员的再就业竞争,想要再寻求一份称心如意的工作就难上加难了。所以建议大家要是目前工作还是可以的话,最好是先干着,更不建议裸辞找工作。
说到正题,之前分享了10道深度学习面试题,今天再继续分享10道,希望这些面试题可以帮助到找深度学习岗位的朋友们。
11.神经网路中使用relu函数要好过tanh和sigmoid函数?
答:1.使用sigmoid函数,算激活函数时(指数运算),计算量大,反向传播误差梯度时,求导涉及除法和指数运算,计算量相对较大,而采用relu激活函数,整个过程的计算量节省很多
2.对于深层网络,sigmoid函数反向传播时,很容易就会出现梯度消失的情况,这种现象称为饱和,从而无法完成深层网络的训练。而relu函数就不会出现饱和倾向,不会有特别小的梯度出现
3.relu函数会使一部分神经元的输出为0,这样就造成了网络的稀疏性,并且减少了参数的相互依存关系,缓解了过拟合问题的发生。当然现在也有一些对relu函数的改进,比如prelu, random relu等,在不同的数据集上会有一些训练速度上或者准确率上的改进多加一句,现在主流的做法,会多做一步batch normalization,尽可能保证每一层网络的输入具有相同的分布。
12.深度学习中的Batch Normalization?
答:BN就是在神经网络的训练过程中对每层的输入数据加一个标准化处理
传统的神经网络,只是在将样本x输入输入层之前对x进行标准化处理(减均值,除标准差),以降低样本间的差异性。BN是在此基础上,不仅仅只对输入层的输入数据x进行标准化,还对每个隐藏层的输入进行标准化
13.为什么在LSTM模型中既存在sigmoid函数又存在tanh两种激活函数,二不是选择区中单独的一组?这样做的目的是什么?
答:sigmoid函数用在了各种gate上,产生0~1之间的值,这个一般只有sigmoid最直接了;
tanh用在了状态和输出上,是对数据的处理,这个用其他激活函数或许也可以;
两者的目的不同
14.如何解决RNN梯度爆炸和弥散的问题?
答:梯度爆炸:为解决梯度爆炸问题,Thomas Mikolov首先提出了一个简单的启发性的解决方案,就是当梯度大于一定阀值的时候,将它截断为一个较为小的数。
解决梯度弥散问题的两种方法:
第一种:将随机初始化W改为一个有关联的矩阵初始化。
第二种:使用ReLU代替sigmid函数。ReLU导数不是0就是1,因此,神经元的梯度将始终为1,而不会当梯度传播了一定时间之后变小
15.什么样的资料不适合深度学习?
答:(1) 数据集太小,数据样本不足时,深度学习相对于其他机器学习算法,没有明显优势;
(2) 数据集没有局部相关性,目前深度学习表现较好的领域是图像识、语音、自然语言处理等领域,这些领域的一个共性是局部相关性。图像中像素组成物体,语音信号中音位组合成单词,文本数据中单词组合成句子,这些特征元素的组合一旦被打乱,表示的含义同时也被改变。对于没有这样的局部相关性的数据集,不合适使用深度学习算法进行处理。举个例子:预测一个人的健康状况,相关的参数会有年龄,职业,收入,家庭状况等各种因素,将这些元素打乱,并不会影响相关的结果
16.如何解决梯度消失和梯度膨胀?
答:(1) 梯度消失:根据链式法则,如果每一层神经元对上一层的输出的偏导乘上权重解雇小于1的话,那么即使这个结果是0.99,经过足够多层传播之后,误差对输入层的偏导会趋于0;
(2) 梯度膨胀:根据链式法则,如果每一层神经元对上一层的输出的偏导乘上权重结果都大于1的话,在经过足够多层传播之后,误差对输入层的偏导会趋于无穷大
解决方案:可以通过激活函数来解决或者用Bath Normalization解决这个问题
17.广义线性模型是怎么被应用在深度学习中?
答:深度学习从统计学角度,可以看做递归的广义线性模型
广义线性模型相对于经典的线性模型(y=wx+b),核心在于引入了连接函数g(.),形式变为:y=g-1(wx+b)
深度学习时递归的广义线性模型,神经元的激活函数,既为广义线性模型的连接函数。逻辑回归(广义线性模型的一种)的Logistic函数即为神经元激活函数中的sigmoid函数,很多类似的方法在统计学和神经网络中的名称不一样,容易引起初学者的困惑
18.简述神经网络的发展史?
答:sigmoid会饱和,造成梯度消失,于是有了ReLU
ReLU负半轴是死区,会造成梯度变为0,于是有了LeakyReLU、PReLU
强调梯度和权值分布的稳定性,由此有了ELU,以及较新的SELU
太深了,梯度传递不下去,于是有了highway
干脆连highway的参数都不要,直接变残差,于是有了ResNet
强行稳定参数的均值和方差,于是有了BatchNorm
在梯度流中增加噪声,于是有了Dropout
RNN梯度不稳定,于是加几个通路和门控,于是有了LSTM
LSTM简化一下,有了GRU
GAN的JS散度有问题,会导致梯度消失或者无效,于是有了WGAN
WGAN对梯度的clip有问题,于是有了WGAN-GP
19.深度学习常用方法:
答:全连接DNN(相邻层互相连接,层内无连接)
AutoEncoder(尽可能还原输入)、Sparse Coding(在AE上加入L1规范)、RBM(解决概率问题)---->>特征检测---->>栈式叠加贪心训练
RBM---->DBM
解决全连接DNN的全连接问题---->CNN
解决全连接DNN的无法对时间序列上变化进行建模的问题---->RNN----解决时间轴上的梯度消失问题---->>LSTM
DNN是传统的全连接网络,可以用于广告点击预估,推荐等。其使用embedding的方式将很多离散的特征编码到神经网络中,可以很大的提升结果
CNN主要用于计算机视觉(Computer Vision)领域,CNN的出现主要解决了DNN在图像领域中参数过多的问题。同时,CNN特有的卷积,池化、batch normalization、Inception、ResNet、DeepNet等一系列的发展使得在分类、物体检测、人脸识别、图像分割等众多领域有了长足的进步。同时,CNN不仅在图像上应用很多,在自然语言处理上也颇有进展,现在已经有基于CNN的语言模型可以比LSTM更好的效果。在最新的AlphaZero中,CNN中的ResNet也是两种基本算法之一
GAN是一种应用在生成模型的训练方法现在有很多在CV方面的应用,例如图像翻译,图像超清化,图像修复等等
RNN主要应用于NLP领域,用于处理序列到序列的问题。普通RNN会遇到梯度爆炸和梯度消失的问题。所以现在在NLP领域,一般会使用LSTM模型。在最近的机器翻译领域,Attention作为一种新的手段,也被引入进来
除了DNN、RNN和CNN外,自动编码器(AutoEncoder)、稀疏编码(SparseCoding)、深度信念网络(DBM)、限制玻尔兹曼(RBM)也都有相应的研究
20.简单说说CNN常用的几个模型:
名称 |
特点 |
LeNet5 |
没啥特点,不过是第一个CNN应该知道 |
AlexNet |
引入了ReLU和dropout,引入数据增强,池化相互之间有覆盖,三个卷积一个最大池化+三个全连接 |
VGGNet |
采用1*1和3*3的卷积核以及2*2的最大池化使得层数变得更深,常用VGGNet-16和VGGNet-19 |
Google Inception Net |
这个在控制参数的同时,获得了比较好的分类性能,和上面相比有几个大的改进 1.去除最后的全连接层,而是用一个全局的平均池化层来取代它 2.引入Inception Module,这是一个4个分支结合的结构,所有的分支都用到了1*1的卷积,这是因为1×1性价比很高,可以用很少的参数达到非线性和特征变换 3.Inception V2第二版将所有的5*5变成2个3*3,而且提出来著名的Batch Normalization 4.Inception V3第三版就更变态了,把较大的二维卷积拆成了两个较小的一维卷积,加速运算,减少过拟合,同时还更改了Inception Module的结构 |
微软ResNet残差神经网络 (Residual Neural Network) |
1.引入高速公路结构,可以让神经网络 变得非常深 2.ResNet第二个版本将ReLU激活函数 变成y=x的线性函数 |
到这里深度学习的20道面试题就已经分享完成。要是感觉本文不错,欢迎大家点赞转发。
推荐阅读:
面试宝典之深度学习面试题(上)
程序员究竟能干多少年?
Python这些函数简直是屌爆了
Python这些函数简直是屌爆了
资料分享:
回复关键字【python】,获取Python系统教程
回复关键字【AI】,获取AI完整教程
回复关键字【软件】,获取软件安装包
关注公众号,回复关键
字领取对应资源
请把我分享给你身边更多的人
喜欢的话给小编一个好看
深度学习 autoencoder_面试宝典之深度学习面试题(下)相关推荐
- 备战金九银十,阿里P8师兄指导完整攻略(附:学习资料+面试宝典+项目实战笔记)
前言 还剩下两个月就到了金九银十,一般来说,秋招的含金量明显是高于春招的. 那么如何准备即将到来的面试热潮呢?运筹帷幄之后,决胜千里之外! 坚决不打毫无准备的仗是小编的原则:不论是笔试还是面试都是有章 ...
- Java面试宝典系列之基础面试题String、变量、类与对象、集合类、SSH(三)
Java面试宝典之数据结构基础 -- 线性表篇 作者:egg 邮箱:xtfggef@gmail.com 微博:http://weibo.com/xtfggef 博客:http://blog.csdn. ...
- 【2022最新Java面试宝典】—— Java异常面试题(33道含答案)
目录 一.Java异常架构与异常关键字 1. Java异常简介 2. Java异常架构 1.Throwable 2. Error(错误) 3. Exception(异常) 运行时异常 编译时异常 3. ...
- Java面试宝典系列之基础面试题String、变量、类与对象、集合类、SSH(一)
作者:egg 邮箱:xtfggef@gmail.com 微博:http://weibo.com/xtfggef 博客:http://blog.csdn.net/zhangerqing(转载请说明出处) ...
- 【面试宝典】2023前端面试题
文章目录 一.HTML 1.简述一下对HTML语义化的理解? 2.标签上 title 与 alt 属性的区别是什么? 3.href 与 src? 4.HTML新特性? 5.Localstorage.S ...
- (二十一)TCPIP面试宝典-进入大厂必备总结(下)
TCP 作为传输层的协议,是一个IT工程师素养的体现,也是面试中经常被问到的知识点.在此,我将 TCP 核心的一些问题梳理了一下,希望能帮到各位. 实际上这篇文章相当于是复习之前的网络基础部分.只不过 ...
- 面试宝典之高分回答面试题(二)
01 如果需求文档,测试点,用例都评审过了.你个人发现了一个bug,你认为对产品有好处,你该怎么处理? 首先要提交这个 bug到缺陷管理库,然后将bug汇报给相关人员.(大概意思) 02 怎么编写测试 ...
- Java面试宝典系列之基础面试题-常见的几种排序算法-插入、选择、冒泡、快排、堆排等
常见的几种排序算法-插入.选择.冒泡.快排.堆排: https://blog.csdn.net/zhangerqing/article/details/8831542
- Java面试宝典系列之基础面试题String、变量、类与对象、集合类、SSH(二)
作者:egg 邮箱:xtfggef@gmail.com 微博:http://weibo.com/xtfggef 博客:http://blog.csdn.net/zhangerqing(转载请说明出处) ...
最新文章
- 96.总线里的异步通信
- 微信消息类型和事件类型
- eclipse 翻译插件_这两个IDE插件,可以让你写出质量杠杠的代码
- python3开发工具推荐_python开发工具有哪些?我推荐这5款python开发工具!
- windows下OpenSSL加密证书安装步骤与使用方法
- dry的原理_速干面料的原理
- Kubernetes学习总结(16)—— Kubernetes 实战之部署 Redis 集群
- linux 设置自动定时清理日志
- 2021-CSP-J2/S2 自我题解
- 刚学的一招呵呵,愚人节到了,教个大家最强的整人方法
- HTML系列之div和span标签
- 根据某一列拆分Excel为多个表格
- 【Vue3 | 实现精美待办】01.项目启航
- 华科博士201万,西安交大本科生100万!华为「天才少年」校招薪资曝光
- MongoDB 空间定位(点) 与 距离检索
- http请求返回302处理方案
- java replica set_K8s 的ReplicaController ReplicaSet DaemonSet和Job
- sklearn中的线性回归
- 学者爱当官--学界官本位阴魂不散?
- el-form表单验证身份证合法性和手机号格式
热门文章
- 计算机会议室设计理念,多媒体会议室有什么功能你真的了解吗?
- 2022年回顾,以及2023年需要习惯上需要改善的、还有几个flag
- c++画蛋糕_poj1190 生日蛋糕 dfs
- python可视化学习(十九)joy plot
- centos7磁盘分区、格式化及LVM管理
- 淘宝api是指什么意思,我可以为你解答
- BIM模型HLoD设计文档
- Oracle - 输出Hello,Oracle!
- WinCC 7.5 读取 SQL server2016 中的表格数据
- android5.1jelly bean,谷歌公布安卓系统榜单:Jelly Bean稳坐第一