Algorithm-interview

面经

参考

刷题

Leetcode
Lintcode
牛客
卡哥leetcode刷题指南

简历模板

参考1
github

开发

数组与指针
数字指针与指针数组
数字指针与指针数组
五大常用算法
C++vector的动态扩容
最优秀的排序算法之一Timsort
Python面经总结
python面经
python常见面试题
海量数据处理

算法

面经

算法面经汇总
阿里面经
深度学习面试79题
深度学习面试79题
深度学习相关面试
算法岗面试
算法岗面试

深度学习

不变性与等变性

  • 不变性: invariant f(F(x)) = f(x)  
  • 等变性: eq f(g(x)) = g’f(x)  
  • pooling是具有不变性  
  • cnn 是具有等变性  

特征工程的常用方法

  • 对时间戳处理
  • 对离散型变量进行独热编码
  • 对连续型变量进行分箱/分区
  • 特征缩放
  • 特征选择
  • 特征衍生(特征交叉)

    LSTM的结构

    参考
    包括遗忘门,输入门和输出门三种。
      
    GRU与LSTM区别
  • LSTM和GRU的性能在很多任务上不分伯仲;
  • GRU参数更少,因此更容易收敛,但是在大数据集的情况下,LSTM性能表现更好;
  • GRU 只有两个门(update和reset),LSTM 有三个门(forget,input,output),GRU 直接将hidden state 传给下一个单元,而 LSTM 用memory cell 把hidden state 包装起来。

RNN为什么会出现梯度消失或者梯度爆炸

在RNN中经常遇到梯度消失和爆炸现象的原因:很难捕捉到长期的依赖关系,因为乘法梯度可以随着层的数量呈指数递减/递增。

sigmoid和softmax的区别

Softmax函数是二分类函数Sigmoid在多分类上的推广,目的是将多分类的结果以概率的形式展现出来。最大的区别在于softmax的计算的是一个比重,而sigmoid只是对每一个输出值进行非线性化。

训练集、测试集和验证集的作用,训练的时候为什么要进行shuffle

首先用训练集训练出模型,然后用验证集验证模型(注意:这是一个中间过程,此时最好的模型还未选定),根据情况不断调整模型,选出其中最好的模型(验证误差用于指导我们选择哪个模型),记录最好的模型的各项设置,然后据此再用(训练集+验证集)数据训练出一个新模型,作为最终的模型,最后用测试集评估最终的模型。
进行shuffle:打乱数据之间的顺序,让数据随机化,避免过拟合。

数据不平衡的解决方法

以二分类举例,数据不平衡是指数据集中正类和负类的比例严重失调,比如正:负为9:1。数据不平衡会导致模型学习偏差,模型会倾向于学习比例高的数据特征,对比例低的数据只学习到很少的特征。

  • 数据方面:
    • (1)上采样:增加少类样本;
    • (2)下采样:抛弃部分大类样本
  • 模型方面:
    • 设置惩罚机制:增加少类样本预测错误的惩罚
  • 评价指标
    • 使用:精确率和召回率
  • 更换损失函数
    • 使用focal_loss

      各类激活函数

BP 算法流程

CNN 的参数的优化方法

随机梯度下降、mini-batch、整个训练样本一起进去的区别

BatchNormalization的核心思想和实现

Transformer的原理

为什么要把Transformer 应用的计算机视觉中

  • 通用的建模能力
  • 和卷积形成互补
  • 更强的建模能力
  • 对大模型和大数据的可扩展行
  • 更好的连接视觉和语音
    参考
    参考

过拟合与欠拟合

参考

dropout原理

参考  

Contents
  1. 1. 参考
    1. 1.1. 刷题
    2. 1.2. 简历模板
    3. 1.3. 开发
    4. 1.4. 算法
      1. 1.4.1. 面经
      2. 1.4.2. 深度学习
        1. 1.4.2.1. 不变性与等变性
        2. 1.4.2.2. 特征工程的常用方法
        3. 1.4.2.3. LSTM的结构
        4. 1.4.2.4. RNN为什么会出现梯度消失或者梯度爆炸
        5. 1.4.2.5. sigmoid和softmax的区别
        6. 1.4.2.6. 训练集、测试集和验证集的作用,训练的时候为什么要进行shuffle
        7. 1.4.2.7. 数据不平衡的解决方法
        8. 1.4.2.8. 各类激活函数
        9. 1.4.2.9. BP 算法流程
        10. 1.4.2.10. CNN 的参数的优化方法
        11. 1.4.2.11. 随机梯度下降、mini-batch、整个训练样本一起进去的区别
        12. 1.4.2.12. BatchNormalization的核心思想和实现
        13. 1.4.2.13. Transformer的原理
        14. 1.4.2.14. 过拟合与欠拟合
        15. 1.4.2.15. dropout原理
|