【算法岗相关的常用知识梳理,包括理论、代码、经典模型与新技术】(持续更新ing)
👏🏻👏🏻👏🏻👏🏻👏🏻👏🏻👏🏻👏🏻👏🏻👏🏻👏🏻👏🏻👏🏻👏🏻👏🏻👏🏻👏🏻👏🏻
算法工程师的修炼之路(书单):点击进入
🎉🎉🎉🎉🎉🎉🎉🎉🎉🎉🎉🎉🎉🎉🎉🎉🎉🎉
0x000 计算机视觉
图像分类经典模型(LeNet、AlexNet、VGG、ResNet、GoogLeNet)
语义分割任务经典模型(FCN、Unet、RefineNet、PSPnet、SegNet)
目标检测任务基础模型(两阶段、一阶段,包括R-CNN系列、YOLO系列、SSD)
实例分割基本概念与经典模型:FCIS、YOLCAT、PolarMask、SOLO
模型蒸馏(distillation)的基本原理
DeepLab v3 实现细节
数据增广与测试时增强(TTA)
RoIAlign算子具体代码实现(以facebook的maskrcnn-benchmark为例)
Anchor Free 目标检测方法:CornerNet、CenterNet、FCOS
双目超分辨率(Stereo SR)相关模型
无监督超分辨率方法
去雾算法(Dehaze):暗通道先验原理
光流(Optical Flow)计算与应用:传统方法与光流网络
OCRNet(Object Contextural Representation):基于transformer attention机制的上下文关联策略
Dilated Residual Net(DRN):空洞卷积改进resnet
MS COCO 数据集的实例分割/目标检测的annotation基本格式
anchor-free目标检测模型之:FCOS(多尺度、相对位置、centerness)
COCO数据集的官方api的基本用法(get类别/图像/标注Id、load图像/标注信息)
Wasserstein GAN:log微操防止JS散度的梯度消失和logD trick的模式坍塌
CycleGAN:循环一致性约束的无监督domain transfer方案
StyleGAN 和 StarGAN
Diffusion的应用:去噪、超分、图像生成
神经网络的鲁棒性(clever Hans效应)
Shufflenet v1&v2:分组卷积加通道shuffle信息交互
Ghostnet:ghost特征加简单变换生成丰富feature map
Efficientnet:通道数、深度、分辨率的复合NAS搜索优化
- OSLSM 2017 (Pascal 5i做交叉验证,weight hashing,sup和que最终特征logistic回归)
- SG-One 2018 (mask pooling + cosine sim)
- Prototype Alignment Network (PANet) 2019 (alignment,一种类cycle loss)
- FSS-1000(relation net) 2019 (主要是数据集FSS-1000,适用于小样本分割的数据集)
- CANet: Class-Agnostic Segmentation 2019(对结果进行 refinement)
- BMVC 2018 2018(网络设计较复杂)
- Prototype Mixture Models(PMM) 2020 (将prototype拆成多个)
- Prior Guided Feature Enrichment Network(PFENet) 2020(先生成无须训练的prior,后接多特征融合)
- FSIL(Few shot Seg Image Level) 2020 (利用image-level的弱监督信息做few shot seg)
Image-level label 语义分割基本思路
小目标检测常见处理思路
多尺度特征学习思路相关模型
context-based 相关模型
训练策略、loss函数、data augment思路相关方法汇总
Resnet变体
SENet:squeeze and excitation
DenseNet
Inceptions
51x51 SLaK(Sparse Large Kernel)More ConvNets in the 2020s: Scaling up Kernels Beyond 51x51 using Sparsity
ECB(Edge-oriented Conv Block):Sobel与Laplacian强化边缘的重参数化策略
ACNet(Asymmetric Conv):1x3、3x1、3x3的非对称重参数化
DBB(Diverse Branch Block):不同排列组合的多分支block
0x001 数据处理
数据处理和评估中的常用度量指标(AUC/KS/Gain/Lift)
特征分箱原则与策略(等频分箱、等距分箱、卡方分箱、bestKS分箱)
0x002 深度学习基础
PyTorch中定义的其他几种损失函数(NLL、Multi-label、Huber、Triplet Loss等)
分割和检测任务中的损失函数(IoU loss、Dice loss、Lovasz loss)
梯度下降法及其变体(Momentum、Nesterov、RMSprop、Adagrad、Adam、AdamW等)
Gradient Clipping:梯度裁剪,防止梯度爆炸的手段
L1 norm下的优化;ISTA&FISTA;学习率策略;ADMM;
EMA(Exponential Moving Average)
分组卷积
deformable(可变)卷积
常用初始化方法(随机初始化、xavier初始化、kaiming初始化)
0x003传统机器学习基础(非NN类)
kNN与k-d树:简单算法的工程优化
集成学习方法(bagging、boosting、stacking)、梯度提升原理
隐马尔科夫模型(HMM)
蒙特卡洛方法
MCMC:马尔科夫链蒙特卡洛算法
Viterbi算法
无权重二部图最大匹配的匈牙利算法(Hungarian Algorithm)、赋权图Kuhn-Munkres算法
宽表数据建模常用集成模型:XGBoost、GBDT、LightGBM,原理与区别
注意力机制的原理、应用与局限
DETR:基于transformer的端到端目标检测(bbox集合预测、二分匹配)
Swin Transformer
SETR
DeiT
CaiT
Segmenter
SegFormer
MLP-Mixer(非transformer)
0x005 自然语言处理基础
主题模型(topic model)
最基础的词嵌入模型Word2vec(skip-gram & cbow)
ELMo:基于语言模型的bi-LSTM的基于上下文动态嵌入的模型,处理一词多义(芝麻街命名模型第一弹)
FastText:Facebook开源的文本分类和词嵌入工具包
GPT系列:Generative Pre-Training,单向Transformer,非监督预训练+下游任务微调
BERT:谷歌开放的基于bidirectional Transformer的最强语言模型,BERT yyds !
Negative Sampling:词嵌入训练中的负采样操作
Hierachical Softmax:基于Huffman编码的高输出维度(词典大小)的优化方法
0x006 信息论
信息论基本概念与定义:信息量、信息熵、条件熵、相对熵
香农三大定理:变长无失真信源编码、有噪信道、有损信源编码
0x007 矩阵论
矩阵与线性代数基础概念与定义
图像处理与图形学中的矩阵变换
基变换与坐标变换
矩阵的对角化
0x008 统计推断与概率论
贝叶斯定理与应用
最大似然估计与最大后验估计
古典概型例题汇总
0x009 PyTorch相关
并行化策略(DataParalle和DistributedDataParallel)与多机多卡训练
PyTorch中的Dataset处理逻辑
PyTorch模型量化与onnx转换处理流程
0x00A 数据结构与算法
Huffman树与Huffman编码:最优权重路径的无损压缩编码算法
跳表(skiplist):基于多级别索引的查找复杂度log(n)的链表
并查集(union-find):近乎常数操作复杂度的不相交集合查询
位图算法与布隆过滤器(Bloom Filter)
0x00B 强化学习
强化学习的基本概念
Q-learning模型与SARSA模型
深度强化学习概述
0x00C 推荐系统与推荐算法基础
经典推荐算法:协同过滤(Collaborative Filtering,CF)
Matrix Factorization:从用户-物品矩阵中分解出用户和物品的特征隐向量
LR模型及其改进版MLR(piece-wise LR):一阶特征建模的CTR预估
FM(因子分解机)和FFM(Field-aware FM):隐向量内积实现特征交叉权重
0x00D 图嵌入与图神经网络相关算法
图嵌入方法DeepWalk:利用random walk将图嵌入转为词嵌入
PyTorchBigGraph:一种分块的处理大图的方法和框架,Facebook出品
0x00E 信号处理相关常识与算法
频域分析、傅里叶变换与FFT
连续信号、离散信号,采样与奈奎斯特定理
0x00F 计算成像、图形学相关算法
计算机图形学基本概念
0xFFF 常用工具类
hadoop基本原理简介
SQL基本操作
Hive表基本格式与原理
Spark基本原理简介
Docker基本原理
Docker常用指令
Python中的深拷贝和浅拷贝
Python中的类(class)的原理与特点
Python中常用的魔法方法
Python的垃圾回收机制(Garbage Collection)
Python的with语句执行原理
Python中的函数wrapper和装饰器(decorator)
Python的线程、进程,与协程(Corountine)的基本概念
C/C++基本常识、编译链接过程
C++中的常用修饰符:static、const 等
C++中的指针和引用;值传递、指针传递和引用传递
CMake的使用方法
Java虚拟机基本原理
Java常用语法结构