机器学习笔记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)=N1i=1NL(yi,f(xi))+λw,此处L是损失函数, ∣ ∣ w ∣ ∣ ||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 Y=Xθ对于方程中的参数向量 θ \theta θ,根据其线性形式与非线性形式,最小二乘法又可以分为线性和非线性两种。

  • 对于线性最小二乘法,以上方程可写为:
    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}}} f(x)=θ0+θ1x1+θ2x2++θnxn

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

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值