配合一本实体笔记本
构建双网络协同优化的dataloader
20220330
- 从最初的一个样本预测下一个样本的模型这样的缺点:
- 每个样本更新一次梯度,让优化器非常受单个样本的左右干扰,不利于收敛,同样速度会很慢
- 解决方案
- 在强化学习预测网络的部分,输入batchsize个样本的状态向量,输出batchsize个样本的数据长度
- 执行方案一:
- 因为强化学习的batchsize样本是在存下来的经验里取到的,所以不需要特别地再构建dataloader,就把图神经网络的输出的特征向量串行输入到强化学习网络
- 具体步骤
- 先随机生成batchsize个数据长度,然后数据预备器取出,送入图网络batchsize个数据进行梯度更新,并把生成的batchsize个卷积后的特征向量送入强化学习,依次循环
- 执行方法二:
- 把
模型的策略改进
20220330
图神经网络预训练
- 使用batchsize并且shuffle的模式进行训练
强化学习改进
20220403
- 可以按一定的概率随机选择动作,增加灵活性
- updata的次数可以适当增加
- 如果同时几个action的分数值是相等的,不加修改程序每次都选择第一个动作,可以修改action的位置来调整
- 对reward正则化 变为-1 ~ 1或其他
- Prioritized 按重要度程度抽样
- 当reward高于baseline时增加采样几率,否则减少
- action总是不变需要扣分,action变化是加分项
- 根据domain knowledge 设计更多的 reward 机制,增加灵活性
- 增加机器的好奇心
reward 改进
- 如果错的多需要加大惩罚
20220409
- 老版本 Alpha Go一开始使用的是Behavior cloning
图数据可视化
需求
- 根据出入度的大小调整节点的大小
- 根据边权重的大小调整边的粗细
- 可以得到有向图的指向信息
- 不同标签的节点标注不同的颜色
- 把state normalize到一个尺度
遗传算法部分
图网络模型搜索
搜索空间
- 2022-04-20 14:23:02 是否把 add-self加入搜索空间 (目前没有)
- 2022-04-20 14:42:08 是否把 图卷积层内的 concat 作为搜索空间的一部分 (目前没有)
- 2022-04-29 21:32:32 是否把 图卷积的每一层的隐藏层作为搜索空间的一部分 (目前没有)
- 2022-05-01 16:03:17 是否把 训练的batchsize作为搜索空间搜索 (目前没有)
卷积部分
- 由于图像边界点卷积(边界点参与的计算次数少)问题,是否需要在生成的01二进制图卷积时对二进制图像进行padding
- 可否可以合并几位数据做加和在归一化然后做入侵识别
- 卷积实验可以对比一下VGG
- 2022-08-12 21:04:45 把每个报文使用一个向量来表示
强化学习
- 增加状态表示的信息
- 可视化输入到强化学习的向量,看是否发生了明显的变化
- 当奖励累计到一定的负值则重新开始
- Reward 归一化了
知识归纳
- PPO的前身是TRPO
局限
- 无法应对比较新的模式,可以玩当前游戏,无法适应新游戏–
数据集部分
数据集命名
Car_Hacking_Challenge_Dataset_rev20Mar2021
datadir='../data/Car_Hacking_Challenge_Dataset_rev20Mar2021/0_Preliminary/
- MergeTrainSub_D
- MergeTrainSub_D_0_1_2_sub_dataset
- MergeTrainSub_D_0_1_2_sub_random_1_200_500_A
- MergeTrainSub_D_0_1_2_sub_processed
- MergeTrainSub_D_0_1_2_sub_processed/ps_10_nor_true_random_42/dataset_Di_true_200_500.p
- MergeTrainSub_D_0_1_2_sub_processed/ps_10_nor_true_random_42/graphs_list_Di_200_500.p
- MergeTrainSub_D_0_1_2_sub_dataset
程序并行运行部分
100个个体分为4份同时运行,每份串行执行25
每个个体运行的log信息重定向到各自log文件
程序Pymoo遗传部分
搜索空间共19位
基因位数 基因位数 最小值 最大值 基因含义解释 0 1 0 1 是否为有向图 1 1 0 1 图坍缩过程中是否使用正则化 2-3 2 0 2 两个(图坍缩前后)图卷积块的深度 4-5 2 0 2 预测层两个全连接层的比例 6 1 0 5 神经网络Dropout参数 7 1 0 3 神经网络WeightDecay参数 8 1 0 3 神经网络学习率 9-10 2 0 2 每个图卷积块内每次卷积输出特征向量的结合方式 11-16 6 0 4 每个图网络输出后经过的激活函数 17-18 2 0 2 两个可变连接层输出经过的激活函数 合计 19
目标函数值
params
- 最大:279862
- 最小:22492
flops
- 最大: 113016384
- 最小: 54379584
程序实行步骤
- 图网络部分
- 先训练出超网络的参数
- 使用训练出的个体训练mlp
- 在训练mlp个体中选出优良个体,作为初始代
- 每代个体 数量 60
- 每个个体训练 20 epoch
0510任务
- 修改 实时获取数据程序 不需要shuffle 并且加上 D_1_2_sub
- 在程序结尾验证数据对齐 程序结束时查看 graph剩下的数据多少 conv_can数据集剩下多少,对比一下
- 一个一个batch的预测 因为最后graph形不成一个batch 就会结束 会浪费数据,先不管这么多了
- 重要任务,获取两个网络结合之后的入侵检测精度
- 主要需要解决和验证两个数据集的对齐问题
差几张图
- 图神经网络的总览图
- 图神经网络的遗传优化图
- 卷积网络的遗传优化图
结果部分
- CNN模型 写成基因的形式 444 4 0 444 复杂度 2628714486
- LSTM模型 复杂度 57344
- DNN acc: 0.9665764762056342 复杂度 6817762
- GNN 复杂度 54379585
- 本模型 GNN+CNN 2683094071
- 全连接网络模型
- 优化的单独的CNN
- 优化的单独的GNN
- 五个模型的训练曲线 有无方向 和 有无正则化的 两种图线对比
- 两个模块的遗传算法部分的结果
- 表格展示结果
LSTM
- 把D_1中的 ID的 220 部分 转换为数据集
- 结果
- 使用ID220 D0训练 D1验证 精度 97% 0.9701388004584235
DNN
- 这些功能的执行效率高、复杂度低,因为它们是通过网络直接从比特流生成的。该技术在离线训练特征的同时监测车辆网络中的交换数据包,并在我们的实验中提供了对攻击的实时响应,具有显著的高检测率。
- 今天的车辆系统嵌入了许多称为电子控制单元(ECU)的计算机设备来控制和监控子系统【1】。ECU通过车内网络相互通信,以促进先进的汽车应用,如carputer和自动驾驶服务。控制器局域网(CAN)[2]提供了一种简单可靠的通信协议,作为车辆网络的设计标准,不仅连接传感器和控制器,而且连接互联网。随着车对车(V2V)和车对基础设施(V2I)通信接口的出现,CAN的采用加快了应用程序的速度[3]。然而,车辆系统的开放性增加了恶意网络攻击的风险,这些攻击可能会严重损害人的生命。车辆网络中的保护机制关注新的安全威胁。
卷积遗传算法部分
交叉过后,有重复个体
2022-08-11 23:17:08 搜索损失函数
关于写作时的问题
论文中只有图坍缩部分出现坍缩过程的公式,因为只有这里有公式所以就保留着了,但是这里坍缩的过程是参考的之前的论文
Y. Ma, S. Wang, C. C. Aggarwal, and J. Tang, “Graph Convolutional Networks with EigenPooling,” presented at the Proceedings of the 25th ACM SIGKDD International Conference on Knowledge Discovery & Data Mining, Anchorage, AK, USA, 2019. [Online]. Available: https://doi.org/10.1145/3292500.3330982.
我把这篇论文中的方法运用到了构造的报文图数据的图坍缩分类过程。
我的问题是是否可以保留这里的公式?
论文的
Intro
NAS
图神经网络
- 遗传算法优化图网络
最近,神经架构搜索(NAS)吸引了越来越多的研究兴趣[2]。如图1所示,GNNs体系结构中有许多组件,如注意、聚合和激活功能,它们构成了图形神经网络的搜索空间。架构搜索算法从搜索空间中对组件的组合进行采样𝑆 例如{𝑔 𝑎𝑡,𝑠𝑢𝑚,𝑡𝑎𝑛ℎ, …} 在本例中,作为GNNs体系结构𝑠. 架构(architecture)𝑠 通过性能评估策略进一步评估。搜索算法使用估计的性能从搜索空间生成新的更好的GNNs体系结构𝑆. 最近,一些研究集中在图神经结构搜索问题上。
2022-08-18 修改论文
- 目前论文中使用到的演化算法部分是在神经架构搜索上,卷积网络,图神经网络架构搜索
- 增加其他的演化算法应用场景,并加入改进思想
- 演化算法是一种优化算法,求最优的算法
- 我的目的是得到最优的神经网络架构,每次采样的最优数据长度(强化学习解决)
- 在优化神经架构方面提出创新点
加入演化算法创新增加入侵检测率和降低模型复杂度
- 目前可以直接入手的改进是提升入侵识别精度()—降低模型复杂度()
- 更好的提取图特征和二进制图像特征
- 演化算法中的动态环境如何考虑
初始化子种群的创新
- 基于多个中心点初始化子种群
介绍部分
- 大体介绍图网络的应用和原理
(多目标演化图神经)论文内容和参考
- 搜索空间参考 2020-Neural Architecture Search in Graph Neural Networks
- 添加跳跃连接 2020-AutoGraph Automated Graph Neural Network
自己论文
创新点
- 在自身个体发生交叉
- 设计模块池,使用贝叶斯概率模型根据精英群体的模块排列特征选取每个基因,这里为了防止早熟可以设计两类群体,贝叶斯随机选择按照精英群体或者多样性群体的模块分布,多样性群体如何构建?汉明距离衡量两个个体的差异
- 为了解决演化过程的个体评估效率问题,权重继承策略,优良的块和与其搭配的权重组合。之前的研究虽然也使用了贝叶斯概率评估
- 因为神经架构的表现是和神经架构结构和网络权重相关,同时也和网络层级相关。为了进一步提升搜索架构的多样性,而且保持每层之间相同的架构也是不同的
- 交叉或者变异不仅在同一个层的块发生,也可以在不同层级的块发生,可以得到更广阔的搜索空间,更有可能得到符合帕累托前沿的个体。
研究必要性
- 多场景的神经网络架构搜索的研究比较少 2021-Multiobjective Evolutionary Design of Deep Convolutional Neural Networks for Image Classification
- 比较多的研究还是仅仅优化超参数或者连接 2021-Multiobjective Evolutionary Design of Deep Convolutional Neural Networks for Image Classification
- 很少研究演化network level的研究,本研究的搜索空间可以调整图神经网络的深度,不仅可以调整深度,有个文章可以增加深度,我的工作还可以减少深度以提供更大的个体进化灵活性,增加了更多的可能。2021-Multiobjective Evolutionary Design of Deep Convolutional Neural Networks for Image Classification 参考的工作没有演化深度
- 有的研究的存在跳跃连接,有的甚至没有跳跃连接,但是把跳跃连接加入搜索空间的工作非常少
- 即使有个研究是多目标研究,但是仅仅只有两个目标,只能在复杂度和识别准确率的角度来tradeoff,此研究的目标不仅可以从模型复杂度和模型表现去选择模型,可以从召回率和精确率至今tradeoff来应对不同场景的需求,比之前的研究更大灵活自如。
- Multiobjective Evolutionary Design of Deep Convolutional Neural Networks for Image Classification使用贝叶斯利用历史信息只得到了Normal block的经验,是否多了之后不好处理
- The molecular datasets are diverse in terms of their molecular structure and properties. Consequently, a model trained for one molecular dataset cannot be transferred to another because of the non-Euclidean characteristics of the molecular structure data [10]. 分子数据集多样性,无法对一个分子的数据集训练模型转移到另一个模型
- 传统的NAS大部分是单目标搜索,最近有一些工作使用NSGA2来优化两个目标,现在多目标变得越来越火热。多目标来适应多场景的需求。
说明点
- 变异不仅发生在操作,也发生在跳跃连接。在结构和操作层面都发生了变异。2021-Multiobjective Evolutionary Design of Deep Convolutional Neural Networks for Image Classification
- in which the offspring are intentionally created around the parents in the decision space. 变异发生在亲本决策变量附近发生
- 因为是第一次使用图神经网络做入侵检测领域的研究,初始种群找不到成功的案例,所以使用随机初始化的方法初始化初始种群。2021-Multiobjective Evolutionary
- 如果两个亲本都是来自于好的个体,那么就会反复利用好的个体的组件,会不会导致早熟并且丢失多样性。2021-Multiobjective Evolutionary
- 2022-Evolutionary Search和2021-Multiobjective Evolutionary都提出了新的交叉方式,2022是交叉结构基因或者switch基因,2021是块(reduction块和normal块)交叉或者节点交叉
- 当模型训练到一定程度,可以使用模型来采样个体(先随机采样操作类型,然后使用模型来确定操作的先后顺序生成个体)2021-Multiobjective Evolutionary 自己可以加入双存档,论文中模型只是从好的组件得到贝叶斯采样模型,是否可以使用双存档来训练贝叶斯(双贝叶斯)。
- 有residual,但是不是任意的residual 2022-GNN-EA: Graph Neural Network with Evolutionary Algorithm
- 自己使用的池化操作并未进行搜索,也可以加入搜索空间(—未来工作)
- 交叉过程亲本都是来自于精英个体,会难免发生早熟的现象。变异为了多样性的发展,但是变异概率常常非常低,可以根据双存档的两类个体来使用贝叶斯进行排列
- 根据对统计的理解,数理统计存在概率学派与贝叶斯学派两种学派,他们之间的主要区别在于对于概率的理解方法不同。两个学派都各有优势,在一些简单并可以做出大量模拟的情况(例如预测抛硬币正反的概率分布)下,概率学派可以较为精确的获得某一事件的发生概率;在一些难以分析,很难模拟/大量采样的情况(例如地震概率的预测)下,贝叶斯学派则有极大的优势,可以使用有限的信息帮助我们做出合理的推断https://zhuanlan.zhihu.com/p/137577138
数据集
- 车辆入侵报文检测
- IP报文入侵
- android 入侵软件检测 2022-Android Malware Detection Using Supervised Deep Graph Representation Learning
探索点
- 2021-Multiobjective Evolutionary 使用了贝叶斯学习帕累托前沿组件的分布,只是计算了优秀组件的先后顺序排列,如何加入优秀的跳跃连接的学习?此研究的连接的搜索空间并不灵活。使用贝叶斯优化跳跃连接。使用贝叶斯学习优秀个体的连接方面的经验。所以我们研究的考虑了神经网络组件的排列顺序,跳跃连接,和权重三方面。并且每一层都有各自的组件池。同时我们的研究考虑了多场景。
- 朴素贝叶斯假设属性之间相互独立,在实际中这种假设往往不成立。这给NBC朴素贝叶斯分类模型正确分类造成影响。从计算量上看,相比同精度的决策树而言,朴素贝叶斯分类器显然是更具有优势的。
- 贝叶斯网络,如果只是已知大量数据样本,想要建立一个好的拓扑结构是一个典型的NP-Hard问题
引入
进化算法也可以搜索通道剪枝网络 MetaPruning_Meta_Learning_for_Automatic_Neural_Network_Channel_Pruning