支持向量机的软间隔最大化

背景

线性可分支持向量机 的基础上,我们考虑以下图这个情况:

在这里插入图片描述

图中有两个超平面红色线和黑色线。红色的超平面使得模型有更好的泛化效果。但是由于蓝色A异常点的存在,使得SVM模型学到的是黑色的超平面,这会影响到模型的预测效果。

更极端的情况是假设在B处有一蓝色的异常点,就会使得数据变成线性不可分。

为了解决这个问题,SVM引入软间隔最大化的方法来解决。

软间隔最大化

回顾线性可分SVM的硬间隔最大化条件
min ⁡ w , b 1 2 ∣ ∣ w ∣ ∣ 2 s . t .     y i ( w ⋅ x i + b ) ≥ 1 , i = 1 , 2 , … , N \begin{aligned}&\min_{w,b}\frac{1}{2}||w||^2\\&s.t.\ \ \ y_i(w\cdot x_i+b)\geq 1, \quad i=1,2,\dots,N \\\end{aligned} w,bmin21w2s.t.   yi(wxi+b)1,i=1,2,,N

线性不可分意味着某些样本点 ( x i , y i ) (x_i,y_i) (xi,yi) 不能满足函数间隔大于等于1得约束条件,软间隔最大化的思想时:允许部分点位于间隔内部,这些点到超平面的距离小于1。如下图所示:

在这里插入图片描述

所以,引入一个loss:

y i ( w x i + b ) ≥ 1 , l o s s = 0 y_i(wx_i+b) \geq 1,\quad loss=0 yi(wxi+b)1,loss=0

y i ( w x i + b ) < 1 , l o s s = 1 − y i ( w x i + b ) y_i(wx_i+b) < 1,\quad loss=1-y_i(wx_i+b) yi(wxi+b)<1,loss=1yi(wxi+b)

即:
l o s s = m a x { 0 , 1 − y i ( w T x i + b ) } loss = max\{0,1-y_i(w^Tx_i+b)\} loss=max{0,1yi(wTxi+b)}

所以,对每一个样本点 ( x i , y i ) (x_i,y_i) (xi,yi)引入 ξ i \xi_i ξi, ξ i = 1 − y i ( w T x i + b ) , ξ i ≥ 0 \xi_i = 1-y_i(w^Tx_i+b), \quad \xi_i \geq 0 ξi=1yi(wTxi+b),ξi0

说明:

(1)当样本点满足 y i ( w x i + b ) ≥ 1 y_i(wx_i+b) \geq 1 yi(wxi+b)1时, ξ i = 0 \xi_i=0 ξi=0

(2)当样本点 y i ( w x i + b ) < 1 y_i(wx_i+b) <1 yi(wxi+b)<1 时,即样本点位于间隔内部, ξ i = 1 − y i ( w T x i + b ) \xi_i = 1-y_i(w^Tx_i+b) ξi=1yi(wTxi+b) 表示样本点到边界 H 1 H_1 H1(或 H 2 H_2 H2)的距离。

这样 ξ i \xi_i ξi 就可以起到和loss一样的效果。

所以,在最小化最大距离时,同时也要最小化这个 ξ i \xi_i ξi (让位于间隔内部的点尽量的靠近边界),目标函数由原来的 1 2 ∣ ∣ w ∣ ∣ 2 \frac{1}{2}||w||^2 21w2 变成:
1 2 ∣ ∣ w ∣ ∣ 2 + C ∑ i = 1 N ξ i \frac{1}{2}||w||^2 + C\sum_{i=1}^N\xi_i 21w2+Ci=1Nξi
这里的 C > 0 C>0 C>0 称为惩罚系数。C值越大对误分类的惩罚越大,C值越小对误分类的惩罚越小。

因为$\xi_i $ 表示样本点 ( x i , y i ) (x_i,y_i) (xi,yi) 到边界 H 1 H_1 H1(或 H 2 H_2 H2)的距离,所以样本点到超平面的距离就变成了 1 − ξ i 1-\xi_i 1ξi 。这样约束条件变为:
y i ( w ⋅ x i + b ) ≥ 1 − ξ i , i = 1 , 2 , … , N y_i(w\cdot x_i+b)\geq 1-\xi_i, \quad i=1,2,\dots,N yi(wxi+b)1ξi,i=1,2,,N
所以,线性不可分支持向量机的学习问题变成了如下的凸二次规化问题(原始问题):
min ⁡ w , b 1 2 ∣ ∣ w ∣ ∣ 2 + C ∑ i = 1 N ξ i s . t .     y i ( w ⋅ x i + b ) ≥ 1 − ξ i , i = 1 , 2 , … , N ξ i ≥ 0 \begin{aligned}&\min_{w,b}\frac{1}{2}||w||^2 +C\sum_{i=1}^N\xi_i\\&s.t.\ \ \ y_i(w\cdot x_i+b)\geq 1-\xi_i, \quad i=1,2,\dots,N\\ &\qquad \xi_i \geq 0 \end{aligned} w,bmin21w2+Ci=1Nξis.t.   yi(wxi+b)1ξi,i=1,2,,Nξi0

学习的对偶算法

和线性可分SVM的优化方式类似,首先将软间隔最大化的约束问题用拉格朗日函数转化为无约束问题如下:
L ( w , b , ξ , α , μ ) = 1 2 ∣ ∣ w ∣ ∣ 2 + C ∑ i = 1 N ξ i + ∑ i = 1 N α i [ 1 − ξ i − y i ( w T x i + b ) ] + ∑ i = 1 N μ i ( − ξ i ) L(w,b,\xi,\alpha,\mu) = \frac{1}{2}||w||^2 +C\sum\limits_{i=1}^{N}\xi_i + \sum\limits_{i=1}^{N}\alpha_i[1 - \xi_i - y_i(w^T x_i +b)] + \sum\limits_{i=1}^{N}\mu_i(-\xi_i) L(w,b,ξ,α,μ)=21w2+Ci=1Nξi+i=1Nαi[1ξiyi(wTxi+b)]+i=1Nμi(ξi)
其中 α i ≥ 0 , μ i ≥ 0 \alpha_i \geq 0,\mu_i \geq 0 αi0μi0 均为拉格朗日乘子。于是要优化的目标函数等价为:
min ⁡ w , b , ξ    max ⁡ α i ≥ 0 ,    μ i ≥ 0 L ( w , b , α , ξ , μ ) \min\limits_{w,b,\xi} \;\max\limits_{\alpha_i \geq 0, \;\mu_i \geq 0} L(w,b,\alpha, \xi,\mu) w,b,ξminαi0,μi0maxL(w,b,α,ξ,μ)
其对偶问题为:
max ⁡ α i ≥ 0 ,    μ i ≥ 0    min ⁡ w , b , ξ L ( w , b , α , ξ , μ ) \max\limits_{\alpha_i \geq 0, \;\mu_i \geq 0}\;\min\limits_{w,b,\xi} L(w,b,\alpha, \xi,\mu) αi0,μi0maxw,b,ξminL(w,b,α,ξ,μ)
首先是优化函数的 w , b , ξ w, b, \xi w,b,ξ求极小值,对变量求偏导得:
∂ L ∂ w = 0    ⇒ w = ∑ i = 1 N α i y i x i \frac{\partial L}{\partial w} = 0 \;\Rightarrow w = \sum\limits_{i=1}^{N}\alpha_iy_ix_i wL=0w=i=1Nαiyixi

∂ L ∂ b = 0    ⇒ ∑ i = 1 N α i y i = 0 \frac{\partial L}{\partial b} = 0 \;\Rightarrow \sum\limits_{i=1}^{N}\alpha_iy_i = 0 bL=0i=1Nαiyi=0

∂ L ∂ ξ i = 0    ⇒ C − α i − μ i = 0 \frac{\partial L}{\partial \xi_i} = 0 \;\Rightarrow C- \alpha_i - \mu_i = 0 ξiL=0Cαiμi=0

将求导结果代入拉格朗日函数得到:
L ( w , b , ξ , α , μ ) = 1 2 ∣ ∣ w ∣ ∣ 2 + C ∑ i = 1 N ξ i + ∑ i = 1 N α i [ 1 − ξ i − y i ( w T x i + b ) ] + ∑ i = 1 N μ i ( − ξ i )   = 1 2 ∣ ∣ w ∣ ∣ 2 − ∑ i = 1 N α i [ y i ( w T x i + b ) − 1 + ξ i ] + ∑ i = 1 N α i ξ i = 1 2 ∣ ∣ w ∣ ∣ 2 − ∑ i = 1 N α i [ y i ( w T x i + b ) − 1 ] = 1 2 w T w − ∑ i = 1 N α i y i w T x i − ∑ i = 1 N α i y i b + ∑ i = 1 N α i = 1 2 w T ∑ i = 1 N α i y i x i − ∑ i = 1 N α i y i w T x i − ∑ i = 1 N α i y i b + ∑ i = 1 N α i = 1 2 w T ∑ i = 1 N α i y i x i − w T ∑ i = 1 N α i y i x i − ∑ i = 1 N α i y i b + ∑ i = 1 N α i = − 1 2 w T ∑ i = 1 N α i y i x i − ∑ i = 1 N α i y i b + ∑ i = 1 N α i = − 1 2 w T ∑ i = 1 N α i y i x i − b ∑ i = 1 N α i y i + ∑ i = 1 N α i = − 1 2 ( ∑ i = 1 N α i y i x i ) T ( ∑ i = 1 N α i y i x i ) − b ∑ i = 1 N α i y i + ∑ i = 1 N α i = − 1 2 ∑ i = 1 N α i y i x i T ∑ i = 1 N α i y i x i − b ∑ i = 1 N α i y i + ∑ i = 1 N α i = − 1 2 ∑ i = 1 N α i y i x i T ∑ i = 1 N α i y i x i + ∑ i = 1 N α i = − 1 2 ∑ i = 1 N ∑ j = 1 N α i y i x i T α j y j x j + ∑ i = 1 N α i = ∑ i = 1 N α i − 1 2 ∑ i = 1 N ∑ j = 1 N α i α j y i y j x i T x j \begin{aligned} L(w,b,\xi,\alpha,\mu) & = \frac{1}{2}||w||^2 +C\sum\limits_{i=1}^{N}\xi_i + \sum\limits_{i=1}^{N}\alpha_i[1 - \xi_i - y_i(w^T x_i +b)] + \sum\limits_{i=1}^{N}\mu_i(-\xi_i)  \\&= \frac{1}{2}||w||^2 - \sum\limits_{i=1}^{N}\alpha_i[y_i(w^Tx_i + b) - 1 + \xi_i] + \sum\limits_{i=1}^{N}\alpha_i\xi_i \\& = \frac{1}{2}||w||^2 - \sum\limits_{i=1}^{N}\alpha_i[y_i(w^Tx_i + b) - 1] \\& = \frac{1}{2}w^Tw-\sum\limits_{i=1}^{N}\alpha_iy_iw^Tx_i - \sum\limits_{i=1}^{N}\alpha_iy_ib + \sum\limits_{i=1}^{N}\alpha_i \\& = \frac{1}{2}w^T\sum\limits_{i=1}^{N}\alpha_iy_ix_i -\sum\limits_{i=1}^{N}\alpha_iy_iw^Tx_i - \sum\limits_{i=1}^{N}\alpha_iy_ib + \sum\limits_{i=1}^{N}\alpha_i \\& = \frac{1}{2}w^T\sum\limits_{i=1}^{N}\alpha_iy_ix_i - w^T\sum\limits_{i=1}^{N}\alpha_iy_ix_i - \sum\limits_{i=1}^{N}\alpha_iy_ib + \sum\limits_{i=1}^{N}\alpha_i \\& = - \frac{1}{2}w^T\sum\limits_{i=1}^{N}\alpha_iy_ix_i - \sum\limits_{i=1}^{N}\alpha_iy_ib + \sum\limits_{i=1}^{N}\alpha_i \\& = - \frac{1}{2}w^T\sum\limits_{i=1}^{N}\alpha_iy_ix_i - b\sum\limits_{i=1}^{N}\alpha_iy_i + \sum\limits_{i=1}^{N}\alpha_i \\& = -\frac{1}{2}(\sum\limits_{i=1}^{N}\alpha_iy_ix_i)^T(\sum\limits_{i=1}^{N}\alpha_iy_ix_i) - b\sum\limits_{i=1}^{N}\alpha_iy_i + \sum\limits_{i=1}^{N}\alpha_i \\& = -\frac{1}{2}\sum\limits_{i=1}^{N}\alpha_iy_ix_i^T\sum\limits_{i=1}^{N}\alpha_iy_ix_i - b\sum\limits_{i=1}^{N}\alpha_iy_i + \sum\limits_{i=1}^{N}\alpha_i \\& = -\frac{1}{2}\sum\limits_{i=1}^{N}\alpha_iy_ix_i^T\sum\limits_{i=1}^{N}\alpha_iy_ix_i + \sum\limits_{i=1}^{N}\alpha_i \\& = -\frac{1}{2}\sum\limits_{i=1}^{N}\sum\limits_{j=1}^N\alpha_iy_ix_i^T\alpha_jy_jx_j + \sum\limits_{i=1}^{N}\alpha_i \\& = \sum\limits_{i=1}^{N}\alpha_i - \frac{1}{2}\sum\limits_{i=1}^{N}\sum\limits_{j=1}^N \alpha_i\alpha_jy_iy_jx_i^Tx_j \end{aligned} L(w,b,ξ,α,μ)=21w2+Ci=1Nξi+i=1Nαi[1ξiyi(wTxi+b)]+i=1Nμi(ξi) =21w2i=1Nαi[yi(wTxi+b)1+ξi]+i=1Nαiξi=21w2i=1Nαi[yi(wTxi+b)1]=21wTwi=1NαiyiwTxii=1Nαiyib+i=1Nαi=21wTi=1Nαiyixii=1NαiyiwTxii=1Nαiyib+i=1Nαi=21wTi=1NαiyixiwTi=1Nαiyixii=1Nαiyib+i=1Nαi=21wTi=1Nαiyixii=1Nαiyib+i=1Nαi=21wTi=1Nαiyixibi=1Nαiyi+i=1Nαi=21(i=1Nαiyixi)T(i=1Nαiyixi)bi=1Nαiyi+i=1Nαi=21i=1NαiyixiTi=1Nαiyixibi=1Nαiyi+i=1Nαi=21i=1NαiyixiTi=1Nαiyixi+i=1Nαi=21i=1Nj=1NαiyixiTαjyjxj+i=1Nαi=i=1Nαi21i=1Nj=1NαiαjyiyjxiTxj
所以最后计算结果和线性可分的SVM也一样,唯一不同的只是约束条件。

继续对式子求极大:
max ⁡ α ∑ i = 1 N α i − 1 2 ∑ i = 1 , j = 1 N α i α j y i y j x i T x j s . t .      ∑ i = 1 N α i y i = 0 C − α i − μ i = 0 α i ≥ 0    ( i = 1 , 2 , . . . , m ) μ i ≥ 0    ( i = 1 , 2 , . . . , m ) \max \limits_{\alpha} \quad \sum\limits_{i=1}^{N}\alpha_i - \frac{1}{2}\sum\limits_{i=1,j=1}^{N}\alpha_i\alpha_jy_iy_jx_i^Tx_j \\ s.t. \;\; \sum\limits_{i=1}^{N}\alpha_iy_i = 0\\ C- \alpha_i - \mu_i = 0\\ \alpha_i \geq 0 \;(i =1,2,...,m) \\ \mu_i \geq 0 \;(i =1,2,...,m) αmaxi=1Nαi21i=1,j=1NαiαjyiyjxiTxjs.t.i=1Nαiyi=0Cαiμi=0αi0(i=1,2,...,m)μi0(i=1,2,...,m)
对于 C − α i − μ i = 0 , α i ≥ 0 , μ i ≥ 0 C- \alpha_i - \mu_i = 0 , \alpha_i \geq 0 ,\mu_i \geq 0 Cαiμi=0αi0μi0有:
C − α i = μ i ≥ 0 ⇒ C ≥ α i ⇒ 0 ≤ α i ≤ C \begin{aligned} &C- \alpha_i = \mu_i \ge 0 \\ &\Rightarrow \quad C \ge \alpha_i\\ &\Rightarrow 0 \le \alpha_i \le C \end{aligned} Cαi=μi0Cαi0αiC
基于上面的条件 0 ≤ α i ≤ C 0 \le \alpha_i \le C 0αiC,同时将目标函数变号求极小值,得到:
max ⁡ α ∑ i = 1 N α i − 1 2 ∑ i = 1 , j = 1 N α i α j y i y j x i T x j s . t .      ∑ i = 1 N α i y i = 0 0 ≤ α i ≤ C \max \limits_{\alpha} \quad \sum\limits_{i=1}^{N}\alpha_i - \frac{1}{2}\sum\limits_{i=1,j=1}^{N}\alpha_i\alpha_jy_iy_jx_i^Tx_j \\ s.t. \;\; \sum\limits_{i=1}^{N}\alpha_iy_i = 0\\ 0 \le \alpha_i \le C αmaxi=1Nαi21i=1,j=1NαiαjyiyjxiTxjs.t.i=1Nαiyi=00αiC
上面的式子就是软间隔最大化SVM的优化目标,与硬间隔SVM相比,约束条件中的 0 ≤ α i 0 \le \alpha_i 0αi变为 0 ≤ α i ≤ C 0 \le \alpha_i \le C 0αiC。这样的问题同样可以使用SMO算法求极小值,进而求出w,b。

学习算法

输入:训练数据集 T = { ( x 1 , y 1 ) , ( x 2 , y 2 ) , … , ( x N , y N ) } , T=\{(x_1,y_1),(x_2,y_2),\dots,(x_N,y_N)\}, T={(x1,y1),(x2,y2),,(xN,yN)},

​ 其中, x i ∈ X = R n , y i ∈ Y = { − 1 , + 1 } , i = 1 , 2 , … , N ;    0 < η ⩽ 1 x_i\in \mathcal X=\mathbf R^n , y_i\in \mathcal Y\it =\{-1,+1\}, i=1,2,\dots,N; \ \ 0<\eta\leqslant 1 xiX=Rn,yiY={1,+1},i=1,2,,N;  0<η1
输出:分离超平面和分类决策函数

(1)选择惩罚参数 C > 0 C>0 C>0 ,构造并求解凸二次规划问题
max ⁡ α ∑ i = 1 N α i − 1 2 ∑ i = 1 , j = 1 N α i α j y i y j x i T x j s . t .      ∑ i = 1 N α i y i = 0 0 ≤ α i ≤ C \max \limits_{\alpha} \quad\sum\limits_{i=1}^{N}\alpha_i - \frac{1}{2}\sum\limits_{i=1,j=1}^{N}\alpha_i\alpha_jy_iy_jx_i^Tx_j \\s.t. \;\; \sum\limits_{i=1}^{N}\alpha_iy_i = 0\\0 \le \alpha_i \le C αmaxi=1Nαi21i=1,j=1NαiαjyiyjxiTxjs.t.i=1Nαiyi=00αiC
采用SMO算法求得最优解 α ∗ = ( α 1 ∗ , α 2 ∗ , … α N ∗ ) T \alpha^* = (\alpha_1^*,\alpha_2^*,\ldots\alpha_N^*)^T α=(α1,α2,αN)T

(2)计算 w ∗ = ∑ i = 1 N α i ∗ y i x i w^* = \sum_{i=1}^N \alpha_i^*y_ix_i w=i=1Nαiyixi

(3)找到所有的S个支持向量 ( x s , y s ) (x_s,y_s) (xs,ys),计算:
b s ∗ = y s − ( w ∗ ) T x s = y s − ∑ i = 1 m α i ∗ y i x i T x s b^*_s = y_s - (w^*)^Tx_s = y_s -\sum\limits_{i=1}^{m}\alpha_i^{*}y_ix_i^Tx_s bs=ys(w)Txs=ysi=1mαiyixiTxs
最终得到:
b ∗ = 1 S ∑ i = 1 S b s ∗ b^{*} = \frac{1}{S}\sum\limits_{i=1}^{S}b_s^{*} b=S1i=1Sbs
(4) 得到划分超平面与决策函数:
w ∗ T x + b ∗ = 0 f ( x ) = s i g n ( w ∗ T x + b ∗ ) w^{*T}x+b^* = 0 \\ f(x) = sign(w^{*T} x + b^{*}) wTx+b=0f(x)=sign(wTx+b)

软间隔最大化的支持向量

硬间隔最大化SVM,所有满足 α i ∗ > 0 \alpha_{i}^{*}\gt0 αi>0的样本 i i i即为支持向量。对于软间隔最大化的SVM,由于引入了松弛变量 ξ i \xi_i ξi,支持向量的判断稍微复杂一些。

如下图所示, ξ i ∣ ∣ w ∣ ∣ 2 \frac{\xi_i}{||w||_2} w2ξi 表示实例$x_i $到间隔边界的距离。

在这里插入图片描述

软间隔支持向量 x i x_i xi分布在间隔边界上和间隔边界内,还可能在分离超平面误分类的一侧,具体说明如下:

(1) 如果 α i = 0 \alpha_i = 0 αi=0,那么该样本的约束无效,可能在间隔边界上或者已经被正确分类。如图中所有远离间隔边界的点。

(2) 如果 0 < α i < C 0 \lt \alpha_i \lt C 0<αi<C,且 ξ i = 0 ,      y i ( w T x i + b ) − 1 = 0 \xi_i = 0 ,\;\; y_i(w^Tx_i + b) - 1 = 0 ξi=0,yi(wTxi+b)1=0,即点在间隔边界上(蓝框部分)。

(3) 如果 α i = C \alpha_i = C αi=C,说明这是一个可能比较异常的点,需要检查此时 ξ i \xi_i ξi

  • 如果 0 < ξ i < 1 0 <\xi_i < 1 0<ξi<1,那么点被正确分类,点位于间隔边界和超平面之间(黄框部分)。

  • 如果 ξ i = 1 \xi_i =1 ξi=1,那么点在分离超平面上。

  • 如果 ξ i > 1 \xi_i \gt 1 ξi>1,那么点在超平面的误分类一侧(红框部分)。

  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
支持向量机(SVM)是一种二分类模型,它的核心思想是找到一个最优的划分超平面,使得离该超平面最近的样本点距离最大,从而实现对样本进行分类。 然而,在实际应用中,数据往往是带有噪声的,可能存在一些离群点(outliers)或者数据点不可避免地分布在错误的一侧。因此,当数据存在一定的噪声时,划分超平面很难完美地将所有样本点正确划分。这时,我们需要引入间隔(Soft Margin)的概念。 间隔允许一定程度上的分类误差,即允许一些样本点位于超平面错误的一侧。为了实现间隔,我们需要对原始的SVM模型进行一些扩展。即在原始的约束条件中增加一个松弛变量(slack variable) $\xi_i$,使得样本点 $x_i$ 可以位于超平面的错误侧。 $$y_i(w\cdot x_i+b)\geq 1-\xi_i, \xi_i \geq 0, i=1,2,\cdots,m$$ 其中,$\xi_i$ 表示样本点 $x_i$ 到正确的分类超平面的距离,$m$ 是样本点的数量。目标是最小化误差 $\sum_{i=1}^m{\xi_i}$,同时也要最大化超平面到样本点的最小距离。 $$\min_{w,b,\xi}\frac{1}{2}\|w\|^2+C\sum_{i=1}^m{\xi_i}$$ 其中,$C$ 是一个超参数,用来平衡最小化误差和最大化距离两个目标之间的关系。$C$ 越大,对误差的容忍度越小,模型的复杂度越高,可能会导致过拟合;$C$ 越小,对误差的容忍度越大,模型的复杂度越低,可能会导致欠拟合。 除了间隔之外,正则化(regularization)也是SVM中常用的一种技术,用来防止模型过拟合。在SVM中,正则化通常采用L2范数或L1范数,将其加入到目标函数中,形成新的目标函数。 $$\min_{w,b}\frac{1}{2}\|w\|^2+C\sum_{i=1}^m{L(y_i(w\cdot x_i+b))}$$ 其中,$L(y_i(w\cdot x_i+b))$ 是损失函数,用来度量样本点 $x_i$ 的预测值和真实值之间的差异。常用的损失函数有Hinge Loss和Squared Hinge Loss。 正则化的作用是通过对模型参数进行约束,来避免模型过拟合。正则化的一般思想是在目标函数中加入一个惩罚项,对模型参数进行惩罚,使得模型更加简单,更具有泛化能力。在SVM中,正则化的作用是通过对分界面的斜率进行限制,来使得分界面更加平滑,更容易被推广到新的数据上。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值