一、概述
本文提出一种基于代理进化神经网络结构搜索的HSIC方法。该方法将多尺度谱空间注意融合网络编码为ENAS个体。基于逻辑回归的代理模型可以减少搜索过程中大量结构评估的开销,提升模型预测能力,减少初始化时间。为此,本文以染色体间的优势关系为预测目标,设计了一种新的代理辅助进化方案;还根据染色体中碱基类型对表型影响的不同,对代理模型进行了扩展。
二、方法
图1. EMSAFN流程图
EMSAFN的模型搜索流程如图1所示,是一个标准的ENAS搜索流程。由框架从候选操作中生成候选模型编码,然后使用编码实例化模型,使用代理模型评估,最后保留优势种群,循环往复。
2.1模型结构
图2. EMSAFN模型结构
本模型采用传统的patch方法,其结构图如图2所示。首先以目标像素为中心,提取一个包含周围像素的patch块,然后使用PCA对patch块进行降维。完成降维后的patch块会经过3个分支。上方的分支使用3x3卷积核、下方的分支使用5x5卷积核。最后还有一个跳跃连接。
从图中可知,在上面两个分支中,2D卷积、3D卷积、DW卷积被编码为可选操作,由基因序列O和T控制其启用。
另外,文中的多尺度融合主要依赖于2D卷积核3D卷积的切换来实现。2D卷积主要提取平面信息,3D卷积则沿着光谱深度方向滑动,可以显式提取光谱-空间关系。
基因序列G控制两个分支的融合方式,包含三个可选项:求和、加权求和、拼接。
基因序列A则控制注意力类型,包含三个候选操作:空间注意力、光谱注意力、交叉注意力。
基因序列J控制是否启动跳跃连接,基因序列P控制选择2x2最大池化/平均池化。
2.2基因编码
如图2所示,基因编码包含以下几个类型,其内容和含义如图3所示。
图3.基因编码及其含义
原文将基因划分为离散型和有序型,离散型主要改变网络结构(如模型通路配置、卷积尺寸等);有序型则主要指输入尺寸、输入维度、输出维度等。
2.3代理模型
图4. 代理模型结构
架构训练可描述为式子:,其中
为染色体,
为准确率。本文的创新之处是将
改为“架构
是否优于架构
”,可以对应为公式
。
该代理模型可以构建为:
文中的逻辑回归(logistic regression)的实现方式实际为MLP。可以表达为下式:
从任务本质看,它是基于 MLP 的成对二分类器。公式(2)用二分类交叉熵训练,若真实标签为 1,模型输出越接近 1,损失越小;若输出接近 0,损失很大。真实标签为 0 时则相反。
2.4变异增强
图5.变异增强规则
如上图所示,左边是较优架构,将输出通道从 48 改为 40;右边是较差架构,将输入 patch 尺寸从 31 改为 33;得到两个新架构,仍把“左边优于右边”作为标签。新架构没有经过真实训练,因此这是伪标签。
假设两个架构真实性能差距足够大时,保持主要结构不变,仅扰动少数特征规模基因,通常不会颠倒优劣关系。
在特征规模相关的子空间中选择一个基因,进行邻域修改。更清楚的解释性表达为:
其中表示只修改第
个位置;超过允许范围时,将值截断到边界。从这些集合中选择基准架构,在其附近生成样本,意图是让代理加强学习被“看反”的优劣关系。若所有排序都正确,正文说可使用全部真实架构作为基准。
2.5进化搜索
设架构搜索空间为,一个候选架构染色体为
,由这个染色体解码得到的分类网络为
,该分类网络的准确度为
。则搜索目标可以定义为:
网络结构由进化算法驱动代理模型获得,每个候选网络的权重依旧由随机梯度下降获得。
染色体为定长染色体,可以描述为:
其中为输入patch尺寸,
为输入光谱通道,
为三个网络块。其中每个网络块可以被编码为:
,每个部分的含义如下表:
每个块有13个基因,染色体长度=2+3x13=41。
2.6代理模型建立
在正式开始架构搜索前,本文先用一批真实训练结果建立代理模型,整个流程可描述为:随机采样架构->解码并训练->获取准确率->建立档案。初始档案记录为:
随后利用档案中的架构构造比较样本:
将两个架构的编码拼接、转换为二进制特征,训练MLP
代理模型可以学习两个架构之间的优劣关系,从而将学到的内容用于后续的进化架构搜索,以决定那个候选模型应该被留下。
在进化搜索时,代理模型通过“预测排序+少量真实反馈”来更新模型。该模式的主要收益是:大量候选只需要进行成本较低的 MLP 推理,而不必全部训练分类网络。其步骤可以描述为:
- 对合并候选
进行成对优劣预测。
- 将比较关系转换为候选排名。
- 真实训练并评估预测排名最好和最差的架构。
- 将新增真实结果加入档案
。
- 更新代理模型。
- 根据排名进行选择,形成下一代
整个训练过程可以描述为伪代码:
随机采样初始架构,真实训练,建立档案 A 利用 A 中的架构对和局部增强样本,训练排序代理 初始化种群 P 重复至最大代数: 对 P 执行交叉和变异,得到后代 Q 合并候选 U = P ∪ Q 获取排序可靠性 c 和适应度范围 r 如果 r ≥ 0.01 且 c ≥ 0.8: 用代理比较 U 中的架构并生成排名 真实评估预测最好和最差的架构 将真实结果加入 A,更新代理 按排名选择下一代 P 否则: 真实训练并评估后代 Q 将真实结果加入 A,更新代理 按真实适应度进行轮盘赌选择,更新 P 真实评估最后一代 输出其中准确率最高的架构