【论文笔记】利用遗传算法进行网络结构搜索

论文题目:BPNet: Branch-pruned Conditional Neural Network for Systematic Time-accuracy Tradeoff
主要内容:分为4部分

在这里插入图片描述
以前的论文没有系统性的提出该如何确定网络结构,因此本论文利用遗传算法进行网络结构的空间搜索。首先将主网络和辅助分类器联合训练,后利用遗传算法搜索辅助分类器的位置和阈值,最后interfence过程中若某个辅助分类器的分类效果已经很好则直接退出(不继续在主网络里计算以节省时间)

ps:辅助分类器的结构为3 * 3的filter+1 * 1的filter+FC层


(1) 联合训练

将主网络和辅助分类器联合训练,训练出一个基础版的网络结构(后面会剪枝)。

需要最小化total loss,然后根据loss来反向传播迭代
total loss=加权求和(每个辅助分类器单独的loss+主网络最后一层的loss)
权重:
在这里插入图片描述
在这里插入图片描述

注意:

a) 每个辅助分类器后面都有一个 softmax&loss层,他们都会累加到total loss里面
b) c是可以调参的,论文后面有分析c的影响,一般取0.25-0.4

(2) Profile阶段

对一个sample data 收集到时间和精度,得到profile data 提供给后续遗传算法使用
在这里插入图片描述

注意:

a) 这时候所有辅助分类器都是存在的(还不剪枝)
b) 要收集在分支的执行时间和准确性得分

(3) 剪枝阶段

根据收集的时间和精度2元组进行剪枝,利用遗传算法对网络结构进行空间搜索,确定要不要把辅助分类器剪枝,得到的最优解

搜索空间包括:辅助分类器的数量、阈值、位置

遗传算法的染色体有2(N+1)个数值

  • N是辅助分类器数量
  • 1表示基网络最后的一个分类器
  • 2指“这个分类器保不保留 0 or 1”+“这个分类器的阈值”

这样得到一个表格,这个表格就是遗传算法最终得到的最优解。

染色体的pool是所有染色体的总和,找出最好的染色体,就是要找出最好的配置

遗传算法用来解决一个双优化问题,根据fitness function(没说具体是什么)同时优化时间和accuracy

他的遗传算法用了nsga3算法,用c++的openGA库实现

附:

a) 得到分数的算法(calculation步骤)
在这里插入图片描述

b) NSGA3算法:
NSGA-III 首先定义一组参考点。然后随机生成含有 N 个(原文献说最好与参考点个数相同)个体的初始种群,其中 N 是种群大小。接下来,算法进行迭代直至终止条件满足。

在第 t 代,算法在当前种群 Pt的基础上,通过随机选择,模拟两点交叉(Simulated Binary Crossover,SBX)和多项式变异 产生子代种群 Qt。Pt和 Qt的大小均为 N。因此,两个种群 Pt和 Qt合并会形成种群大小为 2N 的新的种群 Rt=Pt∪Qt。然后要在Rt这2N个个体中选择最好的N个进入下一轮迭代。

比如你的N设置为100,那么Pt大小为100,Qt是Pt交叉和变异后的个体,Qt的数目也是100,那么Rt=Pt∪Qt,Rt数目是200,现在只要从这两百中选100个个体进行下一轮迭代。
那么怎么从这两百个选一百个呢?NSGA的思想首先是把所有解进行分非支配排序,这里目标值越小越好,例如:甲三个目标值是(2,3,5),乙的三个目标是(4,3,5),丙的三个目标是(3,3,4),那么给甲和丙在F1层即等级为1,F2层是乙,等级为2,以此类推。假如一共有8层非支配层(F1,F2,。。。,F8),你选到F1+F2+F3+…+F7时候已经有90个个体了,而F8层有20个个体,那么怎么在F8选这10个个体,即怎么在F8里的20个选十个,NSGA2用的是基于拥挤距离的方法,而NSGA3用的是基于参考点的方法。在原始NSGA-II中,FL中具有较大拥挤距离的解会优先被选择。然而,拥挤距离度量并不适合求解 MaOPs(三个及更多目标的多目标优化问题)。因此 NSGA-III 不再采用拥挤距离,而是采用了新的选择机制(这个机制就是NSGA3与2之间的最大区别之处),该机制会通过所提供的参考点,对 St中的个体进行更加系统地分析,以选择 FL中的部分解进入 Pt+1。

(4) inference阶段

inference推理:输入验证集数据 得到结构

基于上一步得到的最优解,也就是最优的网络结构,进行分类

基网络中,算出一个中间输出了,就放到辅助分类器中进行分类,如果SM值足够大了,那就直接输出结果,提早结束,如果SM值不够大就继续进入下一层。

SM值:指最大和次大softmax的差值,SM值大说明成为某一类的概率远大于其他,可以直接断言了。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值