智客公社

标题: 2021年4月下旬,百度机器学习/数据发掘/NLP算法工程师面试8道题 [打印本页]

作者: 寒晨月    时间: 2021-6-11 17:38
标题: 2021年4月下旬,百度机器学习/数据发掘/NLP算法工程师面试8道题
文末彩蛋:七月在线干货组最新晋级的《名企AI面试100题》收费送!
成绩1:编程题旋转有序数组,查找元素能否存在

思绪:
1、暴力破解:遍历整个数组,查找元素能否存在;
2、二分查找:旋转后部分数组依然是有序的,所以此时依然可以运用二分查找算法;
参考代码:

[attach]624157[/attach]


成绩2:完成余弦相似度计算

余弦相似度:用两个向量夹角判别其相似程度;
向量夹角越大,间隔越远,最大间隔就是两个向量夹角180°;
向量夹角越小,间隔越近,最小间隔就是两个向量夹角0°,完全重合。
所以余弦相似度越大,向量越相似;
计算公式:

[attach]624158[/attach]

求余弦相似度方法:
Numpy:

[attach]624159[/attach]

Pytorch:

[attach]624160[/attach]

Sklearn:

[attach]624161[/attach]



成绩3:验证二叉搜索树(BST)

二叉搜索树具有如下特征:
节点的左子树只包含小于当前节点的数。节点的右子树只包含大于当前节点的数。
一切左子树和右子树本身必须也是二叉搜索树。
思绪:
根据二叉搜索树的特征可知︰假如二叉树的左子树不为空,则左子树上一切节点的值均小于它根节点的值;若它的右子树不空,则右子树上一切节点的值均大于它根节点的值;并且它的左右子树也为二叉搜索树。
可以设计一个递归函数check(root, max_num, min_num),函数表示思索以root为根的子树,判别子树中一切节点的值能否都在(max_num, min_num)的范围内。假如root节点的值val不在(max_num, min_num)的范围内阐明不满足条件直接前往False,否则继续递归,检查它的左右子树能否满足,都满足则阐明这是一棵二叉搜索树。
留意∶
在递归调用左子树时,需求把上界max_num改为root.val;递归调用右子树时,需求把下界min_num改为root.val.
函数递归调用的入口为check(root, float("inf"), -float("inf")), float("inf")表示一个无量大的值。
参考代码︰

[attach]624162[/attach]


成绩4:用randomInt(5)完成randomInt(7),只用讲思绪

randomInt(5):等概率生成整数[1,2,3,4,5]
randomInt(7):等概率生成整数[1,2,3,4,5,6,7]
思绪:
1、用(randomInt(5)- 1)构造等概率整数数组:[o,1,2 ,3,4]
2、用(randomInt(5) - 1)*5构造整数数组︰[0,5,10,15,20]
3、下面的两个整数组可以构造等概率的新数组:[0,1,2,3,4,5,6,7,... , 24];(假如第2个数组选择2倍或者3倍,4倍则无法构造新的等概率数组)
4、选择新数组[o,1,2,3....,20]21个元组即可构造等概率的数组[1,2,3,4,5,6,7]
参考代码:

[attach]624163[/attach]


成绩5:编程题:分割链表成绩

分割链表︰
给定一个链表的头节点head和一个特定值×,然后对链表停止分隔,使得一切小于x的节点都出如今大于或等于x的节点之前。同时保留两个分区中每个节点的初始相对地位。
如下图所示:

[attach]624164[/attach]

思绪:
需维护两个链表small和large,small链表按顺序存储一切小于x的节点,large链表按顺序存储一切大于等于x的节点。遍历完原链表后,我们只需将small链表尾节点指向large链表的头节点即能完成对链表的分隔。
参考代码:

[attach]624165[/attach]


成绩6:怎样处理过拟合?怎样做图像增广?

常见缓解过拟合的方法:
1、降低模型复杂度
2、添加更多的训练数据:运用更大的数据集训练模型
3、数据加强
4、正则化:L1、L2、添加BN层
5、添加Dropout策略
6、Early Stopping
7、重新清洗数据︰把分明异常的数据剔除
8、运用集成学习方法︰把多个模型集成在一同,降低单个模型的过拟合风险
常见的数据增广方法:
1、程度/垂直翻转
2、随机旋转
3、随机缩放
4、随机剪切
5、颜色、对比度加强
6、cutOut
7、CutMix
8、Mixup
9、Mosaic
10、Random Erasing


成绩7:梯度下降方法有哪些?

梯度下降算法有如下3种:
1、随机梯度下降法:SGD
2、批量梯度下降法:BGD
3、min-batch小批量梯度下降法:MBGD


成绩8:sigmoid有哪些特性?激活函数了解多少?

[attach]624166[/attach]

Sigmod函数性质:
1、定义域:( -oo , +oo );
2、值域:(-1 ,1);
3、函数在定义域内为延续光滑函数;
4、处处可导,导数为:

[attach]624167[/attach]

5、函数的取值在О到1之间,在0.5处呈中心对称,且越接近x=0的取值斜率越大。
常见激活函数:
1、Sigmoid
2、Tanh
3、Relu . Leaky Relu、P-Relu (Parametric ReLU)
4、Elu、Gelu
5、Swich
6、Selu
回复有奖:回复区回复“100题”,收费支付最新晋级版《名企AI面试100题》电子书!
作者: 黑猪猪12345678    时间: 2021-6-11 17:42
分享了
作者: 河鞋社会7    时间: 2021-6-12 15:46
啊啊啊啊啊啊啊啊啊啊啊
作者: 补天者    时间: 2021-6-13 17:17
求沙发
作者: cyokkk    时间: 2021-6-14 12:00
除了666我无话可说




欢迎光临 智客公社 (http://bbs.cnaiplus.com/) Powered by Discuz! X3.4