算法岗面试题

  1. 介绍下Transformer模型。

    Transformer本身是一个典型的encoder-decoder模型,Encoder端和Decoder端均有6个Block,Encoder端的Block包括两个模块,多头self-attention模块以及一个前馈神经网络模块;Decoder端的Block包括三个模块,Masked多头self-attention模块,多头Encoder-Decoder attention交互模块,以及一个前馈神经网络模块;需要注意:Encoder端和Decoder端中的每个模块都有残差层和LayerNormalization层。

  1. 介绍下注意力机制。

    Self Attention与传统的Attention机制非常的不同:传统的Attention是基于source端和target端的隐变量(hidden state)计算Attention的,得到的结果是源端的每个词与目标端每个词之间的依赖关系。但Self Attention不同,它分别在source端和target端进行,仅与source input或者target input自身相关的Self Attention,捕捉source端或target端自身的词与词之间的依赖关系;然后再把source端的得到的self Attention加入到target端得到的Attention中,捕捉source端和target端词与词之间的依赖关系。因此,self Attention比传统的Attention mechanism效果要好,主要原因之一是,传统的Attention机制忽略了源端或目标端句子中词与词之间的依赖关系,相对比,self Attention可以不仅可以得到源端与目标端词与词之间的依赖关系,同时还可以有效获取源端或目标端自身词与词之间的依赖关系。

  1. 多头注意力机制的多头指的是什么?

    与使用单独的一个注意力不同,多头注意力机制可以独立学习得到h组不同的线性投影(linearprojections)来变换查询、键和值。然后,这h组变换后的查询、键和值将并行地进行注意力池化。最后,将这个注意力池化的输出拼接在一起,并且通过另一个可以学习的线性投影进行变换,以产生最终输出。这种设计被称为多头注意力。自注意力机制的缺陷就是:模型在对当前位置的信息进行编码时,会过度的将注意力集中于自身的位置,因此作者提出了通过多头注意力机制来解决这一问题。使用多头注意力机制能够给予注意力层的输出包含有不同子空间中的编码表示信息,从而增强模型的表达能力。

  1. 介绍一个熟悉的网络结构,Resnet。

ResNet.又称残差神经网络,它通过引入shortcut结构来规避普通神经网络中出现的梯度消失和网络退化问题。ResNet的特点是:1.残差学习。2.shortcuts连接。3.加深网络不退化。

  1. 你知道哪些缓解梯度消失和梯度爆炸的方法?

以下几种方法供参考:换用Relu、LeakyRelu、Elu等激活涵函数ReLu:让激活函数的导数为1LeakyReLu:包含了ReLu的几乎所有有点,同时解决了ReLu中O区间带来的影响ELU:和LeakyReLu一样,都是为了解决0区间问题,相对于来,elu计算更耗时一些BatchNormalization LayerNormalizationBN及LN本质上是解决传播过程中的梯度问题。用LSTM或GRU来代替RNN。加入ResNet网络。使用梯度裁剪(Gradient Clipping)。

  1. transformer和CNN的区别是什么?
  • Transformer模型的核心是self-attention机制,而CNN模型的核心是卷积和池化;
  • Transformer模型可以学习到数据中每个词之间的相关性,而CNN关注于二维局部数据之间的相互关联,随着层的加深,关注区域会更广。
  1. Leetcode一—最长回文子串。

方法:中心扩展法。遍历每一个字符串,分两种情况进行中心扩展,一种为奇数,一种为偶数,如果两边字母相同,就继续扩展;如果不相同就停止扩展,对所有满足要求的长度求出最大值,得到最终答案。

class Solution:def expandAroundCenter(self,s,left,right):while left >=0 and right len(s)and s[left]=s[right]:left -= 1right += 1return left +1,right-1def longestPalindrome(self,s:str)->str:start,end 0,0for i in range(len(s)):left1,right1 self.expandAroundCenter(s,i,i)left2,right2 self.expandAroundCenter(s,i,i+1)if right1 - left1 > end - start:start,end = left1,right1if right2-left2 > end-start:start,end = left2,right2return s[start:end +1]

科技算法岗面试题7道

  1. BN层的参数,输入是N,C,H,BN层参数是多少?

BN层的参数是C*2(C为通道数),BN的本质是利用优化改变方差大小和均值的位置,在CNN中,因为网络的特征是对应到一张特征图上的,所以BN是以特征图为单位而不是按照各个维度。

  1. softmax和交叉熵损失怎么计算,二值交叉熵呢?

softmax计算公式如下:在这里插入图片描述在这里插入图片描述在这里插入图片描述在这里插入图片描述

  1. 如果softmax的e次方超过float的值了怎么办?

将分子分母同时除以中的最大值,可以解决。
在这里插入图片描述

  1. 常用的优化器有哪些,ADAM和SGD有什么区别?

常见的优化器:SGD、BGD、MBGD、Momentum、NAG、Adagrad、Adadelta,RMSprop、Adam、AdamW优化器等。SGD是随机梯度下降法,是最基本的优化器。Adam是一种自适应学习率的方法。以SGD作为最初的算法,Momentum在其基础上加入了一阶动量(历史梯度的累计),AdaGrad和RMSProp在其基础上加入了二阶动量(历史梯度的平方累计),Adam就是结合了SGD的一阶动量和RMSProp的二阶动量算法。

  1. Resnet的BottleneckBlock和Basic Block有什么区别,为什么这么叫?

BasicBlock架构主要使用了两个33的卷积;BottleneckBlock架构主要使用了三个卷积层,卷积核大小分别是11,33,11,两头小中间大,因此取名瓶颈块。

  1. L1范数和L2范数有什么区别,为什么L1解空间是稀疏的,L2解空间是稠密的
  • L1是模型各个参数的绝对值之和。
  • L2是模型各个参数的平方和的开方值。
  • L1会趋向于产生少量的特征,而其他的特征都是0。因为最优的参数值很大概率出现在坐标轴上,这样就会导致某一维的权重为0,产生稀疏权重矩阵。
  • L2会选择更多的特征,这些特征都会接近于0。最优的参数值很小概率出现在坐标轴上,因此每一维的参数都不会是0。当最小化w时,就会使每一项趋近于0。
  • L1的作用是为了矩阵稀疏化。假设的是模型的参数取值满足拉普拉斯分布,L1正则的本质其实是为模型增加了”模型参数服从零均值拉普拉斯分布”这一先验知识。(它在0的概率最大,尾部较正态分布更平坦。)
  • L2的作用是为了使模型更平滑,得到更好的泛化能力。假设的是参数是满足高斯分布。(它在两端尾部略高,拉普拉斯分布,在0处更平坦。)
  • L1的权值更新固定减小一个值,有可能会减小到0;
  • L2的权值更新,每次减小上一次的1/2,权值会越来越小,但不会为0。
  1. 二分查找求×的平方根
class Solution:def mySqrt(self,x:int)->int:left,right = 0,xwhile left <= right:mid = left +(right-left)//2if mid * mid <=x and (mid +1)*(mid +1)>x:return midelif mid * mid> x and (mid 1)*(mid +1)>x:right = mid -1else:left = mid 1

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

如若内容造成侵权/违法违规/事实不符,请联系英文站点网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

Java金融场景中为什么金额字段禁止使用浮点类型(float/double)?

引言 Java金融场景中为什么金额字段禁止使用浮点类型&#xff1f;这是一篇你不能忽视的“爆雷”警告&#xff01; 在金融、电商、支付、清结算等业务系统中&#xff0c;浮点类型是绝对禁区&#xff01; &#x1f6a8;一、核心警告&#xff1a;浮点类型不是十进制数&#xff01;…

SVN下载与拉取

大家好我是苏麟&#xff0c;今天聊一聊SVN。 SVN官网&#xff1a;下载 TortoiseSVN - TortoiseSVN 软件 根据系统选择32位还是64位 打开文件 安装&#xff0c;下一步&#xff0c;下一步 安装成功后&#xff0c;右键找到SVNcheck 输入地址 输入用户名和密码就OK了 这期就到这里…

数据结构笔记8:堆

目录 满二叉树&#xff1a; 完全二叉树&#xff1a; 堆是一种特殊的完全二叉树&#xff1a; 我们可以以数组的方式存储堆。 父节点和子节点下标关系的推导&#xff1a; 1.使用数学归纳法证明n2 1 n0&#xff1a; 2.使用边和节点的关系证明n2 1 n0&#xff1a; 我们…

3. lvgl 9.3 vscode 模拟环境搭建 lv_port_pc_vscode-release-v9.3

文章目录1. 资源下载1. 1 lv_port_pc_vscode1.2 cmake 和 mingw 环境搭建1.3 sdl 下载1.4 下载lvgl_v9.32. 环境搭建2.1 拷贝lvgl 源码到工程2.2 添加SDL2 依赖2.3 执行工程3. 运行示例1. 资源下载 1. 1 lv_port_pc_vscode 那么多模拟器&#xff0c;为什么选择这个&#xff1…

【牛客刷题】小红的爆炸串(二)

一、题目介绍 本题链接为:小红的爆炸串(二) 小红定义一个字符串会爆炸,当且仅当至少有k对相邻的字母不同。 例如,当 k k k=2时,"arc"会爆炸,而"aabb"则不会爆炸。 小红拿到了一个长度为

【实战】如何训练一个客服语音对话场景VAD模型

1. 引言:客服场景下的VAD模型 在客服中心,每天都会产生海量的通话录音。对这些录音进行有效分析,可以用于服务质量监控、客户意图洞察、流程优化等。VAD在其中扮演着“预处理器”和“过滤器”的关键角色: 提升ASR效率与准确性:只将检测到的语音片段送入ASR引擎,可以避免…

在 Dokploy 中为 PostgreSQL 搭建 PgBouncer 数据库连接池(图文)

前言&#xff1a;为什么你需要一个连接池&#xff1f; 如果你正在使用 Node.js (尤其是像 Next.js 这样的框架) 配合 Prisma 操作 PostgreSQL 数据库&#xff0c;你很可能在某个阶段会遇到那个令人头疼的错误&#xff1a;“Error: Too many clients already”。这通常发生在应…

Mac获取终端历史

在 macOS 中&#xff0c;历史记录文件的位置取决于你使用的 shell。以下是针对不同 shell 的历史记录文件的默认位置&#xff1a;对于 Bash 用户&#xff1a; 历史记录文件通常位于 ~/.bash_history。对于 Zsh 用户&#xff08;macOS Catalina及以后版本默认使用的shell&#x…

高频交易服务器篇

在 Binance 进行高频交易&#xff08;HFT&#xff09;时&#xff0c;服务器的低延迟、高稳定性和快速网络是关键。亚马逊云&#xff08;AWS&#xff09; 提供了多种适合高频交易的方案&#xff0c;以下是推荐的配置和优化策略&#xff1a;1. 选择 AWS 区域&#xff08;Region&a…

MVC与MVVM架构模式详解:原理、区别与JavaScript实现

Hi&#xff0c;我是布兰妮甜 &#xff01;在当今复杂的前端开发领域&#xff0c;如何组织代码结构一直是开发者面临的核心挑战。MVC和MVVM作为两种经典的架构模式&#xff0c;为前端应用提供了清晰的责任划分和可维护的代码组织方案。本文将深入探讨这两种模式的原理、实现差异…

从小白到进阶:解锁linux与c语言高级编程知识点嵌入式开发的任督二脉(2)

【硬核揭秘】Linux与C高级编程&#xff1a;从入门到精通&#xff0c;你的全栈之路&#xff01; 第三部分&#xff1a;Shell脚本编程——自动化你的Linux世界&#xff0c;让效率飞起来&#xff01; 嘿&#xff0c;各位C语言的“卷王”们&#xff01; 在Linux的世界里&#xf…

锁和事务的关系

事务的4大特性(ACID) 原子性&#xff08;Atomicity&#xff09;&#xff1a;事务被视为一个单一的、不可分割的工作单元一致性&#xff08;Consistency&#xff09;&#xff1a;事务执行前后&#xff0c;数据库从一个一致状态转变为另一个一致状态&#xff0c;并且强制执行所有…

电动车信用免押小程序免押租赁小程序php方案

电动车信用免押租赁小程序&#xff0c;免押租小程序&#xff0c;信用免押接口申请、对接开发&#xff0c;可源码搭建&#xff0c;可二开或定制。开发语言后端php&#xff0c;前端uniapp。可二开定制 在线选择门店&#xff0c;选择车辆类型&#xff0c;选择租赁方式&#xff08…

机器学习在智能安防中的应用:视频监控与异常行为检测

随着人工智能技术的飞速发展&#xff0c;智能安防领域正经历着一场深刻的变革。智能安防通过整合先进的信息技术&#xff0c;如物联网&#xff08;IoT&#xff09;、大数据和机器学习&#xff0c;能够实现从传统的被动防御到主动预防的转变。机器学习技术在智能安防中的应用尤为…

MySQL中DROP、DELETE与TRUNCATE的深度解析

在MySQL数据库操作中&#xff0c;DROP、DELETE和TRUNCATE是三个常用的数据操作命令&#xff0c;它们都可以用于删除数据&#xff0c;但在功能、执行效率、事务处理以及对表结构的影响等方面存在显著差异。本文将从多个维度对这三个命令进行详细对比和解析&#xff0c;帮助读者更…

一条 SQL 语句的内部执行流程详解(MySQL为例)

当执行如下 SQL&#xff1a; SELECT * FROM users WHERE id 1;在数据库内部&#xff0c;其实会经历多个复杂且有序的阶段。以下是 MySQL&#xff08;InnoDB 引擎&#xff09;中 SQL 查询语句从发送到结果返回的完整执行流程。 客户端连接阶段 客户端&#xff08;如 JDBC、My…

超详细yolo8/11-detect目标检测全流程概述:配置环境、数据标注、训练、验证/预测、onnx部署(c++/python)详解

文章目录 一、配置环境二、数据标注三、模型训练四、验证预测五、onnx部署c 版python版本 一、配置环境 我的都是在Linux系统下&#xff0c;训练部署的&#xff1b;模型训练之前&#xff0c;需要配置好环境&#xff0c;Anaconda、显卡驱动、cuda、cudnn、pytorch等&#xff1b…

阿里云Flink:开启大数据实时处理新时代

走进阿里云 Flink 在大数据处理的广袤领域中&#xff0c;阿里云 Flink 犹如一颗璀璨的明星&#xff0c;占据着举足轻重的地位。随着数据量呈指数级增长&#xff0c;企业对数据处理的实时性、高效性和准确性提出了前所未有的挑战 。传统的数据处理方式逐渐难以满足这些严苛的需…

【Linux】基础开发工具(1)

1. 软件包管理器 1.1 什么是软件包 在Linux下安装软件, ⼀个常用的办法是下载到程序的源代码, 并进行编译, 得到可执行程序. 但是这样太麻烦了, 于是有些人把⼀些常⽤的软件提前编译好, 做成软件包(可以理解成windows上 的安装程序)放在⼀个服务器上, 通过包管理器可以很⽅便…

蓝桥杯51单片机设计

#超声波原理# ①超声波测距原理&#xff1a;声波反射原理 声波分类&#xff1a; 超声波测距原理 超声波频率越高&#xff0c;波长越短&#xff0c;反身性越强&#xff0c;衍射性越弱 ②超声波模块原理 发射原理 跳线帽 接收原理 问题&#xff1a; &#xff11;.超声波发射模块需…