您的位置:首页 > 健康 > 养生 > 广告设计公司服务承诺_河南建设工程网_网站关键词怎么快速上排名_做网站公司哪家正规

广告设计公司服务承诺_河南建设工程网_网站关键词怎么快速上排名_做网站公司哪家正规

2025/3/31 7:06:53 来源:https://blog.csdn.net/songxia928_928/article/details/146460916  浏览:    关键词:广告设计公司服务承诺_河南建设工程网_网站关键词怎么快速上排名_做网站公司哪家正规
广告设计公司服务承诺_河南建设工程网_网站关键词怎么快速上排名_做网站公司哪家正规

强化学习中的重要性采样:原理、应用与进阶实践

核心动机:重要性采样的必要性

在强化学习中,策略评估与优化通常依赖数据采样。当直接从目标策略(Target Policy)采样面临高成本、高风险或低效率时(如机器人控制、医疗决策场景),离策略(Off-Policy)学习成为必然选择。重要性采样(Importance Sampling, IS)作为离策略学习的核心工具,允许利用行为策略(Behavior Policy)生成的历史数据,通过权重修正实现对目标策略的价值估计。其核心挑战在于解决分布差异:如何用旧分布的数据估计新分布的期望?

为了讲解清楚 强化学习中的重要性采样,本文将按照: 蒙特卡洛方法 --》 重要性采样 --》 强化学习中的重要性采样,三个主要部分介绍。

一、蒙特卡洛方法 - 采样估计的基础

在计算复杂积分或期望时,蒙特卡洛方法是一种强大的工具。其核心目标是计算:
E p [ f ( x ) ] = ∫ p ( x ) f ( x ) d x \mathbb{E}_p[f(\mathbf{x})] = \int p(\mathbf{x})f(\mathbf{x})d\mathbf{x} Ep[f(x)]=p(x)f(x)dx
思想是通过采样求平均来近似期望:
E p [ f ( x ) ] ≈ 1 N ∑ i = 1 N f ( x i ) , x i ∼ p ( x ) \mathbb{E}_p[f(\mathbf{x})] \approx \frac{1}{N} \sum_{i=1}^N f(\mathbf{x}_i), \quad \mathbf{x}_i \sim p(\mathbf{x}) Ep[f(x)]N1i=1Nf(xi),xip(x)

在这里插入图片描述

从可视化角度看,图中红色曲线为 f ( x ) f(\mathbf{x}) f(x),蓝色曲线为 p ( x ) p(\mathbf{x}) p(x),紫色区域 p ( x ) f ( x ) p(\mathbf{x})f(\mathbf{x}) p(x)f(x) 的面积即积分结果。通过从 p ( x ) p(\mathbf{x}) p(x) 采样 { x i } \{\mathbf{x}_i\} {xi},计算 f ( x i ) f(\mathbf{x}_i) f(xi) 的均值,即可逼近目标期望。

中心极限定理的作用

蒙特卡洛估计的均值 s = 1 N ∑ i = 1 N f ( x i ) s = \frac{1}{N} \sum_{i=1}^N f(\mathbf{x}_i) s=N1i=1Nf(xi) 服从正态分布:
s → d N ( μ , σ 2 ) , 其中 μ = E p [ f ( x ) ] , σ 2 = 1 N V p [ f ( x ) ] s \xrightarrow{d} \mathcal{N}(\mu, \sigma^2), \quad 其中 \mu = \mathbb{E}_p[f(\mathbf{x})], \sigma^2 = \frac{1}{N}\mathbb{V}_p[f(\mathbf{x})] sd N(μ,σ2),其中μ=Ep[f(x)],σ2=N1Vp[f(x)]
这意味着随着采样数 N N N 增加,估计的方差 V p [ s ] \mathbb{V}_p[s] Vp[s] 会按 1 N \frac{1}{N} N1 衰减,宽度 2 V p [ s ] 2\sqrt{\mathbb{V}_p[s]} 2Vp[s] 也会缩小,估计更精确。

在这里插入图片描述

二、重要性采样:突破采样限制的利器

2.1 原理推导

当从 p ( x ) p(\mathbf{x}) p(x) 直接采样困难时,引入易采样的分布 q ( x ) q(\mathbf{x}) q(x),通过数学变换:
E p [ f ( x ) ] = ∫ p ( x ) f ( x ) d x = ∫ q ( x ) p ( x ) q ( x ) f ( x ) d x = E q [ p ( x ) q ( x ) f ( x ) ] \begin{align*} \mathbb{E}_p[f(\mathbf{x})] &= \int p(\mathbf{x})f(\mathbf{x})d\mathbf{x} \\ &= \int q(\mathbf{x}) \frac{p(\mathbf{x})}{q(\mathbf{x})}f(\mathbf{x})d\mathbf{x} \\ &= \mathbb{E}_q\left[\frac{p(\mathbf{x})}{q(\mathbf{x})}f(\mathbf{x})\right] \end{align*} Ep[f(x)]=p(x)f(x)dx=q(x)q(x)p(x)f(x)dx=Eq[q(x)p(x)f(x)]
于是,可从 q ( x ) q(\mathbf{x}) q(x) 采样 { x i } \{\mathbf{x}_i\} {xi},用以下公式估计期望:
E q [ p ( x ) q ( x ) f ( x ) ] ≈ 1 N ∑ i = 1 N p ( x i ) q ( x i ) f ( x i ) , x i ∼ q ( x ) \mathbb{E}_q\left[\frac{p(\mathbf{x})}{q(\mathbf{x})}f(\mathbf{x})\right] \approx \frac{1}{N} \sum_{i=1}^N \frac{p(\mathbf{x}_i)}{q(\mathbf{x}_i)}f(\mathbf{x}_i), \quad \mathbf{x}_i \sim q(\mathbf{x}) Eq[q(x)p(x)f(x)]N1i=1Nq(xi)p(xi)f(xi),xiq(x)
其中, p ( x i ) q ( x i ) \frac{p(\mathbf{x}_i)}{q(\mathbf{x}_i)} q(xi)p(xi) 称为重要性权重。

2.2 核心优势

  1. 无偏性 E q [ r ] = E p [ f ( x ) ] \mathbb{E}_q[r] = \mathbb{E}_p[f(\mathbf{x})] Eq[r]=Ep[f(x)],估计结果依然无偏。
  2. 方差优化潜力:新的方差 V q [ r ] = 1 N V q [ p ( x ) q ( x ) f ( x ) ] \mathbb{V}_q[r] = \frac{1}{N}\mathbb{V}_q\left[\frac{p(\mathbf{x})}{q(\mathbf{x})}f(\mathbf{x})\right] Vq[r]=N1Vq[q(x)p(x)f(x)]。若选择合适的 q ( x ) q(\mathbf{x}) q(x),可使 V q [ p ( x ) q ( x ) f ( x ) ] < V p [ f ( x ) ] \mathbb{V}_q\left[\frac{p(\mathbf{x})}{q(\mathbf{x})}f(\mathbf{x})\right] < \mathbb{V}_p[f(\mathbf{x})] Vq[q(x)p(x)f(x)]<Vp[f(x)],提升估计效率。
    关键策略:让 q ( x ) q(\mathbf{x}) q(x) ∣ p ( x ) f ( x ) ∣ |p(\mathbf{x})f(\mathbf{x})| p(x)f(x) 高的区域也具有高概率密度,减少权重的波动。

2.3 直观示例:理解 q ( x ) q(\mathbf{x}) q(x) 的作用

在这里插入图片描述

通过三组图像对比:

  • 左图:直接从 p ( x ) p(\mathbf{x}) p(x) 采样,展示 p ( x ) p(\mathbf{x}) p(x) f ( x ) f(\mathbf{x}) f(x) 的分布。
  • 中图:引入 q ( x ) q(\mathbf{x}) q(x)(绿色曲线),它在 f ( x ) f(\mathbf{x}) f(x) 高值区域有更高概率密度。
  • 右图:展示 p ( x ) q ( x ) f ( x ) \frac{p(\mathbf{x})}{q(\mathbf{x})}f(\mathbf{x}) q(x)p(x)f(x) q ( x ) q(\mathbf{x}) q(x) 的关系。合适的 q ( x ) q(\mathbf{x}) q(x) 能让采样更集中于对期望贡献大的区域,降低方差。

重要性采样通过更换采样分布 q ( x ) q(\mathbf{x}) q(x),解决了直接从复杂分布 p ( x ) p(\mathbf{x}) p(x) 采样的难题。它在贝叶斯推断、罕见事件概率估计、强化学习等领域广泛应用。理解其原理的核心在于:利用数学变换转移采样分布,通过权重修正偏差,同时通过合理设计 q ( x ) q(\mathbf{x}) q(x) 优化估计方差。这一技术体现了采样方法在计算效率上的巧妙突破,是连接理论推导与实际应用的重要桥梁。

2.4 几何视角:概率分布的坐标变换

想象两个分布 p ( x ) p(\mathbf{x}) p(x) q ( x ) q(\mathbf{x}) q(x) 是同一函数空间的不同坐标系:

  • q ( x ) q(\mathbf{x}) q(x) 是我们能采样的“坐标系”。
  • ρ ( x ) = p ( x ) / q ( x ) \rho(\mathbf{x}) = p(\mathbf{x})/q(\mathbf{x}) ρ(x)=p(x)/q(x) 是坐标变换的“基向量”
  • 期望 E p [ f ] \mathbb{E}_p[f] Ep[f] 是函数 f ( x ) f(x) f(x) p p p -坐标系的投影,通过 ρ ( x ) \rho(x) ρ(x) 转换为 q q q-坐标系的加权和。

2.5 常见误区澄清

误区1:“权重越大,样本越重要”

事实:权重是概率校正因子,而非样本重要性。高权重样本可能来自低概率区域,反而增加方差。

三、强化学习中的重要性采样

在强化学习中,策略评估与优化通常依赖数据采样。当直接从目标策略(Target Policy)采样面临高成本、高风险或低效率时(如机器人控制、医疗决策场景),离策略(Off-Policy)学习成为必然选择。重要性采样(Importance Sampling, IS)作为离策略学习的核心工具,允许利用行为策略(Behavior Policy)生成的历史数据,通过权重修正实现对目标策略的价值估计。其核心挑战在于解决分布差异:如何用旧分布的数据估计新分布的期望?


3.1 Off-Policy学习的核心挑战

在强化学习中,目标策略 π \pi π 和行为策略 b b b 的轨迹分布差异导致直接重用数据存在偏差。重要性采样的核心任务是:通过轨迹权重修正,使 b b b 生成的轨迹能无偏估计 π \pi π 的价值函数

策略评估问题形式化

设轨迹 τ = ( s 0 , a 0 , s 1 , a 1 , . . . , s T ) \tau = (s_0,a_0,s_1,a_1,...,s_T) τ=(s0,a0,s1,a1,...,sT),其回报为 G ( τ ) G(\tau) G(τ)。目标策略的价值函数为:
V π ( s ) = E τ ∼ π [ G ( τ ) ∣ s 0 = s ] V^\pi(s) = \mathbb{E}_{\tau \sim \pi}[G(\tau)|s_0=s] Vπ(s)=Eτπ[G(τ)s0=s]
利用 b b b 的轨迹估计 V π ( s ) V^\pi(s) Vπ(s) 时,需计算重要性权重:
ρ ( τ ) = ∏ t = 0 T − 1 π ( a t ∣ s t ) b ( a t ∣ s t ) \rho(\tau) = \prod_{t=0}^{T-1} \frac{\pi(a_t|s_t)}{b(a_t|s_t)} ρ(τ)=t=0T1b(atst)π(atst)
从而得到修正后的估计:
V ^ π ( s ) = 1 N ∑ i = 1 N ρ ( τ i ) G ( τ i ) \hat{V}^\pi(s) = \frac{1}{N} \sum_{i=1}^N \rho(\tau_i) G(\tau_i) V^π(s)=N1i=1Nρ(τi)G(τi)

import numpy as np
from collections import defaultdictdef off_policy_mc_evaluation(env, target_policy, behavior_policy, num_episodes, gamma=0.99):"""Off-Policy蒙特卡洛策略评估Args:env: 强化学习环境target_policy: 目标策略 π(a|s)behavior_policy: 行为策略 b(a|s) num_episodes: 采样轨迹数量gamma: 折扣因子Returns:V: 估计的状态价值函数"""# 初始化价值函数和计数V = defaultdict(float)counts = defaultdict(int)for _ in range(num_episodes):# 生成轨迹trajectory = []state = env.reset()done = Falsewhile not done:action_probs = behavior_policy(state)action = np.random.choice(len(action_probs), p=action_probs)next_state, reward, done, _ = env.step(action)trajectory.append( (state, action, reward) )state = next_state# 逆向计算重要性权重和回报G = 0.0rho = 1.0for t in reversed(range(len(trajectory))):state, action, reward = trajectory[t]G = gamma * G + reward# 更新计数和价值估计(加权重要性采样)counts[state] += 1V[state] += (rho * G - V[state]) / counts[state]# 更新重要性权重pi_prob = target_policy(state)[action]b_prob = behavior_policy(state)[action]rho *= pi_prob / b_prob# 提前终止权重为0的轨迹if rho == 0:break  return V

3.2 时序差分学习中的重要性采样 (Expected SARSA)

在TD学习框架下,单步更新的重要性权重简化为:
ρ t = π ( a t ∣ s t ) b ( a t ∣ s t ) \rho_t = \frac{\pi(a_t|s_t)}{b(a_t|s_t)} ρt=b(atst)π(atst)
Q值更新规则调整为:
Q ( s t , a t ) ← Q ( s t , a t ) + α [ r t + 1 + γ ρ t + 1 Q ( s t + 1 , a t + 1 ) − Q ( s t , a t ) ] Q(s_t,a_t) \leftarrow Q(s_t,a_t) + \alpha \left[ r_{t+1} + \gamma \rho_{t+1} Q(s_{t+1},a_{t+1}) - Q(s_t,a_t) \right] Q(st,at)Q(st,at)+α[rt+1+γρt+1Q(st+1,at+1)Q(st,at)]
这种形式在Expected SARSA和Tree Backup算法中被广泛使用。

def td_importance_sampling(env, target_policy, behavior_policy, num_episodes, alpha=0.1, gamma=0.99):"""单步TD重要性采样算法"""n_actions = env.action_space.nQ = defaultdict(lambda: np.zeros(n_actions))for _ in range(num_episodes):state = env.reset()done = Falsewhile not done:# 根据行为策略选择动作action_probs = behavior_policy(state)action = np.random.choice(n_actions, p=action_probs)# 执行动作next_state, reward, done, _ = env.step(action)# 计算重要性权重rho = target_policy(state)[action] / behavior_policy(state)[action]# 计算目标策略的期望值expected_next_value = np.sum(target_policy(next_state) * Q[next_state])# TD更新td_target = reward + gamma * expected_next_valuetd_error = td_target - Q[state][action]Q[state][action] += alpha * rho * td_errorstate = next_statereturn Q

3.3 多步重要性采样的乘积权重

对于n步TD学习,需考虑连续动作的联合概率比:
ρ t : t + n = ∏ k = t t + n − 1 π ( a k ∣ s k ) b ( a k ∣ s k ) \rho_{t:t+n} = \prod_{k=t}^{t+n-1} \frac{\pi(a_k|s_k)}{b(a_k|s_k)} ρt:t+n=k=tt+n1b(aksk)π(aksk)
此时价值估计为:
V ^ π ( s t ) = E b [ ρ t : t + n ( ∑ k = 0 n − 1 γ k r t + k + 1 ) + γ n ρ t : t + n V ( s t + n ) ] \hat{V}^\pi(s_t) = \mathbb{E}_b\left[ \rho_{t:t+n} \left( \sum_{k=0}^{n-1} \gamma^k r_{t+k+1} \right) + \gamma^n \rho_{t:t+n} V(s_{t+n}) \right] V^π(st)=Eb[ρt:t+n(k=0n1γkrt+k+1)+γnρt:t+nV(st+n)]
乘积权重会指数级放大方差,需配合截断或归一化技术使用。

# 多步TD重要性采样(n-step TD with IS)
class NStepISAgent:def __init__(self, n_steps, gamma, alpha):self.n_steps = n_stepsself.gamma = gammaself.alpha = alphaself.buffer = []def update(self, Q):"""处理n步经验"""states, actions, rewards, rhos = zip(*self.buffer)# 计算累积奖励和权重G = 0total_rho = 1.0for k in range(self.n_steps):G += (self.gamma**k) * rewards[k]total_rho *= rhos[k]# 更新起始状态的Q值start_state = states[0]start_action = actions[0]Q[start_state][start_action] += self.alpha * total_rho * (G - Q[start_state][start_action])def train(self, env, target_policy, behavior_policy, num_episodes):Q = defaultdict(lambda: np.zeros(env.action_space.n))for _ in range(num_episodes):state = env.reset()done = Falseself.buffer = []while not done:# 收集n步经验while len(self.buffer) < self.n_steps and not done:action_probs = behavior_policy(state)action = np.random.choice(len(action_probs), p=action_probs)next_state, reward, done, _ = env.step(action)# 计算重要性权重rho = target_policy(state)[action] / behavior_policy(state)[action]self.buffer.append( (state, action, reward, rho) )state = next_stateif len(self.buffer) >= self.n_steps:self.update(Q)self.buffer.pop(0)return Q

四、方差与偏差的平衡艺术

4.1 重要性采样的方差困境

重要性权重的方差可形式化为:
V b [ ρ ( τ ) ] = E b [ ρ 2 ( τ ) ] − ( E b [ ρ ( τ ) ] ) 2 \mathbb{V}_b[\rho(\tau)] = \mathbb{E}_b[\rho^2(\tau)] - (\mathbb{E}_b[\rho(\tau)])^2 Vb[ρ(τ)]=Eb[ρ2(τ)](Eb[ρ(τ)])2
π \pi π b b b 差异较大时,方差会随轨迹长度指数爆炸。例如在Atari游戏中,单步权重方差约为1.2,100步后方差膨胀至 1. 2 100 ≈ 8 × 1 0 7 1.2^{100} \approx 8 \times 10^7 1.21008×107

4.2 加权重要性采样(WIS)

通过归一化权重抑制方差:
V ^ W I S π ( s ) = ∑ i = 1 N ρ ( τ i ) G ( τ i ) ∑ i = 1 N ρ ( τ i ) \hat{V}^\pi_{WIS}(s) = \frac{\sum_{i=1}^N \rho(\tau_i) G(\tau_i)}{\sum_{i=1}^N \rho(\tau_i)} V^WISπ(s)=i=1Nρ(τi)i=1Nρ(τi)G(τi)
WIS以引入微小偏差为代价显著降低方差,实际应用更广泛。

4.3 混合策略与截断技术

  • Adaptive Mixture:混合原始和加权估计, V ^ = λ V ^ I S + ( 1 − λ ) V ^ W I S \hat{V} = \lambda \hat{V}_{IS} + (1-\lambda)\hat{V}_{WIS} V^=λV^IS+(1λ)V^WIS
  • Clipping:限制单个权重的最大值,如PPO中设置 ρ t ∈ [ 1 − ϵ , 1 + ϵ ] \rho_t \in [1-\epsilon,1+\epsilon] ρt[1ϵ,1+ϵ]

PPO的代理目标函数显式包含重要性权重:
L C L I P ( θ ) = E t [ min ⁡ ( ρ t ( θ ) A t , clip ( ρ t ( θ ) , 1 − ϵ , 1 + ϵ ) A t ) ] L^{CLIP}(\theta) = \mathbb{E}_t\left[ \min\left( \rho_t(\theta) A_t, \text{clip}(\rho_t(\theta), 1-\epsilon, 1+\epsilon) A_t \right) \right] LCLIP(θ)=Et[min(ρt(θ)At,clip(ρt(θ),1ϵ,1+ϵ)At)]
其中 ρ t ( θ ) = π θ ( a t ∣ s t ) π θ o l d ( a t ∣ s t ) \rho_t(\theta) = \frac{\pi_\theta(a_t|s_t)}{\pi_{\theta_{old}}(a_t|s_t)} ρt(θ)=πθold(atst)πθ(atst)。这种设计在策略更新中平衡了方差与稳定性。

import torch
import torch.nn as nn
from torch.distributions import Categoricalclass PPOActorCritic(nn.Module):def __init__(self, state_dim, action_dim):super().__init__()# 策略网络(Actor)self.actor = nn.Sequential(nn.Linear(state_dim, 64),nn.Tanh(),nn.Linear(64, 64),nn.Tanh(),nn.Linear(64, action_dim),nn.Softmax(dim=-1))# 价值网络(Critic)self.critic = nn.Sequential(nn.Linear(state_dim, 64),nn.Tanh(),nn.Linear(64, 64),nn.Tanh(),nn.Linear(64, 1))def forward(self, x):return self.actor(x), self.critic(x)class PPOTrainer:def __init__(self, model, lr=3e-4, gamma=0.99, epsilon=0.2, ent_coef=0.01):self.model = modelself.optimizer = torch.optim.Adam(model.parameters(), lr=lr)# PPO超参数self.gamma = gamma          # 折扣因子self.epsilon = epsilon      # Clipping阈值self.ent_coef = ent_coef    # 熵系数def update(self, states, actions, old_log_probs, rewards, dones):"""PPO核心更新函数states:        状态序列 [batch_size, state_dim]actions:       动作序列 [batch_size]old_log_probs: 旧策略的对数概率 [batch_size]rewards:       奖励序列 [batch_size]dones:         终止标记 [batch_size]"""# 转换为张量states = torch.FloatTensor(states)actions = torch.LongTensor(actions)old_log_probs = torch.FloatTensor(old_log_probs)# 计算优势函数(简单实现,实际应使用GAE)with torch.no_grad():_, values = self.model(states)values = values.squeeze()advantages = rewards + (1 - dones) * self.gamma * values - values# 标准化优势函数advantages = (advantages - advantages.mean()) / (advantages.std() + 1e-8)# 多epoch更新(通常3-4次)for _ in range(3):# 获取新策略的概率new_probs, _ = self.model(states)dist = Categorical(new_probs)# 计算新策略的对数概率new_log_probs = dist.log_prob(actions)# 重要性权重(概率比)ratios = torch.exp(new_log_probs - old_log_probs)# 两种替代损失surr1 = ratios * advantagessurr2 = torch.clamp(ratios, 1 - self.epsilon, 1 + self.epsilon) * advantages# 策略损失(取最小值)policy_loss = -torch.min(surr1, surr2).mean()# 价值损失(MSE)_, new_values = self.model(states)value_loss = nn.MSELoss()(new_values.squeeze(), rewards)# 熵正则项entropy = dist.entropy().mean()# 总损失total_loss = policy_loss + 0.5 * value_loss - self.ent_coef * entropy# 梯度更新self.optimizer.zero_grad()total_loss.backward()self.optimizer.step()# 使用示例
if __name__ == "__main__":# 初始化环境和模型env = gym.make('CartPole-v1')state_dim = env.observation_space.shape[0]action_dim = env.action_space.nmodel = PPOActorCritic(state_dim, action_dim)trainer = PPOTrainer(model)# 数据收集(简化版)states, actions, rewards, dones = [], [], [], []state = env.reset()for _ in range(256):  # 收集256步数据

五、关键挑战与前沿方向

5.1 高维动作空间的困境

当动作空间维度增加时, π ( a ∣ s ) / b ( a ∣ s ) \pi(a|s)/b(a|s) π(as)/b(as) 的估计误差会被放大。解决方法包括:

  • 低方差策略参数化:如使用高斯策略保证概率密度平滑
  • 分层重要性采样:在动作子空间分解权重

5.2 混合离线与在线学习

在Offline RL场景中,IS需要处理分布外(OOD)动作。最新研究如IMAP算法通过重要性权重调整行为克隆损失:
L ( θ ) = E ( s , a ) ∼ D [ π θ ( a ∣ s ) b ( a ∣ s ) ∥ Q ( s , a ) − Q t a r g e t ∥ 2 ] L(\theta) = \mathbb{E}_{(s,a)\sim \mathcal{D}} \left[ \frac{\pi_\theta(a|s)}{b(a|s)} \|Q(s,a) - Q_{target}\|^2 \right] L(θ)=E(s,a)D[b(as)πθ(as)Q(s,a)Qtarget2]


总结

重要性采样在强化学习中的核心价值在于打破数据来源与目标策略的强耦合,但其成功依赖于精细的方差控制。未来的研究方向可能包括:

  1. 自适应权重裁剪:根据轨迹长度动态调整截断阈值
  2. 隐式策略建模:通过GAN等生成模型避免显式概率密度计算
  3. 物理启发的方差缩减:借鉴分子动力学中的重加权技术

引用

[1]. https://zhuanlan.zhihu.com/p/596909041

[2]. https://blog.csdn.net/qq_22866291/article/details/145560939

[3]. https://zhuanlan.zhihu.com/p/669378380

[4]. https://www.yuque.com/chenjiarui-i3tp3/sv7cbq/afns6z

[5]. https://www.bilibili.com/video/BV18M4y1p73k/

版权声明:

本网仅为发布的内容提供存储空间,不对发表、转载的内容提供任何形式的保证。凡本网注明“来源:XXX网络”的作品,均转载自其它媒体,著作权归作者所有,商业转载请联系作者获得授权,非商业转载请注明出处。

我们尊重并感谢每一位作者,均已注明文章来源和作者。如因作品内容、版权或其它问题,请及时与我们联系,联系邮箱:809451989@qq.com,投稿邮箱:809451989@qq.com