机器学习入门一:基础知识

  • 前言
  • 机器学习介绍
    • 1.什么是机器学习?
    • 2.机器学习中的常见困难
      • 模型的泛化[^1] (Generalization)能力
    • 3.机器学习中数据集划分
    • 4.机器学习中几种学习类别
      • 监督学习(Supervised Learning)
      • 无监督学习(Unsupervised Learning)
      • 半监督学习(Semi-Supervised Learning)
      • 强化学习(Reinforcement Learning)

前言

首先本系列是个人学习知识的总结,如果能帮助到其他人那再好不过,文中多会出现英语图片或语句,我会尽量解释。

机器学习介绍

1.什么是机器学习?

其实就是字面上的意思,让机器能够自主学习,更精确一点就是:令机器获得一种不需要明确编程指令,便能够自主学习如何去解决具体问题的能力。如图,其步骤大致是:
机器学习训练步骤——版本0.1

  1. 收集训练数据
  2. 将数据输入预先搭建的数学模型中,启动程序开始训练模型(此时模型参数是随机值)
  3. 经过一段时间后训练完成,我们获得训练好的模型(此时模型参数已经自动调整为最优)
  4. 将此模型投入使用,输入真实的数据,希望模型能够输出一个准确的预测结果

(务必记住机器学习训练步骤,之后会不断更新)

机器学习的主要应用有:

输入 输出 应用
图片 判断图中是否有人脸(输出是或否) 图片分类
音频片段 截取到的人声片段 语音识别
中文句子 英文句子 文本翻译
车载镜头或传感器 距离其它车辆的位置 自动驾驶

2.机器学习中的常见困难

  • 模型的泛化1 (Generalization)能力

    模型的泛化问题主要体现在数据拟合的部分:(我们以分类O和X举例,蓝线就是机器画的分界线)

    欠拟合(Underfitting):意思就是模型还没有训练好,还不足以达到理想效果,还需要再训练一会儿。

    适拟合(Appropriate-fitting):意思就是模型练的刚刚好,分类效果很好,这是我们希望看到的情况。

    过拟合(Over-fitting):意思就是模型训练得准确过头了,在训练数据上的准确率达到完美,那就是说明这个模型只适用于这一个训练集,如果放到实战中,由于实战的样本和训练集的样本不一样,那这个模型表现是不会太好的。

    【至于为何会过拟合?其实就是模型迭代了太多次,学到了许多细枝末节没有的特征,这些特征只适用于训练的数据集里,而不一定适用于实际的输入。举个例子,假如训练数据正好都是暖色系的图片,那在猫猫识别模型里可能就会说暖色系的图片更有可能是猫猫,实际上并没有必然的关联。】


    下方这个图的纵轴表示的是损失值 2 ** ,横轴是训练的迭代次数**,可见训练次数过多也不一定是好事。


总结一下:训练模型就和怪物猎人里烤肉一样,时间不够就是生肉,时间正好就是熟肉,时间太长就变成焦肉了。

3.机器学习中数据集划分

机器学习中最开始是只有两个数据集划分,一个是训练集,一个是是测试集

  • 训练集(Training Set):指作为模型输入的训练样本数据,比如一个数据集中,有800张带标签的猫猫图片和200张带标签的狗狗的图片。
  • 测试集(Test Set):指模型训练完成后,测试集里的数据作为真实数据去对模型进行测试,在测试过程中不对模型的参数做任何修改。

但是后来发现只有两个数据集不太行啊,每次训练完直接测试都不咋样,干脆加一个验证集,用来做个出厂检验吧。

  • 验证集(Validation Set):指在用训练集训练完模型后用来调整超参数的集合。由于验证集有测试训练效果的作用,因此不能被当做训练集去训练。一般我们把训练集的20%数据用作验证集,剩下80%当做训练步骤的输入。

    超参数(hyperparameters) :指神经网络的全连接层数或者每一层的节点数,些被称之为模型的超参数,以区分于模型自身的参数,如模型的权重和偏置,全连接层和节点后文会讲)

至于为什么不直接用训练集和测试集?可以看看具体解释3

4.机器学习中几种学习类别

监督学习(Supervised Learning)

输入数据:{input,correct output}

  • 监督学习的特点就是输入数据会带有正确的标签,比如1代表图片里有猫猫,0代表没有猫猫的话,输入数据为:[xxx.jpg,1]、[xxx.jpg,0]

  • 应用领域:分类(Classification)、回归(Regression)

无监督学习(Unsupervised Learning)

输入数据:{input}

  • 非监督学习的特点就是输入数据不带任何的标签,比如输入数据为各种图片:[xxx.jpg]、[xxx.jpg]

  • 应用领域:分布估计(Distribution Estimation)、聚类(Clustering)、降维(Dimensionality Reduction)、关联(Association)

半监督学习(Semi-Supervised Learning)

输入数据:{input} 或者 {input,correct output}

  • 是监督学习与无监督学习相结合的一种学习方法。半监督学习使用大量的未标记数据,以及同时使用标记数据,来进行模式识别工作,一般无标记数据的数量远大于有标记数据。

  • 应用领域:与监督学习和无监督学习类似

强化学习(Reinforcement Learning)

输入数据:{input, some output, grade}

  • 强化学习是一类特殊的机器学习算法,借鉴于行为主义心理学。与有监督学习和无监督学习的目标不同,算法要解决的问题是智能体(agent,即运行强化学习算法的实体)在环境中怎样执行动作以获得最大的累计奖励。强化学习应用广泛,被认为是通向强人工智能/通用人工智能的核心技术之一。所有需要做决策和控制的地方,都有它的身影。
    举例,假如围棋用强化学习算法来训练,输入就有可能是:[x,失败,负反馈],x为围棋棋子落点坐标,output为比赛的结果,grade为这一步的一个反馈。

  • 应用领域:棋牌类或博弈类游戏、机器人控制、自动驾驶

每种学习方式的人工与机器参与度

好了,学了一些基础知识后,让我们把机器学习训练步骤升级一个版本

机器学习训练步骤——版本1.0

  1. 收集训练数据,并按2:8的比例划分为验证集训练集两组
  2. 用训练集作为输入,开始训练模型
  3. 模型训练得差不多之后,用验证集对模型进行评估
  4. 如果模型表现结果不满意,则跳到步骤二再次开始进行训练
  5. 如果模型表现结果满意,则结束训练

=========================== 以下为注释 ===============================


  1. 解释一下泛化的概念:拿图片分类模型举例,之前说过,我们训练好一个模型,当然是希望它投入实际的应用中去,而不是希望模型在训练的时候分类准确率高,但一到实际应用时准确率便低,就好像一个学生每次训练月考都是满分,但是到了实战高考的关键时刻就是0分,这是我们所不希望看见的。泛化就是指,模型在获得各种各样的真实输入的情况下所能够拥有的表现,其表现越好,我们称之为泛化能力越强。 说句人话就是光在训练时候做得好有个p用,实战表现好才是真的好。 ↩︎

  2. 损失值可以理解为模型输出结果减去真实结果,假如我们设定输出结果是1就代表图片上有猫,输出是0就代表图片上没有猫,那模型的输出往往不是绝对的1或0,而是0.1745或者0.8798等等的浮点数,损失值就是指真实值(1或0)减去模型输出值。(可以先暂时这么理解,之后会详细说明损失函数这一概念) ↩︎

  3. 为什么不直接使用两个数据集:一个训练集和一个测试集?直接在训练集上面训练模型,在测试集上面评估模型,这样不是更简单一些吗?
      不这样做的原因在于,开发一个模型通常需要我们去调整模型的配置:例如,选择最佳的全连接层数或者每一层的节点数。我们通过模型在验证集上面的表现来做这种调整。本质上,这种调整也是一种学习的过程:在某种参数空间中寻找最佳的模型配置。结果,根据模型在验证集上面的表现来调整其配置会很快地导致模型在验证集上面过拟合,即便模型从来没有直接在验证集上进行训练。
      产生这一现象的原因即所谓的“信息泄漏“。每一次基于模型在验证集上面的表现来调整某个超参数的时候,某些关于验证集的信息就会泄漏给模型。如果我们仅仅作一次这样的调整,那么只会有很少的信息被泄漏,那么你的验证集依然可以被用来评估模型。然而,如果你多次重复这一过程——运行一个实验,在验证集上面评估模型,然后修改模型——那么关于验证集的越来越多的信息会被泄漏个模型。
      最后,我们只会得到一个在验证集上面表现良好的模型,因为你就是朝着这个方向去优化它的。然后我们所关心的是模型在新数据上面的表现,而不是验证集,所以我们需要应用一个完全不同的,全新的数据集来评价这个模型,即测试集。我们的模型不能够直接地或者间接地接触过任何关于测试集的信息。如果模型基于测试集的表现来进行调整的话,那么对模型的泛化能力的评价是存在缺陷的 ↩︎

机器学习入门一:基础知识相关推荐

  1. 机器学习需要哪些基础知识?

    机器学习需要一些基础知识,包括以下几个方面: 机器学习需要哪些基础知识? 数学基础:机器学习涉及到很多数学知识,如线性代数.微积分.概率论和统计学等.这些数学知识是理解和应用机器学习算法的基础. 编程 ...

  2. python基础一入门必备知识-Python数据分析入门必备基础知识

    今天,老师要带大家解数据分析的定义.核心思路.应用领域以及开发流程,向大家全方位展示数据分析入门必备基础知识,全都是干货哦!虽然看完本文,不能让大家立马变身为一名数据分析师,但是能让大家对数据分析有一 ...

  3. 机器学习算法的基础知识

    机器学习算法的基础知识 1.评估指标 2.偏差与方差(过拟合与欠拟合) 3.正则化(解决过拟合) 4.梯度下降算法(算法优化方式) 5.数据不平衡 1.评估指标 预测值 0 1 实际 0 TN FP ...

  4. 机器学习入门:准备知识笔记(pandas)之一

    参考教学笔记:2021年Python人工智能,13天机器学习入门到精通,精讲+14大案例分析(数据来源参考) pandas的优势  增强图表可读性 便捷的数据处理能力 读取文件方便 封装了Matplo ...

  5. GPS 入门 1 —— 基础知识[转]

    GPS 入门 1 -- 基础知识 [转] (2008-10-11 18:14:57) <script> var $tag='gps,杂谈'; var $tag_code='b7179ced ...

  6. 小白入门SQL基础知识汇总

    小白入门SQL基础知识汇总 课程链接:link

  7. 炒股入门初学者基础知识讲解,如何掌握新手炒股入门基础知识

    对一些刚入股市的新手来讲,要学习的股票术语和一些图标实在是太多了,很多的新手在炒股的时候不知道炒股的技巧是什么,毕竟万事开头难,所以大家要多了解一些基础的知识.下面为大家介绍下QR技术分析社区中关于炒 ...

  8. 炒股入门基础知识之炒股入门?炒股入门股票基础知识该掌握哪些

    最近几年越来越多的朋友们开始进入股票市场,为了也是自己在业余的时间,可以有一个事情做,如果能够赚钱的话自然是更好的,但是如果赔钱自己也能够乐观的面对,毕竟投资是有风险的,我们为大家介绍一下<阿尔 ...

  9. C语言零基础入门——1.基础知识与环境搭建。

    C语言零基础入门--1.基础知识与环境搭建. 好了.终于迎来了第一篇文章,这篇文章要做的事情非常简单,主要有三个事情 ​ 第一:C语言的介绍. ​ 第二:计算机的基础知识. ​ 第三:C语言的环境安装 ...

  10. PLC编程入门-01基础知识介绍

    PLC编程入门-01基础知识介绍 PLC的组成结构 PLC编程语言: PLC输入输出的特点 输入 输出 PLC的组成结构 简图 明细图 CPU:控制器和运算器本身就是CPU主要组成部分,和PC的CPU ...

最新文章

  1. apache 局域网访问
  2. 编写高性能的 Lua 代码
  3. 人口普查(20) PAT
  4. 创建存储过程批量插入数据
  5. 横坐标标签如何变斜体?
  6. NLP深度学习:基于TensorFlow实现Skip-Gram模型
  7. C++设计模式10--命令模式(二)(Command)--降低请求发送者与接收者耦合
  8. ROS ros::NodeHandle nh(“~“)
  9. 不要质疑读者,读者永远比作者聪明
  10. OA协同办公系统未来的趋势
  11. 把自己录制的mp3音乐分享到朋友圈
  12. Linux下的文件及文件后缀名
  13. 直播预告| ICML专场四~
  14. arduino测试ArduinoModbus库例程
  15. npm ERR! code EINVAL npm ERR! EINVAL: invalid argument, read
  16. 电脑升级到WIN11系统无法打开QQ和TIM?我来教你如何解决
  17. 【数值溢出】从二进制的角度看数值溢出
  18. Android悬浮窗适配全机型,包含8.0,小米魅族华为悬浮窗权限适配demo看这一篇就够了
  19. 小程序 多张图片上传(源码分享+实现分析)
  20. nCode:DesignLife案例教程三

热门文章

  1. cygwin 编译linux内核,Cygwin编译ARM Linux内核
  2. LHL 华为开发者大会有感 之 什么是HMS
  3. 计算机插只读锁能往u盘写入吗,U盘单向只读锁 防写入电子取证设备
  4. Android APP 自动更新实现(适用Android9.0)
  5. android定位数据在移动,android - 在我的Wi-Fi和移动数据关闭的情况下,是否可以仅通过GPS从经纬度获取地址? - 堆栈内存溢出...
  6. 华芸ADM3.2详解 篇一:华芸NAS——AS6404T开箱,ADM3.2简析
  7. 闪烁着凄烈紫光的太刀。名之为「回光」是因为一度破碎的过去。
  8. 棋盘覆盖问题 java_Java基于分治算法实现的棋盘覆盖问题示例
  9. 形象理解二维码登录原理
  10. 娱乐旅游活动对国民素质有什么影响