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

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. 降维操作:

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

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


原文地址:https://blog.csdn.net/lucas161543228/article/details/107608116
本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.chinasem.cn/article/414936

相关文章

Android学习总结之Java和kotlin区别超详细分析

《Android学习总结之Java和kotlin区别超详细分析》Java和Kotlin都是用于Android开发的编程语言,它们各自具有独特的特点和优势,:本文主要介绍Android学习总结之Ja... 目录一、空安全机制真题 1:Kotlin 如何解决 Java 的 NullPointerExceptio

Python中OpenCV与Matplotlib的图像操作入门指南

《Python中OpenCV与Matplotlib的图像操作入门指南》:本文主要介绍Python中OpenCV与Matplotlib的图像操作指南,本文通过实例代码给大家介绍的非常详细,对大家的学... 目录一、环境准备二、图像的基本操作1. 图像读取、显示与保存 使用OpenCV操作2. 像素级操作3.

重新对Java的类加载器的学习方式

《重新对Java的类加载器的学习方式》:本文主要介绍重新对Java的类加载器的学习方式,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐教... 目录1、介绍1.1、简介1.2、符号引用和直接引用1、符号引用2、直接引用3、符号转直接的过程2、加载流程3、类加载的分类3.1、显示

POI从入门到实战轻松完成EasyExcel使用及Excel导入导出功能

《POI从入门到实战轻松完成EasyExcel使用及Excel导入导出功能》ApachePOI是一个流行的Java库,用于处理MicrosoftOffice格式文件,提供丰富API来创建、读取和修改O... 目录前言:Apache POIEasyPoiEasyExcel一、EasyExcel1.1、核心特性

Python中模块graphviz使用入门

《Python中模块graphviz使用入门》graphviz是一个用于创建和操作图形的Python库,本文主要介绍了Python中模块graphviz使用入门,具有一定的参考价值,感兴趣的可以了解一... 目录1.安装2. 基本用法2.1 输出图像格式2.2 图像style设置2.3 属性2.4 子图和聚

Java学习手册之Filter和Listener使用方法

《Java学习手册之Filter和Listener使用方法》:本文主要介绍Java学习手册之Filter和Listener使用方法的相关资料,Filter是一种拦截器,可以在请求到达Servl... 目录一、Filter(过滤器)1. Filter 的工作原理2. Filter 的配置与使用二、Listen

利用Python快速搭建Markdown笔记发布系统

《利用Python快速搭建Markdown笔记发布系统》这篇文章主要为大家详细介绍了使用Python生态的成熟工具,在30分钟内搭建一个支持Markdown渲染、分类标签、全文搜索的私有化知识发布系统... 目录引言:为什么要自建知识博客一、技术选型:极简主义开发栈二、系统架构设计三、核心代码实现(分步解析

Spring Boot + MyBatis Plus 高效开发实战从入门到进阶优化(推荐)

《SpringBoot+MyBatisPlus高效开发实战从入门到进阶优化(推荐)》本文将详细介绍SpringBoot+MyBatisPlus的完整开发流程,并深入剖析分页查询、批量操作、动... 目录Spring Boot + MyBATis Plus 高效开发实战:从入门到进阶优化1. MyBatis

Java进阶学习之如何开启远程调式

《Java进阶学习之如何开启远程调式》Java开发中的远程调试是一项至关重要的技能,特别是在处理生产环境的问题或者协作开发时,:本文主要介绍Java进阶学习之如何开启远程调式的相关资料,需要的朋友... 目录概述Java远程调试的开启与底层原理开启Java远程调试底层原理JVM参数总结&nbsMbKKXJx

Python FastAPI入门安装使用

《PythonFastAPI入门安装使用》FastAPI是一个现代、快速的PythonWeb框架,用于构建API,它基于Python3.6+的类型提示特性,使得代码更加简洁且易于绶护,这篇文章主要介... 目录第一节:FastAPI入门一、FastAPI框架介绍什么是ASGI服务(WSGI)二、FastAP