来源:投稿 作者:LSC
编辑:学姐
我讲了AlexNet、VggNet、ResNet、DenseNet、EffiencientNet等,以及里面用到的tricks
AlexNet:
VggNet网络深度更加大,进一步扩展,用2个33的卷积核代替了55的卷积核。
ResNet的残差结构,使得网络深度可以进一步加深。
InceptionNet使用了并行分支的方法,将不同尺度的特征信息进行融合,提取更多有效的特征,减少信息损失。
DenseNet将所有特征连接起来,尽可能做到特征信息的不浪费。
EfficientNet在网络深度、宽度、分辨率3个维度对模型进行强化。
BN对当前batch数据进行标准化后,再进行线性映射,训练scale与shift参数。是在batch这个维度上对每个批次的数据进行求均值、方差并标准化。
随机失活,让神经元或者网络层以一定的概率在每轮训练中不参与训练。
每个神经元或者网络层以一定的概率不参与训练,也就是让其输出为0。
这个问题我回答的不好,面试结束后查阅了一些资料。
在较大程度上减小了网络的大小: 在这个“残缺”的网络中,让神经网络学习数据中的局部特征(即部分分布式特征),但这些特征也足以进行输出正确的结果。
每次训练随机dropout掉不同的隐藏神经元,网络结构已经不同,这就类似在训练不同的网络,整个dropout过程就相当于对很多个不同的神经网络取平均。而不同的网络产生不同的过拟合,一些互为“反向”的拟合相互抵消就可以达到整体上减少过拟合。
减少神经元之间共适应关系: 因为dropout导致两个神经元不一定每次都在一个网络中出现,这样权值的更新不再依赖于有固定关系的隐含节点的共同作用,阻止了某些特征仅仅在其它特定特征下才有效果的情况,迫使网络去学习更加鲁棒的特征。
这个问题我也回答的不好,后续查阅了一些资料,网上说BN不能防止过拟合。
BN的核心思想不是为了防止梯度消失或者是防止过拟合,其核心思想是通过系统参数搜索空间进行约束来增加系统鲁棒性,这种约束压缩了搜索空间,约束也改善了系统的结构合理性,这会带来一些列的性能改善,比如加速收敛、保证梯度、缓解过拟合等等。
我讲了RCNN系列和Yolo系列。主要详细讲了Yolo系列,从v1到v5,讲了好多,资料可以上网详查。
推荐以下知乎文章: https://zhuanlan.zhihu.com/p/143747206 https://zhuanlan.zhihu.com/p/172121380 https://zhuanlan.zhihu.com/p/183261974 https://zhuanlan.zhihu.com/p/183781646 https://zhuanlan.zhihu.com/p/186014243 https://zhuanlan.zhihu.com/p/483446554 https://zhuanlan.zhihu.com/p/485059645
batch_size和learning_rate
必须使用。不使用的话就神经网络本质上就等价于线性关系式,只有使用激活函数神经网络才能无限逼近于任何函数。sigmoid、tanh、relu、leaky relu、logistic函数等。
答:需要这30人每个人的人脸数据,在不同的条件、环境下的包含人脸正脸的照片,包含了各种不同条件比如光照不同、角度不同、背景不同等。每人需要拍10万张左右。
收集公司的30个人以外的其他人的人脸图像,每个人1-5张即可,尽可能多收集多个人的人脸图像,多建立一个类别作为第31类进行分类。
简化问题,把员工A的两张照片a1,a2的特征提取出来,为va1,va2, 员工B的两张照片b1,b2的特征提取出来,为vb1, vb2,写出其损失函数。
我写了一下,大概是这样的:
d(x, y)表示特征张量x和y的距离,为了使loss满足条件,所以d(va1, va2)和d(vb1, vb2)要尽可能小,其余的值尽可能大,所以取大一些,比如令
,
的绝对值取小一些,而且要为负数,因为loss是要减小的,比如令
。
如有更好的解决方案可以评论区交流
AI前沿技术资讯&岗位面经&干货分享
点击卡片关注持续更新中