(《机器学习》完整版系列)附录 ——1、向量与矩阵(学习一些公式及其推导技巧)

本文介绍了深度学习中常用的矩阵和向量的概念,包括它们的表示方法、乘法运算、转置以及内积。还特别讨论了矩阵乘法的表示和计算,以及对角矩阵和迹的概念。这些基础知识对于理解和应用深度学习中的数学原理至关重要。
摘要由CSDN通过智能技术生成

机器学习特别是深度学习,常常用到偏导数和梯度,一些公式的推导需要用到较深的数学知识,为方便进一步深造的同学学习,
这里我们结合【西瓜书附录第A.2节的导数】学习一些公式和推导技巧。

向量与矩阵

本博不详细讲解向量与矩阵的内容,而是从需要和实用的角度出发,强调一些知识点。

(1)代表元记法

为方便,我们先引入矩阵及向量的代表元记法,即不写出完整的矩阵和向量,而是以其元素的通式来代表,如
A = ( a 11 a 12 ⋯ a 1 n a 21 a 22 ⋯ a 2 n ⋮ ⋮ ⋮ ⋮ a m 1 a m 2 ⋯ a m n ) = ( [ a i j ] i j ) m × n \begin{align} \mathbf{A} & = \left(\begin{matrix} a_{11} & a_{12} & \cdots & a_{1n} \\ a_{21} & a_{22} & \cdots & a_{2n} \\ \vdots & \vdots & \vdots & \vdots \\ a_{m1} & a_{m2} & \cdots & a_{mn} \\ \end{matrix}\right)\notag \\ & =\left( \left[a_{ij}\right]_{ij} \right)_{m\times n }\tag{A1} \end{align} A= a11a21am1a12a22am2a1na2namn =([aij]ij)m×n(A1)
其中,左边 A \mathbf{A} A表示矩阵,右边我们从外往里看:外层小括号“ (   ) m × n (\ )_{m\times n} ( )m×n”表示矩阵,其下标 m × n m\times n m×n是矩阵的“大小”为 m m m n n n列(通常省略),内层中括号“ [   ] i j [\ ]_{ij} [ ]ij”表示矩阵 i i i j j j列处的元素,两下标以“左行右列”的顺序确定对应元素位置(约定:两个下标变元表示它是矩阵的元素,第一个变元表示行号,第二个表示列号,即“左行右列”;只含一个下标变元时,它表示列向量的元素,其下标表示行号);当行列下标省略,时通过上下文或习惯( i i i表行 j j j表列)确定,中括号内“ a i j a_{ij} aij”表示通式,实际上是关于 i , j i,j i,j的一个函数“ a i j = f ( i , j ) a_{ij}=f(i,j) aij=f(i,j)”。

矩阵中指示“行”与“列”的下标,与选用的字母无关,而与字母的“左右位置”有关,这点很重要,我们以矩阵的转置体会下标的“左行右列”的意义:
A T = ( [ a i j ] i j ) T = ( [ a i j ] j i ) (以 j 行 i 列通式表示) = ( [ a j i ] i j ) (以 i 行 j 列通式表示) \begin{align} \mathbf{A}^\mathrm{T} & =\left( \left[a_{ij}\right]_{ij} \right)^\mathrm{T}\notag \\ & =\left( \left[a_{ij}\right]_{ji} \right)\qquad \text{(以$j$行$i$列通式表示)} \tag{A2} \\ & =\left( \left[a_{ji}\right]_{ij} \right)\qquad \text{(以$i$行$j$列通式表示)} \tag{A3} \end{align} AT=([aij]ij)T=([aij]ji)(以ji列通式表示)=([aji]ij)(以ij列通式表示)(A2)(A3)
注1:这种“ [   ] i j [\ ]_{ij} [ ]ij”表示矩阵元素的方式是博主首创的,它非常简明,利于处理通式变量与元素位置变量的关系,如,式(A2)、式(A3)。
注2:一般教材为了表达通式将矩阵记为: A = ( ( A ) i j ) \mathbf{A}=((\mathbf{A})_{ij}) A=((A)ij),这样将位置变量和函数变量混在一起,有时易引起混淆,因为,有时二者的次序并不一致,如,式(A2)、式(A3)。

自然地,当矩阵退化成向量时,有
a = ( [ a i ] i ) m × 1 (矩阵表达) = ( [ a i ] ) (矩阵表达的简化) = ( a 1 ; a 2 ; ⋯   ; a n ) (列向量表达) \begin{align} \boldsymbol{a} & =\left( \left[a_{i}\right]_i \right)_{m\times 1 }\qquad \text{(矩阵表达)}\tag{A4} \\ & =\left( \left[a_{i}\right] \right)\qquad \text{(矩阵表达的简化)}\tag{A5} \\ & =(a_1;a_2;\cdots;a_n)\qquad \text{(列向量表达)}\tag{A6} \end{align} a=([ai]i)m×1(矩阵表达)=([ai])(矩阵表达的简化)=(a1;a2;;an)(列向量表达)(A4)(A5)(A6)
其中,粗体小写 a \boldsymbol{a} a表示(列)向量(通常所说的向量默认是指列向量,行向量为列向量的转置),中括号下标 i i i表示列向量的第 i i i个元素,通常省略,通式 a i a_{i} ai表示以变量为 i i i的一个式子,括号外的 m × 1 m\times 1 m×1是向量的“大小”(通常省略),表示向量有 m m m个元素。

行向量用列向量的转置来表示
a T = ( [ a i ] i ) m × 1 T (矩阵表达) = ( [ a i ] ) T (矩阵表达的简化) = ( a 1 , a 2 , ⋯   , a n ) (行向量表达) \begin{align} \boldsymbol{a}^\mathrm{T} & =\left( \left[a_{i}\right]_i \right)_{m\times 1 }^\mathrm{T}\qquad \text{(矩阵表达)}\tag{A7} \\ & =\left( \left[a_{i}\right] \right)^\mathrm{T}\qquad \text{(矩阵表达的简化)}\tag{A8} \\ & =(a_1,a_2,\cdots,a_n)\qquad \text{(行向量表达)}\tag{A9} \end{align} aT=([ai]i)m×1T(矩阵表达)=([ai])T(矩阵表达的简化)=(a1,a2,,an)(行向量表达)(A7)(A8)(A9)
其中, i i i为通式的变量,矩阵在转置前为一列( m × 1 {m\times 1 } m×1),转置后为一行( 1 × m {1\times m } 1×m)。

(2)乘法

a T a \boldsymbol{a}^\mathrm{T}\boldsymbol{a} aTa为标量 ∣ ∣ a ∣ ∣ 2 2 ||\boldsymbol{a}||^2_2 ∣∣a22 a T b \boldsymbol{a}^\mathrm{T}\boldsymbol{b} aTb称为向量 a \boldsymbol{a} a b \boldsymbol{b} b的内积
a T b = ∑ i = 1 n a i b i \begin{align} \boldsymbol{a}^\mathrm{T}\boldsymbol{b}=\sum_{i=1}^na_{i}b_{i} \tag{A10} \end{align} aTb=i=1naibi(A10)

a a T \boldsymbol{a}\boldsymbol{a}^\mathrm{T} aaT却为矩阵
a a T = ( [ a i ] ) ( [ a i ] ) T = ( [ a i a j ] i j ) \begin{align} \boldsymbol{a}\boldsymbol{a}^\mathrm{T} & =\left( \left[a_{i}\right] \right) \left( \left[a_{i}\right] \right)^\mathrm{T}\notag \\ & =\left( \left[a_{i}a_{j}\right]_{ij} \right) \tag{A11} \end{align} aaT=([ai])([ai])T=([aiaj]ij)(A11)
更一般地,有
a b T = ( [ a i b j ] i j ) \begin{align} \boldsymbol{a}\boldsymbol{b}^\mathrm{T} & =\left( \left[a_{i}b_{j}\right]_{ij} \right) \tag{A12} \end{align} abT=([aibj]ij)(A12)

矩阵可视为列向量(或行向量)组成,如视为列向量,则
X = ( x 1 , x 2 , ⋯   , x n ) X T = ( x 1 , x 2 , ⋯   , x n ) T = ( x 1 T ; x 2 T ; ⋯   ; x n T ) \begin{align} \mathbf{X} & =(\boldsymbol{x}_1,\boldsymbol{x}_2,\cdots,\boldsymbol{x}_n)\tag{A13} \\ \mathbf{X}^\mathrm{T} & =(\boldsymbol{x}_1,\boldsymbol{x}_2,\cdots,\boldsymbol{x}_n)^\mathrm{T}\notag \\ & =(\boldsymbol{x}_1^\mathrm{T};\boldsymbol{x}_2^\mathrm{T};\cdots;\boldsymbol{x}_n^\mathrm{T}) \tag{A14} \end{align} XXT=(x1,x2,,xn)=(x1,x2,,xn)T=(x1T;x2T;;xnT)(A13)(A14)
注意:式(A14)中包含两层转置:第一层是“括号(\ )”中逗号(或空格)变分号" ; ; ;"(一行变为一列),第二层是每个向量 x i \boldsymbol{x}_i xi都转置为 x i T \boldsymbol{x}_i^\mathrm{T} xiT

我们再用上述代表元记法表示矩阵乘法:
A B = ( [ a i k ] ) ( [ b k j ] ) = ( [ ∑ k = 1 n a i k b k j ] i j ) = ( [ a i ⋅ b ⋅ j ] i j ) (由式(A10)) \begin{align} \mathbf{AB} & =\left( \left[ a_{ik} \right] \right) \left( \left[ b_{kj} \right] \right)\notag \\ & =\left( \left[ \sum_{k=1}^na_{ik}b_{kj} \right]_{ij} \right) \tag{A15} \\ & =\left( \left[ \boldsymbol{a}_{i\cdot}\boldsymbol{b}_{\cdot j} \right]_{ij} \right)\quad \text{(由式(A10))} \tag{A16} \end{align} AB=([aik])([bkj])= [k=1naikbkj]ij =([aibj]ij)(由式(A10)(A15)(A16)
其中, a i ⋅ \boldsymbol{a}_{i\cdot } ai为矩阵 A \mathbf{A} A的第 i i i行(向量)、 b ⋅ j \boldsymbol{b}_{\cdot j} bj为矩阵 B \mathbf{B} B的第 j j j列(向量),这就是通常所说的矩阵乘法为“ i i i行乘 j j j列”。 “大小”有限定(乘的元素相配: A \mathbf{A} A的列数等于 B \mathbf{B} B的行数):若 A \mathbf{A} A的“大小”为 r × s r\times s r×s, 则 B \mathbf{B} B的“大小”应为 s × t s\times t s×t,积的“大小”为 r × t r\times t r×t(记忆:取两端,消中间,即 ( r × s ) × ( s × t ) (r\times s)\times(s\times t) (r×s)×(s×t) ( r × t ) (r\times t) (r×t))。

式(A15)中,当 b \boldsymbol{b} b退化为向量时,有
A b = ( [ a i k ] ) ( [ b k ] ) = ( [ ∑ k = 1 n a i k b k ] ) \begin{align} \mathbf{A}\boldsymbol{b} =\left( \left[ a_{ik} \right] \right) \left( \left[ b_{k} \right] \right) =\left( \left[ \sum_{k=1}^na_{ik}b_{k} \right] \right) \tag{A17} \end{align} Ab=([aik])([bk])=([k=1naikbk])(A17)
即矩阵乘以向量,得到一个向量,“大小”有限定:若 A \mathbf{A} A的“大小”为 m × n m\times n m×n, 则 b \boldsymbol{b} b的“大小”应为 n × 1 n\times 1 n×1,积的“大小”为 m × 1 m\times 1 m×1

式(A17)中,当 b = 1 \boldsymbol{b}=\boldsymbol{1} b=1(元素全为1的向量)时,有
A 1 = ( [ ∑ k = 1 n a i k ] ) \begin{align} \mathbf{A}\boldsymbol{1} =\left( \left[ \sum_{k=1}^na_{ik} \right] \right) \tag{A18} \end{align} A1=([k=1naik])(A18)
即为矩阵 A \mathbf{A} A各行“小计”形成的向量。

式(A15)中,当 B = A T \mathbf{B}=\mathbf{A}^{\mathrm{T}} B=AT时,有
A A T = ( [ ∑ k = 1 n a i k a k j ] i j ) \begin{align} \mathbf{A}\mathbf{A}^{\mathrm{T}} & =\left( \left[ \sum_{k=1}^na_{ik}a_{kj} \right]_{ij} \right) \tag{A19} \end{align} AAT= [k=1naikakj]ij (A19)
矩阵 A \mathbf{A} A以列向量表示时, A = ( a 1 , a 2 , ⋯   , a n ) \mathbf{A}=(\boldsymbol{a}_1,\boldsymbol{a}_2,\cdots,\boldsymbol{a}_n) A=(a1,a2,,an),则式(A19)变为
A A T = ( a 1 , a 2 , ⋯   , a n ) ( a 1 T ; a 2 T ; ⋯   ; a n T ) (由式(A14)) = ∑ i = 1 n a i a i T \begin{align} \mathbf{A}\mathbf{A}^{\mathrm{T}} & =(\boldsymbol{a}_1,\boldsymbol{a}_2,\cdots,\boldsymbol{a}_n)(\boldsymbol{a}_1^{\mathrm{T}};\boldsymbol{a}_2^{\mathrm{T}};\cdots;\boldsymbol{a}_n^{\mathrm{T}})\quad \text{(由式(A14))}\notag \\ & =\sum_{i=1}^n\boldsymbol{a}_i\boldsymbol{a}_i^{\mathrm{T}} \tag{A20} \end{align} AAT=(a1,a2,,an)(a1T;a2T;;anT)(由式(A14)=i=1naiaiT(A20)
其中, a i a i T \boldsymbol{a}_i\boldsymbol{a}_i^{\mathrm{T}} aiaiT由式(A11)计算。

前面都是将矩阵化为其通式,也可以反过来用:已知通式关系式写出对应的矩阵关系式,我们来看一例
( 1 + μ ) f k q = ∑ j = 1 l + u s j k f j q + μ y k q \begin{align} (1+\mu )f^q_k=\sum_{j=1}^{l+u}s^k_jf^q_j+\mu y^q_k \tag{A21} \end{align} (1+μ)fkq=j=1l+usjkfjq+μykq(A21)

( 1 + μ ) ( [ f k q ] k q ) = ( [ ∑ j = 1 l + u s j k f j q ] k q ) + μ ( [ y k q ] k q ) = ( [ s j k ] k j ) ( [ f j q ] j q ) + μ ( [ y k q ] k q ) (由式(A15)) 即: ( 1 + μ ) F = S F + μ Y \begin{align} (1+\mu )([f^q_k]_{kq}) & =([\sum_{j=1}^{l+u}s^k_jf^q_j]_{kq})+\mu ([y^q_k]_{kq})\notag \\ & =([s^k_j]_{kj}) ([f^q_j]_{jq}) +\mu ([y^q_k]_{kq}) \quad \text{(由式(A15))}\notag \\ \text{即:} \notag \\ (1+\mu )\mathbf{F} & =\mathbf{S}\mathbf{F}+\mu \mathbf{Y} \tag{A22} \end{align} (1+μ)([fkq]kq)即:(1+μ)F=([j=1l+usjkfjq]kq)+μ([ykq]kq)=([sjk]kj)([fjq]jq)+μ([ykq]kq)(由式(A15)=SF+μY(A22)

注意:矩阵相乘没有交换律,例如:
( A − B ) ( A − B ) T = ( A − B ) ( A T − B T ) = A A T − A B T − B A T + B B T \begin{align} (\mathbf{A}-\mathbf{B})(\mathbf{A}-\mathbf{B})^\mathrm{T} & =(\mathbf{A}-\mathbf{B})(\mathbf{A}^\mathrm{T}-\mathbf{B}^\mathrm{T})\notag \\ & =\mathbf{A}\mathbf{A}^\mathrm{T}-\mathbf{A}\mathbf{B}^\mathrm{T}-\mathbf{B}\mathbf{A}^\mathrm{T}+\mathbf{B}\mathbf{B}^\mathrm{T} \tag{A23} \end{align} (AB)(AB)T=(AB)(ATBT)=AATABTBAT+BBT(A23)

式(A23)中,当 B = I \mathbf{B}=\mathbf{I} B=I时,有
( A − I ) ( A − I ) T = A A T − A − A T + I \begin{align} (\mathbf{A}-\mathbf{I})(\mathbf{A}-\mathbf{I})^\mathrm{T} & =\mathbf{A}\mathbf{A}^\mathrm{T}-\mathbf{A}-\mathbf{A}^\mathrm{T}+\mathbf{I} \tag{A24} \end{align} (AI)(AI)T=AATAAT+I(A24)

式(A24)中,当 A \mathbf{A} A对称时,有
( A − I ) 2 = A 2 − 2 A + I \begin{align} (\mathbf{A}-\mathbf{I})^2 & =\mathbf{A}^2-2\mathbf{A}+\mathbf{I} \tag{A25} \end{align} (AI)2=A22A+I(A25)

式(A23)中,当矩阵退化成向量时,有
( a − b ) ( a − b ) T = a a T − a b T − b a T + b b T \begin{align} (\boldsymbol{a}-\boldsymbol{b})(\boldsymbol{a}-\boldsymbol{b})^\mathrm{T} & =\boldsymbol{a}\boldsymbol{a}^\mathrm{T}-\boldsymbol{a}\boldsymbol{b}^\mathrm{T}-\boldsymbol{b}\boldsymbol{a}^\mathrm{T}+\boldsymbol{b}\boldsymbol{b}^\mathrm{T} \tag{A26} \end{align} (ab)(ab)T=aaTabTbaT+bbT(A26)
式(A26)中各项由式(A12)和式(A11)计算,结果为一个矩阵.

在涉及概率问题中,我们常用到 ( x − μ ) T ( x − μ ) (\boldsymbol{x}-\boldsymbol{\mu })^\mathrm{T}(\boldsymbol{x}-\boldsymbol{\mu }) (xμ)T(xμ) ( x − μ ) ( x − μ ) T (\boldsymbol{x}-\boldsymbol{\mu })(\boldsymbol{x}-\boldsymbol{\mu })^\mathrm{T} (xμ)(xμ)T以及 ( x i − μ ) T ( x j − μ ) (\boldsymbol{x}_i-\boldsymbol{\mu })^\mathrm{T}(\boldsymbol{x}_j-\boldsymbol{\mu }) (xiμ)T(xjμ) ( x i − μ ) ( x j − μ ) T (\boldsymbol{x}_i-\boldsymbol{\mu })(\boldsymbol{x}_j-\boldsymbol{\mu })^\mathrm{T} (xiμ)(xjμ)T

(3)对角矩阵

用一个向量的元素去取代单位矩阵对角线上的1,称为对角矩阵:
Λ d i a g = d i a g ( λ 1 , λ 2 , ⋯   , λ n ) = ( λ 1 λ 2 ⋱ λ n ) \begin{equation} \boldsymbol{\Lambda }_{\mathrm{diag}}=\mathrm{diag}(\lambda _1,\lambda _2,\cdots,\lambda _n)= \left(\begin{matrix} \lambda _1 & & & \\ & \lambda _2 & & \\ & & \ddots & \\ & & & \lambda _n \\ \end{matrix}\right) \tag{A27} \end{equation} Λdiag=diag(λ1,λ2,,λn)= λ1λ2λn (A27)

式(A15)中若有一个为对角矩阵时,则“和式 ∑ k = 1 n \sum_{k=1}^n k=1n”变成一项了
Λ d i a g X = ( [ λ i x i j ] i j ) = ( λ i x i ⋅ ) X Λ d i a g = ( [ x i j λ j ] i j ) = ( λ j x ⋅ j ) \begin{align} \boldsymbol{\Lambda }_{\mathrm{diag}}\mathbf{X} & =([\lambda _ix_{ij}]_{ij}) \tag{A28} \\ & =(\lambda _i\boldsymbol{x}_{i\cdot}) \tag{A29} \\ \mathbf{X}\boldsymbol{\Lambda }_{\mathrm{diag}} & =([x_{ij}\lambda _j]_{ij}) \tag{A30} \\ & =(\lambda _j\boldsymbol{x}_{\cdot j}) \tag{A31} \end{align} ΛdiagXXΛdiag=([λixij]ij)=(λixi)=([xijλj]ij)=(λjxj)(A28)(A29)(A30)(A31)
式(A29)说明矩阵左乘对角矩阵等同于矩阵各行分别乘一个数,式(A31)说明矩阵右乘对角矩阵等同于矩阵各列分别乘一个数.

由式(A28)、式(A30)有
U d i a g X   V d i a g = ( [ u i x i j v j ] i j ) \begin{equation} \mathbf{U }_{\mathrm{diag}}\mathbf{X}\,\mathbf{V }_{\mathrm{diag}}= ([u_ix_{ij}v_j]_{ij}) \tag{A32} \end{equation} UdiagXVdiag=([uixijvj]ij)(A32)

(4)迹
常常用到矩阵的迹,迹定义为矩阵主对角线上元素之和(在方阵上定义迹),即
t r   ( A ) = ∑ i = 1 n a i i \begin{align} \mathrm{tr}\,(\mathbf{A})=\sum_{i=1}^na_{ii} \tag{A33} \end{align} tr(A)=i=1naii(A33)
它是自变量为矩阵的标量函数,它有【西瓜书附录式(A.5)   ∼ \,\thicksim (A.8)】的性质。

t r   ( A B ) = t r   ( [ ∑ i = 1 n a s i b i t ] ) (由式(A15)) = ∑ j = 1 n ∑ i = 1 n a j i b i j (由式(A33)) \begin{align} \mathrm{tr}\,(\mathbf{AB}) & = \mathrm{tr}\, \left( [\sum_{i=1}^na_{si}b_{it}] \right)\qquad \text{(由式(A15))}\notag \\ & = \sum_{j=1}^n \sum_{i=1}^na_{ji}b_{ij} \qquad \text{(由式(A33))} \tag{A34} \end{align} tr(AB)=tr([i=1nasibit])(由式(A15)=j=1ni=1najibij(由式(A33)(A34)

我们看看迹的有趣的例子:

B = 1 \mathbf{B}=\mathbf{1} B=1(元素全为1的矩阵)时,式(A34)变为
t r   ( A 1 ) = ∑ j = 1 n ∑ i = 1 n a j i \begin{align} \mathrm{tr}\,(\mathbf{A1}) & = \sum_{j=1}^n \sum_{i=1}^na_{ji} \tag{A35} \end{align} tr(A1)=j=1ni=1naji(A35)
这时的迹是矩阵中所有元素之和。

B = A T \mathbf{B}=\mathbf{A}^\mathrm{T} B=AT时,式(A34)变为
t r   ( A A T ) = ∑ j = 1 n ∑ i = 1 n a j i 2 \begin{align} \mathrm{tr}\,(\mathbf{A}\mathbf{A}^\mathrm{T}) & = \sum_{j=1}^n \sum_{i=1}^na_{ji}^2 \tag{A36} \end{align} tr(AAT)=j=1ni=1naji2(A36)
这时的迹是矩阵中所有元素的平方和。

如下式(A37)、式(A38)表明:虽然矩阵没有交换律,但迹相等(主对角线上的元素相等)
{ A T A ≠ A A T t r   ( A T A ) = t r   ( A A T ) \begin{align} \begin{cases} \mathbf{A}^\mathrm{T}\mathbf{A}\neq \mathbf{A}\mathbf{A}^\mathrm{T} \\ \mathrm{tr}\,(\mathbf{A}^\mathrm{T}\mathbf{A}) = \mathrm{tr}\,(\mathbf{A}\mathbf{A}^\mathrm{T}) \\ \end{cases} \tag{A37} \end{align} {ATA=AATtr(ATA)=tr(AAT)(A37)
{ A B ≠ B A t r   ( A B ) = t r   ( B A ) \begin{align} \begin{cases} \mathbf{A}\mathbf{B}\neq \mathbf{B}\mathbf{A} \\ \mathrm{tr}\,(\mathbf{A}\mathbf{B}) = \mathrm{tr}\,(\mathbf{B}\mathbf{A}) \\ \end{cases} \tag{A38} \end{align} {AB=BAtr(AB)=tr(BA)(A38)

本文为原创,您可以:

  • 点赞(支持博主)
  • 收藏(待以后看)
  • 转发(他考研或学习,正需要)
  • 评论(或讨论)
  • 引用(支持原创)
  • 不侵权

上一篇:1-1 机器也学习?
下一篇:2、偏导数与梯度(以矩阵的整体形式表述)

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值