去年面试字节的时候,准备了一些算法常用的面试知识点,事实证明,准备的还不错。现在分享给大家,希望自己求职路也顺利些。
目录
优化算法,Adam, Momentum, Adagard,SGD原理:
高频问题:
优化算法,Adam, Momentum, Adagard,SGD原理:
自适应学习率算法
Adagard在训练的过程中可以自动变更学习的速率,设置一个全局的学习率,而实际的学习率与梯度历史平方值总和的平方根成反比。用adagrad将之前梯度的平方求和再开根号作为分母,会使得一开始学习率呈放大趋势,随着训练的进行学习率会逐渐减小
Momentum参考了物理中动量的概念,前几次的梯度也会参与到当前的计算中,但是前几轮的梯度叠加在当前计算中会有一定的衰减。用来解决梯度下降不稳定,容易陷入鞍点的缺点
SGD为随机梯度下降,每一次迭代计算数据集的mini-batch的梯度,然后对参数进行跟新。优点是更新速度快,缺点是训练不稳定,准确度下降。
Adam利用梯度的一阶矩估计和二阶矩估计动态调整每个参数的学习率,在经过偏置的校正后,每一次迭代后的学习率都有个确定的范围,使得参数较为平稳,结合momentum和adagrad两种算法的优势
正则化:
用来显示地设计来减少测试误差,修改学习算法,降低泛化误差而非训练误差.通过对目标函数添加一个参数范数惩罚,限制模型的学习能力。
L1正则化 各个参数的绝对值之和, 可以产生稀疏权值矩阵,即产生一个稀疏模型,可以用于特征选择;一定程度上可以防止过拟合。
稀疏矩阵指的是很多元素为0、只有少数元素是非零值的矩阵。以线性回归为例,即得到的线性回归模型的大部分系数都是0,这表示只有少数特征对这个模型有贡献,从而实现了特征选择。总而言之,稀疏模型有助于进行特征选择。
L2正则化可以防止模型过拟合 L2是各个参数平方和的开方值
L1不可导的时候该怎么办?
Q: 当损失函数不可导,梯度下降不再有效,可以使用坐标轴下降法,梯度下降是沿着当前点的负梯度方向进行参数更新,而坐标轴下降法是沿着坐标轴的方向,假设有m个特征个数,坐标轴下降法进参数更新的时候,先固定m-1个值,然后再求另外一个的局部最优解,从而避免损失函数不可导问题
了解L1、L2范数:
深入理解L1、L2范数_取个名字最难了的博客-CSDN博客_l1范数图像
Logit函数和sigmoid函数的关系:
logistic function 是 logit funciton的反函数
sigmoid function不是某一个函数,而是指某一类形如"S"的函数,都可以成为sigmoid的函数.
区别logit\logistic\simoid函数:
一篇文章搞懂logit, logistic和sigmoid的区别 - 知乎 关于机器学习中logit的含义,对于理解模型很有帮助
sigmoid的优点在于输出范围有限,所以数据在传递的过程中不容易发散。当然也有相应的缺点,就是饱和的时候梯度太小。
sigmoid还有一个优点是输出范围为(0, 1),所以可以用作输出层,输出表示概率;处处可导,

损失函数:
交叉熵损失 Cross Entropy :多分类问题常用的损失函数
交叉熵主要是用来判定实际的输出与期望的输出的接近程度
交叉熵公式: