机器学习课程笔记(一)导论

符号与名词定义

  • 有监督学习的输入被称作input variables, features, attributes,有监督学习的输出被称作output, variables,targets,输入+输出被称作training example,instance。所有的输入输出对的集合被称作training data set。
  • 我们用\mathcal{X}代表输入,\mathcal{Y}代表输出。有监督学习的过程为了找到一个函数h: \mathcal{X} \rightarrow \mathcal{Y}。在这里h(x)y的一个good predicator。h被称为hypothesis。
  • 有监督学习问题是按照输出进行分类的
    • 输出是实数空间,则是回归问题(regression)。
    • 输出是离散空间,则是分类问题(classification)。
    • 输出更为复杂,则是structured prediction。

机器学习的分类

  • 有监督学习(supervised learning)
    • 本质上就是从带有标签的数据集<x_1,x_2,...,x_3,y>中,学习一个函数f,将输入变量映射到输出空间。
    • 依赖于人工标注的有限数据。
    • 目标:在训练过程中最小化损失函数(loss function)。
  • 强化学习(reinforment learning)
    • 通过与环境的交互,获得奖励信号,进行训练。
    • 目标:分析和最大化一个长期的奖励。
  • 无监督学习(unsupervised learning)
    • 通过无标签的数据进行训练。
    • 可以做聚类或者降维

解决有监督学习问题的一般方法

  1. 确定输入输出
  2. 确定如何编码输入输出
  3. 选择假设类型
  4. 确定损失函数
  5. 选择一个高效的算法对解空间进行搜索

线性假设

在线性假设中,我们认为输入输出的关系h(x)可以用一个线性表达式解决。即h_w(x)=\sum_{i=0}^{n}w_ix_i=w^Tx

根据前面有监督学习的优化目标,我们需要找到w^T,使得误差函数最小。在这里,我们使用的是平方和误差函数J(\mathbf{w})=\frac{1}{2} \sum_{i=1}^{m}\left(h_{\mathbf{w}}\left(\mathbf{x}_{i}\right)-y_{i}\right)^{2}

如果我们使用梯度下降法进行搜索,那么具体的做法可见深度学习数学基础

如果我们要求严格解的话,那么其实就是要求J(w)的梯度,令其梯度为0.

w有解的条件是数据各个维度的特征是线性独立的。因此多数时候,我们只能找到近似解,而不能严格求解。

以上是线性假设的简单形式,我们把形式变换的复杂一点。

h_{\mathbf{w}}(\mathbf{x})=\sum_{k=0}^{K-1} w_{k} \phi_{k}(\mathbf{x})=\mathbf{w}^{T} \phi(\mathbf{x})

在这里,我们定义了一个basic function。所有的线性关系都是和basic function有关,basic function是不变的。

过拟合与欠拟合

过拟合在机器学习中是非常重要的问题,就是我们的函数可以完美地预测训练集中的数据,但是没法泛化到整个数据集全体。

我们可以使用交叉验证的手段来帮助我们。

五折交叉验证:数据分为大致均等的5等分,每次用4等分训练,1等分用来测试,得该算法的准确度。依次轮转,计算平均的准确度。

偏置-方差分解(Bias-variance decomposition)是统计学派看待模型复杂度的观点。简单来说,一个模型的误差可以分为三个部分,偏差度量了模型的期望预测和真实结果的偏离程度,刻画了模型本身的拟合能力,方差度量了同样大小的训练集的变动所导致的学习性能的变化,即刻画了数据扰动所造成的影响,噪声表达了当前任务上任何模型所能达到的期望泛化误差的下界,刻画了学习问题本身的难度。

偏置-方差分解推导过程在此不在赘述,直接上最后的分解结果。

我们最后分解出来了三项。第一项就是所谓的方差,受训练集大小的影响,第二项是偏差代表了真正的系统性误差,第三项是无可避免的噪声。

偏差来源于没有好的假设h(x)。

而方差则是因为假设太多,容易收到数据扰动的影响。

我们需要在偏差和方差之间进行权衡。

对于过拟合而言,数据越多,越支持我们使用更复杂的假设,而不出现过拟合现象。

 

如何选择假设

h为假设,D为训练数据集,根据贝叶斯理论,我们有

P(h|D)=P(D|h)P(h)/P(D)

P(h|D)为条件概率,P(D|h)为似然概率,P(h)为先验概率。

我们应该选择P(h|D)最大的,实际上就是P(D|h)*P(h)最大的假设。

如果我们再假设所有先验概率都相等,那么我们可以进一步简化为选择P(D|h)最大的假设。这就是一个完全的最大似然估计的问题。

如果我们假设噪声是正态分布的,那么符合最大似然估计的w就是最小化平方和误差的w。

\mathbf{w}^{*}=\arg \min _{\mathbf{w}} \sum_{i=1}^{m}\left(y_{i}-h_{\mathbf{w}}\left(\mathbf{x}_{\mathbf{i}}\right)\right)^{2}

用不同的噪声假设,代表我们要选用不同的损失函数。

 

正则化

  • 正则化是非常有效的防止过拟合的手段。我们增加了一个损失函数项,用来惩罚过于复杂的假设。λ是决定这个惩罚大小的系数因子。J(w)=J_D(w)+\lambda J_{pen}(w)
  • 对于线性函数,我们可以把损失函数变为这样的形式\frac{1}{2}(\boldsymbol{\Phi} \mathbf{w}-\mathbf{y})^{T}(\mathbf{\Phi} \mathbf{w}-\mathbf{y})+\frac{\lambda}{2} \mathbf{w}^{T} \mathbf{w}

  • 可能存在的问题:λ不好选择,对于无关的特征,经过正则化之后权重只会很小,但是不为0.

  • 正则化可以防止过拟合的原因:好复杂,还是看其他材料吧https://www.zhihu.com/question/20700829

 

Logistic regression

下面我们来看线性分类怎么做。

sigmoid neuron:P(y=1|x)=h(x)=1/(1+e^{w^Tx})

交叉熵损失函数为J_{D}(\mathbf{w})=-\left(\sum_{i=1}^{m} y_{i} \log h\left(\mathbf{x}_{i}\right)+\left(1-y_{i}\right) \log \left(1-h\left(\mathbf{x}_{i}\right)\right)\right)

 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值