Fork me on GitHub

2021 年 9 月中旬,百度 NLP 岗位面试题分享(一)


问题1:神经网络有哪些初始化的方法、为什么要初始化

不初始化可能会减慢收敛速度,影响收敛效果。

如果使用的是预训练模型,是不需要自己进行初始化的,只有没有预训练模型的时候需要初始化。

常用的权重初始化算法是「kaiming_normal」或者「xavier_normal」。

以下n_in为网络的输入大小,n_out为网络的输出大小,n为n_in或(n_in + n_out) * 0.5

- uniform均匀分布初始化:
在这里插入图片描述
- Xavier初始法,适用于普通激活函数(tanh,sigmoid):
在这里插入图片描述
- He初始化,适用于ReLU:
在这里插入图片描述

  • normal高斯分布初始化,其中stdev为高斯分布的标准差,均值设为0:
    在这里插入图片描述
  • Xavier初始法,适用于普通激活函数(tanh,sigmoid):
    在这里插入图片描述
  • He初始化,适用于ReLU:
    在这里插入图片描述
    svd初始化:对RNN有比较好的效果。参考论文: https:/larxiv.org/abs/1312.612ol8]

福利:2021年最新大厂AI面试秘籍PDF 《2021年最新大厂AI面试题 Q2版》&《名企AI面试100题》,文末免费领!


问题2:python迭代器和生成器

可迭代对象(Iterable Object),简单的来理解就是可以使用 for 来循环遍历的对象。比如常见的 list、set和dict。

可迭代对象具有__iter__ 方法,用于返回一个迭代器,或者定义了getitem方法,可以按 index 索引的对象(并且能够在没有值时抛出一个 IndexError 异常),因此,可迭代对象就是能够通过它得到一个迭代器的对象。所以,可迭代对象都可以通过调用内建的 iter() 方法返回一个迭代器。

生成器其实是一种特殊的迭代器,不过这种迭代器更加优雅。它不需要再像上面的类一样写__iter__()和__next__()方法了,只需要一个yiled关键字。


问题3:GBDT为什么拟合负梯度而不是残差

函数中下降最快的方向是导数方向,同理:GBDT中,损失函数减小最快的方向也是本身的导数方向。当损失函数为均方误差时,损失函数的负梯度和残差一样,但当损失函数不为均方误差时,本质上拟合的还是负梯度。


问题4:用python写一下堆排序

在这里插入图片描述


问题5:用python写一下快排排序

在这里插入图片描述


添加微信julyedufu77,领取七月在线干货组最新升级的《2021最新大厂AI面试题 Q2版》&《名企AI面试100题》PDF!**

持续无限期更新大厂最新面试题,AI干货资料,目前干货组汇总了今年3月-6月份,各大厂面试题,助力数千人拿到dream offer。
在这里插入图片描述


本文地址:https://www.6aiq.com/article/1636393383978
本文版权归作者和AIQ共有,欢迎转载,但未经作者同意必须保留此段声明,且在文章页面明显位置给出