自然算法 - AI面试基础补全

news2025/1/16 5:50:43
  1. 手撕BP神经网络
  2. 手写Bert和Transformer(BERT很细节的地方,比如文字标签CLS,par)
  3. 学习pytorch,tensorflow

AI算法岗位

可看网站

  1. 牛客网站
    在这里插入图片描述

面经回复

  1. github

    在这里插入图片描述

项目连接

算法工程师岗位必备知识

  1. 问答
  • ELMO、GPT、BERT三者之间的区别
    • 特征提取器:elmo采用LSTM进行提取,GPT和BERT采用Transformer进行提取。很多任务中Tranformer特征提取能力强于LSTM,elmo采用1层静态向量+2层lSTM,多层提取能力有限,而GPT和BERT中的Transformer可采用多层,并行计算能力强;单、双向语言模型:GPT采用单向语言模型,elmo和bert采用双向语言模型,但是elmo实际上是两个单向语言模型(方向相反)的拼接,这种融合特征的能力弱。GPT和BERT都采用Transformer,Transformer是encoder-decoder结构,GPT的单向语言模型采用decoder部分,decoder的部分见到的都是不完整的句子;bert的双向语言模型则采用encoder部分。
  • GloVe的训练过程是怎样的
    • 实质还是监督学习,虽然Glove不需要人工标注,为无监督学习,但实质上还是需要定义label;向量w和w_为学习参数,本质上与监督学习的训练方法一样,采用了AdaGrad的梯度下降算法,对矩阵X中的所有非零元素进行随机采样,学习曲率设为0.05,在Vector size小于300的情况下迭代了50次,其他大小的vectors上迭代了100次,直至收敛。最终学习的是两个词向量是w和
  • sigmoid函数
    • 和正余弦函数比较像,虽然坐标区间是负无穷到正无穷,但是值域是-1,1(开区间),连续光滑函数,其是处处可导的
  • 频率学派和贝叶斯学派的区别
    • 频率学派认为研究的参数是固定的,数据是无限的,可以从无限的抽样里获取有限的结果,其不存在先验概率;贝叶斯学派认为世界是变化的,只有数据是固定的,参数是会变化的,其后验概率是先验概率的修正。(p(A交B)=P(B)*P(B|A))
  • SGD和Adam原理
    • SGD叫做随机梯度下降,它每次迭代计算mini-batch数据集的梯度,然后更新参数;Adam利用梯度的一阶矩估计和二阶矩估计动态更新参数的学习率,然后通过偏置矫正,最终的达到一个学习率的随机范围,使得参数趋于平稳
  • L1不可导时怎么做
    • 坐标轴下降法避免参数不可导。因为损失函数是按照负梯度下降的方式进行,而坐标轴下降法是按照坐标轴进行。比如有m个特征值,先固定m-1个特征值,使得某个特征先求得局部最优解来避免损失函数不可导的问题
  • 最大似然估计和最大后验概率的区别
    • 最大似然估计是利用观察数据进行计算的,而且最大似然估计中的采样满足所有采样,都是独立同分布的假设;而最大后验概率是利用经验数据来获得观察点估计,它融入了先验规律,可以看做是完全规则化的最大似然估计
  • Transformer是如何训练的?测试阶段如何进行测试呢?
    • Transformer训练过程与Seq2seq类似,首先Encoder端得到输入的encoding表示,并将其输入到decoder端做交互式attention,之后再Decoder端接收其相应的输入,经过多头self-attention模块之后,结合Encoder端的输出,再经过FFN,得到Decoder端的输出之后,最后经过一个线性全连接层,就可以通过softmax来预测下一个单词(token),然后根据softmax多分类的损失函数,将loss反向传播即可,所以从整体上来说,Transformer训练过程就相当于一个有监督的多分类问题。需要注意的是,Encoder端可以并行计算,一次性将输入序列全部encoding出来,但Encoder端不是一次性把所有单词(token)预测出来的,而是像seq2seq一样一个接着一个预测。而对于测试阶段,其与训练阶段唯一不同的是Decoder端最底层的输入。
  • BERT模型可以使用无监督的方法做文本相似度任务?
    • 首先一点是在不finetune的情况下,cosine similairty绝对值没有实际意义,bert pretrain计算的cosine similairty都是很大的。如果直接以cosine similarity>0.5之类的阈值来判断相似不相似,效果肯定很差。如果用作排序,也就是cosine(a,b)>cosine(a,c)->b相较于c和a更相似,是可以用的。使用auc作为评价的标准。
    • 短文本(新闻标题)语义相似度任务用先进的word embedding(英文 fasttext/glove, 中文tencent embedding) mean pooling后的效果就已经不错;而对于长文本用simhash这种纯词频统计的完全语言模型的简单方法也OK
    • bert pretrain模型直接拿来用作sentence embedding效果不如word embedding, cls的embedding效果最差(也就是pooled output)。把所有普通token embedding做pooling勉强能用
    • 用siamese的方式训练bert,上层通过cosine做判别,能够让bert学习到以中适用于cosine作为最终相似度判别的sentence embedding,效果优于word embedding. 但因为缺少sentence pair之间的特征交互,比原始bert sentence pair fine tune还是要差些
  • word2vec和NNLM对比有什么区别?
    • 其本质可以看做是语言模型;词向量不过是NNLM的一个产物,word2vec虽然其本质是语言模型,但是其专注于词向量本身,因此做了许多优化来提高计算效率;与NNLM相比,词向量直接sum,不在拼接,并舍弃隐层,考虑到softmax归一化需要遍历整个词汇表,采用hierarchical softmax 和negatice sampling进行优化,hierarchical softmax实质上生成一颗带权路径最小的哈夫曼树,让高频词搜索路径变小;negative sampling更为直接,实质上对每一个样本中每一个词都进行负例采样
  • Transformer如何并行化的?
    • Transformer的并行化我认为主要体现在self-attention模块,在Encoder端Transformer可以并干性处理整个序列,并得到整个输入序列经过Encoder端的输出,在self-attention模块,对某个序列x1,x2,x3…,self-attention模块可以直接计算xi,xj的点乘结果,而RNN系列的模型就必须按照顺序从x1计算到xn
  • glove和word2vec、LSA对比有什么区别?
    • glove vs LSA: LSA(Latent Semantic Analysis)可以基于co-occurance matrix 构建词向量,实质上是基于全局语料采进行矩阵分解,然而SVD计算复杂度高,glove可看做是对LSA一种优化的高效矩阵分解算法,采用Adagrad对最小平方损失进行优化
    • word2vec vs LAS:两个方法最大的差别是模型本身,LSA是一种基于概率图模型的生成式模型,其似然函数可以写为若干条件概率连乘的形式,其中包含需要推测的隐含变量(即主题);词嵌入模型一般表示为神经网络的形式,似然函数定义在网络的输出之上。需要学习网络的权重来得到单词的稠密向量表示。
    • word2vec vs glove: word2vec是局部语料库训练的,其特征提取是基于滑窗的
  • 如何对PTMs进行迁移学习?
    • 选择合适的与训练任务:语言模型是PTM是最为流行的预训练任务,同类的预训练任务有其自身的偏置,并且对不同的任务会产生不同的效果。例如,NSP任务可以使诸如问答(QA)和自然语言推论(NLI)之类的下游任务收益;选择合适的模型架构:例如BERT采用的MLM策略和Transformer-Encoder结构,导致其不适合直接处理生成任务;选择合适的数据集,下游任务的数据应该近似于PTMs的与训练任务,现在有很多现成的ptms可以方便地用于各种特定领域或特定语言的下游任务;选择合适的layers进行transfer:主要包括Embedding迁移、top layer迁移和all layer迁移。如word2vec和Glove可采用Embedding迁移,BERT可采用top layer迁移,Elmo可采用all layer迁移,BERT可采用top layer迁移,Elmo可采用all layer迁移。
      在这里插入图片描述在这里插入图片描述

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

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

相关文章

Linux系统下KVM虚拟机的基本管理和操作

Linux系统下KVM虚拟机的基本管理和操作一、检查本地环境1.检查系统版本2.检查防火墙状态3.检查selinux3.检查libvirtd服务状态4.检查kvm安装结果5.检查kvm虚拟机状态6.检查virsh版本二、virsh常用命令1.列出虚拟机2.虚拟机开关机操作3.删除虚拟机4.设置虚拟机在宿主机开机时自启…

装在笔记本里的私有云环境:K8s 集群准备

本篇是系列中的第六篇内容,继续聊聊如何把一个简化过的私有云环境部署在笔记本里,以满足低成本、低功耗、低延时的实验环境。 在前几篇内容中,我们聊过了:虚拟化、监控、基础的存储、持续集成等内容,接下来的内容中&a…

告诉你如果对一个新产品进行测试

初入一家公司,当一个全新的产品摆在你的面前,你会如何快速入手呢?点、点、点。。。虽说实践是熟悉系统的第一要素,但我们需要静静思考一下。我是谁?--QA我在哪?--**产品组我要做什么?--保质量有…

Nature:“我还有用!“凋亡细胞释放的代谢物充当组织信使

代谢组学文献分享,细胞凋亡是指为维持内环境稳定,由基因控制的细胞自主的有序的死亡。2002年授予在“发现细胞凋亡的重要调控分子并阐述其作用机制”方面做出重要贡献的三位科学家诺贝尔生理和医学奖,caspase依赖的细胞凋亡约占机体内稳态细胞…

多线程初阶(一)

目录 前言: 认识多线程 创建线程 run方法和start区别 继承Thread类 实现Runnable接口 匿名内部类实现继承Thread类 匿名内部类实现Runnable接口实例 Lambda表达式 中断线程 等待线程 线程休眠 线程状态 线程状态之间切换 代码观察线程的状态 线程安…

多点DMALL × Apache Kyuubi:构建统一SQL Proxy探索实践

伴随着国家产业升级的推进和云原生技术成熟,多点 DMALL 大数据技术也经历了从存算一体到存算分离的架构调整变迁。本文将从引入 Kyuubi 实现统一 SQL Proxy 的角度讲述这一探索实践的历程。 多点 DMALL 成立于2015年,提供一站式全渠道数字零售解决方案 D…

STL的常用算法-查找 (20221130)

STL的常用算法 概述&#xff1a; 算法主要是由头文件<algorithm> <functional> <numeric> 组成。 <algorithm>是所有STL头文件中最大的一个&#xff0c;涉及比较、交换、查找、遍历等等&#xff1b; <functional>定义了一些模板类&#xff0…

使用记账软件记录生活收支明细,如何防止收支不被他人修改

坚持记账是每个人都必须要做的事情&#xff0c;日常生活中的生活开支都是一笔笔的支出&#xff0c;一个月挣来的工资&#xff0c;在不知不觉之中就花完了&#xff0c;可以使用——晨曦记账本记录生活明细&#xff0c;为了防止被他人修改&#xff0c;该如何操作呢&#xff1f;一…

Allegro调丝印规范操作指导

Allegro调丝印规范操作指导 Allegro和其它PCB设计软件一样,丝印的排布也是类似的,具体规范介绍如下 以下图为例 打开Setup-Design Parameter 选择text 设置丝印字体的参数 设置需要丝印的字体,比如3号字体,参数如下 然后点击OK Edit-Change需要调整丝印的字体

Linux-Hadoop部署

部署Hadoop一、Hadoop部署模式1、独立模式2、伪分布式模式3、完全分布式模式二、Hadoop集群规划1、集群拓扑2、角色分配三、JDK安装与配置1、下载JDK压缩包2、上传到master虚拟机3、在master虚拟机上安装配置JDK4、将JDK分发到slave1和slave2虚拟机5、将环境配置文件分发到slav…

图的初识·存储结构

邻接矩阵存储结构 用矩阵表示表示图中各个顶点之间的邻接关系和权值。如图G(V,E)G(V,E)G(V,E)&#xff0c;其中有N个结点&#xff0c;使用NxNNxNNxN的矩阵表示。 不带权值的图 Gij{1,无向图(vi,vj)或有向图的<vi,vj>是图中的边0,无向图的(vi,vj)或有向图的<vi,vj>…

猕猴桃的红色果肉受到特定的激活-抑制系统的控制

文章信息 题目&#xff1a;The red flesh of kiwifruit is differentially controlled by specific activation–repression systems 刊名&#xff1a;New Phytologist 作者&#xff1a;Wen-qiu Wang&#xff0c;Andrew C. Allan,Xue-ren Yin et al 单位&#xff1a;Zhejia…

猿如意开发工具|Sublime Text(4126)

文章目录 一、猿如意是什么&#xff1f; 二、如何使用猿如意下载安装Sublime Text 三、总结 一、猿如意是什么&#xff1f; 猿如意是一款面向开发者的辅助开发工具箱&#xff0c;包含了效率工具、开发工具下载&#xff0c;教程文档&#xff0c;代码片段搜索&#xff0c;全网搜…

【Pandas数据处理100例】(九十九):Pandas使用at_time()筛选出特定时间点的数据行

前言 大家好,我是阿光。 本专栏整理了《Pandas数据分析处理》,内包含了各种常见的数据处理,以及Pandas内置函数的使用方法,帮助我们快速便捷的处理表格数据。 正在更新中~ ✨ 🚨 我的项目环境: 平台:Windows10语言环境:python3.7编译器:PyCharmPandas版本:1.3.5N…

如何建立一套完善的销售管理体系?

怎样创建两套健全的产品销售体系&#xff1f;用工程建设观念管理工作产品销售项目组&#xff0c;创建健全的产品销售体系&#xff01; 逐步形成精确的最终目标虽说重要&#xff0c;但缺乏有效率的方式来破冰&#xff0c;最终目标可能将仅是这份无用。 篮球赛事球手的最终目标…

IOC 的底层原理和Bean管理XML方式、xml注入集合属性

目录 什么是IOC IOC底层管理 工厂模式 IOC 的过程 IOC 接口 IOC 操作Bean 原理 Bean 管理操作有两种方式 1. 基于xml 配置方式创建对象 2. 基于xml方式注入属性 第二种使用有参数构造注入 p 名称空间注入 ICO操作Bean管理&#xff08;xml 注入其他类型属性&#xff…

微信小程序的 websocket 以及 微信开发者工具测试 ws 协议没有数据的 离奇解决方案 记录

微信小程序的 websocket 在本地web能够使用ws协议去链接websocket&#xff0c;但是小程序不能使用。一、WSS 协议与 WS 协议二、业务场景记录 : 使用 ws 协议的 websocekt 做测试,但是在 h5中可以拿到实时数据,在微信开发者工具中以及真机调试中拿不到模拟数据的问题1. 首先在 …

2022安洵杯babybf

babybf 赛后分析了下&#xff0c;发现是一道很有意思的题目 Brainfuck是一种极小化的计算机语言&#xff0c;它是由Urban Mller在1993年创建的。由于fuck在英语中是脏话&#xff0c;这种语言有时被称为brainf*ck或brainf**k&#xff0c;甚至被简称为BF。 其实本题是一个c语言实…

三、【redux】异步action

文章目录1、不成熟的异步修改1.1、CODE1.1.1、count_action.js1.1.1、count_reducer.js1.2、异常2、异步action代码修正2.1、store.js2.2、count_action.js3、小总结action分两类&#xff1a; 同步&#xff1a;指action的值是Object类型的一般对象异步&#xff1a;指action的值…

在C#中使用Halcon开发视觉检测程序

本文的初衷是希望帮助那些有其它平台视觉算法开发经验的人能快速转入Halcon平台下&#xff0c;通过文中的示例开发者能快速了解一个Halcon项目开发的基本步骤&#xff0c;让开发者能把精力完全集中到算法的开发上面。 首先&#xff0c;你需要安装Halcon&#xff0c;HALCON 18.…