【AI算法岗面试八股面经【超全整理】——深度学习】

news2024/9/21 20:42:30

AI算法岗面试八股面经【超全整理】

  • 概率论【AI算法岗面试八股面经【超全整理】——概率论】
  • 信息论【AI算法岗面试八股面经【超全整理】——信息论】
  • 机器学习【AI算法岗面试八股面经【超全整理】——机器学习】
  • 深度学习
  • CV
  • NLP

目录

    • 1、激活函数
    • 2、Softmax函数及求导
    • 3、优化器

1、激活函数

激活函数特征:

  • 非线性:激活函数满足非线性时,才不会被单层网络替代,神经网络才有意义
  • 可微性:优化器大多数是用梯度下降法更新梯度,如果不可微的话,就不能求导,也不能更新参数
  • 单调性:激活函数是单调的,能够保证网络的损失函数是凸函数,更容易收敛

1、Sigmoid函数
f ( x ) = 1 1 + e − x f(x)=\frac{1}{1+e^{-x}} f(x)=1+ex1
在这里插入图片描述
该函数的导数为:
f ′ ( x ) = e − x ( 1 + e − x ) 2 = f ( x ) ( 1 − f ( x ) ) {f}'(x)=\frac{e^{-x}}{(1+e^{-x})^2}=f(x)(1-f(x)) f(x)=(1+ex)2ex=f(x)(1f(x))
导数的值在(0,0.25)之间
Sigmoid函数是二分类算法,尤其是逻辑回归算法中的常用激活函数,主要有以下几个特点:

  • 能够将自变量的值全部缩放到(0,1)之间
  • 当x无穷大的时候,函数值趋近于1;当x无穷小的时候,趋近于0。相当于对输入进行了归一化操作
  • 连续可导,0点,导函数的值最大,并且两边逐渐减小

缺点:

  • X在无穷大或者负无穷小的时候,导数(梯度)为0,即出现了梯度弥散现象(所谓梯度弥散就是梯度值越来越小)
  • 导数的值在(0,0.25)之间,在多层神经网络中,我们需要对输出层到输入层逐层进行链式求导。这样就导致多个0到0.25之间的小数相乘,造成了结果取0,梯度消失
  • Sigmoid函数存在幂运算,计算复杂度大,训练时间长

2、Tanh函数
f ( x ) = t a n h ( x ) = e x − e − x e x + e − x f(x)=tanh(x)=\frac{e^x-e^{-x}}{e^x+e^{-x}} f(x)=tanh(x)=ex+exexex
导数为:
f ′ ( x ) = 1 − ( e x − e − x e x + e − x ) 2 = 1 − t a n h ( x ) 2 {f}'(x)=1-(\frac{e^x-e^{-x}}{e^x+e^{-x}})^2=1-{tanh(x)}^2 f(x)=1(ex+exexex)2=1tanh(x)2
梯度(导数)的取值在(0, 1]之间
在这里插入图片描述
特点:

  • Tanh函数输出满足0均值
  • 当输入较大或者较小时,输出的值变化很小,导致导函数几乎为0,也就是梯度很小,从而不利于W、b的更新
  • 梯度(导数)的取值在(0, 1]之间,最大梯度为1,能够保证梯度在变化过程中不消减,缓解了Sigmoid函数梯度消失的问题;但是取值过大或者过小,仍存在梯度消失
  • 同样地函数本身存在幂运算,计算量大

3、ReLU函数
f ( x ) = R e L U ( x ) = m a x ( x , 0 ) = s i g n ( x ) = { 0 x <=0 x x>0 f(x)=ReLU(x)=max(x,0)=sign(x)=\begin{cases} 0& \text{x <=0}\\x& \text{x>0} \end{cases} f(x)=ReLU(x)=max(x,0)=sign(x)={0xx <=0x>0
在这里插入图片描述
导数:
f ′ ( x ) = { 0 x <=0 1 x>0 {f}'(x)=\begin{cases} 0& \text{x <=0}\\1& \text{x>0} \end{cases} f(x)={01x <=0x>0
特点:

  • 函数本身在输入大于0的时候,输出逐渐增加,这样梯度值也一直存在,从而避免了梯度的饱和:正区间解决梯度消失问题
  • 函数本身是线性函数,比Sigmoid或者Tanh函数要计算速度快;同时函数的收敛速度要大于Sigmoid或者Tanh函数
  • 函数的输出不是以0为均值,收敛慢
  • Dead ReLU问题:在负输入部分,输入的值为0,从而梯度为0,导致参数无法更新,造成神经元死亡;在实际处理中,我们可以减少过多的负数特征进入网络

4、Leaky ReLU问题
在小于0的部分引入一个斜率,使得小于0的取值不再是0(通常a的值为0.01左右)

f ( x ) = { a ⋅ x x <=0 x x>0 f(x)=\begin{cases} a \cdot x& \text{x <=0}\\x& \text{x>0} \end{cases} f(x)={axxx <=0x>0
在这里插入图片描述
导数:
f ′ ( x ) = { a x <=0 1 x>0 {f}'(x)=\begin{cases} a& \text{x <=0}\\1& \text{x>0} \end{cases} f(x)={a1x <=0x>0

特点:

  • 具有和ReLU完全相同的特点,而且不会造成Dead ReLU问题
  • 函数本身的取值在负无穷到正无穷;负区间梯度也存在,从而避免了梯度消失。
  • 但是实际运用中,尚未完全证明Leaky ReLU总是比ReLU更好

2、Softmax函数及求导

Softmax函数又称归一化指数函数,是基于Sigmoid二分类函数在多分类任务上的推广,在多分类网络中,常用Softmax作为最后一层进行分类。它将一个包含任意实数的K维向量(K是类别数量)映射为一个概率分布,每个类别的预测值都在0到1之间,所有类别的概率总和为1。Softmax函数的作用是将原始得分转换为概率值,使得模型的输出更符合实际的概率分布。
函数公式:
S i = e a i ∑ K = 1 K e a k S_i=\frac{e^{a_i}}{\sum_{K=1}^K{e^{a_k}}} Si=K=1Keakeai
其中, a a a是输入向量,上述公式表示第 i i i个类别的输出概率
Softmax可以使正样本(正数)的结果趋近于1,使负样本(负数)的结果趋近于0;且样本的绝对值越大,两极化越明显。
函数求导分类讨论:
i = j i=j i=j时:
∂ s i ∂ a j = e a i ∑ − e a i e a j ∑ 2 = s i − s i s j \frac{\partial s_i}{\partial a_j} = \frac{e^{a_i}\sum-e^{a_i}e^{a_j}}{\sum^2}=s_i-s_is_j ajsi=2eaieaieaj=sisisj
i ≠ j i\neq j i=j时:
∂ s i ∂ a j = 0 − e a i e a j ∑ 2 = − s i s j \frac{\partial s_i}{\partial a_j} = \frac{0-e^{a_i}e^{a_j}}{\sum^2}=-s_is_j ajsi=20eaieaj=sisj

3、优化器

在深度学习中,优化器(optimizer)是一种用于调整神经网络模型参数以最小化损失函数的算法。优化器的目标是分局输入数据和期望的输出标签来调整模型的权重和偏置,使得模型能够更好地拟合训练数据并在未见过的数据上表现良好。
1、BGD(Batch Gradient Descent)
在更新参数时使用所有样本进行更新,假设样本综述为N:
θ ( t + 1 ) = θ ( t ) − α ⋅ 1 N ∑ i = 1 N ∇ θ J ( θ i ( t ) ) \theta ^{(t+1)} = \theta^{(t)}-\alpha \cdot \frac{1}{N}\sum_{i=1}^N\nabla_\theta J(\theta_i^{(t)}) θ(t+1)=θ(t)αN1i=1NθJ(θi(t))
其中, θ ( t ) \theta^{(t)} θ(t)为第t次迭代时的参数值, α \alpha α为学习率, ∇ θ J ( θ i ( t ) ) \nabla_\theta J(\theta_i^{(t)}) θJ(θi(t))为损失函数 J ( θ ) J(\theta) J(θ)关于模型参数 θ \theta θ的梯度。
BGD得到的是一个全局最优解,但是每迭代一步,都要用到训练集的所有数据,如果样本数巨大,那上述公式迭代起来则非常耗时,模型训练速度很慢。
2、SGD(随机梯度下降)
更新参数时使用随机选取的一个样本来进行更新。
θ ( t + 1 ) = θ ( t ) − ∇ θ J ( θ i ( t ) ) \theta ^{(t+1)} = \theta^{(t)}-\nabla_\theta J(\theta_i^{(t)}) θ(t+1)=θ(t)θJ(θi(t))
SGD的优点是实现简单、效率高,缺点是收敛速度慢,容易陷入局部最小值。
3、MDGD(Mini Batch梯度下降)
介于批梯度下降和随机梯度下降之间,每次更新参数时使用b个样本。
θ ( t + 1 ) = θ ( t ) − α ⋅ 1 b ∑ i = 1 b ∇ θ J ( θ i ( t ) ) \theta ^{(t+1)} = \theta^{(t)}-\alpha \cdot \frac{1}{b}\sum_{i=1}^b\nabla_\theta J(\theta_i^{(t)}) θ(t+1)=θ(t)αb1i=1bθJ(θi(t))
训练过程比较稳定;BGD可以找到局部最优解,不一定是全局最优解;若损失函数为凸函数,则BGD所求解一定为全局最优解。
4、AdaGrad(Adaptive Gradient,自适应梯度优化器/自适应学习率优化器)
AdaGrad优点是可以自适应学习率。该优化算法在较为平缓处学习速率达,有比较高的学习效率,在陡峭处学习率小,在一定程度上可以避免越过极小值。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/2153261.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

LED灯、蜂鸣器、继电器的控制

LED灯的控制 该专栏所有文章都默认使用STM32F103ZET6开发板 目录 LED灯的控制 一、简单的LED灯控制 1、初始化函数 led灯 2、应用函数 2、蜂鸣器 3、继电器 一、简单的LED灯控制 编程框架&#xff1a;初始化函数和应用函数 1、初始化函数 初始化函数一般包括&#xf…

【学术会议:中国厦门,为全球的计算机科学与管理科技研究者提供一个国际交流平台】第五届计算机科学与管理科技国际学术会议(ICCSMT 2024)

您的学术研究值得被更多人看到&#xff01; 在这里&#xff0c;我为您提供精准的会议推荐&#xff0c;包括计算机科学、管理科技、信息系统、人工智能、供应链管理等领域的国际会议。高效的稿件录用流程和优质的检索服务将确保您的研究成果迅速传播。关注我&#xff0c;寻找与…

Java免税商品优选商城:Spring Boot实战

第二章 系统开发关键技术 2.1 JAVA技术 Java主要采用CORBA技术和安全模型&#xff0c;可以在互联网应用的数据保护。它还提供了对EJB&#xff08;Enterrise JavaBeans&#xff09;的全面支持&#xff0c;java servlet AI&#xff0c;JS&#xff08;java server ages&#xff09…

[Matplotlib教程] 02 折线图、柱状图、散点图教程

基于MFCC和CNN的语音情感识别 2 折线图、柱状图、散点图2.1 折线图2.1.1 简单折线图2.1.1 线形和Markevery2.1.2 带误差棒的折线图2.1.3 区间填充和透明度 2.2 柱状图2.2.1 分组柱状图2.2.2 堆叠柱状图2.2.3 横向柱状图 2.3 散点图 我们的网站是 菜码编程&#xff0c;我们的q群…

解决Hive乱码问题

在插入数据后&#xff0c;发现hive乱码 原因&#xff1a;Hive默认将存储表结构的元数据列编码设置为latin1&#xff0c;不支持中文 解决方法&#xff1a;在MySQL中修改对应Hive元数据列的编码 先查看mysql的所有字符集编码 1、先修改my.cnf 代码如下&#xff1a; vim /etc/…

C++——初步认识C++和namespace的用法

1.编程语言排行榜 我们通过排行可以看出 C在变成语言中还是占据着重要的地位 2.C在工作领域中的应用 1.PC客户端开发。⼀般是开发Windows上的桌面软件&#xff0c;比如WPS之类的&#xff0c;技术栈的话⼀般是C和 QT&#xff0c;QT 是⼀个跨平台的 C图形用户界面&#xff08;G…

【解决】chrome 谷歌浏览器,鼠标点击任何区域都是 Input 输入框的状态,能看到输入的光标

chrome 谷歌浏览器&#xff0c;鼠标点击任何区域都是 Input 输入框的状态&#xff0c;能看到输入的光标 今天打开电脑的时候&#xff0c;网页中任何文本的地方&#xff0c;只要鼠标点击&#xff0c;就会出现一个输入的光标&#xff0c;无论在哪个站点哪个页面都是如此。 我知道…

Nature Communications|一种快速响应的智能可穿戴嗅觉接口(可穿戴电子/柔性电子/人机交互)

香港城市大学于欣格( Xinge Yu)、北京航空航天大学李宇航(Yuhang Li)、中国特种设备检验研究所赵召(Zhao Zhao)和东京大学Takao Someya团队,在《Nature Communications》上发布了一篇题为“Intelligent wearable olfactory interface for latency-free mixed reality and …

云盘视频保护神器,支持云盘视频加密与在线播放,配合alist使用,超完美!

平时我们保护视频&#xff0c;一般都是采用压缩工具&#xff0c;进行加密打包&#xff0c;然后在上传到网盘存储。这虽然能起到很好的保护&#xff0c;但是有很多问题&#xff1f;比如&#xff1a;无法直接在线播放&#xff0c;还得从网盘中下载后解压&#xff0c;才能进行观看…

【Python语言初识(一)】

一、python简史 1.1、python的历史 1989年圣诞节&#xff1a;Guido von Rossum开始写Python语言的编译器。1991年2月&#xff1a;第一个Python编译器&#xff08;同时也是解释器&#xff09;诞生&#xff0c;它是用C语言实现的&#xff08;后面&#xff09;&#xff0c;可以调…

计算机人工智能前沿进展-大语言模型方向-2024-09-21

计算机人工智能前沿进展-大语言模型方向-2024-09-21 1. AIvril: AI-Driven RTL Generation With Verification In-The-Loop Authors: Mubashir ul Islam, Humza Sami, Pierre-Emmanuel Gaillardon, and Valerio Tenace AIVRIL: 人工智能驱动的RTL生成与验证内循环 摘要 本…

allWebPlugin中间件自定义alert、confirm及prompt使用

allWebPlugin简介 allWebPlugin中间件是一款为用户提供安全、可靠、便捷的浏览器插件服务的中间件产品&#xff0c;致力于将浏览器插件重新应用到所有浏览器。它将现有ActiveX控件直接嵌入浏览器&#xff0c;实现插件加载、界面显示、接口调用、事件回调等。支持Chrome、Firefo…

通信工程学习:什么是WLAN无线局域网

WLAN&#xff1a;无线局域网 WLAN&#xff08;Wireless Local Area Network&#xff09;&#xff0c;即无线局域网&#xff0c;是一种利用无线技术实现局域网内设备间数据传输的网络系统。以下是对WLAN无线局域网的详细解释&#xff1a; 一、WLAN无线局域网的定义与概述 WLAN通…

python-3n+1数链/233

一&#xff1a;3n1数链题目描述 在计算机科学上&#xff0c;有很多类问题是无法解决的&#xff0c;我们称之为不可解决问题。然而&#xff0c;在很多情况下我们并不知道哪一类问题可以解决&#xff0c;哪一类问题不可解决。现在我们就有这样一个问题&#xff0c;问题如下&#…

Qt-QLabel 添加图片并设置 GIF 图动态效果

Qt-QLabel 添加图片并设置 GIF 图动态效果 一、添加图片资源并设置图片 选择标签&#xff0c;拖拉到界面上&#xff0c;然后选择器属性 picmap   选择设置&#xff0c;在这里添加图片资源   点击左边的加号符号按钮添加前缀&#xff0c;并设置前缀名&#xff0c;如果已经…

C++速通LeetCode中等第20题-随机链表的复制(三步简单图解)

方法图解&#xff1a; class Solution { public:Node* copyRandomList(Node* head) {if ( !head ) {return nullptr;}Node *cur head;// 1. 在原节点的每个节点后创建一个节点while ( cur ) {Node *newNode new Node(cur -> val);newNode -> next cur -> next;cur …

一篇进阶Python深入理解函数之高阶函数与函数式编程

当我们深入探讨了函数的作用域与闭包,了解到函数不仅是代码的执行单元,还能通过闭包完成数据的封装与保护.接下来,我们将进一步挖掘函数的强大特性,尤其是高阶函数与函数式编程,帮助你更全面地理解 Python 中函数的特性与应用. 高阶函数 高阶函数是指接受一个或多个函数作为参…

混合开发-JSBridge

1.1 什么是混合开发? 混合开发是一种融合了原生开发和Web开发优势的移动应用开发方式。 具体来说&#xff0c;混合开发通常指的是利用一种框架或平台来创建应用程序&#xff0c;这种程序结合了原生应用的一些功能和特性&#xff08;比如访问设备的摄像头、相册、GPS、蓝牙等…

Excel 冻结多行多列

背景 版本&#xff1a;office 2021 专业版 无法像下图内某些版本一样&#xff0c;识别选中框选的多行多列。 如下选中后毫无反应&#xff0c;点击【视图】->【冻结窗口】->【冻结窗格】后自动设置为冻结第一列。 操作 如下&#xff0c;要把前两排冻结起来。 选择 C1&a…