0
  • 聊天消息
  • 系统消息
  • 评论与回复
登录后你可以
  • 下载海量资料
  • 学习在线课程
  • 观看技术视频
  • 写文章/发帖/加入社区
创作中心

完善资料让更多小伙伴认识你,还能领取20积分哦,立即完善>

3天内不再提示

什么是机器学习?机器学习是如何工作的呢?

IEEE电气电子工程师 来源:lq 2019-01-12 10:05 次阅读

机器学习人工智能在近期最重要的发展之一。机器学习的理念是,不将智能看作是给机器传授东西,而是机器会自己学习东西。这样一来,机器就可以直接从经验(或数据)中学习如何处理复杂的任务。

即使是相对简单的机器学习算法也可以学习如何区分猫和狗的图片。

随着计算速度和用于编程的算法的巨大进步与发展,机器学习成长迅速。由此产生的算法对我们的生活开始产生重大影响,而且它们的表现往往胜过人类。那么,机器学习是如何工作的呢?

从经验中学习

在机器学习系统中,计算机通常是通过在相同任务的大型数据库中进行训练,然后自己编写代码去执行一项任务。其中很大一部分涉及到识别这些任务中的模式,然后根据这些模式做出决策。

举个例子,假设一家公司正要招聘一名新员工,在招聘广告登出之后有1000个人申请,每个人都投了简历。如果要亲自一个个筛选,这实在太多了,所以你想训练一台机器来完成这项任务。

为了做到这一点,你需要把公司过往的许多应聘者的简历都记录下来。对于每一份简历,你都有记录表明这个人是否最终被聘用了。为了训练机器,你拿出一半的简历,让机器通过学习这些简历最终是否成功地申请到了一份工作来找出其中的模式。

这样一来,当机器收收到一份简历时,它就可以对这个人是否适合被雇佣做出判断。训练完毕,就可以接着用另一半简历来对机器进行测试。如果它的成功率足够高,也就是机器做出正确判断的概率够高,那么你就可以安心地让机器根据一个人的简历来判断他是否适合被聘用。在任何阶段都不需要人的判断。

具体细节

为了更清楚地理解机器学习的过程,我们将以开发能够识别手写数字的机器为具体例子来考虑模式识别的问题。这样的机器应该能够准确识别一个字符所代表的数字,而无论它的书写格式如何变化。

数字识别的过程分为两个阶段。首先,我们必须能够将手写数字的图像扫描到机器中,并从这张(数字)图像中提取出有意义的数据。这通常是通过主成分分析(PCA)的统计方法实现的,这种方法会自动提取图像中的主要特征,例如图像的长度、宽度、线条的交点等。这个过程与求解矩阵的本征值和本征向量的过程密切相关,也与谷歌用来在万维网上搜索信息的过程非常相似。

然后,我们想训练机器从这些提取的特征中识别数字。一种非常主流的用来训练机器的方法是神经网络。神经网络算法的最初灵感来源是我们认为的人类大脑的工作方式,但并不严格地建立在我们认为的人类大脑的工作方式之上。

首先要创建一组“神经元”,并将它们连接起来,它们可以相互发送消息。接下来,让神经网络去解决大量已经知道结果的问题,这样做能让算法“学习”到应该如何确定神经元之间的连接,以便能成功地识别出数据中的哪些模式导致了正确的结果。

这种神经网络的一个早期例子是一种叫做感知机的单层系统,人们用它来模拟单个神经元。感知机的概念是由Frank Rosenblatt在1962年提出的,它的典型结构如下图所示:

向感知机输入n个数字X1、X2......Xn。然后将每个Xi乘以一个加权wi,并将所有这些乘积相加,得到它们的和

w₁X1+w₂X2+...+wnXn

如果这个和大于某个阈值C,则返回1,其他情况则返回0。也就是说,如果

w₁X1+w₂X2+...+wnXn-C > 0,

那么,感知机返回1;如果

w₁X1+w₂X2+...+wnXn-C ≤ 0,

那么感知机返回0。

对于数字识别问题,数字图像的提取特征就是输入Xi,感知机的判断是,这个数字是3还是4。训练感知机的过程包括要找到合适的加权wi和阈值C,使得感知机能够始终如一地识别出正确的数字。要做到这一点,需要谨慎使用基于统计的数学优化算法。

举例:数字识别

例如,假设我们仅从图像中提取两个特性:X1和X2,其中X1可能计算图像中直线的数量,X2能计算图像中线条交叉的次数。

现在,每个手写数字(比如3或4)的图像都有两个数字来描述,因而可以定位在一个坐标系中。由于数字3通常没有直线段,也没有交叉线,它的图像很可能对应于坐标系中接近 (0,0) 的点。数字4有三条直线段和1个交叉点,它的图像可能在点 (3,1) 附近。

对于给定的w₁、w₂和C,感知机中的和是

w₁X1+w₂X2-C,

让这个式子等于0就定义了一条直线。如果感知机能用训练的图像找到w₁、w₂和C的值,使得这条直线将所有对应于数字3的点与所有对应于数字4的点分隔开来,那么,它也就有很大的概率能够正确识别出新的数字图像。如果存在这样一条直线,则称数据是线性可分的。

假设图中红色的点来自代表数字3的图像,蓝色的点来自代表数字4的图像。如果算法使用C=2,X1=X2=1,则加权后的和等于0对应于图中的直线(w₁+w₂-2=0)。对于蓝色的数据点,加权和大于零,对于红色的数据点,加权和小于零,所以算法总是会给出这个数据集的正确答案。

如果数据点不能被一条直线分割,也就是说,数据不是线性可分的,那么可以把这些点扩展到一个更高的维度,并寄希望于在更高维空间它们是线性可分的。一个非常简单的例子是,你可以将图中的点拖拽出屏幕到第三个维度,拖拽的距离对应于它们到点 (0,0) 的初始距离。但是,通常会使用的是更复杂的方法。当然,如果从原始数据中提取的特征是两个以上,那么就可以在更高维度上使用类似的方法。

感知机方法也可以用于对猫和狗的图像进行分类:

随着训练数据的增加,算法会更新其选择的直线,也就是会改变常数C和加权w₁、w₂的数值。

神经网络和深度学习

简单的感知机可以被训练来完成许多简单的任务,但很快就会达到极限。显然,将许多感知机耦合在一起就可以进行更多的计算,但这一发展必须等待更强大的计算机的出现。当多层感知机耦合起来形成一个神经网络时,这一重大突破就出现了。这种神经网络的典型结构如下图所示,它包括输入层、隐藏层和输出层。在这种情况下,输入会组合起来以触发感知机的第一层神经元,由此产生的输出也会组合起来以触发下一层神经元,最后,这些组合起来给出最终的输出。

层数越多,神经网络就越“深”。然后,这样一个神经网络就会通过为上面的神经元之间的每个连接分配加权而得到训练。这个过程是为了模仿大脑神经通路强化或衰减的方式。深度学习描述了训练这样一个神经网络的过程。

事实上,神经网络算法之所以可能实现,是由新的数学优化算法的发展与强大的计算能力结合的结果。在为神经网络寻找合适的加权wi的过程结束之时,我们得到了一个黑箱,它可以非常快速地运行并做出“决策”。

不同的机器学习方法

神经网络学习的过程有多种形式。

在监督学习中,用户会事先提供一组成对的实例,也就是输入和输出。然后,学习的目标是找到一个给出的输出能与实例匹配的神经网络。通常,用来比较神经网络的输出与实例的输出的方法是计算两者的均方误差;然后对网络进行训练,让这一误差对所有训练数据集最小化。这种方法的一个非常标准的应用是在统计学中使用的曲线拟合,它对手写数字和其他的模式识别问题都有很好的效果。

在强化学习中,数据不会由用户事先给出,而是由神经网络控制的机器与环境交互作用时生成的。机器会在每个时间点上对环境执行一个操作,由此生成一个观察结果,以及这个操作的成本。然后训练这个神经网络去选择那些将总体成本降至最低的操作。在许多方面,这个过程类似于人类(尤其是小孩子)学习的方式。

近年来,机器学习的数学算法有了很大的发展。卷积神经网络(CNNs)就是一种令人兴奋的、重要的新发展,它是对那些将图像处理技术与深度神经网络结合的方法的扩展,可以应用于人脸识别,甚至可以用来检测情绪,现在还被用于包括医学诊断在内的许多其他领域。

为了更好地学习下国际象棋,AlphaZero使用了深度卷积神经网络。它的训练是通过强化学习的方法,让机器在24小时内与自己对弈70万局。过程中采用一种通用的蒙特卡罗树搜索(MCTS)算法来分配加权。在学习下围棋和日本将棋时采用的也是类似的方法,而且在每种情况下都达到了相似的水平。这是非常了不起的!

机器学习进展迅速,在更快的训练算法和越来越多的数据的驱动下,发展更复杂、更深层神经网络的趋势越来越明显。但或许我们需要思考的问题是,把可能改变生命的决定(如医学诊断)留给机器,这样做安全且合乎道德吗?

声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉
  • 神经网络
    +关注

    关注

    42

    文章

    4572

    浏览量

    98737
  • 人工智能
    +关注

    关注

    1776

    文章

    43844

    浏览量

    230590
  • 机器学习
    +关注

    关注

    66

    文章

    8122

    浏览量

    130551

原文标题:什么是机器学习?

文章出处:【微信号:IEEE_China,微信公众号:IEEE电气电子工程师】欢迎添加关注!文章转载请注明出处。

收藏 人收藏

    评论

    相关推荐

    【下载】《机器学习》+《机器学习实战》

    、Apriori算法、FP-Growth算法。第四部分介绍了机器学习算法的一些附属工具。全书通过精心编排的实例,切入日常工作任务,摒弃学术化语言,利用高效的可复用Python代码来阐释如何处理统计数据,进行
    发表于 06-01 15:49

    如何学习机器学习

    【吴恩达机器学习学习笔记13(Normal Equation& 与梯度下降比较)
    发表于 04-26 11:05

    机器学习的未来

    机器学习的未来在工业领域采用机器学习机器学习和大数据
    发表于 01-27 06:02

    最值得学习机器学习编程语言

    选择最能满足个人需求,以及保证自己将来能够在 AI 和机器学习领域顺利发展的编程语言。在本文中,我们将介绍最值得学习的 5 种编程语言,这些语言不仅能够为机器
    发表于 03-02 06:22

    介绍机器学习的基础内容

    系列文章目录提示:这里可以添加系列文章的所有文章的目录,目录需要自己手动添加例如:第一章 Python 机器学习入门之pandas的使用提示:写完文章后,目录可以自动生成,如何生成可参考右边的帮助
    发表于 08-13 07:39

    微型机器学习

    人工智能 AI 正在加快速度从云端走向边缘,进入到越来越小的物联网设备中。而这些物联网设备往往体积很小,面临着许多挑战,例如功耗、延时以及精度等问题,传统的机器学习模型无法满足要求,那么微型机器
    发表于 09-15 09:23

    机器学习的基础内容

    系列文章目录提示:这里可以添加系列文章的所有文章的目录,目录需要自己手动添加例如:第一章 Python 机器学习入门之pandas的使用提示:写完文章后,目录可以自动生成,如何生成可参考右边的帮助
    发表于 02-09 06:47

    什么是机器学习? 机器学习基础入门

    本文旨在为硬件和嵌入式工程师提供机器学习(ML)的背景,它是什么,它是如何工作的,它为什么重要,以及 TinyML 是如何适应的机器学习是一
    发表于 06-21 11:06

    部署基于嵌入的机器学习模型

    1、如何在生产中部署基于嵌入的机器学习模型  由于最近大量的研究,机器学习模型的性能在过去几年里有了显著的提高。虽然这些改进的模型开辟了新的可能性,但是它们只有在可以部署到生产应用中时
    发表于 11-02 15:09

    什么是机器学习机器学习能解决什么问题?(案例分析)

    随着大数据时代的到来,机器学习成为解决问题的一种重要且关键的工具。不管是工业界还是学术界,机器学习都是一个炙手可热的方向,但是学术界和工 业界对机器
    发表于 05-18 13:13 1.6w次阅读
    什么是<b class='flag-5'>机器</b><b class='flag-5'>学习</b>?<b class='flag-5'>机器</b><b class='flag-5'>学习</b>能解决什么问题?(案例分析)

    机器学习是如何工作的? 人工智能与机器学习实例

    虽然机器学习算法是人工智能的一个应用,但并非所有人工智能系统都被视为机器学习的示例。
    发表于 02-08 17:23 1873次阅读

    机器学习和深度学习的区别

    机器学习和深度学习的区别 随着人工智能技术的不断发展,机器学习和深度学习已经成为大家熟知的两个术
    的头像 发表于 08-17 16:11 3381次阅读

    机器学习算法入门 机器学习算法介绍 机器学习算法对比

    机器学习算法入门 机器学习算法介绍 机器学习算法对比 机器
    的头像 发表于 08-17 16:27 625次阅读

    机器学习是什么意思?机器学习属于什么分支?机器学习有什么用处?

    机器学习是什么意思?机器学习属于什么分支?机器学习是什么有什么用处?
    的头像 发表于 08-17 16:30 1273次阅读

    机器学习有哪些算法?机器学习分类算法有哪些?机器学习预判有哪些算法?

    机器学习有哪些算法?机器学习分类算法有哪些?机器学习预判有哪些算法?
    的头像 发表于 08-17 16:30 1395次阅读