机器学习入门(一):概论

0x00. 前言(完全可跳过)

  • 在本文开始之前,冒昧的想占用一点空间,说一下我为什么想学习机器学习。其实,我是学习web安全的,同时也在打CTF。在我没有真正接触到机器学习的时候,以前听到机器学习完全不感兴趣(还是当黑客好玩得多)。直到我们的指导老师在会上,多次提到了机器学习,而且启动了一个项目(关于安全结合机器学习),“迫于无奈”,我得了解机器学习,而这一了解,没想到会有这么大的影响,在此之前,我从来没想到机器学习如此让人着迷。
  • 相对于实践性很强的安全,机器学习则十分注重理论知识。最开始的时候,我只是不停的在一个训练集上调换着各种模型,力求表现最好的模型。机器学习的模型对于我来说,就是一个黑箱子,我不需要知道其中的原理,看看哪个好用就行了呗。现在我才清楚的意识到这并不可取。
  • 如果你不懂的机器学习中的原理,你就自然而然无法对模型进行改造,调参,等等操作,因为你不懂这到底代表什么,这会带来什么影响。而同样的,你也不会知道各种模型的区别。甚至你不知道在什么时候用什么模型。只能不停的”试“,哪个好就选哪个。而这对于你自身,是没有进步的。机器学习哪天一变,你就完全一无所知了
  • 但如果你真的了解机器学习,你就会感受到前人的智慧。在用模型的时候不会收到困扰。打开黑箱子看看里面长什么样,并自己造一个!
  • 其实机器学习中,让我最着迷的地方,还是各种模型,各种方法。你会发现,机器学习很有意思。

0x00. 介绍

统计学习

  • 统计学习是关于计算机基于数据构建概率统计模型并运用模型对数据进行预测于分析,也叫做统计机器学习。说到机器学习,往往是指统计机器学习。
    • 简单来说,在给定的数据中,执行方法T,从中获取经验E,提升表现P的过程。就是机器学习
  • 统计学习的对象是数据(data), 从数据出发,提取数据的特征,抽象出数据的模型,又回到对数据的分析和预测之中。而统计学习对于数据的基本假设就是同类数据具有一定的统计规律性。也就是说,数据得有规律。

机器学习

  • 基于数据构建统计模型从而对数据进行预测和分析
  • 组成
    • 监督学习
      • 我们主要讨论监督学习
    • 非监督学习
    • 半监督学习
    • 强化学习
    • 等等
  • 从给定数据集出发,假设数据都是同一分布下随机产生的;并且假设要学习的模型属于某个函数的集合,称为假设空间;应用某个评价准则,从假设空间中选一个最优的模型,使它对训练和测试的数据在评价准则下最优。
    • 其中,最优模型的选取由算法来实现。
  • 这样我们就可以总结一下机器学习的过程:模型的假设空间,模型选择的准则,模型学习的算法 ,简称 模型,策略 和算法
  • 详细步骤如下:
    • 得到一个数据
    • 确定包含所有可能的模型的假设空间,即学习模型的集合
    • 确定模型选择的准则,即学习的策略
    • 实现求解最优模型的算法,即学习的算法

0x02. 基本术语

假如有这么一条记录:(身高=180,体重=160)- 年龄=30 (成年人)
(身高=170,体重=120)- 年龄=20(成年人)
(身高=100,体重=50)- 年龄=10(未成年)

  • 把记录的集合称为数据集,每一条记录都是对事件或者事物的描述,也把记录称为样本。样本中的“身高”,“体重” 称为特征,或者属性。且特征的个数,称为维度。例如这个记录就是一个二维的样本。我们就把属性张成的空间称为属性空间或者输入空间。而假如我们把每个特征作为一个坐标轴(身高:x, 体重:y),那么每一个样本都能找到一个坐标点(x1,y1)。每个点都对应一个坐标向量。我们就把这个做坐标向量称为特征向量
  • 样本的结果信息,‘我们把’年龄‘,称为标记,我们把所有标记的集合称为标记空间或者输出空间
  • 也就是说,通学习身高,体重(输入),得到一个模型,来预测一个人的年龄(输出)。如果输出的是连续值(10,20,30),则称为回归,如果输出的是离散值(成年,未成年),则称为分类。如果是分类任务,只有两种结果(是或者不是),则称为二分类
  • 一般的,我们把用来学习的数据集,称为训练集。把用来判断模型的好坏的数据集,称为测试集

0x03 三要素

模型

  • 机器学习中首先要考虑学习什么模型。在监督学习中,模型就是所要学习的条件概率分布或决策函数。模型的假设空间包含所有可能的条件概率分布或决策函数

例如,假如我们的模型是 以 y=kx+b 那么模型的假设空间就是所有一次函数和集合 eg y=2x+1, y=3x+3 等等

  • 一般把参数θ(k,b)的集合称为参数空间,把参数向量决定的函数集合表示为:

策略

  • 既然我们定义了假设空间,接着我们就要考虑按照什么准则学习或选择最优的模型。机器学习的目标在于如何从假设空间中选取最优模型
  • 引入损失函数风险函数。损失函数度量模型一次预测的好坏,风险函数度量平均意义下的好坏
  • 对于这些函数,我们可以直观的了解到,预测值和真实值相差越大,则损失函数越大
  • 损失函数就是对于一个样本,预测值和真实值的差别。而期望风险就是关于联合分布P(X,Y)平均意义下,预测值和真实值的差别.
  • 所以你会想到,我们要做的,其实就是最小化预测值和真实值的差别,也就是最小化期望风险。但是关于联合分布P(x,y),我们是不知道的,也就是说我们不知道x,y之间到底有什么联系,而这也是我们恰恰想知道的。所以这是一个病态问题。(求解a,需要b,但是求解b,需要求解a),而这时候,经验风险就诞生了!!
  • 简单来说:
    • 经验风险是局部的,基于训练集所有样本点损失函数最小化。经验风险是局部最优,是现实的可求的。
    • 期望风险是全局的,基于所有样本点损失函数最小化。期望风险是全局最优,是理想化的不可求的。
    • 所以如果局部很大,大到能几乎为全局,经验风险就是期望风险,但是现实生活中数据往往不够,所以要对经验风险进行矫正
  • 经验风险最小化
    • 我们知道,我们理想的把经验风险估计为期望风险,所以我们可以最小化经验风险来拟合数据。但是,如果数据量太少了,就会发生过拟合,这个词以后会经常见到,以后再讲。一般出现过拟合的模型,都是复杂的模型,所以我们要尽可能使经验风险低的情况下,模型更加简单,于是结构风险最小化就诞生了
  • 结构风险最小化

  • 简单来说,一个模型不仅要表现得够好,而且还要够简单.

算法

  • 既然我们已经定义好了假设空间,还确定了评估模型好坏的评价准则,接下来我们就要关心的是如何在假设空间中找到最优的模型。这就依赖于各种各样的算法。
  • 我们需要找到最优的解,也就是最优的参数值,所以也叫做求解最优化问题的算法。如何保证求得解是全局最优解,并且求解过程十分高效,这是一个很重要的问题。!!

0x04. 总结

  • 这一节我们介绍了机器学习的概念和其中一些术语。
  • 也介绍了机器学习中的三要素和基本流程
  • 下一节会介绍模型评估和选择