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。