机器学习概述:什么是机器学习?

131
0
2021年1月16日 09时12分

机器学习概述:什么是机器学习?

 

  • 什么是机器学习
  • 机器学习的发展历史
  • 常见的机器学习算法框架
  • 常见的机器学习开发流程
  • 有监督机器学习算法
  • 无监督机器学习算法
  • scikit-learn机器学习算法库

 

什么是机器学习

 

微信图片_20210111120647

 

你是否使用像Siri或Alexa这样的个人助理客户端?你是否依赖垃圾邮件过滤器来保持电子邮件收件箱的干净?你是否订阅了Netflix,并依赖它惊人的准确推荐来发现新的电影可看?如果你对这些问题说“是”,恭喜你!你已经很好地利用了机器学习!

 

机器学习的核心是“使用算法解析数据,从中学习,然后对世界上的某件事情做出决定或预测”。这意味着,与其显式地编写程序来执行某些任务,不如教计算机如何开发一个算法来完成任务。有三种主要类型的机器学习:监督学习、非监督学习和强化学习,所有这些都有其特定的优点和缺点。

 

微信图片_20210111120700

 

如上图所示:
机器学习是人工智能的一个分支学科,而现在大火的深度学习又是机器学习的一个分支。机器学习分为监督学习、非监督学习和强化学习;而监督学习又可以细分为分类学习、回归学习、排序学习、匹配学习。分监督学习又包含了聚类学习。

 

传送门
写的挺好的一篇介绍

 

机器学习的发展历史

 

微信图片_20210111120735

 

机器学习最早的发展是Thomas Bayes 在1783年发表的同名理论,贝斯定理发现了给定有关类似事件的历史数据的事件的可能性。这是机器学习的贝叶斯分支的基础,它寻求根据以前的信息寻找最可能发生的事件。换句话说,Bayes定理只是一个从经验中学习的数学方法,是机器学习的基本思想。

 

几个世纪后,1950年,计算机科学家 Alan Turing发明了所谓的图灵测试,计算机必须通过文字对话一个人,让人以为她在和另一个人说话。图灵认为,只有通过这个测试,机器才能被认为是“智能的”。1952年,Arthur Samuel创建了第一个真正的机器学习程序——一个简单的棋盘游戏,计算机能够从以前的游戏中学习策略,并提高未来的性能。接着是Donald Michie 在1963年推出的强化学习的tic-tac-toe程序。在接下来的几十年里,机器学习的进步遵循了同样的模式–一项技术突破导致了更新的、更复杂的计算机,通常是通过与专业的人类玩家玩战略游戏来测试的。

 

它在1997年达到巅峰,当时IBM国际象棋电脑深蓝(Deep Blue)在一场国际象棋比赛中击败了世界冠军加里·卡斯帕罗夫(Garry Kasparov)。最近,谷歌开发了专注于古代中国棋类游戏围棋(Go)的AlphaGo,该游戏被普遍认为是世界上最难的游戏。尽管围棋被认为过于复杂,以至于一台电脑无法掌握,但在2016年,AlphaGo终于获得了胜利,在一场五局比赛中击败了Lee Sedol。

 

机器学习最大的突破是2006年的深度学习。深度学习是一类机器学习,目的是模仿人脑的思维过程,经常用于图像和语音识别。深度学习的出现导致了我们今天使用的(可能是理所当然的)许多技术。你有没有把一张照片上传到你的Facebook账户,只是为了暗示给照片中的人贴上标签?Facebook正在使用神经网络来识别照片中的面孔。或者Siri呢?当你问你的iPhone关于今天的棒球成绩时,你的话语会用一种复杂的语音解析算法进行分析。如果没有深度学习,这一切都是不可能的。

 

常见的机器学习算法框架

 

这里想要介绍的框架可能更应该称为深度学习框架。深度学习并不是一个独立的学习方法,但是它确实实现机器学习的一门技术。那么如何利用好这门技术?俗话说,工欲善其事,必先利其器。下面就跟大家简要介绍一下深度学习的几个主流框架以及他们的优缺点。

 

1,Caffe
Caffe是一个清晰而高效的深度学习框架,也是一个被广泛使用的开源深度学习框架,在Tensorflow出现之前一直是深度学习领域Github star最多的项目。

 

Caffe的主要优势为:容易上手,网络结构都是以配置文件形式定义,不需要用代码设计网络。训练速度快,组件模块化,可以方便的拓展到新的模型和学习任务上。

 

但是Caffe最开始设计时的目标只针对于图像,没有考虑文本、语音或者时间序列的数据,因此Caffe对卷积神经网络的支持非常好,但是对于时间序列RNN,LSTM等支持的不是特别充分。caffe工程的models文件夹中常用的网络模型比较多,比如Lenet、AlexNet、ZFNet、VGGNet、GoogleNet、ResNet等。

 

微信图片_20210111120755

 

2,Tensorflow
TensorFlow是一个使用数据流图进行数值计算的开源软件库。图中的节点表示数学运算,而图边表示在它们之间传递的多维数据阵列(又称张量)。灵活的体系结构允许你使用单个API将计算部署到桌面、服务器或移动设备中的一个或多个CPU或GPU。

 

微信图片_20210111120812

 

3,Keras
Keras由纯Python编写而成并基于Tensorflow、Theano以及CNTK后端,相当于Tensorflow、Theano、 CNTK的上层接口,号称10行代码搭建神经网络,具有操作简单、上手容易、文档资料丰富、环境配置容易等优点,简化了神经网络构建代码编写的难度。目前封装有全连接网络、卷积神经网络、RNN和LSTM等算法。

 

Keras有两种类型的模型,序贯模型(Sequential)和函数式模型(Model),函数式模型应用更为广泛,序贯模型是函数式模型的一种特殊情况。

 

  1. 序贯模型(Sequential):单输入单输出,一条路通到底,层与层之间只有相邻关系,没有跨层连接。这种模型编译速度快,操作也比较简单
  2. 函数式模型(Model):多输入多输出,层与层之间任意连接。这种模型编译速度慢。

 

微信图片_20210111120832

 

下表是对这三种框架的一个比较

 

微信图片_20210111120848

 

常见的机器学习开发流程

 

微信图片_20210111120916

 

有监督机器学习算法

 

监督学习算法是给定一组输入x xx和输出y yy的训练集,学习如何关联输入和输出。在许多情况下,输出y yy很难自动收集,必须由人来提供‘监督’,该术语也适用于训练集目标可以被自动搜集的情况。

 

传送门
一些监督算法的实例
KNN算法

 

无监督机器学习算法

 

无监督学习常常被用于数据挖掘,用于在大量无标签数据中发现些什么。它的训练数据是无标签的,训练目标是能对观察值进行分类或区分等。例如无监督学习应该能在不给任何额外提示的情况下,仅依据所有“猫”的图片的特征,将“猫”的图片从大量的各种各样的图片中将区分出来。

 

无监督主要有三种:聚类,离散点检测和降维,聚类是比较经典的一种。聚类就是将观察值聚成一个一个的组,每一个组都含有一个或者几个特征。恰当地提取特征是无监督最为关键的环节。例如在对猫的识别中,来尝试提取猫的特征:皮毛、四肢、耳朵、眼睛、胡须、牙齿、舌头等等。通过对特征相同的动物的聚类,可以将猫或者猫科动物聚成一类。

 

但是此时,我们不知道这群毛茸茸的东西是什么,只知道这团东西属于一类,兔子不在这个类(耳朵不符合),飞机也不在这个类(有翅膀)。特征有效性直接决定着算法有效性。如果我们拿体重来聚类,而忽略体态特征,恐怕就很难区分出兔子和猫了。

 

传送门
https://www.cnblogs.com/dynmi/p/11619698.html
http://baijiahao.baidu.com/s?id=1601989883884337751&wfr=spider&for=pc
https://blog.csdn.net/hemro/article/details/93634747

 

scikit-learn机器学习算法库

 

scikit-learn是一个整合了多种常用的机器学习算法的Python库,又简称skLearn。scikit-learn非常易于使用,为我们学习机器学习提供了一个很好的切入点。

 

以下是几个介绍 scikit-learn机器学习算法库的比较好的文章,这里推荐给大家
https://www.cnblogs.com/IAMTOM/p/10249144.html
https://blog.csdn.net/leowinbow/article/details/86507911
https://blog.csdn.net/lck5602/article/details/78696469

 

善于使用各种库,是我们玩转机器学习乃至深度学习的一大前提,本文的介绍就到这里。因为作者也是刚接触这些,所以说的不是很全,希望对大家能有所帮助吧。

发表评论

后才能评论