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

2023-11-23 03:10

本文主要是介绍【机器学习】笔记-《漫画机器学习入门》——大关真之,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

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

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

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

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

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

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

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

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

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

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

  11. 无监督学习:
    在这里插入图片描述

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

  13. 梯度下降法:利用微分的思想,每次对参数的调整都只改变一点点,当改变参数之后误差变小,便保持这个方向调整这个参数,直到误差值保持不变或者反而有所上升时为止。依次改变各个参数。
    在这里插入图片描述

最快梯度下降法:确定多个参数的改变方向之后,同时改变参数来减少误差。
在这里插入图片描述

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

14. 训练用数据 & 测试用数据。
15. 通用性:用一部分数据来评价全体的能力。
16. “过度学习”:即“过学习”,指模型仅仅匹配训练用数据,但不满足测试用数据。
17. 将数据分成训练用数据和测试用数据,最常用的做法:将数据分成若干组,在每一组中,都将一份数据作为测试用数据,剩下的都作为训练用数据。当然,每一组拿出多少份作为测试用数据的数目不是固定的,可以根据实际情况而定。
18.
在这里插入图片描述

  1. 线性特性:

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

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

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

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

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

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

  1. 单层神经网络:原先单纯将特征量直接加权组合求结果的模型:
    在这里插入图片描述

多层神经网络:在单层神经网络的模型的基础上,增加了非线性变换。
在这里插入图片描述

中间层:

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

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

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

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

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

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

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

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

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

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

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

  1. 批量学习:

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

在线学习:

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

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

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

  1. 鞍点:

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

在这里插入图片描述

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

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

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

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

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

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

  1. 矩阵:

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

在这里插入图片描述

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

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

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

在这里插入图片描述

  1. 采样:

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

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

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

平均场近似法:

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

信息交互法:

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

在这里插入图片描述

  1. 隐含变量:

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

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

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

受限玻尔兹曼机:

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

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

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

这篇关于【机器学习】笔记-《漫画机器学习入门》——大关真之的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/414936

相关文章

从入门到精通详解Python虚拟环境完全指南

《从入门到精通详解Python虚拟环境完全指南》Python虚拟环境是一个独立的Python运行环境,它允许你为不同的项目创建隔离的Python环境,下面小编就来和大家详细介绍一下吧... 目录什么是python虚拟环境一、使用venv创建和管理虚拟环境1.1 创建虚拟环境1.2 激活虚拟环境1.3 验证虚

Unity新手入门学习殿堂级知识详细讲解(图文)

《Unity新手入门学习殿堂级知识详细讲解(图文)》Unity是一款跨平台游戏引擎,支持2D/3D及VR/AR开发,核心功能模块包括图形、音频、物理等,通过可视化编辑器与脚本扩展实现开发,项目结构含A... 目录入门概述什么是 UnityUnity引擎基础认知编辑器核心操作Unity 编辑器项目模式分类工程

Java List 使用举例(从入门到精通)

《JavaList使用举例(从入门到精通)》本文系统讲解JavaList,涵盖基础概念、核心特性、常用实现(如ArrayList、LinkedList)及性能对比,介绍创建、操作、遍历方法,结合实... 目录一、List 基础概念1.1 什么是 List?1.2 List 的核心特性1.3 List 家族成

Python学习笔记之getattr和hasattr用法示例详解

《Python学习笔记之getattr和hasattr用法示例详解》在Python中,hasattr()、getattr()和setattr()是一组内置函数,用于对对象的属性进行操作和查询,这篇文章... 目录1.getattr用法详解1.1 基本作用1.2 示例1.3 原理2.hasattr用法详解2.

c++日志库log4cplus快速入门小结

《c++日志库log4cplus快速入门小结》文章浏览阅读1.1w次,点赞9次,收藏44次。本文介绍Log4cplus,一种适用于C++的线程安全日志记录API,提供灵活的日志管理和配置控制。文章涵盖... 目录简介日志等级配置文件使用关于初始化使用示例总结参考资料简介log4j 用于Java,log4c

史上最全MybatisPlus从入门到精通

《史上最全MybatisPlus从入门到精通》MyBatis-Plus是MyBatis增强工具,简化开发并提升效率,支持自动映射表名/字段与实体类,提供条件构造器、多种查询方式(等值/范围/模糊/分页... 目录1.简介2.基础篇2.1.通用mapper接口操作2.2.通用service接口操作3.进阶篇3

Python自定义异常的全面指南(入门到实践)

《Python自定义异常的全面指南(入门到实践)》想象你正在开发一个银行系统,用户转账时余额不足,如果直接抛出ValueError,调用方很难区分是金额格式错误还是余额不足,这正是Python自定义异... 目录引言:为什么需要自定义异常一、异常基础:先搞懂python的异常体系1.1 异常是什么?1.2

Python实现Word转PDF全攻略(从入门到实战)

《Python实现Word转PDF全攻略(从入门到实战)》在数字化办公场景中,Word文档的跨平台兼容性始终是个难题,而PDF格式凭借所见即所得的特性,已成为文档分发和归档的标准格式,下面小编就来和大... 目录一、为什么需要python处理Word转PDF?二、主流转换方案对比三、五套实战方案详解方案1:

Spring WebClient从入门到精通

《SpringWebClient从入门到精通》本文详解SpringWebClient非阻塞响应式特性及优势,涵盖核心API、实战应用与性能优化,对比RestTemplate,为微服务通信提供高效解决... 目录一、WebClient 概述1.1 为什么选择 WebClient?1.2 WebClient 与

Spring Boot 与微服务入门实战详细总结

《SpringBoot与微服务入门实战详细总结》本文讲解SpringBoot框架的核心特性如快速构建、自动配置、零XML与微服务架构的定义、演进及优缺点,涵盖开发环境准备和HelloWorld实战... 目录一、Spring Boot 核心概述二、微服务架构详解1. 微服务的定义与演进2. 微服务的优缺点三