【机器学习】笔记-《漫画机器学习入门》——大关真之

  1. 机器学习:通过对各种信息的汇总与分析,达到预测未来或者对未见事物进行推测的目的。
    机器学习就是向计算机中输入各种数据,利用计算机已有的命令(计算机程序)去完成各种计算和分析判断。
    计算机可以自动获取大量数据背后隐藏的关系和规律,能够对外面世界的法则进行学习,这就是机器学习。

  2. 特征量:我认为,特征量就是衡量一个事物需要用到的主要属性,比如衡量“美丽”,特征量就有“年龄”、“皮肤状态”等等。通过将特征量转换成数值,我们才能够进行机器学习。

  3. 特征向量:将特征量集中在一起表示出来,就是特征向量。

  4. 权重:表示参数(即特征量)的重要程度,通常是0到1之间的一个小数。1表示非常重要,0表示完全不重要。此外,也可以设置为负数。

  5. 输入数据(即特征向量) → 函数模型计算 → 输出结果

  6. 回归:我们开始的时候并不知道准确的函数模型,因此首先要建立一个近似的函数模型(通过猜测)
    → 然后通过与数据(包括输入与输出)的不断拟合,对函数进行微调。

  7. 通过矩阵运算,可以简化对方程式的变形和计算。

  8. 确定直线函数:斜率+截距。

  9. 误差函数:不是一种固定的类型,可以是方差或标准差。

  10. 有监督学习:已知正确输出结果,通过修改模型函数的参数去拟合这个正确结果的过程。

  11. 无监督学习:
    【机器学习】笔记-《漫画机器学习入门》——大关真之_第1张图片

  12. 聚类:将数据按照结构或特征进行分类。

  13. 梯度下降法:利用微分的思想,每次对参数的调整都只改变一点点,当改变参数之后误差变小,便保持这个方向调整这个参数,直到误差值保持不变或者反而有所上升时为止。依次改变各个参数。
    【机器学习】笔记-《漫画机器学习入门》——大关真之_第2张图片

最快梯度下降法:确定多个参数的改变方向之后,同时改变参数来减少误差。
【机器学习】笔记-《漫画机器学习入门》——大关真之_第3张图片

梯度下降法的缺点:梯度下降法能达到极小值,但有可能不是最小值。
因为微分反映的是一种变化趋势。微分是要在某个数据点附近进行计算,但对于更大更远的空间范围,微分是无能为力的。

14. 训练用数据 & 测试用数据。
15. 通用性:用一部分数据来评价全体的能力。
16. “过度学习”:即“过学习”,指模型仅仅匹配训练用数据,但不满足测试用数据。
17. 将数据分成训练用数据和测试用数据,最常用的做法:将数据分成若干组,在每一组中,都将一份数据作为测试用数据,剩下的都作为训练用数据。当然,每一组拿出多少份作为测试用数据的数目不是固定的,可以根据实际情况而定。
18.
【机器学习】笔记-《漫画机器学习入门》——大关真之_第4张图片

  1. 线性特性:

乘法和加法无论前面组合过多少次,最后总会合并成一次乘法和一次加法运算。这种只有乘法和加法运算的情况被称为线性特性。
除法和减法,其实就是乘法和加法的逆运算,所以并没有什么本质区别。

  1. 由原始的特征量直接加权求输出,这种模型对于求解某些问题来说,过于简单,并且难以得到理想的结果。因此我们需要使模型变得复杂一些。我们可以考虑通过现有的特征量去组成新的特征量,并且也给这些新的特征量不同的权重。

复杂模型中如果只有线性特性的话,效果是不好的。

  1. Sigmoid函数,用符号sig(x)表示。利用Sigmoid函数进行非线性变换:

首先,给每一个特征值加权再将这些结果求和。
将这个结果作为Sigmoid函数的输入量x,去求sig(x)即可。

处理复杂的问题就需要使用复杂的函数。
要设计一个复杂的函数,就需要非线性变换,幂运算就是其中一种。指示函数包含了幂运算,所以也是非线性变换。

  1. 单层神经网络:原先单纯将特征量直接加权组合求结果的模型:
    【机器学习】笔记-《漫画机器学习入门》——大关真之_第5张图片

多层神经网络:在单层神经网络的模型的基础上,增加了非线性变换。
【机器学习】笔记-《漫画机器学习入门》——大关真之_第6张图片

中间层:

把特征量组合后进行非线性变换的是中间层(也叫做隐层)。

  1. 正向(前馈)型神经网络、双向(反馈)型神经网络、回归型神经网络结构。
  2. 对多层神经网络的模型进行微调时,不能单纯改变参数的权重,这样难以减小误差。

误差变化的程度和趋势就意味着梯度。

因此,在多层神经网络中,需要使用误差逆向传播算法(也叫做BP算法,书中没有介绍原理)对各种权值进行调整。

方法是这样的:现在轻轻搬动离输出层最近的摇杆,让摇杆的影响一步就可以直接传递到输出(方法还是要通过微分使得误差函数值变小)。
完成与输出最近的一层摇杆的调节后,再调整倒数第二层的摇杆。相当于从输出倒着向输入层的方向逐层调节摇杆。
权值不能一次变化太大。否则有可能造成输出结果反而变差。

  1. 挑选神经网络中,用来完成非线性变换的函数时,需要注意其梯度的大小,因为这将影响到多层神经网络中对权值的调整。

其实到底采用什么函数比较好,这个问题一直是众说纷纭的。
最近斜坡函数也渐渐获得了研究人员的重视。

微分之后的结果与摇杆是否容易搬动是有直接关系的。

  1. 防止过度学习的一种方法,中退取舍(dropout)法:

适当地选取一定比例的特征量,剩下的全部舍弃不用。

为了不出现过度学习,不能让某个参数值远远大于其他参数值,也不能让同一个参数在某个时刻的值远远大于其他时刻的值,否则必须对数据进行处理。

  1. 批量学习:

将全部数据收集齐了之后一起作为训练用数据使用。

在线学习:

随着数据不断地获取而逐步进行的学习。
数据的采集方法没有变,所以新数据基本有不会出现与原来数据差距极大的情况。

在线学习的通用性很好。
概率梯度下降法:这种方法是对批量学习的一种改进:

把已经获得的所有数据按照一定程度分成若干小组,对每一组数据分别进行学习。
数据分组的时候不能按自己的意愿进行。因此我们采用概率的方式去分组这些数据。

  1. 鞍点:

当有很多参数的时候,沿着某个方向滑动就有走向谷底的感觉。但是如果再向其他方向搜索的话,可能误差还会降低,这就是鞍点。

【机器学习】笔记-《漫画机器学习入门》——大关真之_第7张图片

看到这里,对概率梯度下降法有了点新的认识,我认为概率梯度下降法就是会定时(或随机时间)调整各个分组的顺序,因此机器每一次都会重新尝试新的调整方向,这样就解决了鞍点带来的问题。

与其冲着预先规定好的方向一直走下去,倒不如时不时地左看看、右转转。
让机器进行学习的过程首先就是要尽量模仿人的这种学习过程,之后再让机器自己去寻找更适合的学习方法,这才是机器学习算法的发展方向。

  1. 单位阶跃函数。
  2. 分割用超平面:将数据集分割开来的直线(或非直线,比如曲线、曲面)。

我们不仅要正确地分割数据,还希望尽可能地将分割超平面调整到离这些数据点都比较远的地方,也就是提高数据分割的安全裕量。

  1. 感知器:可以通过移动分割超平面将不同特征的数据进行分类的模型。
  2. 支持向量机:支持向量机也是一种模型,用于尽可能地扩大安全裕量。

支持向量机的通用性非常好。能够根据分割数据指标的不同做出各种分割超平面。

  1. 矩阵:

矩阵虽然是由数字构成的,但应该看作是一些模式的排列。
我们看到的是大量的数字,但机器学习的目的就是要从这些数字中找到规律。
在一个矩阵中存在模式的个数,叫做秩。
如果矩阵的秩比较小,矩阵中空白的地方可以通过重新构建低秩矩阵来处理。

【机器学习】笔记-《漫画机器学习入门》——大关真之_第8张图片

我们的目的是希望误差函数值尽量小,因此只要是在模型输出和数据匹配的范围内,不很重要的权值设置为零也是允许的。
当我们看到数据很复杂时,最好先别考虑选用复杂的模型去匹配。我们应该看看是不是有更加简单的规则来描述这个模型。

  1. 似然度:相似的程度。
  2. 玻尔兹曼机器学习:

我们将图像的颜色数据输入到玻尔兹曼机中,计算机通过分析这些数据,就可以得到实际图像的特征、各像素点显示某种颜色的概率,以及相邻像素间的关系等。这种学习过程就叫做玻尔兹曼机器学习。
在玻尔兹曼机器学习的时候有一个特殊的过程:将实际提供的数据输入到玻尔兹曼机之后,模型会输出伪数据(重构数据),我们要看课重构数据与实际数据的相似程度是否足够大。
玻尔兹曼机器学习是一种双向型神经网络。

【机器学习】笔记-《漫画机器学习入门》——大关真之_第9张图片

  1. 采样:

这是玻尔兹曼机器学习中的一个过程,就是要自身不停地产生出书籍来。

  1. 玻尔兹曼机器学习在进行时,如何考虑相邻像素之间的关系:可采用的方法有:马尔科夫链蒙特卡罗方法、平均场近似法、信息交互法。
    马尔科夫链蒙特卡罗方法:

这是一种在整个网络结构中的循环,在这一过程中还要不断地采集大量的重构数据。

平均场近似法:

单纯考虑由相邻像素传送来的信息。

信息交互法:

与相邻像素进行信息的相互交流。

【机器学习】笔记-《漫画机器学习入门》——大关真之_第10张图片

  1. 隐含变量:

无法直接取得的,或者看不见的数据。

  1. 受限玻尔兹曼机:在玻尔兹曼机的基础上,加入了开关的概念。
    开关:

当开关打开(ON)的时候,通过像素和开关之间的关系就可以决定在可见变量一侧表示出什么。

受限玻尔兹曼机:

这种方法认为可见变量(像素)之间没有任何关联,各个开关之间也没有关联。只考虑开关与像素之间的关系,叫做受限玻尔兹曼机。

  1. 对比散度算法。
  2. 深度玻尔兹曼机。
  3. 自我符号化。
  4. 降维操作:

通过输入的特征量在中间层进行重新组合,这样就可以降低输出的数量,最终只保存输入中最重要的部分。

你可能感兴趣的:(机器学习)