Day 15 : 机器学习介绍

前半段讲python讲得差不多惹XDD 终於进入机器学习篇章(打开全新的一页的感觉),接着让我们好好地继续学习吧/images/emoticon/emoticon62.gif

人工智慧的分级

扯到机器学习,不得先拉回比较宏观的角度,人工智慧。人工智慧依照历史发展可以分成四个层级:

  • 第一级:自动控制
  • 第二级:探索推论、运用知识
  • 第三级:机器学习
  • 第四级:深度学习

人工智慧是让机器可以展现人类的智慧,基本上是一个让电脑执行人类工作的广泛用语。

  • 人工智慧可以泛称机器展现人类的智慧,包含第一级自动化流程控制、第二级的专家知识。
    第一级是写 if else ,若是开发一个聊天机器人,则开发者需要写很多条件去猜想顾客可能回答的问题。
    第二级是加入该领域的专家,可以协助开发者更完整地解决一个问题。例如,请聊天专家协助开发聊天机器人,猜想顾客的问题以及满意的回覆。

  • 机器学习则是透过演算法学习资料的样态,企图给予机器让它去学习一套规则或技能,通常可以建立一个模型去预测新的数据,而机器学习可以分成三种:

    • 监督式学习:从过去标记过的资料来进行训练模型,这个模型可以预测没见过的数据

      例如:训练大量的电子邮件,跟机器说哪些是垃圾邮寄哪些不是,请机器去预测未来的邮件是否是垃圾邮件

    • 非监督式学习:给予资料却不给与正确的答案,让模型从资料中找寻潜在的规则

      例如:由於人力标示成本耗时耗力,给予机器很多动物的图片来找寻分类规则

    • 强化式学习:让机器学习当前的状态,通常包含奖惩机制。

      例如:请机器下围棋,最後跟机器说是输还是赢;让电脑玩马力欧游戏

      类似人类学习的过程,如果犯法会有惩罚,如果做好事会得到别人的称赞

  • 深度学习是机器学习其中一种方法,藉由模仿人类的神经元传递,建立许多深层的网路建构,可以去学习更复杂的工作。
    例如:影像辨识、手写辨识、语音辨识复杂工作等等

建立模型的流程

而瞄准机器学习,其中建立模型开发流程可以粗略分成以上几个步骤:

  • 定义问题:一开始与需求方讨论和定义想要解决的问题

  • 蒐集资料:蒐集需要训练的资料或是答案,可能采用爬虫或从资料库拿取等方式

  • 清理资料:这些资料很有可能格式不一致,或是有可能有空值的情形需要进行资料处理

  • 特徵工程:这通常需要 Domain Knowledge,对於资料有相当程度地了解的人,对资料萃取新的特徵以增加模型准度

  • 训练模型:此阶段耗费的时间长短会决定於选择的演算法、资料样本大小、硬体资源(是否有GPU)等等

  • 模型评估:开发者会依照问题选择不同的评估方式,通常会有一个 baseline 成效,接着开发者的工作是想方设法地超越它

  • 模型部署:若模型成效已经达到需求方满意的水准之後,就会让模型上线并实际应用

  • 监控维运:模型开发後并不是结束,而是另一个开始,通常开发者需要肩负维运的责任

    通常随着时间模型成效会下降,这时候就需要有 re-train 的机制,让模型重新进行训练

此外,箭头的指向也可能会变动,仅是提供大致方向参考

机器学习的演算法

机器学习的演算法可以大致分为监督式学习与非监督式学习,两者的差别在於是否知道标准答案

  • 监督式学习好比说学生写作业对答案,我们从错误中学习,有老师跟我们说标准答案,告诉我们这个世界的基准是什麽。
    • 分类
    • 预测
  • 非监督式学习会让小孩去自己学习,例如你带他去一趟动物园之後,他可能会归纳说猴子跟猩猩很像,老虎跟猫很像,藉此从资料中学习一套法则,但你并没有跟他说答案。
    • 分群
    • 降维

过度拟合

若实作机器学习之後会常常听见的名词,过度拟合(overfitting)

机器会根据资料来进行学习,但倘若它过度拟合这些圆点,而使用一个过度复杂的模型(右图),虽然在训练的时候得到比较好的成效,但通常在没看过的资料成效会大打折扣

image

为了防止这种情况,我们可以...

  • 收集更多资料(但也意味者成本提高)
  • 用资料增补(Data Augmentation)
    这招常常使用在影像辨识,由於收集的资料有限,我们可以将既有的资料进行旋转、光暗调整、缩小放大等等进行调整,就可以倍增很多资料。
  • 重新进行资料探索,合并或减少没有用的特徵
  • 正规化,有 L1、L2 regularization。在演算法的 loss 计算加上惩罚项,如此一来机器在进行训练时来约束模型不要过度拟合

<<:  12. Error x Error Handling x Exception

>>:  Day 12 docker 安装 nginx 後的细部设定

NestJs 延伸篇 - Federation 实作

上一篇我们建立了 gateway ,也把 Task Service 安装了 federation 的...

不只懂 Vue 语法:请说明 Vue CLI 的目录架构?

问题回答 开发时主要在 src 资料夹进行开发,最後打包输出时是 dist 资料夹。在 src 里,...

请益 关於 excel vba 误差线

在excel-组合图表( 折线图+散布图) 设定 散布图中的 误差线 可设定成 水平误差线 请问 各...

Day15_附录A.控制项(A.12运作安全)

跳着写呀XD"~ 简单来说,就是维运罗(个人理解啦,也可能想错了)。 ▉A.12.1 运作...

个人笔记 从零开始 维修单派工 系统流程图

因想转职资讯相关行业,所以从基础开始学起。主要想做出维修单派工系统 所以找了在业界内的朋友协助,出些...