首页
关于
Search
1
同步本地Markdown至Typecho站点
55 阅读
2
微服务
38 阅读
3
苍穹外卖
27 阅读
4
JavaWeb——后端
24 阅读
5
消息队列MQ
18 阅读
后端学习
项目
杂项
科研
论文
默认分类
登录
找到
8
篇与
论文
相关的结果
2025-08-29
草稿
好呀 👍 我来举一个具体的小例子,帮你直观理解 WL 测试是怎么迭代更新节点特征(颜色)的。 🌳 示例图 假设有一个小图: A / \ B C 初始节点特征: A: red B: blue C: blue 1️⃣ 初始状态 (Iteration 0) WL 测试开始时,每个节点用自己的初始特征(颜色)作为标签: A: red B: blue C: blue 2️⃣ 第 1 轮更新 (Iteration 1) 规则:新标签 = 节点自己的颜色 + 邻居颜色的集合 (然后哈希成一个新的颜色/编码) A 的邻居是 {B, C} = {blue, blue} → 新标签 = (red, {blue, blue}) B 的邻居是 {A} = {red} → 新标签 = (blue, {red}) C 的邻居是 {A} = {red} → 新标签 = (blue, {red}) 更新后: A: 新颜色 α B: 新颜色 β C: 新颜色 β 3️⃣ 第 2 轮更新 (Iteration 2) 继续相同规则: A 的邻居是 {B, C} = {β, β} → 新标签 = (α, {β, β}) B 的邻居是 {A} = {α} → 新标签 = (β, {α}) C 的邻居是 {A} = {α} → 新标签 = (β, {α}) 更新后: A: 新颜色 γ B: 新颜色 δ C: 新颜色 δ 🔎 观察结果 WL 的作用:它让节点的标签逐步编码了“以自己为根的邻居子树结构”。 A 的标签区分了“自己 + 两个相同邻居”。 B 和 C 的标签相同,因为它们对称,结构一样。 图区分性:如果换一个图(比如 B 和 C 不一样颜色),WL 会在某一轮产生不同的标签,从而区分两个图是否同构。 🤝 和 GIN 的联系 在 GIN 中,更新公式是: $h_v^{(k)} = \text{MLP}\Big((1+\epsilon)h_v^{(k-1)} + \sum_{u\in N(v)} h_u^{(k-1)}\Big)$ 这正好对应 WL 的“自己标签 + 邻居标签集合”,只不过: WL 用哈希函数更新 → 只能得到离散的“颜色”。 GIN 用 MLP → 得到连续向量,可以学习结构相似性。 要不要我再给你举一个 对比例子:用 WL 测试看看两个“非同构”的图(比如一条三节点链 vs 三角形)是如何在第二轮被区分开的?
论文
zy123
8月29日
0
5
0
2025-08-29
仿真数据模拟
高斯马尔科夫(有点关联) RWP(没有关联) 静态网络 节点移动模型 节点移动模型 模拟随机网络中节点的移动方式,进而间接模拟网络拓扑在不同时刻的变化。它们是用来在仿真环境下产生“网络结构随时间动态变化”的数据,从而让后续的网络重构或网络分析算法有一个逼近真实场景的测试环境。 RW(Random Walk,随机游走)模型 基本概念:在 随机游走(RW) 模型中,节点在一个定义的区域内随即选择方向并开始移动。每当节点到达区域的边界时,它会反弹并继续前进。节点的移动时间是固定的,且每个移动步骤都是独立的。 特点 节点移动过程中,节点的行进方向是完全随机的。 节点在到达区域边界时会选择一个新的角度进行反弹,并继续随机移动。 节点的移动是不规则的,每次运动的时间或距离是固定的,直到达到边界。 适用场景:适用于需要模拟节点在空间中随机漂移或无规律移动的场景,如某些类型的无人机网络或粒子运动模型。 RD(Random Direction,随机方向)模型 基本概念:在 随机方向(RD) 模型中,节点每次选择一个随机的方向,并在该方向上移动直到达到区域的边界。到达边界后,节点会随机选择一个新的目标方向,并继续移动。 特点 节点在每个时间片段内选择一个随机的方向,而不是随机选择目标。 节点在到达边界时会停留一段时间,然后选择一个新的随机方向。 该模型中,节点的运动行为更有方向性,与RW模型相比有更强的运动规律性。 适用场景:适用于需要模拟节点在特定方向上移动的情况,如某些类型的车载网络或定向通信网络。 RWP(Random Waypoint,随机路点)模型 基本概念:在 随机路点(RWP) 模型中,节点选择一个随机的位置作为目标点,然后以固定速度沿直线移动到该位置。到达目标点后,节点选择一个新的随机目标位置,并再次以相同的速度移动。 特点 节点移动到随机选定的目标位置,并在到达后停留一段时间。 该过程重复进行,每次都选择新的随机目标位置。 节点在任意时刻都有一个目标位置,而不是随机选择一个方向。 适用场景:适用于模拟节点有明确目标且周期性移动的网络场景,比如无线传感器网络和移动广告网络等。 参数 节点数量决定了在该活动半径内随机分布并移动的节点数量 通信半径 决定了网络中“谁能跟谁连边”,对 拓扑连通性 影响极大(如果两节点之间的距离小于等于通信半径,就认为它们之间存在连边); 活动半径 决定了节点分布和移动范围,对 网络整体的稀疏/稠密程度、节点之间的平均距离都有重要影响。 仿真流程说明 RWP 移动模型驱动 你首先用 RWP (Random Waypoint) 模型生成节点在二维平面上的轨迹。 输入参数:节点数、活动区域半径、最小/最大速度、停留时间、总步数。 输出:每个时刻 pos(t) (节点坐标) 与 vel(t) (节点速度)。 边特征计算 (Link Features) 根据节点的相对位置、速度、信道参数,生成 10 种边特征矩阵 信道相关:SNR、容量、时延、可靠性。 几何相关:距离反比、相对速度、LET。 统计相关:SNR 梯度、SNR 波动。 网络相关:干扰指数。 每个特征是一个 (N×N) 矩阵,表示任意两节点之间的链路特性。 边→节点聚合 (Edge → Node) 使用 edge_to_node_features 将边特征转化为节点特征。 聚合策略: 归一化到 0–1 区间。 用可靠性 (Rel) 或邻居数作为权重,做加权均值。 对关键特征(SNR、容量、时延、可靠性、LET)额外计算最大值、标准差、软计数。 附加结构性特征(节点度数、可靠邻居数)。 节点特征时序 (Time Series) 在多个时刻重复上述过程。 得到最终张量: node_feats.shape = (T, N, F) T:生成帧数(由 steps 和 take_every 决定)。 N:节点数。 F:每个节点的特征维度(几十个)。 RWP 移动模型如何驱动这些指标 节点移动 (RWP) → 距离 & 速度变化 距离 & 速度 → SNR、容量、时延、可靠性、LET、干扰等变化 时间演化 & 历史 → SNR 梯度、SNR 波动、AoI 所有链路和节点特征都被 RWP 模型动态驱动。 1. SNR / SINR (信噪比/信干噪比) 作用:衡量链路“干净程度”。SNR 只考虑热噪声;SINR 同时把同频干扰算进来(更真实)。 如何读:高→更容易解调、误码率更低。低→链路脆弱/不稳定。 驱动因素:节点间距离随 RWP 变化 → 路径损耗变化 → 接收功率变化 → SNR 随时间变化。 公式 路径损耗(自由空间 + 阴影衰落): $PL(dB) = 32.44 + 20 \log_{10}(d_{km}) + 20 \log_{10}(f_{MHz}) + X_\sigma$ 接收功率: $P_r(dBm) = P_t + G_t + G_r - PL(dB)$ 噪声功率: $N(dBm) = -174 + 10 \log_{10}(B) + NF$ 信噪比(线性 / dB): $\gamma = \frac{P_r}{N + I}, \quad SNR_{dB} = 10\log_{10}(\gamma)$ 2. 容量 (Capacity) 作用:理论上该链路在当前 SNR 下能承载的最大信息速率。 如何读:高→更快的数据吞吐。受带宽和 SNR 决定。 驱动因素:由 SNR 决定,SNR 随节点距离移动而变化。 公式: $C = B \cdot \log_2(1 + \gamma) \quad [bps]$ 转换为 Mbps: $C_{Mbps} = \frac{C}{10^6}$ 3. 时延 (Latency) 作用:端到端“一包数据”平均要花多少时间传完。 如何读:低→交互更流畅;高→拥塞/距离/低容量导致的排队或传输时间变长。 驱动因素:随距离变化(传播时延)、随链路容量变化(传输时延)、随负载变化(排队时延)。 公式 端到端总时延 $D$ 的计算公式如下: $$D = \underbrace{\frac{L}{C}}{\text{传输时延}} + \underbrace{\frac{d}{c}}{\text{传播时延}} + \underbrace{D_q}_{\text{排队时延}}$$ 其中: $L$:包长(比特数) $C$:容量(bps) $d$:节点间距离 $c$:光速 $D_q \approx \alpha (C_{\max} - C)/C_{\max}$ 4. 距离反比权 (InvDist) 作用:把“越近越可能连得好”的直觉,转成一个简单的图权重。 如何读:数值大→更近;指数/倒数两种形式都只是启发式。 驱动因素:节点间距离 $d$ 随 RWP 移动而变化。 公式(二选一) 线性: $w_{ij} = \frac{1}{d_{ij} + \epsilon}$ 或指数: $w_{ij} = e^{-\alpha d_{ij}}$ 5. 可靠性 (Reliability) 作用:一次发送“整包成功”的概率(由误码率推得)。 如何读:高→少重传、稳定;随 SNR 升、距离降而提高;包长越大越“难保真”。 驱动因素:依赖 SNR,随节点距离变化。 公式 (QPSK 近似): 比特错误率 (BER): $BER \approx 0.5 \cdot e^{-\gamma}$ 分组错误率 (PER): $PER = 1 - (1 - BER)^L$ 可靠性: $R = 1 - PER$ 6. 相对速度 (Relative Speed) 作用:两个节点的速度差大小,反映“分离趋势/接近速度”。 如何读:大→拓扑变化快、链路寿命短;小→更稳定。 驱动因素:节点速度向量 $V_i$ 随 RWP 改变。 公式: $v_{rel}(i,j) = | V_i - V_j |$ 7. 链路到期时间 (LET, Link Expiration Time) 作用:按当前相对位置/速度预测“距离超过通信半径前还能活多久”。 如何读:大→可持续更久;无正根时记为 +∞(意味着短期内不会因半径断链)。 驱动因素:节点位置 $P$、速度 $V$ 决定未来多久超出通信半径。 公式(解二次方程): $| (P_i - P_j) + (V_i - V_j)t |^2 = R^2$ 取正根 $t > 0$ 作为 LET。 8. SNR 梯度 (SNR_grad) 作用:SNR 的一阶差分,刻画“趋势”。 如何读:正→在变好(靠近/干扰减);负→在变差(远离/干扰增)。 驱动因素:历史 SNR 随时间变化。 公式: $\nabla SNR = SNR(t) - SNR(t-1)$ 9. SNR 波动 (SNR_std) 作用:最近 K 步的标准差,刻画“波动性/抖动”。 如何读:小→稳定;大→易抖,预测难、重传风险高。 驱动因素:取最近 $K$ 步的 SNR 序列,计算标准差。 公式: $\sigma_{SNR} = \text{std}{ SNR(t-K+1), \dots, SNR(t) }$ 10. 干扰指数 (Interference Index) 作用:衡量同频邻居带来的“潜在挤占”。两种口径: count:邻居数的启发式(无量纲),反映“人多是非多”的拥挤程度。 rx_power:把活跃邻居对接收端的线性功率求和(可直接进 SINR 分母),物理口径更一致。 如何读:高→更容易被别的链路“压制”,有效 SNR 下降。 驱动因素:邻居节点数量和分布随 RWP 改变。 公式(二选一) count:邻居数 $I_{ij} = \frac{#\text{neigh}(i) + #\text{neigh}(j)}{2}$ rx_power:活跃邻居的接收功率和 $I_{ij} = \frac{I_i + I_j}{2}, \quad I_i = \sum_{k \neq i} P_{k \to i}$ 符号 含义 单位 来源(代码/配置) 随时间变化? $P_i(t)$ 第 $i$ 个节点位置 m RWP 轨迹 get_rwp_traces → compute_velocities 时变 $V_i(t)$ 第 $i$ 个节点速度 m/s (或 m/步) 同上(由位置差分) 时变 $d_{ij}(t)$ 节点 $i,j$ 的距离 m pairwise_dist(P(t)) 时变 $R$ 通信半径 m comm_radius 不变 $cs_radius$ 载波侦听半径(干扰近似用) m cfg.cs_radius 不变 $f_{\text{MHz}}$ 载频 MHz cfg.fc_mhz 不变 $P_t$ 发射功率 dBm cfg.Pt_dbm 不变 $G_t, G_r$ 发/收天线增益 dB cfg.Gt_db, cfg.Gr_db 不变 $B$ 带宽 Hz cfg.B_hz 不变 $NF$ 噪声系数 dB cfg.NF_db 不变 $N$ 噪声功率 线性或 dBm 由 $B,NF$ 计算 不变 $X_\sigma(t)$ 阴影衰落 dB cfg.shadow_sigma_db + 随机 rng.normal 时变(且链路相关) $PL_{ij}(t)$ 路径损耗 dB 自由空间 + 阴影公式 时变(依 $d_{ij},X_\sigma$) $P_{r,ij}(t)$ 接收功率 dBm/线性 $P_t+G_t+G_r-PL$ 时变 $I_{ij}(t)$ 干扰功率(平均到 i/j) 线性功率 feature_neighbor_interference_index(rx_power 时) 时变(位置+活跃集) $\gamma_{ij}(t)$ SNR/SINR(线性) – $P_r/(N)$ 或 $P_r/(N+I)$ 时变 $\text{SNR}{ij}(t)$, $\text{SINR}{ij}(t)$ dB 形式 dB $10\log_{10}(\gamma)$ 时变 $C_{ij}(t)$ 香农容量 bps / Mbps $B\log_2(1+\gamma)$ 时变 $L$ 包长 bit cfg.pkt_bits 不变(可按场景改) $D_{ij}(t)$ 端到端时延 s / ms $\frac{L}{C}+\frac{d}{c}+D_q$ 时变 $D_q(t)$ 排队时延近似项 s / ms $\alpha (C_{\max}-C)/C_{\max}$,cfg.alpha_queue 时变(跟 $C$ 走) $v_{\text{rel},ij}(t)$ 相对速度幅值 m/s $|V_i - V_j|$ 时变 $\text{LET}_{ij}(t)$ 链路到期时间 s 解 $|(P_i-P_j)+(V_i-V_j)t|=R$ 的正根 时变 $\nabla \text{SNR}_{ij}(t)$ SNR 梯度 dB $SNR(t)-SNR(t-1)$ 时变(需历史) $\sigma_{\text{SNR},ij}(t)$ SNR 波动 dB 最近 $K$ 步 std,cfg.K_std 时变 $Rel_{ij}(t)$ 可靠性(整包成功概率) 0–1 $BER\to PER\to Rel$,依 $\gamma$ 与 $L$ 时变 $BER, PER$ 比特/分组错误率 – $BER\approx 0.5e^{-\gamma}$,$PER=1-(1-BER)^L$ 时变 $w_{ij}(t)$ 距离反比权 – $1/(d+\epsilon)$ 或 $e^{-\alpha d}$(cfg.eps_dist/alpha_dist) 时变 $active_prob$ 节点活跃概率 – active_prob(生成干扰用) 不变(统计设定) $c$ 光速 m/s 物理常数 不变 节点特征生成 A. 固定的结构特征(不看你传了哪些边特征) deg:度(邻居数,按 in_range 统计)。 good_deg_r>=X:只有当 mats 里有 Rel 才会加上。把 Rel 与阈值 rel_good_th 比较(默认 0.9),统计“可靠邻居数”。 这两个特征与 extra_stats_keys 无关,始终(或条件)生成。 B. 对每一张你传入的“边特征矩阵” 都会先生成: key_wmean:邻域加权均值(默认用 weights_key="Rel" 作为权 W;否则等权)。 这一步把边特征从 N×N 聚成 N×1。 如果 key 同时出现在 extra_stats_keys,还会额外再生成三种统计: key_max:邻域内的最大“得分”(已做 0–1 归一/同向映射后的值)。 key_std:邻域内“得分”的标准差(衡量波动/不均匀)。 key_softcnt@th:软计数(把“得分”经过 $\sigma((S-th)/\tau)$ 后求和,近似“好邻居数量”)。 $S$ —— 邻边“得分”(score),来自把原始边特征用 SCORERS[key] 映射到 0–1 同向区间后的矩阵元素。 在代码里:S = SCORERS[key](X) 再 S = np.where(in_range, S, np.nan)(只保留邻域内)。 $\text{th}$ —— “好”的阈值(threshold)。超过它就算“好”。 在代码里:p['th_good'],默认 0.6。 $\tau$ —— 平滑尺度(temperature/宽度)。越小越“硬”,越像 0/1 的硬阈值;越大越“软”。 在代码里:p['tau'],默认 0.08。 $\sigma(\cdot)$ —— logistic sigmoid 函数: $\sigma(z)=\frac{1}{1+e^{-z}}$ 输入任意实数,输出落在 $(0,1)$。在代码里就是 1/(1+np.exp(-z))。 “得分”= SCORERS[key](X):每个物理量先用代码里那套映射器(线性/指数/sigmoid 等)压到 0–1,同向化后再做这些统计。 打标签规则 标签定义 y_offline[t,i] ∈ {0,1}:节点 i 在时间 t 是否掉线(1=掉线,0=在线)。 另存:health[t,i] ∈ [0,1] 节点健康度(越大越好),便于解释/调参。 输入 来自 node_features.npz node_feats: (T, N, F) feat_names: (F,) 用到哪些特征 参与健康度均值的“0–1同向得分”特征: Rel_wmean, snr_db_wmean(或 sinr_db_wmean), C_Mbps_wmean, D_ms_wmean, InvDist_wmean, RelSpeed_wmean, LET_wmean, SNR_std_wmean(波动小→分高), Interf_wmean(干扰小→分高)。 结构特征: deg(已做 0–1 归一化)用于孤立判断; good_deg_ratio* 仅做参考,不参与健康度均值。 掉线判定 孤立触发:若 deg[t,i] ≤ iso_eps(默认 1e-3),立即掉线。 健康度触发 掉线阈 thr_down(默认 0.35):health < thr_down 连续 W_down 帧(默认 3)→ 掉线; 恢复阈 thr_up(默认 0.45):health > thr_up 连续 W_up 帧(默认 3),且非孤立 → 恢复在线。 注意:thr_up > thr_down 形成滞回区间,避免“抖动上线/下线”。 状态机流程: 上一帧在线:若「孤立」或「低健康度累计 W_down」→ 标为掉线; 上一帧掉线:若「高健康度累计 W_up 且非孤立」→ 标为在线;否则继续掉线。 外生故障 配置 use_exogenous_faults=True时,为每个节点注入“随机崩溃/修复”过程: 每帧以概率 lam_crash 触发崩溃,持续时长 ~ 指数/几何分布(期望 mean_repair 帧)。 只要外生故障激活,该节点直接掉线(与上述条件“取或”)。 有两个问题: 1.不同特征,它的数据范围是不同的,比如特征a分布区间在[0,0.3],而特征b在[0.5,0.7],简单将它们平均来计算健康度是不合理的,需要首先对每一维做对比度校准 2.thr_down和thr_up的选取,先计算出健康度 health,然后利用分位数设定 thr_down 和 thr_up,保证大约10%的节点处于掉线状态。
论文
zy123
8月29日
0
4
0
2025-06-17
强化学习
强化学习 Q-learning 核心更新公式 $$ \boxed{Q(s,a) \gets Q(s,a) + \alpha\left[r + \gamma\,\max_{a'}Q(s',a') - Q(s,a)\right]} $$ - $s$:当前状态 - $a$:当前动作 - $r$:执行 $a$ 后获得的即时奖励 - $s'$:执行后到达的新状态 - $\alpha\in(0,1]$:学习率,决定“这次新信息”对旧值的影响力度 - $\gamma\in[0,1)$:折扣因子,衡量对“后续奖励”的重视程度 - $\max_{a'}Q(s',a')$:新状态下可选动作的最大估值,表示“后续能拿到的最大预期回报” 一般示例 环境设定 状态集合:${S_1, S_2}$ 动作集合:${a_1, a_2}$ 转移与奖励: 在 $S_1$ 选 $a_1$ → 获得 $r=5$,转到 $S_2$ 在 $S_1$ 选 $a_2$ → 获得 $r=0$,转到 $S_2$ 在 $S_2$ 选 $a_1$ → 获得 $r=0$,转到 $S_1$ 在 $S_2$ 选 $a_2$ → 获得 $r=1$,转到 $S_1$ 超参数:$\alpha=0.5$,$\gamma=0.9$ 初始化:所有 $Q(s,a)=0$ 在 Q-Learning 里,智能体并不是“纯随机”地走,也不是“一开始就全凭 Q 表拿最高值”——而是常用一种叫 $\epsilon$-greedy 的策略来平衡: 探索(Exploration):以概率 $\epsilon$(比如 10%)随机选一个动作,帮助智能体发现还没试过、可能更优的路径; 利用(Exploitation):以概率 $1-\epsilon$(比如 90%)选当前状态下 Q 值最高的动作,利用已有经验最大化回报。 下面按序进行 3 步“试—错”更新,并在表格中展示每一步后的 $Q$ 值。 步骤 状态 $s$ 动作 $a$ 奖励 $r$ 到达 $s'$ $\max_{a'}Q(s',a')$ 更新后 $Q(s,a)$ 当前 Q 表 初始 — — — — — — $Q(S_1,a_1)=0,;Q(S_1,a_2)=0$ $Q(S_2,a_1)=0,;Q(S_2,a_2)=0$ 1 $S_1$ $a_1$ 5 $S_2$ 0 $0+0.5,(5+0-0)=2.5$ $Q(S_1,a_1)=2.5,;Q(S_1,a_2)=0$ $Q(S_2,a_1)=0,;Q(S_2,a_2)=0$ 2 $S_2$ $a_2$ 1 $S_1$ $到达S_1状态后选择最优动作:$$\max{2.5,0}=2.5$ $0+0.5,(1+0.9\cdot2.5-0)=1.625$ $Q(S_1,a_1)=2.5,;Q(S_1,a_2)=0$ $Q(S_2,a_1)=0,;Q(S_2,a_2)=1.625$ 3 $S_1$ $a_1$ 5 $S_2$ $\max{0,1.625}=1.625$ $2.5+0.5,(5+0.9\cdot1.625-2.5)\approx4.481$ $Q(S_1,a_1)\approx4.481,;Q(S_1,a_2)=0$ $Q(S_2,a_1)=0,;Q(S_2,a_2)=1.625$ 第1步:从 $S_1$ 选 $a_1$,立即回报5,更新后 $Q(S_1,a_1)=2.5$。 第2步:从 $S_2$ 选 $a_2$,回报1,加上对 $S_1$ 后续最优值的 $0.9$ 折扣,得到 $1+0.9\times2.5=3.25$,更新后 $Q(S_2,a_2)=1.625$。 第3步:再一次在 $S_1$ 选 $a_1$,这次考虑了 $S_2$ 的最新估值,最终把 $Q(S_1,a_1)$ 提升到约 4.481。 通过这样一步步的“试—错 + 贝尔曼更新”,Q-Learning 能不断逼近最优 $Q^*(s,a)$,从而让智能体在每个状态都学会选出长期回报最高的动作。 训练结束后,表里每个状态 $s$ 下各动作的 Q 值都相对准确了,我们就可以直接读表来决策: $$ \pi(s) = \arg\max_a Q(s,a) $$ 即“在状态 $s$ 时,选 Q 值最高的动作”。 状态 \ 动作 $a_1$ $a_2$ $S_1$ 4.481 0 $S_2$ 0 1.625 DQN 核心思想:用深度神经网络近似 Q 函数来取代表格,在高维输入上直接做 Q-learning,并通过 经验回放(写进缓冲区 + 随机抽样训练”) + 目标网络(Target Network) 两个稳定化技巧,使 时序差分(TD )学习在非线性函数逼近下仍能收敛。 TD 学习 = 用“即时奖励 + 折扣后的未来估值”作为目标,通过 TD 误差持续修正当前估计。 训练过程 1. 初始化 主网络(Online Network) 定义一个 Q 网络 $Q(s,a;\theta)$,随机初始化参数 $\theta$。 目标网络(Target Network) 复制主网络参数,令 $\theta^- \leftarrow \theta$。 目标网络用于计算贝尔曼目标值,短期内保持不变。 经验回放缓冲区(Replay Buffer) 创建一个固定容量的队列 $\mathcal{D}$,用于存储交互样本 $(s,a,r,s')$。 超参数设置 学习率 $\eta$ 折扣因子 $\gamma$ ε-greedy 探索率 $\epsilon$(初始值) 最小训练样本数阈值 $N_{\min}$ 每次训练的小批量大小 $B$ 目标网络同步频率 $C$(梯度更新次数间隔) 2. 与环境交互并存储经验 在每个时间步 $t$: 动作选择 $$ a_t = \begin{cases} \text{随机动作} & \text{以概率 }\epsilon,\ \arg\max_a Q(s_t,a;\theta) & \text{以概率 }1-\epsilon. \end{cases} $$ 环境反馈 执行动作 $a_t$,得到奖励 $r_t$ 和下一个状态 $s_{t+1}$。 (需预先定义奖励函数) 存入缓冲区 将元组 $(s_t, a_t, r_t, s_{t+1})$ 存入 Replay Buffer $\mathcal{D}$。 如果 $\mathcal{D}$ 已满,则丢弃最早的样本。 3. 批量随机采样并训练 当缓冲区样本数 $\ge N_{\min}$ 时,每隔一次或多次环境交互,就进行一次训练更新: 随机抽取小批量 从 $\mathcal{D}$ 中随机采样 $B$ 条过往经验: $$ {(s_i, a_i, r_i, s'i)}{i=1}^B $$ 计算贝尔曼目标 对每条样本,用目标网络 $\theta^-$ 计算: $$ y_i = r_i + \gamma \max_{a'}Q(s'_i, a'; \theta^-) $$ 算的是:当前获得的即时奖励 $r_i$,加上“到了下一个状态后,做最优动作所能拿到的最大预期回报” 预测当前 Q 值 将当前状态-动作对丢给主网络 $\theta$,得到预测值: $$ \hat Q_i = Q(s_i, a_i;\theta) $$ 算的是:在当前状态 $s_i$、选了样本里那个动作 $a_i$ 时,网络现在估计的价值 构造损失函数 均方误差(MSE)损失: $$ L(\theta) = \frac{1}{B}\sum_{i=1}^B\bigl(y_i - \hat Q_i\bigr)^2 $$ 梯度下降更新主网络 $$ \theta \gets \theta - \eta \nabla_\theta L(\theta) $$ 4. 同步/软更新目标网络 硬同步(Fixed Target): 每做 $C$ 次梯度更新,就执行 $$ \theta^- \gets \theta $$ (可选)软更新: 用小步长 $\tau\ll1$ 平滑跟踪: $$ \theta^- \gets \tau \theta + (1-\tau) \theta^-. $$ 5. 重复训练直至收敛 重复步骤 2-4 直至满足终止条件(如最大回合数或性能指标)。 训练过程中可逐步衰减 $\epsilon$(ε-greedy),从更多探索过渡到更多利用。 示例 假设设定 动作空间:两个动作 ${a_1,a_2}$。 状态向量维度:2 维,记作 $s=(s_1,s_2)$。 目标网络结构(极简线性网络): $$ Q(s;\theta^-) = W^-s + b^-, $$ $W^-$ 是 $2\times2$ 的权重矩阵 (行数为动作数,列数为状态向量维数) $b^-$ 是长度 2 的偏置向量 网络参数(假定已初始化并被冻结): $$ W^- = \begin{pmatrix} 0.5 & -0.2\ 0.1 & ;0.3 \end{pmatrix},\quad b^- = \begin{pmatrix}0.1\-0.1\end{pmatrix}. $$ 折扣因子 $\gamma=0.9$。 样本数据 假设我们抽到的一条经验是 $$ (s_i,a_i,r_i,s'_i) = \bigl((0.0,\;1.0),\;a_1,\;2,\;(1.5,\,-0.5)\bigr). $$ 当前状态 $s_i=(0.0,1.0)$,当时选了动作 $a_1$ 并得到奖励 $r_i=2$。 到达新状态 $s'_i=(1.5,-0.5)$。 计算过程 前向计算目标网络输出 $$ Q(s'_i;\theta^-) = W^-,s'_i + b^- \begin{pmatrix} 0.5 & -0.2\ 0.1 & ;0.3 \end{pmatrix} \begin{pmatrix}1.5\-0.5\end{pmatrix} + \begin{pmatrix}0.1\-0.1\end{pmatrix} \begin{pmatrix} 0.5\cdot1.5 + (-0.2)\cdot(-0.5) + 0.1 \[4pt] 0.1\cdot1.5 + ;0.3\cdot(-0.5) - 0.1 \end{pmatrix} \begin{pmatrix} 0.75 + 0.10 + 0.1 \[3pt] 0.15 - 0.15 - 0.1 \end{pmatrix} \begin{pmatrix} 0.95 \[3pt] -0.10 \end{pmatrix}. $$ 因此, $$ Q(s'_i,a_1;\theta^-)=0.95,\quad Q(s'_i,a_2;\theta^-)= -0.10. $$ 取最大值 $$ \max_{a'}Q(s'_i,a';\theta^-) = \max{0.95,,-0.10} = 0.95. $$ 计算目标 $y_i$ $$ y_i = r_i + \gamma \times 0.95 = 2 + 0.9 \times 0.95 = 2 + 0.855 = 2.855. $$ 这样,我们就得到了 DQN 中训练主网络时的"伪标签" $y_i=2.855$,后续会用它与主网络预测值 $Q(s_i,a_i;\theta)$ 计算均方误差,进而更新 $\theta$。 改进DQN: 一、构造 n-step Transition 维护一个长度为 n 的滑动队列 每步交互(状态 → 动作 → 奖励 → 新状态)后,都向队列里添加这条"单步经验"。 当队列中积累到 n 条经验时,就可以合并成一条"n-step transition"了。 合并过程(一步一步累加) 起始状态:取队列里第 1 条记录中的状态 $s_t$ 起始动作:取第 1 条记录中的动作 $a_t$ 累积奖励:把队列中前 n 条经验的即时奖励按折扣因子 $\gamma$ 一步步加权累加: $$ G_t^{(n)} = r_t + \gamma,r_{t+1} + \gamma^2,r_{t+2} + \cdots + \gamma^{n-1}r_{t+n-1} $$ 形成一条新样本 最终你得到一条合并后的样本: $$ \bigl(s_t,;a_t,;G_t^{(n)},;s_{t+n},;\text{done}_{t+n}\bigr) $$ 然后把它存入主 Replay Buffer。 接着,把滑动队列的最早一条经验丢掉,让它向前滑一格,继续接收下一步新经验。 二、批量随机采样与训练 随机抽取 n-step 样本 训练时,不管它是来自哪一段轨迹,都从 Replay Buffer 里随机挑出一批已经合好的 n-step transition。 每条样本就封装了"从 $s_t$ 出发,执行 $a_t$,经历 n 步后所累积的奖励加 bootstrap"以及到达的末状态。 计算训练目标 对于每条抽出的 n-step 样本 $(s_t,a_t,G_t^{(n)},s_{t+n},\text{done}_{t+n})$, 如果 $\text{done}{t+n}=\text{False}$,则 $$ y = G_t^{(n)} + \gamma^n,\max{a'}Q(s_{t+n},a';\theta^-); $$ 如果 $\text{done}_{t+n}=\text{True}$,则 $$ y = G_t^{(n)}. $$ 主网络给出预测 把样本中的起始状态-动作对 $(s_t,a_t)$ 丢给在线的 Q 网络,得到当前估计的 $\hat{Q}(s_t,a_t)$。 更新网络 用"目标值 $y$"和"预测值 $\hat{Q}$"之间的平方差,构造损失函数。 对损失做梯度下降,调整在线网络参数,使得它的预测越来越贴近那条合并后的真实回报。 VDN 核心思路:将团队 Q 函数写成各智能体局部 Q 的线性和 $Q_{tot}=\sum_{i=1}^{N}\tilde{Q}_i$,在训练时用全局奖励反传梯度,在执行时各智能体独立贪婪决策。 CTDE 指 Centralized Training, Decentralized Execution —— 在训练阶段使用集中式的信息或梯度(可以看到全局状态、联合奖励、各智能体的隐藏变量等)来稳定、加速学习;而在执行阶段,每个智能体只依赖自身可获得的局部观测来独立决策。 采用 CTDE 的好处: 部署高效、可扩展:运行时每个体只需本地观测,无需昂贵通信和同步,适合大规模或通信受限场景。 降低非平稳性:每个智能体看到的“环境”里不再包含 其他正在同时更新的智能体——因为所有参数其实在同一次反向传播里被一起更新,整体策略变化保持同步;对单个智能体而言,环境动态就不会呈现出随机漂移。 避免“懒惰智能体”:只要某个行动对团队回报有正贡献,它在梯度里就能拿到正向信号,不会因为某个体率先学到高收益行为而使其他个体“无所事事”。 核心公式与训练方法 值分解假设 $$ Q\bigl((h_1,\dots,h_d),(a_1,\dots,a_d)\bigr);\approx;\sum_{i=1}^{d},\tilde{Q}_i(h_i,a_i) $$ 其中 $h_i$ 为第 $i$ 个智能体的历史观测,$a_i$ 为其动作。每个 $\tilde{Q}_i$ 只使用局部信息;训练时通过对联合 $Q$ 的 TD 误差求梯度,再"顺着求和"回传到各 $\tilde{Q}_i$ 。这样既避免了为各智能体手工设计奖励,又天然解决了联合动作空间呈指数爆炸的问题。 Q-learning 更新 $$ Q_{t+1}(s_t,a_t);=;(1-\eta_t),Q_{t}(s_t,a_t);+;\eta_t\bigl[r_t+\gamma\max_{a}Q_{t}(s_{t+1},a)\bigr] $$ 论文沿用经典 DQN 的 Q-learning 目标,对 联合 Q 值 计算 TD 误差,然后按上式更新;全局奖励 $r_t$ 会在反向传播时自动分摊到各 $\tilde{Q}_i$ 。 训练过程 使用LSTM:让智能体在「只有局部、瞬时观测」的环境中记住并利用过去若干步的信息。 1. 初始化 组件 说明 在线网络 为每个智能体 $i=1\ldots d$ 建立局部 $Q$ 网络 $\widetilde Q_i(h^i,a^i;\theta_i)$。最后一层是 值分解层:把所有 $\widetilde Q_i$ 相加得到联合 $Q=\sum_i\widetilde Q_i$ 目标网络 为每个体复制参数:$\theta_i^- \leftarrow \theta_i$,用于计算贝尔曼目标。 经验回放缓冲区 存储元组 $(h_t, \mathbf a_t, r_t, o_{t+1}) \rightarrow \mathcal D$,其中 $\mathbf a_t=(a_t^1,\dots,a_t^d)$。 超参数 Adam 学习率 $1\times10^{-4}$,折扣 $\gamma$,BPTT 截断长度 8,Eligibility trace $\lambda=0.9$ ;小批量 $B$、目标同步周期 $C$、$\varepsilon$-greedy 初始值等。 网络骨架:Linear (32) → ReLU → LSTM (32) → Dueling (Value + Advantage) 头产生 $\widetilde Q_i$ 。 2. 与环境交互并存储经验 局部隐藏状态更新(获得 $h_t^i$) 采样观测 $o_t^i \in \mathbb R^{3\times5\times5}$(RGB × 5 × 5 视野) 线性嵌入 + ReLU $x_t^i = \mathrm{ReLU}(W_o,\text{vec}(o_t^i)+b_o),; W_o!\in!\mathbb R^{32\times75}$ 递归更新 LSTM $h_t^i,c_t^i = \text{LSTM}{32}(x_t^i,;h{t-1}^i,c_{t-1}^i)$ (初始 $h_0^i,c_0^i$ 置零;执行期只用本体状态即可) 动作选择(分散执行) $$ a_t^i=\begin{cases} \text{随机动作}, & \text{概率 } \varepsilon,\ \arg\max_{a}\widetilde Q_i(h_t^i,a;\theta_i), & 1-\varepsilon. \end{cases} $$ 环境反馈:执行联合动作 $\mathbf a_t$,获得单条 团队奖励 $r_t$ 以及下一组局部观测 $o_{t+1}^i$。 重要:此处不要直接把 $h_{t+1}^i$ 写入回放池,而是存下 $(h_t^i, a_t^i, r_t, o_{t+1}^i)$。 之后在训练阶段再用同样的“Step 0” 方式,离线地把 $o_{t+1}^i\rightarrow h_{t+1}^i$。 这样可避免把梯度依赖塞进经验池。 写入回放池:$(h_t, \mathbf a_t, r_t, o_{t+1}) \rightarrow \mathcal D$。 3. 批量随机采样并联合训练 对缓冲区达到阈值后,每次更新步骤: 采样 $B$ 条长度为 $L$ 的序列。 假设抽到第 $k$ 条序列的第一个索引是 $t$。 依次取出连续的 $(h_{t+j}, a_{t+j}, r_{t+j}, o_{t+j+1}), j=0, \ldots, L-1$。 先用存储的 $o_{t+j+1}$ 离线重放"Step 0"得到 $h_{t+j+1}$,这样序列就拥有 $(h_{t+j}, h_{t+j+1})$ 前向计算 $$ \hat Q_i^{(k)} = \widetilde Q_i(h^{i,(k)}_t,a^{i,(k)}t;\theta_i), \quad \hat Q^{(k)}=\sum{i}\hat Q_i^{(k)} . $$ 贝尔曼目标(用目标网络) $$ y^{(k)} = r^{(k)} + \gamma \sum_{i}\max_{a}\widetilde Q_i(h^{i,(k)}_{t+1},a;\theta_i^-). $$ 损失 $$ L=\frac1B\sum_{k=1}^{B}\bigl(y^{(k)}-\hat Q^{(k)}\bigr)^2 . $$ 梯度反传(自动信用分配) 因为 $\hat Q=\sum_i\widetilde Q_i$,对每个 $\widetilde Q_i$ 的梯度系数恒为 1, 整个 团队 TD 误差 直接回流到各体网络,无需个体奖励设计 。 参数更新:$\theta_i \leftarrow \theta_i-\eta\nabla_{\theta_i}L$。 4. 同步 / 软更新目标网络 硬同步:每 $C$ 次梯度更新后执行 $\theta_i^- \leftarrow \theta_i$。 软更新:可选 $\theta_i^- \leftarrow \tau\theta_i+(1-\tau)\theta_i^-$。 5. 重复直到收敛 持续循环步骤 2–4,逐步衰减 $\varepsilon$。 训练完成后,每个体只需本地 $\widetilde Q_i$ 就能独立决策,与中心最大化 $\sum_i\widetilde Q_i$ 等价 。
论文
zy123
6月17日
0
3
0
2025-05-05
动态图神经网络
动态图神经网络 如何对GAT的权重($W$)和注意力参数($a$)进行增量更新(邻居偶尔变化) 1. 核心思想 局部更新:邻居变化的节点及其直接邻域的权重和注意力参数需要调整,其他部分冻结。 梯度隔离:反向传播时,仅计算受影响节点的梯度,避免全局参数震荡。 2. 数学实现步骤 (1) 识别受影响的节点 设邻居变化后的新邻接矩阵为 $\tilde{A}$,原邻接矩阵为 $A$,受影响节点集合 $\mathcal{V}_{\text{affected}}$ 包括: 新增或删除边的两端节点(直接受影响)。 这些节点的1-hop邻居(间接受影响,根据GAT层数决定)。 (2) 损失函数局部化 仅对 $\mathcal{V}_{\text{affected}}$ 中的节点计算损失: $$ \mathcal{L}_{\text{incremental}} = \sum_{i \in \mathcal{V}_{\text{affected}}} \ell(y_i, \hat{y}_i) $$ 其中 $\ell$ 为交叉熵损失,$y_i$ 为标签,$\hat{y}_i$ 为模型输出。 (3) 梯度计算与参数更新 梯度掩码: 反向传播时,非受影响节点的梯度强制置零: $$ \nabla_{W,a} \mathcal{L}{\text{incremental}} = \left{ \begin{array}{ll} \nabla{W,a} \ell(y_i, \hat{y}i) & \text{if } i \in \mathcal{V}{\text{affected}} \ 0 & \text{otherwise} \end{array} \right. $$ 参数更新: 使用优化器(如Adam)仅更新有梯度的参数: $$ W \leftarrow W - \eta \nabla_W \mathcal{L}{\text{incremental}}, \quad a \leftarrow a - \eta \nabla_a \mathcal{L}{\text{incremental}} $$ 其中 $\eta$ 为较小的学习率(防止过拟合)。 (4) 注意力权重的动态适应 GAT的注意力机制会自动适应新邻居: $$ \alpha_{ij} = \text{softmax}\left(\text{LeakyReLU}\left(a^T [W h_i \| W h_j]\right)\right) $$ 由于 $W$ 和 $a$ 已局部更新,新邻居 $j \in \tilde{\mathcal{N}}(i)$ 的权重 $\alpha_{ij}$ 会重新计算。 3. 适用场景 低频变化:如社交网络每天新增少量边、论文引用网络月度更新。 局部变化:每次变化仅影响图中少量节点(<10%)。 若邻居高频变化(如秒级更新),需改用动态GNN(如TGAT)或时间序列建模。 EvolveGCN EvolveGCN-H 1. EvolveGCN-H核心思想 EvolveGCN-H 通过 GRU(门控循环单元) 动态更新 GCN 每一层的权重矩阵 $W_t^{(l)}$,将权重矩阵视为 GRU 的 隐藏状态,并利用当前时间步的 节点嵌入(特征) 作为输入来驱动演化。 关键特点: 输入依赖:利用节点嵌入 $H_t^{(l)}$ 指导权重更新。 时序建模:通过 GRU 隐式捕捉参数演化的长期依赖。 2. 动态更新流程(以第 $l$ 层为例) 输入: 当前节点嵌入矩阵 $H_t^{(l)} \in \mathbb{R}^{n \times d}$: 上一时间步的权重矩阵 $W_{t-1}^{(l)} \in \mathbb{R}^{d \times d'}$: 邻接矩阵 $A_t \in \mathbb{R}^{n \times n}$: 输出: 更新后的权重矩阵 $W_t^{(l)} \in \mathbb{R}^{d \times d'}$。 下一层节点嵌入 $H_t^{(l+1)} \in \mathbb{R}^{n \times d'}$。 3. 动态更新示意图 Time Step t-1 Time Step t +-------------------+ +-------------------+ | Weight Matrix | | Weight Matrix | | W_{t-1}^{(l)} | --(GRU更新)--> | W_t^{(l)} | +-------------------+ +-------------------+ ^ ^ | | +-------------------+ +-------------------+ | Node Embeddings | | Node Embeddings | | H_t^{(l)} | --(GCN计算)--> | H_t^{(l+1)} | +-------------------+ +-------------------+ ^ ^ | | +-------------------+ +-------------------+ | 邻接矩阵 A_t | | 邻接矩阵 A_{t+1} | | (显式输入) | | (下一时间步输入) | +-------------------+ +-------------------+ $$ \begin{align*} W_t^{(l)} &
论文
zy123
5月5日
0
11
0
2025-03-31
KAN
KAN Kolmogorov-Arnold表示定理 该定理表明,任何多元连续函数都可以表示为有限个单变量函数的组合。 对于任意一个定义在$[0,1]^n$上的连续多元函数: $$ f(x_1, x_2, \ldots, x_n), $$ 存在**单变量连续函数** $\phi_{q}$ 和 $\psi_{q,p}$(其中 $q = 1, 2, \ldots, 2n+1$,$p = 1, 2, \ldots, n$),使得: $$ f(x_1, \ldots, x_n) = \sum_{q=1}^{2n+1} \phi_{q}\left( \sum_{p=1}^{n} \psi_{q,p}(x_p) \right). $$ 即,$f$可以表示为$2n+1$个“外层函数”$\phi_{q}$和$n \times (2n+1)$个“内层函数”$\psi_{q,p}$的组合。 和MLP的联系 Kolmogorov-Arnold定理 神经网络(MLP) 外层函数 $\phi_q$ 的叠加 输出层的加权求和(线性组合) + 激活函数 内层函数 $\psi_{q,p}$ 的线性组合 隐藏层的加权求和 + 非线性激活函数 固定 $2n+1$ 个“隐藏单元” 隐藏层神经元数量可以自由设计,依赖于网络的深度和宽度 严格的数学构造(存在性证明) 通过数据驱动的学习(基于梯度下降等方法)来优化参数 和MLP的差异 浅层结构(一个隐藏层)的数学表达与模型设计 模型 数学公式 模型设计 MLP $f(x) \approx \sum_{i=1}^{N} a_i \sigma(w_i \cdot x + b_i)$ 线性变换后再跟非线性激活函数(RELU) KAN $f(x) = \sum_{q=1}^{2n+1} \Phi_q \left( \sum_{p=1}^n \phi_{q,p}(x_p) \right)$ 可学习激活函数(如样条)在边上,求和操作在神经元上 边上的可学习函数: $\phi_{q,p}(x_p)$(如B样条) 求和操作:$\sum_{p=1}^n \phi_{q,p}(x_p)$ 深层结构的数学表达与模型设计 模型 数学公式 模型设计 MLP $\text{MLP}(x) = (W_3 \circ \sigma_2 \circ W_2 \circ \sigma_1 \circ W_1)(x)$ 交替的线性层($W_i$)和固定非线性激活函数($\sigma_i$)。 KAN $\text{KAN}(x) = (\Phi_3 \circ \Phi_2 \circ \Phi_1)(x)$ 每一层都是单变量函数的组合($\Phi_i$),每一层的激活函数都可以进行学习 传统MLP的缺陷 梯度消失和梯度爆炸: 与其他传统的激活函数(如 Sigmoid 或 Tanh)一样,MLP 在进行反向传播时有时就会遇到梯度消失/爆炸的问题,尤其当网络层数过深时。当它非常小或为负大,网络会退化;连续乘积会使得梯度慢慢变为 0(梯度消失)或变得异常大(梯度爆炸),从而阻碍学习过程。 参数效率: MLP 常使用全连接层,每层的每个神经元都与上一层的所有神经元相连。尤其是对于大规模输入来说,这不仅增加了计算和存储开销,也增加了过拟合的风险。效率不高也不够灵活。 处理高维数据能力有限:MLP 没有利用数据的内在结构(例如图像中的局部空间相关性或文本数据的语义信息)。例如,在图像处理中,MLP 无法有效地利用像素之间的局部空间联系,这很典型在图像识别等任务上的性能不如卷积神经网络(CNN)。 长依赖问题: 虽然 MLP 理论上可以逼近任何函数,但在实际应用中,它们很难捕捉到序列中的长依赖关系(例如句子跨度很长)。这让人困惑:如何把前后序列的信息互相处理?而自注意力(如 transformer)在这类任务中表现更好。 但无论CNN/RNN/transformer怎么改进,都躲不掉MLP这个基础模型根上的硬伤,即线性组合+激活函数的模式。 KAN网络 主要贡献: 过去的类似想法受限于原始的Kolmogorov-Arnold表示定理(两层网络,宽度为2n+12n+1),未能利用现代技术(如反向传播)进行训练。 KAN通过推广到任意宽度和深度的架构,解决了这一限制,同时通过实验验证了KAN在“AI + 科学”任务中的有效性,兼具高精度和可解释性。 B样条(B-spline) 是一种通过分段多项式函数的线性组合构造的光滑曲线,其核心思想是利用局部基函数(称为B样条基函数)来表示整个曲线。 形式上,一个B样条函数通常表示为基函数的线性组合: $$ S(t) = \sum_{i=0}^{n} c_i \cdot B_i(t) $$ 其中: $B_i(t)$ 是 B样条基函数(basis functions); $c_i$ 是 控制点 或系数(可以来自数据、拟合、插值等); $S(t)$ 是最终的 B样条曲线 或函数。 每个基函数只在某个局部区间内非零,改变一个控制点只会影响曲线的局部形状。 示例:基函数定义 $B_0(t)$ - 支撑区间[0,1] $$ B_0(t) = \begin{cases} 1 - t, & 0 \leq t < 1,\\ 0, & \text{其他区间}. \end{cases} $$ $B_1(t)$ - 支撑区间[0,2] $$ B_1(t) = \begin{cases} t, & 0 \leq t < 1, \\ 2 - t, & 1 \leq t < 2, \\ 0, & \text{其他区间}. \end{cases} $$ $B_2(t)$ - 支撑区间[1,3] $$ B_2(t) = \begin{cases} t - 1, & 1 \leq t < 2, \\ 3 - t, & 2 \leq t < 3, \\ 0, & \text{其他区间}. \end{cases} $$ $B_3(t)$ - 支撑区间[2,4] $$ B_3(t) = \begin{cases} t - 2, & 2 \leq t < 3, \\ 4 - t, & 3 \leq t \leq 4, \\ 0, & \text{其他区间}. \end{cases} $$ 假设用该基函数对$f(t) = \sin\left(\dfrac{\pi t}{4}\right)$在[0,4]区间上拟合 $$ S(t) = 0 \cdot B_0(t) + 0.7071 \cdot B_1(t) + 1 \cdot B_2(t) + 0.7071 \cdot B_3(t) $$ 网络结构: 左图: 节点(如$x_{l,i}$)表示第$l$层第$i$个神经元的输入值 边(如$\phi_{l,j,i}$)表示可学习的激活函数(权重) 下一层节点的值计算: $$x_{l+1,j} = \sum_i \phi_{l,j,i}(x_{l,i})$$ 右图:
论文
zy123
3月31日
0
7
0
1
2
下一页