最基本的25道深度学习面试问题和答案

article/2025/9/9 14:07:20

近年来,对深度学习的需求不断增长,其应用程序被应用于各个商业部门。各公司现在都在寻找能够利用深度学习和机器学习技术的专业人士。在本文中,将整理深度学习面试中最常被问到的25个问题和答案。如果你最近正在参加深度学习相关的面试工作,那么这些问题会对你有所帮助。

1、什么是深度学习?

深度学习涉及获取大量结构化或非结构化数据,并使用复杂算法训练神经网络。它执行复杂的操作来提取隐藏的模式和特征(例如,区分猫和狗的图像)

2、什么是神经网络?

神经网络复制了人类的学习方式,灵感来自于我们大脑中的神经元是如何激活的,但是比人类大脑要简单得多。

最常见的神经网络由三个网络层组成:

  • 输入层
  • 隐藏层(这是最重要的一层,在这里进行特征提取,并进行调整以更快地训练和更好地运行)
  • 输出层

神经网络用于深度学习算法,如CNN, RNN, GAN等。

3、什么是多层感知机(MLP)?

和神经网络一样,mlp有一个输入层、一个隐藏层和一个输出层。它与具有一个或多个隐藏层的单层感知器的的结构相同。单层感知器只能对具有二进制输出 (0,1) 的线性可分类进行分类,但 MLP 可以对非线性类进行分类。

除输入层外,其他层中的每个节点都使用非线性激活函数。输入层、传入的数据和激活函数基于所有节点和权重相加从而产生输出。MLP 使用一种称为“反向传播”的方法来优化节点的权重。在反向传播中,神经网络在损失函数的帮助下计算误差,从误差的来源向后传播此误差(调整权重以更准确地训练模型)。

4、什么是数据规范化(Normalization),我们为什么需要它?

Normalization的中文翻译一般叫做“规范化”,是一种对数值的特殊函数变换方法,也就是说假设原始的某个数值是x,套上一个起到规范化作用的函数,对规范化之前的数值x进行转换,形成一个规范化后的数值。

规范化将越来越偏的分布拉回到标准化的分布,使得激活函数的输入值落在激活函数对输入比较敏感的区域,从而使梯度变大,加快学习收敛速度,避免梯度消失的问题。

按照规范化操作涉及对象的不同可以分为两大类:

一类是对第L层每个神经元的激活值 进行Normalization操作,比如BatchNorm/ LayerNorm/ InstanceNorm/ GroupNorm等方法都属于这一类;

另外一类是对神经网络中连接相邻隐层神经元之间的边上的权重进行规范化操作,比如Weight Norm就属于这一类。

一般机器学习里看到的损失函数里面加入的对参数的的L1/L2等正则项,本质上也属于这这一类的规范化操作。

L1正则的规范化目标是造成参数的稀疏化,就是争取达到让大量参数值取得0值的效果,而L2正则的规范化目标是有效减小原始参数值的大小。

有了这些规范目标,通过具体的规范化手段来改变参数值,以达到避免模型过拟合的目的。

5、什么是玻尔兹曼机?

最基本的深度学习模型之一是玻尔兹曼机,类似于多层感知器的简化版本。这个模型有一个可见的输入层和一个隐藏层——只是一个两层的神经网络,可以随机决定一个神经元应该打开还是关闭。节点跨层连接,但同一层的两个节点没有连接。

6、激活函数在神经网络中的作用是什么?

激活函数模拟生物学中的神经元是否应该被激发。它接受输入和偏差的加权和作为任何激活函数的输入。从数学角度讲引入激活函数是为了增加神经网络模型的非线性。Sigmoid、ReLU、Tanh 都是常见的激活函数。

7、什么是成本函数?

成本函数也被称为“损失”或“误差”,它是评估模型性能好坏的一种度量方法。它用于计算反向传播过程中输出层的误差。我们通过神经网络将错误向后推并在不同的训练函数中使用它。

8、什么是梯度下降?

梯度下降是一种最小化成本函数或最小化误差的最优算法。目的是找到一个函数的局部全局极小值。这决定了模型应该采取的减少误差的方向。

9、反向传播是什么?

这是深度学习面试中最常被问到的问题之一。

1974年,Paul Werbos首次给出了如何训练一般网络的学习算法—back propagation。这个算法可以高效的计算每一次迭代过程中的梯度。反向传播算法是目前用来训练人工神经网络(Artificial Neural Network,ANN)的最常用且最有效的算法。其主要思想是:

(1)将训练集数据输入到ANN的输入层,经过隐藏层,最后达到输出层并输出结果,这是ANN的前向传播过程;

(2)由于ANN的输出结果与实际结果有误差,则计算估计值与实际值之间的误差,并将该误差从输出层向隐藏层反向传播,直至传播到输入层;

(3)在反向传播的过程中,根据误差调整各种参数的值;不断迭代上述过程,直至收敛。

10、前馈神经网络和循环神经网络有什么区别?

前馈神经网络信号从输入到输出沿一个方向传播。没有反馈回路;网络只考虑当前输入。它无法记住以前的输入(例如 CNN)。

循环神经网络的信号双向传播,形成一个循环网络。它考虑当前输入和先前接收到的输入,以生成层的输出,并且由于其内部存储器,它可以记住过去的数据。

11、循环神经网络 (RNN) 有哪些应用?

RNN 可用于情感分析、文本挖掘等,可以解决时间序列问题,例如预测一个月或季度的股票价格。

12、Softmax 和 ReLU 函数是什么?

Softmax 是一种激活函数,可生成介于 0 和 1 之间的输出。它将每个输出除以所有输出的总和,使得输出的总和等于 1。Softmax 通常用于分类任务的输出层和注意力机制的计算。

ReLU是使用最广泛的激活函数。如果 X 为正,则输出 X,否则为零。ReLU 常用于隐藏层的激活函数。

13、什么是超参数?

这是另一个经常被问到的深度学习面试问题。超参数在机器学习的上下文中,超参数是在开始学习过程之前设置值的参数,而不是通过训练得到的参数数据。因为一般情况下我们将可以根据模型自身的算法,通过数据迭代自动学习出的变量称为参数,而超参数的设置可以影响到这些参数是如何训练,所以称其为超参数。

14、如果学习率设置得太低或太高会发生什么?

当学习率太低时,模型的训练将进展得非常缓慢,因为只对权重进行最小的更新。它需要多次更新才能达到最小值。如果非常小可能最终的梯度可能不会跳出局部最小值,导致训练的结果并不是最优解。

如果学习率设置得太高,由于权重的急剧更新,这将导致损失函数出现不希望的发散行为。可能导致模型无法收敛,甚至发散(网络无法训练)。

15、什么是Dropout和BN?

Dropout是一种随机删除网络中隐藏和可见单元的技术,可以以防止数据过拟合(通常删除20%内的节点)。它使收敛网络所需的迭代次数增加。

BN是一种通过对每一层的输入进行规范化,变为平均为0,标准差为1的正态分布,从而提高神经网络性能和稳定性的技术。

16、批量梯度下降和随机梯度下降的区别是什么?

17、什么是过拟合和欠拟合,以及如何解决?

过拟合是指模型在训练集上表现很好,到了验证和测试阶段就很差,即模型的泛化能力很差。当模型对训练数据中的细节和噪声的学习达到对模型对新信息的执行产生不利影响的程度时,就会发生过拟合。它更可能发生在学习目标函数时具有更大灵活性的非线性模型中。样本数量太少,样本噪音干扰过大,模型复杂度过高都会产生过拟合。

欠拟合是指模型在训练集、验证集和测试集上均表现不佳的情况。这通常发生在训练模型的数据较少且不正确的情况下。

为了防止过拟合和欠拟合,您可以重新采样数据来估计模型的准确性(k-fold交叉验证),并通过一个验证数据集来评估模型。

18、如何在网络中初始化权值?

一般情况下都使用随机初始化权值。

不能将所有权重初始化为0,因为这将使您的模型类似于线性模型。所有的神经元和每一层都执行相同的操作,给出相同的输出,使深层网络无用。

随机初始化所有权重通过将权重初始化为非常接近0的值来随机分配权重。由于每个神经元执行不同的计算,它使模型具有更好的准确性。

19、CNN中常见的层有哪些?

  • 卷积层——执行卷积操作的层,创建几个更小的图片窗口来浏览数据。
  • 激活层-它给网络带来非线性,例如RELU将所有负像素转换为零。输出是一个经过整流的特征映射。
  • 池化层——池化是一种向下采样的操作,它降低了特征图的维数。
  • 全连通层——该层出处类别或者回归的数值。

20、CNN的“池化”是什么?它是如何运作的?

池化用于减少CNN的空间维度。它执行下采样操作来降低维数,并通过在输入矩阵上滑动一个过滤器矩阵来创建一个汇集的特征映射。

21、LSTM是如何工作的?

长-短期记忆(LSTM)是一种特殊的循环神经网络,能够学习长期依赖关系。LSTM网络有三个步骤:

  • 网络决定忘记什么,记住什么。
  • 它有选择地更新单元状态值。
  • 网络决定当前状态的哪一部分可以输出。

22、什么是梯度消失和梯度爆炸?

在训练RNN时,你的斜率可能会变得太小或太大;这使得训练非常困难。当斜率太小时,这个问题被称为“消失梯度”。当坡度趋向于指数增长而不是衰减时,它被称为“爆炸梯度”。梯度问题导致训练时间长,性能差,精度低。

23、深度学习中Epoch、Batch和Iteration的区别是什么?

Epoch —— 表示整个数据集的一次迭代(训练数据的所有内容)。

Batch——指的是因为不能一次性将整个数据集传递给神经网络,所以我们将数据集分成几个批处理进行处理,每一批称为Batch。

Iteration——如果我们有10,000张图像作为数据,Batch大小为200。那么一个Epoch 应该运行50次Iteration(10,000除以50)。

24、深度学习框架中的张量是什么意思?

这是另一个最常被问到的深度学习面试问题。张量是用高维数组表示的数学对象。这些具有不同维度和等级的数据数组作为神经网络的输入被称为“张量”。

25、比较常用的深度学习框架例如Tensorflow,Pytorch

大概说下就可以了,例如:这些框架提供c++和Python api,都支持CPU和GPU计算设备。那个熟悉说那个就可以了比如常用Pytorch,但是因为有些实现是Tensorflow的所以需要看代码所以对Tensorflow也了解一些,不要说谁好谁坏,因为很容易落入圈套,万一你说Tensorflow好,面试公司用Pytorch怎么办。

https://avoid.overfit.cn/post/35ba0e271a734fa3ba67271d90b12c3f


http://chatgpt.dhexx.cn/article/gOFZovmj.shtml

相关文章

机器学习高频面试题(41道)

Q1: What’s the trade-off between bias and variance? 问题1: 什么是偏差(bias)、方差(variable)之间的均衡? Bias 是由于你使用的学习算法过度简单地拟合结果或者错误地拟合结果导致的错误。它反映的是模型在样本…

总结了200道经典的机器学习面试题(附参考答案)

刷题,是面试前的必备环节。本文总结了往年BAT机器学习面试题,干货满满,值得收藏。 想要入职大厂可谓是千军万马过独木桥。 为了通过层层考验,刷题肯定是必不可少的。本文根据网络在线发布的BAT机器学习面试1000题系列&#xff0…

微信小程序—域名配置(图文)

微信小程序—域名配置 1、微信公众平台登录 进入后选择‘开发’ 选择‘开发设置’ 域名配置,输入easy-mock即可(因为我用的地址就是easy-mock,如果用的是豆瓣接口就直接域名配置成豆瓣的就行) 2、打开右上角的详情 选择不校验…

微信小程序:小程序服务器域名配置合法域名

微信小程序开发过程中,微信小程序只要有网络请求就必定要用到服务器接口,这样的话就需要在微信小程序管理平台里面添加服务器的域名,而且添加的这个域名一定是合法有效的域名,不然就不会设置成功的。 微信小程序在生产环境下如果没有配置合法域名,是不能正常访问的,那就…

tomcat 配置域名

Tomcat 配置域名 在windows中首先找到conf下面的server.xml 把Connector 标签中的端口改成80 然后把添加一个Host name为域名appBase为路径 如下 Engine 标签也是 最后在C盘 windows\System32\drivers\etc 下面的hosts添加下面这行 127.0.0.1 www.test.com 重新启动tomcat …

vuepress(六)阿里云二级域名配置与添加SSL证书

文章目录 写在前面第一类:用来存放网站第二类:自定义 OSS对象存储 的图片路径 写在前面 这里是小飞侠Pan🥳,立志成为一名优秀的前端程序媛!!! 本篇博客收录于我的github前端笔记仓库中&#x…

前端nginx配置并且同一域名配置多个项目以及nginx跨域设置

前端nginx配置并且同一域名配置多个项目 前端nginx配置并且同一域名配置多个项目first of all下载配置nginx配置nginx开机自启动nginx -t 找不到nginx的修复nginx进行重启Nginx同一个域名配置多个项目nginx按不同的目录分发给不同的项目启用二级域名,不同的项目分配…

vhosts.conf域名配置

DocumentRoot "网站目录" ServerName 域名(比如www.baidu.com) ServerAlias 域名别名(www.baidu.com www.baidu.cn) Directory 得与DocumentRoot目录相同

uniapp:小程序体验版和预览,云函数不响应,小程序域名配置

uniapp槽点 uniapp还是很便利的,为大家免费提供了低代码平台,很多插件和实现方案。使用过程中也有很多想吐槽的,我是第一次接触跨平台,文档上有的地方很笼统,比如这域名配置,文档就没说我应该配置哪个域名…

云服务器配置和域名配置

阿里云服务器 之前在阿里云上买了域名和云服务器,挂放博客和常的小项目,买的最低配的,但是内存太小,另外买了一个硬盘。 我所使用的是windows系统的,方便快捷操作。 远程桌面连接 windows自带的远程桌面连接功能&…

linux安装nginx并配置ssl证书 HTTPS和域名配置

1.下载安装包 cd /usr/local/src/wget http://nginx.org/download/nginx-1.21.3.tar.gz2.解压。tar -xzf nginx-1.21.3.tar.gz 3.cd nginx-1.21.3 4.yum install openssl openssl-devel 5.安装ssl证书需要的模块。 ./configure --with-file-aio --with-threads --with-http_…

Windows配置域名

Windows配置域名 最近想在Windows 电脑玩玩 Apache2,想用域名来完成做代理,所以涉及Windows配置域名,来记录一下 Apache Linux 的安装查看:Apache2的安装与介绍 Apache Windows 的安装请查看:Apache2 Windows 安装 …

微信公众号网页授权域名和JS接口安全域名配置攻略

这篇博文跟大家分享下如何配置微信公众号网页授权域名和JS接口安全域名配置。 打开微信公众平台 https://mp.weixin.qq.com/ 登陆成功后进入微信公众平台后台管理,在最底部可以看到 开发—》接口权限 我们可以看到正如下图所示有两个非常常用的接口:微…

域名——host配置

httpd-vhosts.conf 配置 在D:\xampp\apache\conf\extra中打开httpd-vhosts.conf文件&#xff0c;找到文件末尾&#xff0c;添加 <VirtualHost *:80> DocumentRoot "D:\work\Lianxi" ServerName mydemo <Directory "D:\work\Lianxi"> Opti…

支付宝小程序H5域名配置

位置&#xff1a; 支付宝开放平台--【控制台】--【开发设置】--【开发设置】--【H5域名配置】 提示 1、下载校验文件是一个.html文件&#xff0c;放到前端项目根目录 2、点击这里&#xff0c;可能有bug,不用管&#xff0c; 3、把域名https://xxx.com添加点确定&#xff0c;可…

阿里云申请域名及域名配置https

1、阿里云域名申请 买到域名之后&#xff0c;要对域名进行实名认证&#xff08;上传身份证并拍照&#xff09;&#xff08;阿里云审核一天&#xff09; 2、域名工信部备案 1、阿里云域名备案&#xff0c;这个也要实名认证&#xff0c;其中阿里云员工审核并打电话&#xff08;…

微信小程序服务器域名怎么填,微信小程序合法域名配置方法

在微信小程序的开发过程中&#xff0c;当需要请求第三方网站数据时。各种教程就直接说调用wx.request接口即可。但是当初学者自己用的时候就会出现问题。比如我们这里请求聚合数据的API(里边有不少免费的数据申请就可以使用)。调用邮编查询的接口。 getPostInfo: function (nu,…

微信socket服务器配置,微信小程序socket合法域名配置指南

微信小程序WebSocket接口和HTML5的WebSocket基本一样&#xff0c;是HTTP协议升级来的&#xff0c;做为一个新的Socket在B/S上使用&#xff0c;它实现了浏览器与服务器全双工通信。 不过很多开发者在配置微信小程序socket合法域名是总是会遇到些问题&#xff0c;今天小编就为大家…

域名解析-子域名配置

域名解析-子域名配置 标签&#xff1a;网络 域名 DNS 如果web服务器有太多项目&#xff0c;为了细化项目&#xff0c;可以通过子域名绑定项目文件地址来实现。也就是某个域名将会被dns解析到服务器上特定的路径。 比如有一个web项目路径为&#xff1a;https;//www.dwedg.cn/we…

微信小程序request合法域名配置

问题&#xff1a; 解决步骤1 解决步骤2 解决步骤3 解决步骤4 感兴趣的小伙伴可以扫码关注下公众号哦&#xff0c;公众号会分享高质量的技术文章哦