最优化方法小结

最优化方法——QR分解 本篇博客主要介绍QR分解的原理与流程,分别使用Matlab、Pycharm分别实现了Gram-Schmidt、修正GS、Householder、Givens四种方法对给定矩阵进行对QR分解并进行正交性偏差分析并对比,并在QR分解的应用上进行了拓展(内附数据集和python及matlab代码)。 阅读详情

线性搜索方法

梯度下降

在我的文章深度学习中常见的优化器小结中已经提到梯度下降法,这里,将重要的部分提炼过来。

其计算方法是:
给定待优化模型参数 θ ∈ R d \theta \in R^d θ∈Rd和目标函数 J ( θ ) J(\theta) J(θ)后,算法沿着梯度的相反方向更新 θ \theta θ来最小化 J ( θ ) J(\theta) J(θ)。学习率 η \eta η决定了每一时刻的更新步长。对于每一时刻t用以下步骤来说明梯度下降的流程:
(1)计算目标函数关于参数的梯度 g t = ∇ θ J ( θ ) g_t=\nabla_\theta J(\theta) gt​=∇θ​J(θ)

(2)更新模型参数
θ t + 1 = θ − η g t \theta_{t+1}=\theta-\eta g_t θt+1​=θ−ηgt​

梯度下降与一阶泰勒展开:
假设损失函数是 J ( θ ) J(\theta) J(θ),对其做一阶泰勒展开:
J ( θ ) = J ( θ 0 ) + ( θ − θ 0 ) ∇ θ J ( θ 0 ) J(\theta) = J(\theta_0)+(\theta-\theta_0)\nabla_\theta J(\theta_0) J(θ)=J(θ0​)+(θ−θ0​)∇θ​J(θ0​)
假设, θ − θ 0 = λ d ⃗ \theta-\theta_0=\lambda \vec d θ−θ0​=λd ,其中 d ⃗ \vec d d 是方向向量, λ \lambda λ为标量,描述其长度。不难得出:
( θ − θ 0 ) ∇ θ J ( θ 0 ) = λ ∣ d ⃗ ∣ ∣ ∇ θ J ( θ 0 ) ∣ c o s ( α ) (\theta-\theta_0)\nabla_\theta J(\theta_0) =\lambda |\vec d| |\nabla_\theta J(\theta_0)|cos(\alpha) (θ−θ0​)∇θ​J(θ0​)=λ∣d ∣∣∇θ​J(θ0​)∣cos(α),这里的 α \alpha α是两个向量的夹角。如果我们期望梯度下降的方向最大,那么易知, d ⃗ \vec d d 与梯度是反向的,则: d ⃗ = − ∇ θ J ( θ 0 ) ∣ ∣ ∇ θ J ( θ 0 ) ∣ ∣ \vec d=\frac{-\nabla_\theta J(\theta_0)}{||\nabla_\theta J(\theta_0)||} d =∣∣∇θ​J(θ0​)∣∣−∇θ​J(θ0​)​。
那么,我们有:
θ − θ 0 = λ d ⃗ = λ − ∇ θ J ( θ 0 ) ∣ ∣ ∇ θ J ( θ 0 ) ∣ ∣ θ = θ 0 − λ ∣ ∣ ∇ θ J ( θ 0 ) ∣ ∣ ∇ θ J ( θ 0 ) \theta-\theta_0=\lambda \vec d = \lambda \frac{-\nabla_\theta J(\theta_0)}{||\nabla_\theta J(\theta_0)||} \\ \theta = \theta_0 - \frac{\lambda}{||\nabla_\theta J(\theta_0)||}\nabla_\theta J(\theta_0) θ−θ0​=λd =λ∣∣∇θ​J(θ0​)∣∣−∇θ​J(θ0​)​θ=θ0​−∣∣∇θ​J(θ0​)∣∣λ​∇θ​J(θ0​)
也就得到了梯度下降的公式。

牛顿法

在这里插入图片描述
红色的牛顿法的迭代路径,绿色的是梯度下降法的迭代路径。
从几何的角度出发,牛顿法就是用一个二次曲面去拟合你当前所处位置的局部曲面,而梯度下降法是用一个平面去拟合当前的局部曲面,通常情况下,二次曲面的拟合会比平面更好,所以牛顿法选择的下降路径会更符合真实的最优下降路径。

牛顿法是怎么推导出来的呢?之前做梯度下降的时候我们对其进行了泰勒一阶展开,那么这里我们对其进行二阶展开,可得:
J ( θ ) = J ( θ 0 ) + ( θ − θ 0 ) ∇ θ J ( θ 0 ) + 1 2 ( θ − θ 0 ) T H ( θ 0 ) ( θ − θ 0 ) J(\theta) = J(\theta_0)+(\theta-\theta_0)\nabla_\theta J(\theta_0)+\frac{1}{2}(\theta-\theta_0)^TH(\theta_0)(\theta-\theta_0) J(θ)=J(θ0​)+(θ−θ0​)∇θ​J(θ0​)+21​(θ−θ0​)TH(θ0​)(θ−θ0​)
我们想要在 θ \theta θ处取得极值点,那么只需要 ∇ θ J ( θ ) = 0 \nabla_\theta J(\theta)=0 ∇θ​J(θ)=0,于是我们对上式求导,易得:
∇ θ J ( θ ) = ∇ θ J ( θ 0 ) + H ( θ 0 ) ( θ − θ 0 ) = 0 \nabla_\theta J(\theta)=\nabla_\theta J(\theta_0)+H(\theta_0)(\theta-\theta_0)=0 ∇θ​J(θ)=∇θ​J(θ0​)+H(θ0​)(θ−θ0​)=0
有:
θ t + 1 = θ t − H t − 1 g t \theta_{t+1}=\theta_t-H_t^{-1}g_t θt+1​=θt​−Ht−1​gt​

这就是牛顿法。

拟牛顿法

我们知道求解海瑟矩阵的逆是一个非常复杂的计算,考虑使用一个n阶矩阵 G G G 替代 H − 1 H^{-1} H−1 , 这就是拟牛顿法。

条件1:G 需要满足正定矩阵:
从牛顿法可知:
θ t + 1 = θ t − H t − 1 g t \theta_{t+1}=\theta_t-H_t^{-1}g_t θt+1​=θt​−Ht−1​gt​
其实会在其中再增加一个学习率,也就是:
θ t + 1 = θ t − λ H t − 1 g t θ t + 1 − θ t = − λ H t − 1 g t \theta_{t+1}=\theta_t-\lambda H_t^{-1}g_t \\ \theta_{t+1}-\theta_t=-\lambda H_t^{-1}g_t θt+1​=θt​−λHt−1​gt​θt+1​−θt​=−λHt−1​gt​
带入到一阶泰勒展开式中,我们有:
J ( θ ) = J ( θ 0 ) − λ g t T H t − 1 g t J(\theta) = J(\theta_0)-\lambda g_t^TH_t^{-1}g_t J(θ)=J(θ0​)−λgtT​Ht−1​gt​
因为 H − 1 H^{-1} H−1正定,所以, g t T H t − 1 g t > 0 g_t^TH_t^{-1}g_t >0 gtT​Ht−1​gt​>0。易知 J ( θ ) < J ( θ 0 ) J(\theta) < J(\theta_0) J(θ)<J(θ0​)。
那么,要有一个 G G G去拟合 H − 1 H^{-1} H−1,显然,他需要是正定的

条件2:
显然,只有一个正定条件是不行的,首先牛顿法满足这样的性质:
∇ θ J ( θ ) = ∇ θ J ( θ 0 ) + H ( θ 0 ) ( θ − θ 0 ) ⇒ g t + 1 = g t + H t ( θ t + 1 − θ t ) ⇒ g t + 1 − g t = H t ( θ t + 1 − θ t ) \nabla_\theta J(\theta)=\nabla_\theta J(\theta_0)+H(\theta_0)(\theta-\theta_0) \\ ⇒ g_{t+1} = g_{t}+H_{t}(\theta_{t+1}-\theta_t) \\ ⇒ g_{t+1}-g_t = H_t(\theta_{t+1}-\theta_t) ∇θ​J(θ)=∇θ​J(θ0​)+H(θ0​)(θ−θ0​)⇒gt+1​=gt​+Ht​(θt+1​−θt​)⇒gt+1​−gt​=Ht​(θt+1​−θt​)
令 y t = g t + 1 − g t , δ t = θ t + 1 − θ t y_{t}=g_{t+1}-g_t,\delta_{t}=\theta_{t+1}-\theta_t yt​=gt+1​−gt​,δt​=θt+1​−θt​
y t = H t δ t ⇒ H t − 1 y t = δ t y_{t}=H_t\delta_{t} \\ ⇒ H_t^{-1}y_{t}=\delta_{t} yt​=Ht​δt​⇒Ht−1​yt​=δt​
成为拟牛顿条件,因此 G t G_t Gt​需要满足这样的拟牛顿条件,则有:
G t y t = δ t G_ty_t=\delta_t Gt​yt​=δt​
我们希望有 G t + 1 = G t + Δ G t G_{t+1}=G_t+\Delta G_t Gt+1​=Gt​+ΔGt​。有以下两种算法:
DFP(Davidon-Fletcher-Powell)算法(DFP algorithm)
在这里插入图片描述
BFGS(Broyden-Fletcher-Goldfard-Shano)算法(BFGS algorithm):
在这里插入图片描述

置信域方法

在这里插入图片描述
在信赖域方法的每次迭代中,先确定一个信赖域半径,然后在该半径内计算目标函数的二阶近似的极小值。如果该极小值使得目标函数取得了充分的下降,则进入下一个迭代,并扩大信赖域半径,如果该极小值不能令目标函数取得充分的下降,则说明当前信赖域区域内的二阶近似不够可靠,需要缩小信赖域半径,重新计算极小值。如此迭代下去,直到满足收敛所需的条件。我们结合上图做进一步的解释。

图中,实线表示的是目标函数的等高线,虚线是泰勒二阶近似的等高线:
在这里插入图片描述
因为泰勒二阶近似并不与目标函数完全相同,后面还有个高阶无穷小的值,因此他们的等高线不相同。如果我们使用牛顿法,那么他就会走到 m k ( p ) m_k(p) mk​(p)的极值点。但从图中不难看出,这个点根本没有充分的下降,在信頼域内最好的步骤是Trust region step,这个点比牛顿法的结果要好很多(在该例下)。

不过,这一现象比较依赖于信赖域半径的选取。可以想象,如果信赖域半径非常大,我们仍然会找到 m k ( p ) m_k(p) mk​(p) 的极小值点,但此时,这一步长是不能接受的,我们不会进入下一次迭代,而是要重新设置信赖域半径,重新计算步长。那么步长是否可接受的条件是什么呢?定义变量
在这里插入图片描述
分母表示目标函数的二阶近似的减小量,分子表示目标函数的减小量。如果结果接近于1,说明二阶近似很接近目标函数,这一步长是可以接受的。如果结果接近于0甚至小于0,说明二阶近似与真实的目标函数差距较大,我们需要减小信赖域半径,并重新计算步长。

那么,问题只剩下,如何找到 m k ( p ) m_k(p) mk​(p)的极小值,这里只介绍Cauchy Point这一种方案,对Dogleg感兴趣的同学可以看信頼域这篇文章。

柯西点(Cauchy Point):
这是一种近似求解的方法,固定 p p p方向是梯度下降的方向,沿着这个方向寻找极小值,有:
在这里插入图片描述
可以看出,步长为 τ k Δ k \tau_k\Delta_k τk​Δk​,方向为负梯度方向。至于 τ k \tau_k τk​的来源,可以直接将4.7的结果带入4.3
在这里插入图片描述
在这里插入图片描述
下面展示这种方法在例子中的效果:
在这里插入图片描述

启发式算法

在我的博文启发式算法中已经详细的介绍了相关算法,这里就不再赘述。

参考资料

梯度下降与一阶泰勒展开的关系
李航:《统计学习方法》,清华大学出版社
梯度下降法、牛顿法和拟牛顿法
信頼域

最优化方法——最小二乘法与梯度下降法 本篇博客主要介绍最小二乘法、梯度下降法的原理与流程,分别使用Matlab、Pycharm分别实现了最小二乘法、不同迭代停止条件的梯度下降法等方法对给定优化模型进行求解并进行解之间的误差分析对比,并进行了一定理论与应用(内附数据集和python及matlab代码)。 阅读详情

相关推荐

最优化理论极简入门(第二部分):Fenchel对偶问题

介绍了什么是Fenchel对偶问题,如何从拉格朗日对偶问题推导出Fenchel对偶问题

如月过来打个招呼 2037

【最优化】最优化的相关条件

局部极值点的充分、必要条件的陈述与证明

kodoshinichi的博客 3590

数值优化(Numerical Optimization)学习系列-非线性约束最优化(Nonlinear Constrained Optimization)

概述 在实际问题中不是所有的目标函数或者约束都是线性的,本节主要介绍对于非线性约束或者目标函数如何有效的求解。 1. 非线性约束问题概述 2. 求解非线性约束常用的思路 3. 总结 非线性约束最优化问题 基本形式表示为min f(x) s.t  ci(x)=0,i∈Eci(x)≥0,i∈Imin\ f(x)\ \\ s.t\ \ c_i(x)=0, i \in

互联网广告从业者,长期关注AI、计算广告以及搜广推相关技术,致力于广告投放、广告策略以及底层技术透明可视,太阳底下没有新鲜事,人人可懂可会 1万+

最优化方法——Least Squares

最优化方法——Least Squares前言一、实验目的与要求二、问题三、模型建立与求解3.1 解决问题思路3.2 模型建立3.2.1 最小二乘法问题3.3 实验过程3.3.1 对矩阵A进行QR分解3.3.2 使用梯度下降法逼近最优解3.3.3 分析“近似解”与“准确解”之间的误差3.4 性能分析3.5 存在问题四、小结 肝! 前言 Matrix Inverse Orthogonal Matrices QR Factorization 最优化太顶了… 【注】以下内容全部非官方,纯属记录个人角度的理解

weixin_51128278的博客 1678

Anaconda/Miniconda的删除和安装

要在 MacBook 上删除 Anaconda 或 Miniconda,并重新安装它,您可以按照以下步骤进行操作。

qq_27390023的博客 3026

Box2D-Lite源码阅读笔记(2)

0.初始化函数 static void InitDemo(int index) { world.Clear(); numBodies = 0; numJoints = 0; bomb = NULL; demoIndex = index; demos[index](bodies, joints); } 在这个初始化函数中,一般会默认执行index=0的函数,这个函数就是一个示例,因为示例比较简单,所以也便于研究,示例效果如下。 就是一个方块。 进入第一个示例函数。(忽略我加的注释)

ARTELE的博客 976

常见的几种最优化方法Matlab原理和深度分析

随着学习的深入,博主越来越发现最优化方法的重要性,学习和工作中遇到的大多问题都可以建模成一种最优化模型进行求解,比如我们现在学习的机器学习算法,大部分的机器学习算法的本质都是建立优化模型,通过最优化方法对目标函数(或损失函数)进行优化,从而训练出最好的模型。常见的最优化方法...

dongbao520的博客 5220

星空组网 vs 蒲公英 vs Tailscale:2024年国内免费异地组网工具横评(含实测数据)

本文对2024年国内主流免费异地组网工具星空组网、蒲公英和Tailscale进行了深度横向评测。基于实测数据,重点分析了三者在P2P成功率、中继延迟、传输速度及稳定性方面的表现,为中小企业、远程办公及个人开发者提供了清晰的选择指南。星空组网在国内网络环境下展现出优秀的平衡性。

weixin_29217235的博客 1439

最优化之各种牛顿法

牛顿法可以用于求解非线性方程的根(零点),也可以用于求函数的极值点。当问题是求非线性方程的根时,f(x)=0;当问题是求函数的极值点时,f(x)'=0,也就是我们常见的最优化问题。本文主要基于最优化问题对牛顿法进行介绍。

保持分享欲 2369

【思考模型框架】采用双钻模型:发散(桌面研究/用户访谈)→收敛(需求归类/优先级排序),输出需求规格书、追踪矩阵及产品待办清单。

设计思维双钻模型是一种以用户为中心的需求管理方法,通过"发散-收敛"的双循环确保问题定位准确、方案切实可行。第一钻石(探索→定义)聚焦"找对问题",运用用户访谈、田野调查等方法挖掘真实需求;第二钻石(开发→交付)解决"做对方案",通过原型测试、A/B测试验证可行性。该模型强调低保真验证、多团队协作和真实用户测试,避免资源浪费与伪需求开发。典型应用场景包括产品功能优化、用户体验提升等需要精准落地的需求场景。核心价值在于建立从用户痛点到解决方案的可控闭

奶爸的编程之路,也就一周冷个三天 319

全网最详细的 Ubuntu 18.04 安装Livox mid-360驱动,测试 fast_lio2

Livox mid-360需要使用Livox-SDK2,而非Livox-SDK,以及对应的。并需要修改FAST_LIO中部分代码。Faster—LIO;Faster-LIO:快速激光IMU里程计。Faster-LIO:快速激光IMU里程计PDF。大部分Lidar SLAM都是基于loam进行改造的,基本上是通过线特征edge和面特征(面点)分割进行配准得到里程计的,而fast-lio2是通过一个迭代扩展卡尔曼滤波器去优化帧内位姿,然后通过输入点云与地图进行配准得到里程计,精度和鲁棒性都不错。

努力努力努力 6238

基于下界函数的最优化

点击上方“大数据与人工智能”,“星标或置顶公众号”第一时间获取好内容作者丨stephenDC这是作者的第12篇文章导语生活中我们处处面临最优化的问题,比如,怎么样一个月减...

大数据与人工智能 1076

Python爬虫逆向案例:某云片滑块验证码分析-滑动验证码

今天我们看个滑块。

2201_76125393的博客 1034

最优化 计算机 论文,最优化在数学建模中的应用_毕业论文精选.doc

最优化在数学建模中的应用_毕业论文精选海 南 大 学毕 业 论 文(设计)题 目: 最优化在数学建模中的应用学 号: 008年 级: 2009级学 院: 信息科学技术学系 别: 数学系专 业: 数学与应用数学完成日期: 2013 年 4 月 19 日摘 要最优化方法是一种崭新的技术,它...

weixin_39816362的博客 1056

CATIA二次开发一一一装配体与零件之间的坐标转换

输入参数:Product(产品实例对象)、iPointToTransfor(待转换坐标点CATMathPoint)核心逻辑:通过产品对象的绝对位置变换矩阵,计算逆向变换实现坐标系转换。输出参数:Point(转换后的局部坐标点CATMathPoint)

工业软件开发 1129

基于STM32设计的猪舍养殖的监控系统_325

本课题基于STM32单片机,设计一款能够实时监测猪舍环境的智能监控系统。该系统能够通过温湿度、空气质量、光照强度等传感器实时监测猪舍的环境,并能够通过自动化控制设备(如风扇、照明灯、消毒喷雾等)调节环境参数,确保养殖环境的适宜性。同时,系统还支持通过ESP8266模块实现数据上传与远程控制,使养殖管理者能够通过手机APP或计算机远程监控和控制猪舍环境。

408

详解MATLAB在最优化计算中的应用(pdf版)

本书首先介绍MATLAB的基本使用方法和程序设计基础,然后将MATLAB与最优化计算相结合,基于最优化理论与方法,讲解如何使用MATLAB求解最优化领域的实际问题。这些问题涵盖最优化理论与方法中的线性规划问题、整数规划问题、非线性规划问题、二次规划问题、多目标规划问题、图与网络优化问题和现代智能优化问题。本书内容循序渐进、由浅入深,并结合大量实例帮助读者理解和掌握最优化问题的建模方法与求解技巧。随书光盘中附有全部案例的源代码,并有大量教学视频,方便读者学习与提高。

weixin_42403619的博客 2799

win10 跳过U8环境检测的IE WebControls.rar

win10 安装u8的时候 提示IE WebControls 不通过,这个工具可以欺骗u8的检查。 跳过U8环境检测的IE WebControls。提示导入失败后,重新检测通过。

机器学习中的最优化思想

1、极值问题 1.1、一元函数情况 在高等数学甚至是初等数学中,我们就已经接触过函数的极值这类问题。在初等数学中,例如二次函数的最小值(最大值)求解问题就是一个典型的极值问题,到了大学,我们可以从高等数学的知识中知道,对于任何一个连续函数来说,它的极值点一定是导数为零的点。 1.2、推广到多元函数 以上讨论的都是基于一元函数的情况(即二维平面中),我们可以把这个问题推广到多元函数中(...

qq_40641338的博客 885

IEM模型,地表粗糙度模拟

利用微波反演土壤水分时候,利用IEM模型可以实现对随机地表的模拟

OV9734 DATASHEET,完整规格书

OV9734完整规格书,包括电气参数,尺寸规格,寄存器配置表等

二次优化问题dfp_【复习笔记】最优化方法 - 3. 无约束优化方法

第三章 无约束优化方法本文是本人研究生课程《最优化方法》的复习笔记,主要是总结课件和相关博客的主要内容用作复习。3.1 算法理论基础1. 无约束优化问题的最优性条件先是一元函数取得极值的条件,高中就学过的然后是拓展到多元函数后的理论这三条和前面一元函数的三条是一一对应的,半正定对应大于等于,正定对应严格大于。这里的最优性一直在说的都是局部最优性。2. 无约束凸规划问题的最优性条件凸规划就有一个很好...

weixin_36431157的博客 2703

LinePhone3.2.7(android端最新版本) sip客户端

SIP客户端For android:LinePhone3.2.7(最新版本),官网地址:http://www.linphone.org/

matlab优化多维输出,李明《详解MATLAB在最优化计算中的应用》

1d24a40d.jpg (27.32 KB, 下载次数: 9)2012-6-8 13:20 上传立即购买商城售价链接China-Pub网上书店中关村图书大厦中国图书网博库书城京东商城当当网亚马逊编辑推荐《详解MATLAB在最优化计算中的应用》分为11章,第1章主要讲解MATLAB的应用基础;第2章介绍MATLAB的控制流程、M文件等基础编程技术及MATLAB的接口知识,并结合VC++讲解如何将M...

weixin_34432821的博客 611

《组合最优化》结课小感

今天下午18:10结束了组合最优化课程的期末考试,虽然之前对这门课的内容都没写过一篇博客,但毕竟学完了,还是想稍微做一点小结。 组合最优化这门课,如果学起来,会感觉自己大部分时间在学数学,因为老师上课讲算法之前,都会解释一下其中的数学原理。 经常开启一个新的理论之前,老师都会先让我们自己自行查百度了解,然后再讲。(之前感觉老师这是在偷懒,后来发现,这种方式与直接从头讲到尾相比,稍微有效一些) 在其中,我们常常是数学原理听起来一头雾水,顺带里面的算法步骤也听不下去,往往这时,老师就会放一道题,让我们.

xiao769507610的博客 512

机器学习算法疗程(最优化)

最优化处方清单: 机器学习常用最优化算法小结:http://blog.youkuaiyun.com/reporter521/article/details/47183475 机器学习常见的优化算法:http://m.blog.youkuaiyun.com/article/details?id=51290638 最优化基础和机器学习优化:http://blog.youkuaiyun.com/pi9nc/article

none 700

算法设计方法小结

本文总结了常用的5种算法设计办法和理念.   最优化问题(optimization problem)          每个最优化问题都包含一组限制条件(constraint)和一个优化函数(optimization function), 符合限制条件的问题求解方案可称为可行解(feasible solution), 能够 使得优化函数取得最佳值的可行解称为"最优解" (optimal s

huangzhipeng的专栏 3158

CS231n 之 IMAGE CLASSIFICATION 之 最优化

内容列表: 1 简介 2 损失函数可视化 3 最优化 3.1策略#1:随机搜索 3.2策略#2:随机局部搜索 3.3策略#3:跟随梯度 4 梯度计算 4.1 使用有限差值进行数值计算 4.2 微分计算梯度 5 梯度下降 小结 简介 在上一节中,我们介绍了图像分类任务中的两个关键部分: 基于参数的评分函数。该函数将原始图像像素映射为分类评分值(例如:一个线性函数)。 损...

戈扬的博客 204
上一篇: 启发式算法
下一篇: MCMC和Gibbs Sampling
一只小菜狗:D
博客等级 码龄7年 4658粉丝 25原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

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

抵扣说明:

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

余额充值