赞
踩
机器学习算法/模型分类:
…
对于几乎所有机器学习算法,无论是有监督学习、无监督学习,还是强化学习, 最后一般都归结为求一个目标函数的极值,即最优化问题。
首先,要明白下面几个点:
说白了,在没有正则项的情况下,我们所说的损失函数也就是我们的目标函数,即目标函数 = 损失函数;当包含正则项时,目标函数 = 损失函数 + 正则项。
借用知乎上乎友的回答(看图):
对于有监督学习,有两类情况:
(1)我们要找到一个最佳的映射函数f(x),假设映射函数为:
(其中θ是模型的参数,如何确定它的值,是训练算法的核心)
目标是使得对训练样本的损失函数最小化(最小化经验风险或结构风险):
在这里,N为训练样本数,L是对单个样本的损失函数,w是要求解的模型参数,是映射函数的参数, xi 为样本的特征向量,yi 为样本的标签值。
(2)或者是找到一个最优的概率密度函数p(x),
使得对训练样本的对数似然函数极大化(最大似然估计):
在这里,θ 是要求解的模型参数,是概率密度函数的参数。
(本来是似然函数的最大化问题,但是连乘求导不方便,因此对似然函数取对数,得到对数似然函数)
(1)对于无监督学习的聚类问题,机器学习算法要寻找一个集合的划分,将样本集D划分成多个不相交的子集:
目标函数:
以聚类算法为例,算法要是的每个类的样本离类中心的距离之和最小化:
在这里k为类型数,x为样本向量, μi 为类中心向量, Si 为第 i 个类的样本集合。
(2)对于数据降维问题,机器学习算法要寻找一个映射函数,将一个高维向量映射成一个低维向量:
但要尽可能的保留之前向量的一些重要信息。
对于强化学习,机器学习算法要为每种状态s下确定一个动作a来执行,即确定策略函数,使得执行这些动作之后得到我们预期的结果:
目标函数:
我们要找到一个最优的策略,即状态s到动作a的映射函数(确定性策略,对于非确定性策略,是执行每个动作的概率
使得任意给定一个状态,执行这个策略函数所确定的动作a之后,得到的累计回报最大化:
这里使用的是状态价值函数。
总体来看,机器学习的核心目标是给出一个模型(一般是映射函数),然后定义对这个模型好坏的评价函数(目标函数),求解目标函数的极大值或者极小值,以确定模型的参数,从而得到我们想要的模型。
这也是机器学习概念部分讲的机器学习三步。
附:常用的一些损失函数以及它们的导数:
需要说明的是,对前面介绍的很多损失函数,我们都可以加上正则化项,得到新的损失函数,以减轻过拟合。
最优化算法:
公式法
|
近似法(数值优化)
|
随机搜索法
除了极少数问题可以用暴力搜索来得到最优解之外,我们将机器学习中使用的优化算法分成两种类型(不考虑随机优化算法如模拟退火、遗传算法):
前者给出一个最优化问题精确的公式解,也称为解析解,一般是理论结果。
对绝大多数函数来说,梯度等于0的方程组是没法直接解出来的,如方程里面含有指数函数、对数函数之类的超越函数。对于这种无法直接求解的方程组,我们只能采用近似的算法来求解,即数值优化算法。
除此之外,还有其他一些求解思想,如分治法,动态规划等。
一个好的优化算法需要满足:
关系总结如下:
梯度下降法的迭代公式为:
AdaGrad算法根据前几轮迭代时的历史梯度值动态调整学习率,且优化变量向量x的每一个分量 xi 都有自己的学习率。参数更新公式为:
Adam算法整合了自适应学习率与动量项。算法用梯度构造了两个向量m和v,前者为动量项,后者累积了梯度的平方和,用于构造自适应学习率。它们的初始值为0,更新公式为:
其中 β1 , β2 是人工指定的参数,i 为向量的分量下标。依靠这两个值构造参数的更新值,参数的更新公式为:
在这里,m类似于动量项,用v来构造学习率。
批量随机梯度下降法在每次迭代中使用上面目标函数的随机逼近值,即只使用M [公式] N个随机选择的样本来近似计算损失函数。
牛顿法
牛顿法是二阶优化技术,利用了函数的一阶和二阶导数信息,直接寻找梯度为0的点。牛顿法的迭代公式为:
其中H为Hessian矩阵,g为梯度向量。牛顿法不能保证每次迭代时函数值下降,也不能保证收敛到极小值点。
拟牛顿法
分治法是一种算法设计思想,它将一个大的问题分解成子问题进行求解。根据子问题解构造出整个问题的解。在最优化方法中,具体做法是每次迭代时只调整优化向量x的一部分分量,其他的分量固定住不动。
信息论角度
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。