面试题汇总---深度学习(图像识别,NLP内容)

2023-11-02

文章目录

1.基本概念

1.1 为什么神经网络中深度网络的表现比广度网络表现好?

浅层结构算法:其局限性在于有限样本和计算单元情况下对复杂函数的表示能力有限,针对复杂分类问题其泛化能力受到一定制约。深度学习可通过学习一种深层非线性网络结构,实现复杂函数逼近,表征输入数据分布式表示,并展现了强大的从少数样本集中学习数据集本质特征的能力。(多层的好处是可以用较少的参数表示复杂的函数)
深度学习的实质,是通过构建具有很多隐层的机器学习模型和海量的训练数据,来学习更有用的特征,从而最终提升分类或预测的准确性。
浅层神经网络可以模拟任何函数,但数据量的代价是无法接受的。深层解决了这个问题。相比浅层神经网络,深层神经网络可以用更少的数据量来学到更好的拟合。深层的前提是:空间中的元素可以由迭代发展而来的。

1.2 推导BP算法

误差反向传播算法简称反向传播算法(即BP算法)。使用反向传播算法的多层感知器又称为BP神经网络。BP算法是一个迭代算法,它的基本思想为:(1)先计算每一层的状态和激活值,直到最后一层(即信号是前向传播的);(2)计算每一层的误差,误差的计算过程是从最后一层向前推进的(这就是反向传播算法名字的由来);(3)更新参数(目标是误差变小)。迭代前面两个步骤,直到满足停止准则(比如相邻两次迭代的误差的差别很小)。
参考博客

1.3 什么是梯度消失和梯度爆炸?

梯度消失:这本质上是由于激活函数的选择导致的, 最简单的sigmoid函数为例,在函数的两端梯度求导结果非常小(饱和区),导致后向传播过程中由于多次用到激活函数的导数值使得整体的乘积梯度结果变得越来越小,也就出现了梯度消失的现象。

梯度爆炸:同理,出现在激活函数处在激活区,而且权重W过大的情况下。但是梯度爆炸不如梯度消失出现的机会多

1.4 常用的激活函数有哪些?

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

1.5 常用的参数更新方法有哪些?

参考博客
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

1.6 解决过拟合的方法?

数据层面
  • 采集更多的数据
  • 数据增强:多用于图像方面
模型层面

dropout, regularization, batch normalizatin

  • dropout只在训练的时候用,让一部分神经元随机失活。
  • Batch normalization是为了让输出都是单位高斯激活,方法是在连接和激活函数之间加入BatchNorm层,计算每个特征的均值和方差进行规则化。

1.7 对卡在极小值的处理方法?

  • 1.调节步伐:调节学习速率,使每一次的更新“步伐”不同;
  • 2.优化起点:合理初始化权重(weights initialization)、预训练网络(pre-train),使网络获得一个较好的“起始点”,如最右侧的起始点就比最左侧的起始点要好。常用方法有:高斯分布初始权重(Gaussian distribution)、均匀分布初始权重(Uniform distribution)、Glorot 初始权重、He初始权、稀疏矩阵初始权重(sparse matrix)。

1.8 为何使用Batch Normalization?

参考博客
若用多个梯度的均值来更新权重的批量梯度下降法可以用相对少的训练次数遍历完整个训练集,其次可以使更新的方向更加贴合整个训练集,避免单个噪音样本使网络更新到错误方向。然而也正是因为平均了多个样本的梯度,许多样本对神经网络的贡献就被其他样本平均掉了,相当于在每个epoch中,训练集的样本数被缩小了。batch中每个样本的差异性越大,这种弊端就越严重。一般的解决方法就是在每次训练完一个epoch后,将训练集中样本的顺序打乱再训练另一个epoch,不断反复。这样重新组成的batch中的样本梯度的平均值就会与上一个epoch的不同。而这显然增加了训练的时间。同时因为没办法保证每次更新的方向都贴合整个训练集的大方向,只能使用较小的学习速率。这意味着训练过程中,一部分steps对网络最终的更新起到了促进,一部分steps对网络最终的更新造成了干扰,这样“磕磕碰碰”无数个epoch后才能达到较为满意的结果。

1.9 学习的本质是什么?

将变体拆分成因素和知识(Disentangle Factors of Variation)

2.卷积神经网络

2.1 1*1卷积核的作用有哪些?

参考博客

  • 1.实现跨通道的交互和信息整合
  • 2.进行卷积核通道数的降维和升维

2.2 CNN的思想是什么?

改变全连接为局部连接,这是由于图片的特殊性造成的(图像的一部分的统计特性与其他部分是一样的),通过局部连接和参数共享大范围的减少参数值。可以通过使用多个filter来提取图片的不同特征(多卷积核)。

2.3 filter尺寸的选择

通常尺寸多为奇数(1,3,5,7)

通常使用多个小的卷积核效果比使用少量的大的卷积核要好。

2. 4 输出尺寸计算公式

参考博客
输出尺寸=(N - F +padding*2)/stride + 1

步长可以自由选择通过补零的方式来实现连接。
Valid卷积意味着不填充,same是填充方式。

总结:padding = “Valid”,N = [(W-F+2P)/S]+1,这里表示的是向下取整再加1
padding = “same”,N = [W/S],这里表示向上取整

2. 5 pooling池化的作用

虽然通过.卷积的方式可以大范围的减少输出尺寸(特征数),但是依然很难计算而且很容易过拟合,所以依然利用图片的静态特性通过池化的方式进一步减少尺寸。

可以认为卷积层是特征的生成,pooling层是特征的选择。

2.6 常用的CNN模型

参考博客
在这里插入图片描述

3.循环神经网络

3.1 RNN的原理

在普通的全连接网络或CNN中,每层神经元的信号只能向上一层传播,样本的处理在各个时刻独立,因此又被成为前向神经网络(Feed-forward+Neural+Networks)。而在RNN中,神经元的输出可以在下一个时间戳直接作用到自身,即第i层神经元在m时刻的输入,除了(i-1)层神经元在该时刻的输出外,还包括其自身在(m-1)时刻的输出。所以叫循环神经网络

3.2 RNN、LSTM、GRU区别?

在这里插入图片描述

3.3 LSTM防止梯度弥散和爆炸

LSTM用加和的方式取代了乘积,使得很难出现梯度弥散。但是相应的更大的几率会出现梯度爆炸,但是可以通过给梯度加门限解决这一问题。

3.4 word2vec思想

这个也就是Word Embedding,是一种高效的从原始语料中学习字词空间向量的预测模型。分为CBOW(Continous Bag of Words)和Skip-Gram两种形式。其中CBOW是从原始语句推测目标词汇,而Skip-Gram相反。CBOW可以用于小语料库,Skip-Gram用于大语料库。具体的就不是很会了。

4.其他

4.1 简述一下GAN网络的原理?

GAN结合了生成模型和判别模型,相当于矛与盾的撞击。生成模型负责生成最好的数据骗过判别模型,而判别模型负责识别出哪些是真的哪些是生成模型生成的。但是这些只是在了解了GAN之后才体会到的,但是为什么这样会有效呢?

假设我们有分布Pdata(x),我们希望能建立一个生成模型来模拟真实的数据分布,假设生成模型为Pg(x;θθ ),我们的目的是求解θθ 的值,通常我们都是用最大似然估计。但是现在的问题是由于我们相用NN来模拟Pdata(x),但是我们很难求解似然函数,因为我们没办法写出生成模型的具体表达形式,于是才有了GAN,也就是用判别模型来代替求解最大似然的过程。

在最理想的状态下,G可以生成足以“以假乱真”的图片G(z)。对于D来说,它难以判定G生成的图片究竟是不是真实的,因此D(G(z)) = 0.5。这样我们的目的就达成了:我们得到了一个生成式的模型G,它可以用来生成图片。

4.2 GAN的表达式

通过分析GAN的表达可以看出本质上就是一个minmax问题。其中V(D, G)可以看成是生成模型和判别模型的差异,而minmaxD说的是最大的差异越小越好。这种度量差异的方式实际上叫做Jensen-Shannon divergence。

4.3 GAN的实际计算方法

因为我们不可能有Pdata(x)的分布,所以我们实际中都是用采样的方式来计算差异(也就是积分变求和)。具体实现过程如下:

有几个关键点:判别方程训练K次,而生成模型只需要每次迭代训练一次,先最大化(梯度上升)再最小化(梯度下降)。

但是实际计算时V的后面一项在D(x)很小的情况下由于log函数的原因会导致更新很慢,所以实际中通常将后一项的log(1-D(x))变为-logD(x)。

实际计算的时候还发现不论生成器设计的多好,判别器总是能判断出真假,也就是loss几乎都是0,这可能是因为抽样造成的,生成数据与真实数据的交集过小,无论生成模型多好,判别模型也能分辨出来。解决方法有两个:1、用WGAN 2、引入随时间减少的噪声

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

面试题汇总---深度学习(图像识别,NLP内容) 的相关文章

随机推荐

  • 密码加密传输

    1 背景 我们的系统一般都有用户 密码 用户登录向后端传送密码 明文传输过程中很容易被抓包盗取 我们可以有一下几种解决办法 1 1 使用https https诞生了 它不仅可以将你要传输的密码加密传输 甚至你的所有请求数据在网络传输中都是加
  • Java的Redis客户端,Jedis和Redisson客户端的使用详细说明;Jedis的基本使用;Redisson作为消息中间件​、​布隆过滤器​、限流器、分布式锁、分布式集合、分布式远程服务;

    目录 一 Jedis 1 获取Jedis 2 Jedis的基本使用 3 Jedis连接池使用 4 Jedis中Pipeline使用 5 Jedis的Lua脚本使用 二 Redisson 1 在SpringBoot中快速集成 2 增删改查操作
  • 基于Pytorch的行为识别

    基于Pytorch的行为分析 参考文献 3D卷积 3D残差网络 参考文献 参考论文 3D Convolutional Neural Networks for Human Action Recognition 3D卷积 3D卷积针对的数据集是
  • Java反射获取私有(private)对象属性,方法(子类,父类,祖先....)(如何改变string的值)

    Java反射 获取对象私有属性 方法 String是否可变 先来看一个例子 String可变还是不可变 大家都应该知道 或者听过 String类是不可变的 为什么呢 因为String其实使用一个 private final char val
  • 【Three.js】第二十一章 Physics 物理

    介绍 物理是WebGL可以添加到项目体验中最酷的功能之一 人们喜欢真实物理感的物体 看到它们碰撞 倒塌 坠落和弹跳 就像我的作品集一样 https bruno simon com 有很多方法可以将物理功能添加到您的项目中 这取决于您想要实现
  • 解决AttributeError: module ‘torchtext.data‘ has no attribute ‘Field‘问题(Datasets,Example等)

    1 torchtext安装版本对应 torch版本 1 x y torchtext版本 1 x 1 y 2 解决AttributeError module torchtext data has no attribute Field 问题 t
  • 关于GNS3中GRE隧道的建立

    步骤1 路由ip配置 省略 步骤2 路由配置 路由r1 R1 config ip route 0 0 0 0 0 0 0 0 10 1 1 2 路由r3 R3 config ip route 0 0 0 0 0 0 0 0 20 1 1 1
  • 为智能汽车打造安全堡垒—QNX系统中的软件安全保护

    在当今的智能信息时代 智能汽车已成为现代交通的代表 然而 随着技术的进步 安全问题也日益受到重视 QNX操作系统与CodeMeter技术的结合 为智能汽车提供了坚固的软件安全防线 确保了驾驶的安全与可靠 QNX系统 打造智能汽车的软件基石
  • esp-idf4.4 esp32s3 usb_cdc和u盘使用

    本文章前提是已经搭建好esp idf4 4的环境 1 在esp idf或者电脑任意目录克隆esp iot solution git clone b usb add usb solutions recursive https github c
  • opencv图像平滑

    图像噪声 由于图像采集 处理 传输等过程不可避免的会受到噪声的污染 妨碍 们对图像 理解及分析处理 常 的图像噪声有 斯噪声 椒盐噪声等 椒盐噪声 椒盐噪声也称为脉冲噪声 是图像中经常 到的 种噪声 它是 种随机出现的 点或者 点 可能是亮
  • 使用vue.js调用摄像头示例

  • linux 下 packet_mmap 前篇 (抓包实现)

    一 概述 本人 linux下 tcpdump 详解前中后 分析过抓包的流程 具体篇章对应如下 前篇了解了libpcap库如何实现抓包 中篇深入内核底层讲述了抓包的原理 后篇自己实现过抓包过程 tcpdump 篇章中讲述的只是原始的抓包流程
  • node:internal/modules/cjs/loader:1024 throw err; ^Error:

    笔者出现的报错情况截图如下 Error Cannot fi1 nd module rtsp2web 安装的库不同 但是不影响解决方法 1 重新安装相对应的文件 npm i rtsp2web 笔者这边 但是还是运行不起来 2 之后可以查看自己
  • rem和mod的区别

    Matlab 如果你不仔细区分的话 可以把rem和mod都当作是求余数的命令 比如 gt gt mod 3 2 ans 1 gt gt rem 3 2 ans 1 可是 通过看他们的帮助文件可以知道 这两个数的符号一致时的结果是一样的 但是
  • nginx 代理访问 springboot项目

    使用的docker部署 不能直接通过 localhost port 访问 容器间之间默认不能互通 修改网络模式 或者 用一下方法 docker inspect format NetworkSettings IPAddress springb
  • Websocket协议原理及Ws服务器代码实现

    一 什么是 WebSocket WebSocket 是 HTML5 开始提供的一种 建立在单个 TCP 连接上的全双工的网络通信协议 WebSocket 协议在2008年诞生 2011年成为国际标准 现在最新版本浏览器都已经支持了 它的最大
  • 趣谈网络协议学习笔记[计算机网络]

    在极客时间上学习刘超老师的趣谈网络协议这门课 听看的时候嗯 觉得自己已经很懂了 理解得也还行 但是当自己整理时会发现有好多小知识点并没有完全理解 这篇博客呢就是在听课后再加上谷歌搜索整理得来 权当学习笔记了 顺便巩固记忆 以后忘了还可以再翻
  • 逆时针打印矩阵

    逆时针打印矩阵 输入矩阵 1 2 38 9 47 6 5 输出 1 2 3 4 5 6 7 8 9 思路 在矩阵外面砌一堵墙 如下 1 1 1 1 1 1 1 2 3 1 1 8 9 4 1 1 7 6 5 1 1 1 1 1 1 遇到 1
  • Idea同步失败Unresolved dependency的解决办法

    下载一些开源的库 经常会碰到一些同步问题 本文就该系列问题单独开一篇文章 和大家缕一缕这样的问题怎么解决 文章在实践过程中会保持同步更新 大家可以点击收藏以便于下次遇到类似问题可以快速找到解决办法 IDEA的同步问题多半为网络环境问题 少部
  • 面试题汇总---深度学习(图像识别,NLP内容)

    文章目录 1 基本概念 1 1 为什么神经网络中深度网络的表现比广度网络表现好 1 2 推导BP算法 1 3 什么是梯度消失和梯度爆炸 1 4 常用的激活函数有哪些 1 5 常用的参数更新方法有哪些 1 6 解决过拟合的方法 数据层面 模型