35. BI - 利用项目「恶意软件检测」来看 GCN 和 LSTM 的对比

本文为 「茶桁的 AI 秘籍 - BI 篇 第 35 篇」

文章目录


在这里插入图片描述

Hi,你好。我是茶桁。

我们通过两节课的内容,应该对 GCN 已经有了初步的了解并熟悉了它的整个逻辑和应用过程。那么这一节课咱们就来看一个实际的项目。这个项目中一共有 4 万多个恶意软件。

相信很多同学应该都或多或少的用过查毒的软件吧?那么,杀毒软件怎么查毒呢?杀毒软件其实也是要通过软件的一些特征行为来做判断,那行为的采集是由 API 来做标识的。

20240227145035

在途中,hash 是理解成是一个ID,后面 t_0 到 t_99 是它 100 次调用的序号,这里的API的序号是系统里面的哪一个进程。最终,malware 代表的是恶意软件,0 是正常,1 是恶意软件。

这是 Kaggle 上的一个案例,具体地址可以参看这里:https://www.kaggle.com/datasets/ang3loliveira/malware-analysis-datasets-api-call-sequences

打开地址之后咱们来看一看

20240227145339

整个案例的数据是一共有 4 万多个恶意和 1,000 多个正常的。看到这里我们就可以知道,这个样本是一个分类的任务,并且这个分类还很不均衡。对于不均衡的问题一会做数据以及切分的时候要注意

### 使用GCNBiLSTMAttention构建深度学习模型 为了创建一个结合图卷积网络(GCN)、双向长短期记忆网络(BiLSTM)以及注意力机制(Attention)的深度学习架构,可以遵循以下设计思路: #### 设计理念 该模型旨在利用不同组件的独特优势来处理复杂的数据模式。具体来说,GCN能够捕捉节点间的关系并提取图形特征;BiLSTM擅长于序列数据的时间依赖关系分析;而Attention则有助于聚焦重要部分的信息[^2]。 #### 实现方法概述 首先定义输入层接收原始数据集作为输入。对于具有明显空间关联性的数据,比如社交网络中的用户交互记录或者交通流量监控下的道路状况等场景下适用此组合方式。接着通过GCN模块对这些带有拓扑结构特点的数据进行预处理得到增强后的表征向量表示形式。随后送入由多个堆叠起来的标准BiLSTM单元组成的隐含状态更新器里继续深入挖掘潜在规律变化趋势。最后引入自适应权重分配策略即所谓的Softmax-based Attention Mechanism完成最终输出前的关键信息筛选工作[^1]。 #### Python代码实例 下面给出一段简化版Python伪代码用于说明上述过程的具体实现细节: ```python import tensorflow as tf from spektral.layers import GCNConv from keras.models import Model from keras.layers import Input, Dense, Bidirectional, LSTM, Concatenate, Dropout, Permute, Multiply def build_model(): # 定义输入 X_in = Input(shape=(None,), dtype='float32') A_in = Input((None, None)) # 图卷积操作 gcn_out = GCNConv(64)([X_in, A_in]) # 双向LSTM编码时间序列特性 lstm_out = Bidirectional(LSTM(units=64, return_sequences=True))(gcn_out) # 添加attention layer attention_probs = Dense(1, activation='softmax')(lstm_out) attention_mul = Multiply()([lstm_out, attention_probs]) # 输出层 out = Dense(output_dim)(attention_mul) model = Model(inputs=[X_in,A_in], outputs=out) return model ```
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

茶桁

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值