机器学习笔记1-基本概念

机器学习笔记1-基本概念

机器学习主要包括监督学习、非监督学习、半监督学习和强化学习等。实现方法包括模型、策略、算法三个要素。

  • 模型。在监督学习中,模型就是所要学习的条件概率分布或决策函数。
  • 策略。策略考虑的是按照什么样的准则学习或选择最优的模型,即选择损失函数。为了防止过拟合,一般会选择正则化的损失函数。正则化项一般是模型复杂度的单调递增函数,模型越复杂,正则化值就越大。比如,正则化项可以是模型参数向量的范数:
    L ( w ) = 1 N i = 1 N L ( y i , f ( x i ) ) + λ w L(w) = \frac{1}{N}\sum\limits_{i = 1}^N {L{\rm{(}}{y_i},f{\rm{(}}{x_i}{\rm{))}} + } \lambda {\left\| w \right\|} ,此处L是损失函数, w ||w|| 是参数向量w的L1范数。
  • 算法。算法是指学习模型的具体计算方法,即如何去求解该最优化问题。如梯度下降等算法、最小二乘法等。

在监督学习中,主要包括三类问题:分类问题、标注问题和回归问题。

  • 分类问题。当输出变量Y取有限个离散值时,预测问题便成为分类问题。对应的输入变量X可以是离散的,也可以是连续的。很多统计学习方法都可以用于分类,包括k近邻法、感知机、朴素贝叶斯法、决策树、逻辑回归、SVM、提升方法、贝叶斯网络、神经网络等。(这些算法李航《统计学习方法》都有涉及)
  • 标注问题。输入变量是一个观测序列,输出变量是标记序列或状态序列。常用的统计学习方法有隐马尔可夫模型和条件随机场。常见的例子有自然语言的词性标注。
  • 回归问题。回归用于预测输入变量和输出变量之间的关系。回归问题的学习等价于函数的拟合:选择一条函数曲线使其很好地拟合已知数据且预测未知数据。回归学习最常用的损失函数是平方损失函数,在此情况下,回归问题可以由最小二乘法求解。

为了对学习器的泛化性能进行评估,需要一个测试集,然后以测试误差作为泛化误差的近似。测试集的获取一般包括以下几种方法:

  • 留出法:直接将数据集划分为两个互斥的集合,一个作为训练集,一个作为测试集。常见做法是2/3~4/5的样本用于训练,剩余样本用于测试。
  • 交叉验证法:将数据集划分为k个大小相同的互斥子集。每次用k-1个子集作为训练集,剩下的作为测试集。这样就可获得k组训练/测试集,从而可进行k次训练和测试,最终返回这k个测试结果的均值。(在堆栈泛化过程中,交叉验证法返回的结果不是均值,是另外一种组合的形式)当k值等于数据集的样本数m时,即为“留一法”。
  • 自助法:对给定m个样本的数据集D,每次从D中选一个样本,拷贝放入D’,然后再将该样本放回D中。重复执行该过程m次,便得到了包含m个样本的数据集D’。(这种做法在随机森林中会用到)自助法会改变初始数据集的分布,这会引入估计偏差。

有了测试集,有了泛化误差后,可将其分解为偏差、方差、噪声之和。偏差度量了算法的预测与真实结果的偏离程度,即刻画了算法本身的拟合能力;方差度量了训练集的变动所导致的学习性能的变化,即刻画了数据扰动所造成的影响;噪声则刻画了当前任务人和算法所能达到的期望泛化误差的下界,即刻画了学习问题本身的难度。

补充:

最小二乘法
最小二乘法的核心思想是,通过最小化误差的平方和,使得拟合对象无限接近目标对象。除了“残差平方和最小”这条标准外,还有另外两条标准:
(1) 用“残差和最小”作为标准。但很快发现计算“残差和”存在相互抵消的问题。
(2) 用“残差绝对值和最小”作为标准。但绝对值的计算比较麻烦。
其实从范数的角度考虑这个问题,绝对值和对应的是1范数,平方和对应的就是2范数。从距离角度考虑,绝对值和对应的是曼哈顿距离,平方和对应的就是欧氏距离。假设拟合函数具有如下形式:
Y = X θ Y = X\theta (1)
对于方程(1)中的参数向量 θ \theta ,根据其线性形式与非线性形式,最小二乘法又可以分为线性和非线性两种。

  • 对于线性最小二乘法,方程(1)可写为:
    f ( x ) = θ 0 + θ 1 x 1 + θ 2 x 2 + + θ n x n f{\rm{(}}x{\rm{)}} = {\theta _{\rm{0}}} + {\theta _{\rm{1}}}{x_{\rm{1}}} + {\theta _{\rm{2}}}{x_{\rm{2}}} + \cdots + {\theta _{\rm{n}}}{x_{\rm{n}}} (2)

    在这里插入图片描述
    残差函数
    在这里插入图片描述
    残差和
    J ( θ ) = 1 2 i = 1 n ( h θ ( x ( i ) ) y i ) 2 = 1 2 t r [ ( X θ Y ) T ( X θ Y ) ] J(\theta ) = \frac{{\rm{1}}}{{\rm{2}}}\sum\limits_{i = 1}^n {{{{\rm{(}}{h_\theta }{\rm{(}}{x^{(i)}}{\rm{)}} - {y_i}{\rm{)}}}^2}} = \frac{{\rm{1}}}{{\rm{2}}}tr\left[ {{{{\rm{(}}X\theta - Y{\rm{)}}}^T}{\rm{(}}X\theta - Y{\rm{)}}} \right]
    J ( θ ) J(\theta ) 求导,经过一系列推导,可得到
    J ( θ ) θ = X T X θ X T Y \frac{{\partial J(\theta )}}{{\partial \theta }} = {X^T}X\theta - {X^T}Y
    令偏导数为零,可求得极值点
    θ = ( X T X ) 1 X T Y \theta = {({X^T}X)^{ - 1}}{X^T}Y
    此即为线性最小二乘的解法。
  • 对于非线性最小二乘法,通常无法直接写出其导数形式(函数过于复杂),无法找到全局最小值。因此需要通过不断地迭代寻找局部最小值。有两种通用的算法:
    1. 下降法。通过一个初值,不断地求解下降方向(函数负梯度方向),设置合理的步长,求解得到一些列的中间值,最后收敛到某个局部最小值。(神经网络的后向传输与此相似)
    2. 高斯牛顿法。该算法的基本思想是将函数 f ( x ) f{\rm{(}}x{\rm{)}} 进行一阶泰勒展开 f ( x + Δ x ) = f ( x ) + J ( x ) Δ x f{\rm{(}}x + {\rm{\Delta }}x{\rm{)}} = f{\rm{(}}x{\rm{) + }}J{\rm{(}}x{\rm{)\Delta }}x ,其中 J ( x ) J{\rm{(}}x{\rm{)}} 为函数的雅克比矩阵,即函数 f ( x ) f{\rm{(}}x{\rm{)}} 的一阶导。此时,目标函数展开为 1 2 f ( x ) + J ( x ) Δ x 2 = 1 2 ( f ( x ) 2 2 + 2 f ( x ) T J ( x ) Δ x + Δ x T J ( x ) T J ( x ) Δ x ) \frac{{\rm{1}}}{{\rm{2}}}{\left\| {f{\rm{(}}x{\rm{) + }}J{\rm{(}}x{\rm{)\Delta }}x} \right\|^2} = \frac{{\rm{1}}}{{\rm{2}}}{\rm{(}}\left\| {f{\rm{(}}x{\rm{)}}} \right\|_2^2{\rm{ + 2}}f{{\rm{(}}x{\rm{)}}^T}J{\rm{(}}x{\rm{)\Delta }}x + {\rm{\Delta }}{x^T}J{{\rm{(}}x{\rm{)}}^T}J{\rm{(}}x{\rm{)\Delta }}x{\rm{)}} 。对其求导并令其为零,可得 J ( x ) T J ( x ) Δ x = J ( x ) T f ( x ) J{{\rm{(}}x{\rm{)}}^T}J{\rm{(}}x{\rm{)\Delta }}x = - J{{\rm{(}}x{\rm{)}}^T}f{\rm{(}}x{\rm{)}} ,此方程为关于 Δ x {\rm{\Delta }}x 的线性方程,称为高斯牛顿方程。这个方程与线性最小二乘法的解有类似的形式。具体的算法步骤包括:1.给点初值;2.对于某次迭代k,求解雅克比矩阵和残差;3.求解增量 Δ x {\rm{\Delta }}x ;4.当增量足够小则停止,否则令 x k + 1 = x k + Δ x k {x_{k + 1}} = {x_k} + {\rm{\Delta }}{x_k} 。这个算法有个问题,即为了保证求解的 x x 是局部最小值,对应的Hessian矩阵( J ( x ) T J ( x ) J{{\rm{(}}x{\rm{)}}^T}J{\rm{(}}x{\rm{)}} )需要是正定的。但在实际情况中,Hessian矩阵很有可能是半正定的或者其他情况,因此可能会发生算法不收敛或结果不准确的情况。由于这个缺点,实际优化问题中会更多地使用LM算法(Levenberg-Marquardt Method)。

参考:
李航《统计学习方法》,
周志华《机器学习》,
https://www.cnblogs.com/armysheng/p/3422923.html
https://baijiahao.baidu.com/s?id=1585749800249865895&wfr=spider&for=pc
https://blog.csdn.net/yuxiaoxi21/article/details/71469311
https://blog.csdn.net/wsj998689aa/article/details/41558945
https://www.cnblogs.com/leexiaoming/p/7257198.html

猜你喜欢

转载自blog.csdn.net/zhennang1427/article/details/85065737