机器学习入门笔记01-机器学习概述

机器学习概述

机器学习发展历程

机器学习(Machine Learning)的各个阶段发展历程列表如下。

时间段机器学习理论代表性成果
二十世纪五十年代初人工智能研究处于推理期A. Newell和H. Simon的“逻辑理论家”(Logic Theorist)程序证明了数学原理,以及此后的“通用问题求解”(General Problem Solving)程序。
已出现机器学习的相关研究1952年,阿瑟·萨缪尔(Arthur Samuel)在IBM公司研制了一个西洋跳棋程序,这是人工智能下棋问题的由来。
二十世纪五十年代中后期开始出现基于神经网络的“连接主义”(Connectionism)学习F. Rosenblatt提出了感知机(Perceptron),但该感知机只能处理线性分类问题,处理不了“异或”逻辑。还有B. Widrow提出的Adaline。
二十世纪六七十年代基于逻辑表示的“符号主义”(Symbolism)学习技术蓬勃发展P. Winston的结构学习系统,R. S. Michalski的基于逻辑的归纳学习系统,以及E. B. Hunt的概念学习系统。
以决策理论为基础的学习技术 
强化学习技术N. J. Nilson的“学习机器”。
统计学习理论的一些奠基性成果支持向量,VC维,结构风险最小化原则。
二十世纪八十年代至九十年代中期机械学习(死记硬背式学习)
示教学习(从指令中学习)
类比学习(通过观察和发现学习)
归纳学习(从样例中学习)
学习方式分类
从样例中学习的主流技术之一:(1)符号主义学习
(2)基于逻辑的学习
(1)决策树(decision tree)。
(2)归纳逻辑程序设计(Inductive Logic Programming, ILP)具有很强的知识表示能力,可以较容易地表达出复杂的数据关系,但会导致学习过程面临的假设空间太大,复杂度极高,因此,问题规模稍大就难以有效地进行学习。
从样例中学习的主流技术之二:基于神经网络的连接主义学习1983年,J. J. Hopfield利用神经网络求解“流动推销员问题”这个NP难题。1986年,D. E. Rumelhart等人重新发明了BP算法,BP算法一直是被应用得最广泛的机器学习算法之一。
二十世纪八十年代是机器学习成为一个独立的学科领域,各种机器学习技术百花初绽的时期连接主义学习的最大局限是“试错性”,学习过程涉及大量参数,而参数的设置缺乏理论指导,主要靠手工“调参”,参数调节失之毫厘,学习结果可能谬以千里。
二十世纪九十年代中期统计学习(Statistical Learning)支持向量机(Support Vector Machine,SVM),核方法(Kernel Methods)。
二十一世纪初至今深度学习(Deep Learning)深度学习兴起的原因有二:数据量大,机器计算能力强。

机器学习分类

监督学习 (Supervised Learning)

监督学习是指利用一组已知类别的样本调整分类器的参数,使其达到所要求性能的过程,也称监督训练或有教师学习.

在监督学习的过程中会提供对错提示,通过不断地重复训练,使其找到给定的训练数据集中的某种模式规律,当新的数据到来时,可以根据这个模式或规律的函数预测结果.近年来广受关注的深度学习应用几乎都属于监督学习,比如 光学字符识别,语音识别, 图像分类语言翻译.

监督学习的训练集要求包括输入和输出,主要用于分类回归,但还有许多奇特的变体,主要包括如下几种.

  • 序列生成(sequence generation):给定一张图像,预测描述图像的文字.序列生成有时可以重新表示为一系列分类问题,比如反复预测序列中的单词和标记.
  • 语法树预测( syntax tree prediction)。给定一- 个句子,预测其分解生成的语法树。
  • 目标检测( object detection)。给定一张图像, 在图中特定目标的周围画一个边界框。这
    个问题也可以表示为分类问题(给定多个候选边界框,对每个框内的目标进行分类)或
    分类与回归联合问题(用向量回归来预测边界框的坐标)。
  • 图像分割( image segmentation)。 给定一 张图像,在特定物体上画一个像素级的掩模( mask )。

无监督学习 (Unsupervised Learning)

与监督学习不同,在无监督学习中,无需对数据集进行标注,也没有输出.其需要从数据集中发现隐含的某种结构,从而获得样本数据的结构特征,判断哪些数据比较相似.

因此, 无监督学习是指在没有目标的情况下寻找输入数据的有趣变换,其目的在于数据可视化、数据压缩、数据去噪或更好地理解数据中的相关性。降维(dimensionality reduction)和聚类(clustering)都是众所周知的无监督学习方法。

半监督学习 (Semi-supervised Learning)

半监督学习是监督学习和非监督学习的结合,其在训练阶段使用的是未标记的数据和已标记的数据,不仅要学习属性之间的结构关系,也要输出分类模型以便进行预测.

强化学习 (Reinforcement Learning)

强化学习,又称再励学习、评价学习或增强学习.
是机器学习的范式和方法论之一,用于描述和解决智能体(agent)在与环境的交互过程中通过学习策略以达成回报最大化或实现特定目标的问题

机器学习模型

机器学习 = 数据(data) + 模型(model) + 优化方法(optimal strategy)

常见的机器学习算法

在这里插入图片描述

机器学习的注意事项

机器学习的注意事项

分类和回归术语表

名词解释
样本(sample)或输入(input)进入模型的数据点。
预测(prediction)或输出(output)从模型出来的结果。
目标(target)真实值。对于外部数据源,理想情况下,模型应该能够预测出目标。
预测误差(prediction error)或损失值(loss value)模型预测与目标之间的距离。
类别(class)分类问题中供选择的一组标签。例如,对猫狗图像进行分类时,“狗”和“猫”就是两个类别。
标签(label)分类问题中类别标注的具体例子。比如,如果 1234 号图像被标注为包含类别“狗”,那么“狗”就是 1234 号图像的标签。
真值(ground-truth)或标注(annotation)数据集的所有目标,通常由人工收集。
二分类(binary classification)一种分类任务,每个输入样本都应被划分到两个互斥的类别中。
多分类(multiclass classification)一种分类任务,每个输入样本都应被划分到两个以上的类别中,比如手写数字分类。
多标签分类(multilabel classification)一种分类任务,每个输入样本都可以分配多个标签。举个例子,如果一幅图像里可能既有猫又有狗,那么应该同时标注“猫”标签和“狗”标签。每幅图像的标签个数通常是可变的。
标量回归(scalar regression)目标是连续标量值的任务。预测房价就是一个很好的例子,不同的目标价格形成一个连续的空间。
向量回归(vector regression)目标是一组连续值(比如一个连续向量)的任务。如果对多个值(比如图像边界框的坐标)进行回归,那就是向量回归。
小批量(mini-batch)或批量(batch)模型同时处理的一小部分样本(样本数通常为 8~128)。样本数通常取 2 的幂,这样便于 GPU 上的内存分配。训练时,小批量用来为模型权重计算一次梯度下降更新。

损失函数

  1. 0-1损失函数
    L ( y , f ( x ) ) = { 0 , y = f(x) 1 , y  ≠  f(x) L(y,f(x)) = \begin{cases} 0, & \text{y = f(x)} \\ 1, & \text{y $\neq$ f(x)} \end{cases} L(y,f(x))={0,1,y = f(x)= f(x)
  2. 绝对值损失函数
    L ( y , f ( x ) ) = ∣ y − f ( x ) ∣ L(y,f(x))=|y-f(x)| L(y,f(x))=yf(x)
  3. 平方损失函数
    L ( y , f ( x ) ) = ( y − f ( x ) ) 2 L(y,f(x))=(y-f(x))^2 L(y,f(x))=(yf(x))2
  4. log对数损失函数
    L ( y , f ( x ) ) = l o g ( 1 + e − y f ( x ) ) L(y,f(x))=log(1+e^{-yf(x)}) L(y,f(x))=log(1+eyf(x))
  5. 指数损失函数
    L ( y , f ( x ) ) = e x p ( − y f ( x ) ) L(y,f(x))=exp(-yf(x)) L(y,f(x))=exp(yf(x))
  6. Hinge损失函数
    L ( w , b ) = m a x { 0 , 1 − y f ( x ) } L(w,b)=max\{0,1-yf(x)\} L(w,b)=max{0,1yf(x)}

优化方法

梯度下降是最常用的优化方法之一,它使用梯度的反方向 ∇ θ J ( θ ) \nabla_\theta J(\theta) θJ(θ)更新参数 θ \theta θ,使得目标函数 J ( θ ) J(\theta) J(θ)达到最小化的一种优化方法,这种方法我们叫做梯度更新.

  1. (全量)梯度下降
    θ = θ − η ∇ θ J ( θ ) \theta=\theta-\eta\nabla_\theta J(\theta) θ=θηθJ(θ)

  2. 随机梯度下降
    θ = θ − η ∇ θ J ( θ ; x ( i ) , y ( i ) ) \theta=\theta-\eta\nabla_\theta J(\theta;x^{(i)},y^{(i)}) θ=θηθJ(θ;x(i),y(i))

  3. 小批量梯度下降
    θ = θ − η ∇ θ J ( θ ; x ( i : i + n ) , y ( i : i + n ) ) \theta=\theta-\eta\nabla_\theta J(\theta;x^{(i:i+n)},y^{(i:i+n)}) θ=θηθJ(θ;x(i:i+n),y(i:i+n))

  4. 引入动量的梯度下降
    { v t = γ v t − 1 + η ∇ θ J ( θ ) θ = θ − v t \begin{cases} v_t=\gamma v_{t-1}+\eta \nabla_\theta J(\theta) \\ \theta=\theta-v_t \end{cases} {vt=γvt1+ηθJ(θ)θ=θvt

  5. 自适应学习率的Adagrad算法
    { g t = ∇ θ J ( θ ) θ t + 1 = θ t , i − η G t + ε ⋅ g t \begin{cases} g_t= \nabla_\theta J(\theta) \\ \theta_{t+1}=\theta_{t,i}-\frac{\eta}{\sqrt{G_t+\varepsilon}} \cdot g_t \end{cases} {gt=θJ(θ)θt+1=θt,iGt+ε ηgt

  6. 牛顿法
    θ t + 1 = θ t − H − 1 ∇ θ J ( θ t ) \theta_{t+1}=\theta_t-H^{-1}\nabla_\theta J(\theta_t) θt+1=θtH1θJ(θt)

    其中:
    t t t: 迭代的轮数
    η \eta η: 学习率
    G t G_t Gt: 前t次迭代的梯度和
    ε : \varepsilon: ε:很小的数,防止除0错误
    H H H: 损失函数相当于 θ \theta θ的Hession矩阵在 θ t \theta_t θt处的估计

评价指标

  1. MSE(Mean Squared Error)
    M S E ( y , f ( x ) ) = 1 N ∑ i = 1 N ( y − f ( x ) ) 2 MSE(y,f(x))=\frac{1}{N}\sum_{i=1}^{N}(y-f(x))^2 MSE(y,f(x))=N1i=1N(yf(x))2
  2. MAE(Mean Absolute Error)
    M S E ( y , f ( x ) ) = 1 N ∑ i = 1 N ∣ y − f ( x ) ∣ MSE(y,f(x))=\frac{1}{N}\sum_{i=1}^{N}|y-f(x)| MSE(y,f(x))=N1i=1Nyf(x)
  3. RMSE(Root Mean Squard Error)
    R M S E ( y , f ( x ) ) = 1 1 + M S E ( y , f ( x ) ) RMSE(y,f(x))=\frac{1}{1+MSE(y,f(x))} RMSE(y,f(x))=1+MSE(y,f(x))1
  4. Top-k准确率
    T o p k ( y , p r e y ) = { 1 , y ∈ p r e y 0 , y ∉ p r e y Top_k(y,pre_y)=\begin{cases} 1, {y \in pre_y} \\ 0, {y \notin pre_y} \end{cases} Topk(y,prey)={1,yprey0,y/prey
  5. 混淆矩阵
混淆矩阵Predicted as PositivePredicted as Negative
Labeled as PositiveTrue Positive(TP)False Negative(FN)
Labeled as NegativeFalse Positive(FP)True Negative(TN)
  • 真正例(True Positive, TP):真实类别为正例, 预测类别为正例

  • 假负例(False Negative, FN): 真实类别为正例, 预测类别为负例

  • 假正例(False Positive, FP): 真实类别为负例, 预测类别为正例

  • 真负例(True Negative, TN): 真实类别为负例, 预测类别为负例

  • 真正率(True Positive Rate, TPR): 被预测为正的正样本数 / 正样本实际数
    T P R = T P T P + F N TPR=\frac{TP}{TP+FN} TPR=TP+FNTP

  • 假负率(False Negative Rate, FNR): 被预测为负的正样本数/正样本实际数
    F N R = F N T P + F N FNR=\frac{FN}{TP+FN} FNR=TP+FNFN

  • 假正率(False Positive Rate, FPR): 被预测为正的负样本数/负样本实际数,
    F P R = F P F P + T N FPR=\frac{FP}{FP+TN} FPR=FP+TNFP

  • 真负率(True Negative Rate, TNR): 被预测为负的负样本数/负样本实际数,
    T N R = T N F P + T N TNR=\frac{TN}{FP+TN} TNR=FP+TNTN

  • 准确率(Accuracy)
    A C C = T P + T N T P + F N + F P + T N ACC=\frac{TP+TN}{TP+FN+FP+TN} ACC=TP+FN+FP+TNTP+TN

  • 精准率
    P = T P T P + F P P=\frac{TP}{TP+FP} P=TP+FPTP

  • 召回率
    R = T P T P + F N R=\frac{TP}{TP+FN} R=TP+FNTP

  • F1-Score
    2 F 1 = 1 P + 1 R \frac{2}{F_1}=\frac{1}{P}+\frac{1}{R} F12=P1+R1

  • ROC

ROC曲线的横轴为“假正例率”,纵轴为“真正例率”. 以FPR为横坐标,TPR为纵坐标,那么ROC曲线就是改变各种阈值后得到的所有坐标点 (FPR,TPR) 的连线,画出来如下。红线是随机乱猜情况下的ROC,曲线越靠左上角,分类器越佳.

  • AUC(Area Under Curve)

AUC就是ROC曲线下的面积. 真实情况下,由于数据是一个一个的,阈值被离散化,呈现的曲线便是锯齿状的,当然数据越多,阈值分的越细,”曲线”越光滑.

用AUC判断分类器(预测模型)优劣的标准:

  • AUC = 1 是完美分类器,采用这个预测模型时,存在至少一个阈值能得出完美预测。绝大多数预测的场合,不存在完美分类器.
  • 0.5 < AUC < 1,优于随机猜测。这个分类器(模型)妥善设定阈值的话,能有预测价值.
  • AUC < 0.5,比随机猜测还差;但只要总是反预测而行,就优于随机猜测.

模型选择

  1. 交叉验证

所有数据分为三部分:训练集、交叉验证集和测试集。交叉验证集不仅在选择模型时有用,在超参数选择、正则项参数 [公式] 和评价模型中也很有用。

  1. k-折叠交叉验证
  • 假设训练集为S ,将训练集等分为k份: { S 1 , S 2 , . . . , S k } \{S_1, S_2, ..., S_k\} {S1,S2,...,Sk}.
  • 然后每次从集合中拿出k-1份进行训练
  • 利用集合中剩下的那一份来进行测试并计算损失值
  • 最后得到k次测试得到的损失值,并选择平均损失值最小的模型
  1. Bias与Variance,欠拟合与过拟合

    欠拟合一般表示模型对数据的表现能力不足,通常是模型的复杂度不够,并且Bias高,训练集的损失值高,测试集的损失值也高.

    过拟合一般表示模型对数据的表现能力过好,通常是模型的复杂度过高,并且Variance高,训练集的损失值低,测试集的损失值高.
    在这里插入图片描述
    在这里插入图片描述

  2. 解决方法

  • 增加训练样本: 解决高Variance情况
  • 减少特征维数: 解决高Variance情况
  • 增加特征维数: 解决高Bias情况
  • 增加模型复杂度: 解决高Bias情况
  • 减小模型复杂度: 解决高Variance情况

参数调优

  1. 网格搜索
    一种调参手段;穷举搜索:在所有候选的参数选择中,通过循环遍历,尝试每一种可能性,表现最好的参数就是最终的结果

  2. 随机搜索
    与网格搜索相比,随机搜索并未尝试所有参数值,而是从指定的分布中采样固定数量的参数设置。它的理论依据是,如果随即样本点集足够大,那么也可以找到全局的最大或最小值,或它们的近似值。通过对搜索范围的随机取样,随机搜索一般会比网格搜索要快一些。

  3. 贝叶斯优化算法
    贝叶斯优化用于机器学习调参由J. Snoek(2012)提出,主要思想是,给定优化的目标函数(广义的函数,只需指定输入和输出即可,无需知道内部结构以及数学性质),通过不断地添加样本点来更新目标函数的后验分布(高斯过程,直到后验分布基本贴合于真实分布。简单的说,就是考虑了上一次参数的信息,从而更好的调整当前的参数。

  • 2
    点赞
  • 8
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 4
    评论
评论 4
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

Yexiaomola

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值