Giter Club home page Giter Club logo

ai_offer's Introduction

AI_offer【算法面试经典】

这个项目主要用来总结算法工程师面试中常见的问题,期待能够帮助算法工程师们收获心仪的 offer,如果觉得本项目不错,欢迎 star

注意:GitHub 本身不支持 LaTeX 公式,如果要在线看的话可以安装插件 TeX All the Things,刷新之后就可以正常显示公式;推荐本地使用 Typora 阅读,体验更好

目录

一、通用机器学习

  • 机器学习任务攻略
  • 正则化(L1,L2)
  • Normalization
    • BN,Layer Normalization,Instance Normalization,Group Normalization 的作用、实现、相互间区别、使用场景【参考1参考地址2
  • 优化算法
    • 不同优化算法:SGD、SGDM、NAG、AdaGrad、RMSprop、Adam、NAdam、AdaMax、AMSGrad
    • 优化算法效果可视化
  • 损失函数
    • MAE, MSE, Smooth L1 Loss, Huber Loss, Log-Cosh, Quantile, Hinge Loss, 交叉熵损失, Focal Loss
    • 分类 Loss 为什么用交叉熵不用 MSE
  • 评估指标
    • 分类任务:准确率(Accuracy)、精确率(Precision)、召回率(Recall)、PR 曲线、F1 值、ROC 曲线、AUC、对数损失
    • 回归任务:平均绝对误差(MAE)、均方误差(MSE)、均方根误差(RMSE)、归一化均方根误差(NRMSE)、决定系数(R2)
    • 聚类任务:纯度、NMI、兰德系数、调整兰德系数
    • 目标检测任务:IOU
  • 激活函数
    • Sigmoid,Tanh,ReLU,Leaky ReLU,ELU,GELU
  • 梯度消失与梯度爆炸
    • 解释原因
    • 解决方案:合适的激活函数、Batch Norm、网络结构(ResNet,LSTM)、梯度裁剪
  • 过拟合与欠拟合
    • 什么是过拟合与欠拟合?解决方案是什么?
    • Dropout具体实现,训练和测试时有什么不一样?
  • 其他小众问题
    • 偏差与方差
  • 参数初始化方法
    • 权重初始化的方案(Xavier,kaiming_normal)
    • 神经网络权重初始化为零带来的影响
  • 模型压缩
  • 调参技巧【参考地址

二、机器学习

  • 决策树【参考地址
    • ID3,C4.5,CART决策树的计算流程
    • 信息增益
    • 包括剪枝,预剪枝后剪枝好处坏处
  • 集成学习
    • Adaboost,GBDT,XGboost,随机森林、lightgbm,bagging
    • GBDT防止过拟合的方法有哪些?怎么处理连续变量和离散变量?
    • 随机森林怎么处理样本不均衡
    • xgboost和gdbt怎么做回归和分类的?有什么区别?
  • SVM
    • 推导
    • SVM原理,为什么要用对偶问题解
    • SVM如何处理非线性情况(非核方法)软间隔和正则化
    • SVM的原理,核函数的有什么特点
    • LR和SVM的异同
  • 判别式与生成式模型
  • HMM是什么
  • 牛顿法和拟牛顿法介绍
  • 无监督算法
    • 基于密度的算法
    • k-means
  • 逻辑回归
    • 基本概念
    • LR的原理,手写损失,手写反向传播
    • LR特征重复会怎么样
  • 朴素贝叶斯的推导以及假设条件
  • KNN
    • KNN的原理,如果所有K选的很大,会导致过拟合还是欠拟合
  • DETR算法
  • 问对NAS算法
  • LGBM和XGB区别
  • Inception系列的演化
  • 谈谈传统不平衡分类算法(上采样、下采样、混合采样、代价敏感矩阵、调整分类器阈值)以及最新深度学习不平衡分类算法

三、数据相关

  • 样本不平衡处理方法
    • 样本不平衡怎样选择特征
  • 数据增强的常用方案
  • 特征工程【参考地址
    • 怎样选择特征
    • 特征工程做的有哪些?非线性可分的情况怎么处理的?
    • 标准化、归一化、异常特征清洗、不平衡数据
    • 不平衡数据的处理方法
  • 数据预处理
  • 稀疏特征的处理
  • 如何识别数据集中的噪声样本

四、计算机视觉

  • RCNN 系列算法的演进【参考地址】【地址2】【地址3
    • faster rcnn的最后输出大小是多少、它的正负样本是怎么选择
    • 目标检测中如何解决目标尺度大小不一的情况)+基础知识(pooling反向传播,python拷贝文件)
  • YOLO 系列算法的演进
  • anchor-free 的目标检测算法
  • 卷积
    • 普通卷积,Group卷积,深度可分离卷积实现与参数量计算
    • 转置卷积、空洞卷积、1*1 卷积(变换channel,通道融合,降维)、deformable conv
    • 感受野的概念
  • ROI pooling 与 ROI align【地址
  • IOU
  • 非极大值抑制(NMS)
  • 目标检测,任意形状的检测框应该怎样实现
  • Transformer相比较CNN的优缺点
  • FPN为何能够提升小目标的精度
  • resnet和densenet及其不同
  • 计算机视觉四大基本任务
  • pooling层的作用
  • [ ]

五、自然语言处理

  • word2vec和onehot的区别

    • 讲讲word2vec原理,介绍一下tf-idf
    • WORD2VEC的细节(CBOW+skop-gram huffman树+负采样算
    • 介绍word2vec,word2vec假设,负采样,参数数目
  • RNN 与 LSTM,Bi-LSTM,GRU 原理

    • lstm原理三个门作用
    • LSTM结构画图,为什么能解决梯度消失和梯度爆炸
  • transformer 与 BERT

    • self-attention 原理
    • transformer 原理与优缺点
    • BERT 原理【参考地址
    • 位置信息,bert 与 transformer 的位置信息来源不同之处【为什么 transformer 用 positional encodding 而 bert 自己学习 positional embedding】
    • bert 的变种模型
    • bert的embedding是相加还是concat?
    • bert的根号dk作用【dot production 为什么要除以维度的开根号】
    • 多头注意力原理与作用
    • 描述下多头自注意力机制,自注意力公式,说说为什么用LN,为什么用残差结构
  • LSTM+attention这个模型为什么要在加attention

六、手撕代码

这一部分不会涉及一般的算法,只会列出设计机器学习的算法

  • 手写img2col
  • nms
  • IOU
  • pytorch 实现 逻辑回归
  • k-means
  • pytorch 实现多头注意力机制
  • logistic回归
  • 快速排序
  • 梯度下降算法推导

七、Python 语言

  • python多线程,多进程
  • python的GIL
  • 生成器与迭代器
  • 装饰器
  • 深浅拷贝
  • python 的垃圾回收机制
  • pyhton的 is 和 == 有什么区别
  • python的class在继承父类时,super的作用是什么
  • list 参数传递

https://github.com/code-wd/

ai_offer's People

Contributors

code-wd avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.