讨论 2023-03-16 = # 参数优化(概述) 随着大模型的流行,强化学习也受到了越来越多的关注,但在开始介绍强化学习相关内容之前,我们先来总体概览一下参数优化相关的内容。 参数优化,即通过优化的方法求出需要的参数。通用的写法是 \begin{gather} \theta^* = \mathrm{argmin}_\theta L(x,y;\theta) \end{gather} 其中x,y为输入,label,$\theta$为参数,当然这种形式不是必须的,参数优化也只是一般优化问题的一个分支而已。今天主要介绍几种优化方法的出发点,方便大家有一个初步印象/ ## 梯度相关 梯度相关的优化算法是最常用的,也往往是人们的第一选择,当然梯度相关的方法需要的假设也往往是最强的。 首先我们想象一下误差函数的图像,也就是通常讲的误差平面(其实是高维曲面)。我们以二维等高线为例,  我们随机从一个位置出发,找寻爬上山的道路。 **梯度方法的出发点就是不停的走向自己周围的最高点。** 最高点很容易理解,但自己周围具体是指什么?数学的说法是一个极小的邻域,这当然是严谨的,但其实我们可以结合函数的连续性来考虑,如果误差平面越连续,那么这个“周围”就越大,如果连续性很小,那么这个“周围”也就很小。为了后面方便讨论,我们把“周围”称作“视野范围”。 经过上述描述,我们自然会想到几个问题? - 视野范围越大越好,要是可以直接看到全图,可以直接奔向最高点 - 为什么一定要往眼前的最高点去,眼前的最高点和山顶有什么联系? 首先,我们要考虑到视野范围是有代价的,视野越大,采集的信息越多,处理的信息也越多。我们这里就引出了非常重要的概念,即**获取视野范围所需的代价**,通常包含采样成本和计算成本两部分。 第二,眼前的最高点和山顶有什么联系?答案是不一定有关系,但这其实涉及到了经典的哲学观点,即贪心理论,在没有其他先验知识下,没有比贪心更好的选择。所以不是一定要去视野里的最高点,而是没有更好的选择。如果有先验知识,很多方法可以不选择视野里的最高点,比如带限制的优化问题(首先要满足条件,而不是挑选最高点)。 ## 半梯度方法 梯度很可能是性价比最高的方法,对于任意连续误差平面的优化问题,梯度很可能是最划算的方法(爬到最高,获取视野范围的代价最小)。这部分我知识也不足,也许就是理论最好的方法,欢迎补充。 梯度的采样成本几乎为0,因为我们通过导函数直接知道了周围的情况,而不用一个个点查看。  假如我们没有导函数,需要在周围挑选一些点,然后逐个计算函数值,再从中选取最高点作为前进方向。然后利用这几个采样点做插值,也就是半梯度方法(虚构一个可能有偏的连续误差函数)。 一个简单的例子是我们不知道误差函数的具体形式或不知道某些点的函数值,通过离散的采样点,估计他是一个高斯分布,然后根据这个高斯分布进行梯度下降。 ## 非梯度方法 非梯度方法设计范围很广,这里只做简单归类 ### 遗传算法 最为和梯度下降最为不同的方法,遗传算法一直是优化算法中独树一帜的存在,并且很多极复杂的问题几乎只有遗传算法有效。遗传算法也是一个大家族,但总体而言是一个根据已有状态进行派生(突变或交叉),然后再派生状态中筛选得分高的一部分,重复多次,即得到了结果。遗传算法是一个非常庞大的框架,派生有很多做法,比如随机选择一个方向,然后前进一小步,再只选择得分最高的,其实就等效于梯度下降,但效率更低。而交叉派生更是十分玄妙,通过两个样本交互部分得到一个新样本,这在其他方法中很难找到对应。 ### 奖惩机制 强化学习大部分都与奖惩机制有关,即得分高就表扬,得分低就批评,最简单的标准其实就是和过去的自己相比是否提高。可以看出,这种机制并不是贪心规则,我们不强调每一步都是所有选择中得分最高的,而是先走再说,好了奖励,坏了惩罚。当然,这里很有意思的一点是,奖励的不够多其实就是惩罚(因为动作概率分布的总和为1),这也是为什么强化学习会倾向于得分最高的方案。 # 总结 不管是哪种算法,其实我们都可以理解为,观察环境,然后选择一个更好的点,重复这个过程。这种观察可以是自身周围,也可以是跳跃的,而选择更好的点也可以是碰到比以前好的就选择,也可以是根据一个自定义的指标,或者是可见的最高点。
×
Sign in
Email
Password
Forgot password
or
By clicking below, you agree to our
terms of service
.
Sign in via Facebook
Sign in via Twitter
Sign in via GitHub
Sign in via Dropbox
Sign in with Wallet
Wallet (
)
Connect another wallet
New to HackMD?
Sign up