人工智能专业基础-线性代数复习笔记(二)

人工智能专业基础-线性代数复习笔记(二

矩阵

矩阵是整个线性代数的核心知识,每一章基本上都围绕矩阵的不同方面展开,那么矩阵实际上完成了什么事情呢?–向量在空间中的线性变换

什么是矩阵?

在教材中通常定义为:由 m × n m \times n m×n个数 a i j ( 1 ≤ i ≤ m , 1 ≤ j ≤ n ) a_{ij}(1\leq i \leq m,1\leq j \leq n) aij1im,1jn排成的 m m m n n n列的表称为 m m m n n n列的矩阵,记为:

A = [ a 11 a 12 ⋯ a 1 n a 21 a 22 ⋯ a 2 n ⋮ ⋮ ⋮ a m 1 a m 2 a m n ] \bold{A}=\begin{bmatrix} a_{11} & a_{12} & \cdots & a_{1n}\\ a_{21} & a_{22} & \cdots & a_{2n}\\ \vdots & \vdots & & \vdots\\ a_{m1} & a_{m2} & & a_{mn} \end{bmatrix} A=a11a21am1a12a22am2a1na2namn

向量就是一种最简单的矩阵。 n n n维行向量可以理解为一个 1 × n 1\times n 1×n的特殊矩阵,而 n n n维列向量可以理解为一个 n × 1 n \times 1 n×1的特殊矩阵。

除此之外,还有以下一些矩阵的定义需要我们理解。

  1. 方阵。方阵是行数等于列数的矩阵,即 m = n m=n m=n。整体呈现出正方向的形态,取名为方阵。

  2. 对角矩阵。对角矩阵是非主对角线上的元素均为 0 0 0的矩阵,如

    A = [ 1 0 0 0 2 0 0 0 3 ] \bold{A}=\begin{bmatrix} 1 & 0 & 0 \\ 0 & 2 & 0 \\ 0 & 0 & 3 \end{bmatrix} A=100020003

    对角矩阵必为方阵

  3. 单位矩阵。单位矩阵是主对角线元素均为 1 1 1的对角矩阵,如

    A = [ 1 0 0 0 1 0 0 0 1 ] \bold{A}=\begin{bmatrix} 1 & 0 & 0 \\ 0 & 1 & 0 \\ 0 & 0 & 1 \end{bmatrix} A=100010001

    单位矩阵必然是对角矩阵,也必然是方阵

  4. 对称矩阵。对称矩阵是与其转置矩阵相同的矩阵。对称矩阵在矩阵压缩处理、图论中有重要作用。对称矩阵也是方阵

矩阵加法和数乘

矩阵加法和数乘是一类基本的运算。在矩阵加法中,对应项相加得到新的矩阵,在矩阵数乘中,对应项相乘得到新的矩阵。那么这就意味着,两个做运算的矩阵维数要是相同的,即 m 1 = m 2 , n 1 = n 2 m_1=m_2,n_1=n_2 m1=m2,n1=n2。得到的新的矩阵也和原来两个矩阵维数相同,例如 [ 1 4 2 5 3 6 ] + [ 1 4 2 5 3 6 ] = [ 2 8 4 10 6 12 ] \begin{bmatrix}1 & 4\\2 & 5 \\ 3 & 6 \end{bmatrix}+\begin{bmatrix}1 & 4\\2 & 5 \\ 3 & 6 \end{bmatrix}=\begin{bmatrix}2 & 8\\4 & 10 \\ 6 & 12 \end{bmatrix} 123456+123456=24681012

矩阵乘法

矩阵乘法是一种与数乘截然不同的乘法方式。两个矩阵能够相乘当且仅当第一个矩阵的列数 n 1 n_1 n1等于第二个矩阵的行数 m 2 m_2 m2。如果一个 m 1 × n 1 m_1\times n_1 m1×n1的矩阵与一个 m 2 × n 2 m_2\times n_2 m2×n2的矩阵相乘,得到的就是 m 1 × n 2 m_1\times n_2 m1×n2的矩阵。例如,
[ 1 4 2 5 3 6 ] × [ 1 1 ] = [ 1 × 1 + 4 × 1 2 × 1 + 5 × 1 3 × 1 + 6 × 1 ] = [ 5 7 9 ] \begin{bmatrix}1 & 4\\2 & 5 \\ 3 & 6 \end{bmatrix} \times \begin{bmatrix}1 \\ 1 \end{bmatrix} = \begin{bmatrix}1 \times 1+ 4 \times 1\\ 2 \times 1 + 5 \times 1 \\ 3 \times 1 + 6 \times 1\end{bmatrix} = \begin{bmatrix}5\\ 7 \\ 9 \end{bmatrix} 123456×[11]=1×1+4×12×1+5×13×1+6×1=579

  1. 矩阵相乘维数必须有一定的要求,即第一个矩阵的列数 n 1 n_1 n1等于第二个矩阵的行数 m 2 m_2 m2
  2. 相乘就是第一个矩阵的每一行与第二个矩阵的每一列做数乘相加,得到新矩阵对应位置的元素。

理解矩阵乘法这个东西对人工智能专业的各种神经网络模型的数学推导和计算部分有关键的作用。这不单单是一个定义出来的一种乘法,矩阵和乘法还有许多深刻的实际含义在其中。

矩阵乘法中的特殊形式:矩阵向量乘法

矩阵乘以一个向量通常写作 A x Ax Ax,其中左边是矩阵 A A A,右边是列向量 x x x。矩阵向量乘法可以看作矩阵乘法的特殊形式。特殊之处就在与列向量可以看作列数为 1 1 1的矩阵。在上面的例子中, A = [ 1 4 2 5 3 6 ] A = \begin{bmatrix}1 & 4\\2 & 5 \\ 3 & 6 \end{bmatrix} A=123456 x = [ 1 1 ] x = \begin{bmatrix}1 \\ 1 \end{bmatrix} x=[11] A x = [ 1 4 2 5 3 6 ] × [ 1 1 ] = [ 1 × 1 + 4 × 1 2 × 1 + 5 × 1 3 × 1 + 6 × 1 ] = [ 5 7 9 ] Ax=\begin{bmatrix}1 & 4\\2 & 5 \\ 3 & 6 \end{bmatrix} \times \begin{bmatrix}1 \\ 1 \end{bmatrix} = \begin{bmatrix}1 \times 1+ 4 \times 1\\ 2 \times 1 + 5 \times 1 \\ 3 \times 1 + 6 \times 1\end{bmatrix} = \begin{bmatrix}5\\ 7 \\ 9 \end{bmatrix} Ax=123456×[11]=1×1+4×12×1+5×13×1+6×1=579。应该将其理解为,二维空间中的一个向量 [ 1 1 ] \begin{bmatrix}1 \\ 1 \end{bmatrix} [11]或者一个点 [ 1 1 ] \begin{bmatrix}1 \\ 1 \end{bmatrix} [11],经过矩阵 A A A的作用映射成了三维空间的另一个向量 [ 5 7 9 ] \begin{bmatrix}5\\ 7 \\ 9 \end{bmatrix} 579或者点 [ 5 7 9 ] \begin{bmatrix}5\\ 7 \\ 9 \end{bmatrix} 579

从运动的视角来看,矩阵向量乘法可以理解为对线性空间中的运动(线性变换或映射)的一种描述。对于任意线性空间,只要选定一组线性无关的基向量,就可以用矩阵的形式来描述这种运动。

而对于人工智能专业来说,许多人工智能领域常用的算法诸如支持向量机等都是通过将低维空间的数据映射到高维空间然后进行分析的,因为在高维空间中一些本来无法处理的数据集将变得易为处理。而这也就是矩阵向量乘法的实际含义。

线性变换

线性变换就是一种函数,即接受一个输入,给予一个输出,线性变换这种函数的特殊之处在于接受的是一个向量,输出的也是一个向量。如输入一个向量 [ 1 1 ] \begin{bmatrix}1\\1\end{bmatrix} [11],输出一个向量 [ 5 7 9 ] \begin{bmatrix}5\\ 7 \\ 9 \end{bmatrix} 579。之所以用线性变换来描述而不是用函数来描述,是因为它是线性空间中描述“变换的重要概念”。

假设线性空间 V V V中有一线性变换 L L L,使得对于线性空间中任意两个元素 x x x y y y,对于任意实数 a , b a,b a,b,总有 L ( a x + b y ) = a L ( x ) + b L ( y ) L(ax+by)=aL(x)+bL(y) L(ax+by)=aL(x)+bL(y),那么 L L L就是一个线性变换。从空间的角度来讲,就是将一个空间想象为沿着各个坐标轴刻度画出网格线的空间,如果变换前后原点固定、网格线保持平行和等距分布,那么这种变换就是线性的。

例如,矩阵 [ 0 − 1 1 0 ] \begin{bmatrix}0 & -1 \\ 1 & 0 \end{bmatrix} [0110]所描述的变换可以理解为,在二维空间中将基向量 [ 1 0 ] \begin{bmatrix}1 \\0 \end{bmatrix} [10] [ 0 1 ] \begin{bmatrix}0 \\ 1\end{bmatrix} [01]逆时针旋转 90 90 90度得到的新的基向量 [ 0 1 ] \begin{bmatrix}0 \\ 1 \end{bmatrix} [01] [ − 1 0 ] \begin{bmatrix}-1 \\ 0\end{bmatrix} [10],所以二维空间整体也发生了变换,最终在这个矩阵作用下表示的就是一个向量在空间中绕原点逆时针旋转 90 90 90度的变换,变换前后原点固定、网格线仍保持平行和等距分布,因此这就是一种线性变换。

请添加图片描述

如图所示,向量 b \bold{b} b的原始基向量为 i i i j j j,向量 b = 2 i + 2 j \bold{b} = 2i+2j b=2i+2j经过矩阵 [ 0 − 1 1 0 ] \begin{bmatrix}0 & -1 \\ 1 & 0 \end{bmatrix} [0110]的线性变换后,映射为新的向量 b ′ \bold{b'} b,且新的基向量为 i ′ i' i j ′ j' j,且有 b ′ = 2 i ′ + 2 j ′ \bold{b'}=2i'+2j' b=2i+2j

矩阵向量乘法与线性变换的关系

矩阵向量乘法描述的是线性空间的一种线性变换,原始向量在矩阵所对应的线性变换下空间位置乃至维度和形态都发生了变化,这就是矩阵的空间映射作用。矩阵 A A A与列向量 x x x的乘积 A x Ax Ax就等于将原始列向量 x x x的默认基向量分别对应地变换为矩阵 A A Ad的每一列,由矩阵 A A A的各列作为目标向量的新的基向量。

直观的方法就是关注并追踪基向量的去向。例如二维空间里的向量 [ x y ] = x [ 1 0 ] + y [ 0 1 ] \begin{bmatrix}x\\y\end{bmatrix}=x\begin{bmatrix}1\\0\end{bmatrix} + y\begin{bmatrix}0\\1\end{bmatrix} [xy]=x[10]+y[01],那么线性变换下 L ( [ x y ] ) = L ( x [ 1 0 ] + y [ 0 1 ] ) = x L ( [ 1 0 ] ) + y L ( [ 0 1 ] ) L(\begin{bmatrix}x\\y\end{bmatrix}) = L(x\begin{bmatrix}1\\0\end{bmatrix} + y\begin{bmatrix}0\\1\end{bmatrix})=xL(\begin{bmatrix}1\\0\end{bmatrix})+ yL(\begin{bmatrix}0\\1\end{bmatrix}) L([xy])=L(x[10]+y[01])=xL([10])+yL([01]),所以矩阵描述了该线性变换导致原始线性空间中基向量变换后的形态。假如某个线性变换使得原始基向量 [ 1 0 ] \begin{bmatrix}1\\0\end{bmatrix} [10] [ 0 1 ] \begin{bmatrix}0\\1\end{bmatrix} [01]变换为 [ a b ] , [ c d ] \begin{bmatrix}a\\b\end{bmatrix},\begin{bmatrix}c\\d\end{bmatrix} [ab],[cd],那么任意向量 [ x y ] \begin{bmatrix}x\\y\end{bmatrix} [xy]就会变换成目标向量 x [ a b ] + y [ c d ] x\begin{bmatrix}a\\b\end{bmatrix}+y\begin{bmatrix}c\\d\end{bmatrix} x[ab]+y[cd],如果将 [ a b ] , [ c d ] \begin{bmatrix}a\\b\end{bmatrix},\begin{bmatrix}c\\d\end{bmatrix} [ab],[cd]排成一个 2 × 2 2\times2 2×2矩阵 [ a c b d ] \begin{bmatrix}a & c\\b & d\end{bmatrix} [abcd],这个矩阵就描述了线性变换,每一列就表示线性变换之后基向量变换的结果。那么我们也就立刻能够理解矩阵向量乘法的规则了, [ a c b d ] × [ x y ] = x [ a b ] + y [ c d ] = [ a x + c y b x + d y ] \begin{bmatrix}a & c\\b & d\end{bmatrix} \times \begin{bmatrix}x\\y\end{bmatrix}=x\begin{bmatrix}a\\b\end{bmatrix}+y\begin{bmatrix}c\\d\end{bmatrix}=\begin{bmatrix}ax+cy\\bx+dy\end{bmatrix} [abcd]×[xy]=x[ab]+y[cd]=[ax+cybx+dy],那么这些概念就在整体上串在一起了。

矩阵向量乘法与空间映射的关系

矩阵描述的是空间中的一种线性变换,矩阵向量乘法就是将这种变换作用于线性空间中的某个向量,那么作用的结果就使得向量位置以及所在空间的维度和形态都发生了改变。

根据上一小节的推导,我们不难发现这种变换就是将矩阵的每一列当作原来向量所对应的基向量经过变换后得到的新基向量,即矩阵向量乘法应具有如下计算形式:
[ a 11 a 12 ⋯ a 1 n a 21 a 22 ⋯ a 2 n ⋮ ⋮ ⋮ a m 1 a m 2 a m n ] [ x 1 x 2 ⋮ x m ] = x 1 [ a 11 a 21 ⋮ a m 1 ] + x 2 [ a 12 a 22 ⋮ a m 2 ] + ⋯ + x n [ a 1 n a 2 n ⋮ a m n ] \begin{bmatrix} a_{11} & a_{12} & \cdots & a_{1n}\\ a_{21} & a_{22} & \cdots & a_{2n}\\ \vdots & \vdots & & \vdots\\ a_{m1} & a_{m2} & & a_{mn} \end{bmatrix} \begin{bmatrix}x_1 \\ x2 \\ \vdots\\x_m \end{bmatrix}=x_1 \begin{bmatrix}a_{11} \\ a_{21} \\ \vdots\\a_{m1} \end{bmatrix} + x_2 \begin{bmatrix}a_{12} \\ a_{22} \\ \vdots\\a_{m2} \end{bmatrix} + \cdots + x_n\begin{bmatrix}a_{1n} \\ a_{2n} \\ \vdots\\a_{mn} \end{bmatrix} a11a21am1a12a22am2a1na2namnx1x2xm=x1a11a21am1+x2a12a22am2++xna1na2namn
一个原始线性空间经过矩阵 A A A的线性变换作用后得到的新的线性空间就是以矩阵的每一列的线性组合所构成的集合,这个集合称作矩阵 A A A的列空间 C ( A ) C(A) C(A)。例如一个 2 × 3 2\times 3 2×3矩阵 A = [ 1 1 0 2 0 3 ] A = \begin{bmatrix} 1 & 1 \\ 0 & 2 \\ 0 & 3 \end{bmatrix} A=100123的列空间,就是矩阵 A A A线性变换作用后的对应空间,也就是以矩阵 A A A的列的线性组合所构成的空间。很显然,矩阵 A A A等等列空间 C ( A ) C(A) C(A)就是列向量 [ 1 0 0 ] \begin{bmatrix}1 \\ 0 \\0 \end{bmatrix} 100 [ 1 2 3 ] \begin{bmatrix}1 \\ 2 \\ 3 \end{bmatrix} 123张成的空间,列空间维度为 2 2 2,注意这其实是三维空间的一个子空间,我们可以理解为它表示了三维空间中一个平面的所有向量,因此维度为 2 2 2,也称为列空间 C ( A ) C(A) C(A)的秩为 2 2 2。注意理解这个概念。

小结

我们来总结矩阵 A A A与向量 x x x相乘的一些规律。其中矩阵为 m × n m\times n m×n的,向量为 n × 1 n \times 1 n×1的。

  1. 经过矩阵向量乘法, x x x n n n n n n维基向量转换成了 n n n m m m维基向量。

  2. m < n m<n m<n,此时矩阵的行数小于列数,矩阵整体呈现出一种“矮胖的形态”,此时经过矩阵 A A A线性变换后** n n n m m m维基向量能够张成的空间的最大维度就是 m m m**(注意是最大为 m m m,因为这个矩阵的所有列向量不一定能张成 m m m维空间),那么位于 n n n维空间的列向量 x x x经过变换后被映射到一个低维空间中,这样的方法在做主成分分析时非常有用,相信同学们理解后也能够明白为什么主成分分析是那样做的。也就是说,“矮胖”的矩阵具有压缩原始空间、映射高维到低维的作用。

    例如,一个 2 × 3 2\times3 2×3的矩阵 [ a 11 a 12 a 13 a 21 a 22 a 23 ] \begin{bmatrix}a_{11} & a_{12} & a_{13} \\ a_{21} & a_{22} & a_{23}\end{bmatrix} [a11a21a12a22a13a23],与三维空间 R 3 R^3 R3中的一个向量 [ x y z ] \begin{bmatrix}x \\ y \\z \end{bmatrix} xyz相乘,原始三维空间的基向量为 [ 1 0 0 ] 、 [ 0 0 1 ] 、 [ 1 0 0 ] \begin{bmatrix}1 \\ 0 \\0 \end{bmatrix}、\begin{bmatrix}0 \\ 0 \\ 1 \end{bmatrix}、\begin{bmatrix}1 \\ 0 \\0 \end{bmatrix} 100001100经过矩阵 A A A的线性变换后变成了新的基向量 [ a 11 a 21 ] 、 [ a 12 a 22 ] 、 [ a 13 a 23 ] \begin{bmatrix}a_{11} \\ a_{21} \end{bmatrix}、\begin{bmatrix}a_{12} \\ a_{22} \end{bmatrix}、\begin{bmatrix}a_{13} \\ a_{23} \end{bmatrix} [a11a21][a12a22][a13a23]。新的基向量是二维空间中 R 2 R^2 R2中的向量,能够张成的最大空间的维度为二维,这样三维空间就压缩到了二维空间,从立体的空间变成了一个平面。

  3. m > n m > n m>n,也就是矩阵 A A A的行数大于列数,矩阵呈现“瘦高”形态,此时经过矩阵 A A A变换后的** n n n m m m维基向量能够张呈栋空间的最大维度为 n n n**,那么位于 n n n维线性空间的列向量 x x x经过矩阵 A A A的乘法作用后转换成为一个 n n n维或者低于 n n n维的新空间中。也就是说,瘦高的矩阵也有可能压缩原来的线性空间。

    例如一个 3 × 2 3 \times 2 3×2的矩阵 [ a 11 a 12 a 21 a 22 a 31 a 32 ] \begin{bmatrix}a_{11} & a_{12} \\ a_{21} & a_{22} \\ a_{31} & a_{32} \end{bmatrix} a11a21a31a12a22a32乘以一个二维空间中的向量 [ x 1 x 2 ] \begin{bmatrix}x_1 \\ x_2 \end{bmatrix} [x1x2],原始空间中的基向量为 [ 1 0 ] \begin{bmatrix}1 \\ 0 \end{bmatrix} [10] [ 0 1 ] \begin{bmatrix}0 \\ 1 \end{bmatrix} [01],经过矩阵的线性变换后变成了新的基向量 [ a 11 a 21 a 31 ] \begin{bmatrix}a_{11} \\ a_{21} \\ a_{31} \end{bmatrix} a11a21a31 [ a 21 a 22 a 32 ] \begin{bmatrix}a_{21} \\ a_{22} \\ a_{32} \end{bmatrix} a21a22a32,新的基向量虽然是三维空间中的向量,但是因为只有两个,所以最多只能用来表示一个三维空间里的某一平面中的所有向量,它所张成的最大空间是二维;当它们线性无关时,可以用来表示一个三维空间的某一平面,此时矩阵 A A A没有压缩空间;当它们线性相关时,它们张成的空间时一条经过原点的直线,压缩了空间。

  4. m = n m = n m=n,也就是说 A A A为方阵时,位于 n n n维空间的向量 x x x被映射到一个 n n n维或小于 n n n维的新空间中,也就是说, A A A仍然有可能压缩空间。情况与上面相似。

对于矩阵乘法的理解

那么经过上面的讨论,回到刚开始矩阵乘法的问题:我们为什么要定义一个这样的乘法呢?我们可以理解为:因为矩阵的本质是描述线性空间中的某种变换,那么矩阵相乘就是这种线性变换的复合结果,最后用一个新的矩阵来表示这种复合的线性变换结果。那么如何确定这个新的矩阵呢?

以二维空间为例,假设有两个矩阵 [ a b c d ] \begin{bmatrix}a & b \\ c & d \end{bmatrix} [acbd] [ e f g h ] \begin{bmatrix} e & f \\ g & h \end{bmatrix} [egfh],按照矩阵相乘法则,他们的结果为 [ a e + b f a f + b h c e + d g c f + d h ] \begin{bmatrix}ae+bf & af+bh \\ ce+dg & cf+dh \end{bmatrix} [ae+bfce+dgaf+bhcf+dh]

二维空间里任一向量 [ x y ] \begin{bmatrix}x \\ y \end{bmatrix} [xy],首先经过 [ e f g h ] \begin{bmatrix} e & f \\ g & h \end{bmatrix} [egfh]的线性变换,再经过矩阵 [ a b c d ] \begin{bmatrix}a & b \\ c & d \end{bmatrix} [acbd]线性变换,最后结果可以表示为 [ a b c d ] [ e f g h ] [ x y ] \begin{bmatrix}a & b \\ c & d \end{bmatrix}\begin{bmatrix} e & f \\ g & h \end{bmatrix}\begin{bmatrix}x \\ y \end{bmatrix} [acbd][egfh][xy]。第一次变换中将原始基向量变换为 [ e g ] \begin{bmatrix} e \\ g \end{bmatrix} [eg] [ f h ] \begin{bmatrix} f \\ h \end{bmatrix} [fh],因此 [ e f g h ] [ x y ] \begin{bmatrix} e & f \\ g & h \end{bmatrix}\begin{bmatrix}x \\ y \end{bmatrix} [egfh][xy]表示为 x [ e g ] + y [ f h ] x\begin{bmatrix} e \\ g \end{bmatrix}+y\begin{bmatrix} f \\ h \end{bmatrix} x[eg]+y[fh]。第二次变换中,基向量 [ e g ] \begin{bmatrix} e \\ g \end{bmatrix} [eg] [ f h ] \begin{bmatrix} f \\ h \end{bmatrix} [fh]变换为 [ a b c d ] [ e g ] \begin{bmatrix}a & b \\ c & d \end{bmatrix}\begin{bmatrix} e \\ g \end{bmatrix} [acbd][eg] [ a b c d ] [ f h ] \begin{bmatrix}a & b \\ c & d \end{bmatrix}\begin{bmatrix} f \\ h \end{bmatrix} [acbd][fh],注意这里就是矩阵向量乘法发挥作用的地方了,最后也就是得到两个新的基向量 [ a e + b f c e + d g ] \begin{bmatrix}ae+bf \\ ce+dg \end{bmatrix} [ae+bfce+dg] [ a f + b h c f + d h ] \begin{bmatrix}af+bh \\ cf+dh \end{bmatrix} [af+bhcf+dh],因此最终目标向量就表示为 x [ a e + b f c e + d g ] + y [ a f + b h c f + d h ] x\begin{bmatrix}ae+bf \\ ce+dg \end{bmatrix}+y\begin{bmatrix}af+bh \\ cf+dh \end{bmatrix} x[ae+bfce+dg]+y[af+bhcf+dh]。将这两个基向量排成矩阵 [ a e + b f a f + b h c e + d g c f + d h ] \begin{bmatrix}ae+bf & af+bh \\ ce+dg & cf+dh \end{bmatrix} [ae+bfce+dgaf+bhcf+dh],这就代表了两个矩阵相乘的综合作用。

所以,矩阵相乘可以看作矩阵代表的线性变换的复合作用。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值