全干货!机器学习通识篇知识分享
本文来源:海豚数据科学实验室
机器学习定义
机器学习(Machine Learning)本质上就是让计算机自己在数据中学习规律,并根据所得到的规律对未来数据进行预测。
机器学习包括如聚类、分类、决策树、贝叶斯、神经网络、深度学习(Deep Learning)等算法。
机器学习的基本思路是模仿人类学习行为的过程,如我们在现实中的新问题一般是通过经验归纳,总结规律,从而预测未来的过程。机器学习的基本过程如下:
机器学习基本过程
机器学习发展历程
从机器学习发展的过程上来说,其发展的时间轴如下所示:
机器学习发展历程
从上世纪50年代的图灵测试提出、塞缪尔开发的西洋跳棋程序,标志着机器学习正式进入发展期。
60年代中到70年代末的发展几乎停滞。
80年代使用神经网络反向传播(BP)算法训练的多参数线性规划(MLP)理念的提出将机器学习带入复兴时期。
90年代提出的“决策树”(ID3算法),再到后来的支持向量机(SVM)算法,将机器学习从知识驱动转变为数据驱动的思路。
21世纪初Hinton提出深度学习(Deep Learning),使得机器学习研究又从低迷进入蓬勃发展期。
从2012年开始,随着算力提升和海量训练样本的支持,深度学习(Deep Learning)成为机器学习研究热点,并带动了产业界的广泛应用。
机器学习分类
机器学习经过几十年的发展,衍生出了很多种分类方法,这里按学习模式的不同,可分为监督学习、半监督学习、无监督学习和强化学习。
监督学习
监督学习(Supervised Learning)是从有标签的训练数据中学习模型,然后对某个给定的新数据利用模型预测它的标签。如果分类标签精确度越高,则学习模型准确度越高,预测结果越精确。
监督学习主要用于回归和分类。
常见的监督学习的回归算法有线性回归、回归树、K邻近、Adaboost、神经网络等。
常见的监督学习的分类算法有朴素贝叶斯、决策树、SVM、逻辑回归、K邻近、Adaboost、神经网络等。
半监督学习
半监督学习(Semi-Supervised Learning)是利用少量标注数据和大量无标注数据进行学习的模式。
半监督学习侧重于在有监督的分类算法中加入无标记样本来实现半监督分类。
常见的半监督学习算法有Pseudo-Label、Π-Model、Temporal Ensembling、Mean Teacher、VAT、UDA、MixMatch、ReMixMatch、FixMatch等。
无监督学习
无监督学习(Unsupervised Learning)是从未标注数据中寻找隐含结构的过程。
无监督学习主要用于关联分析、聚类和降维。
常见的无监督学习算法有稀疏自编码(Sparse Auto-Encoder)、主成分分析(Principal Component Analysis, PCA)、K-Means算法(K均值算法)、DBSCAN算法(Density-Based Spatial Clustering of Applications with Noise)、最大期望算法(Expectation-Maximization algorithm, EM)等。
强化学习
强化学习(Reinforcement Learning)类似于监督学习,但未使用样本数据进行训练,是通过不断试错进行学习的模式。
在强化学习中,有两个可以进行交互的对象:智能体(Agnet)和环境(Environment),还有四个核心要素:策略(Policy)、回报函数(收益信号,Reward Function)、价值函数(Value Function)和环境模型(Environment Model),其中环境模型是可选的。
强化学习常用于机器人避障、棋牌类游戏、广告和推荐等应用场景中。
为了便于读者理解,用灰色圆点代表没有标签的数据,其他颜色的圆点代表不同的类别有标签数据。监督学习、半监督学习、无监督学习、强化学习的示意图如下所示:
机器学习应用之道
机器学习是将现实中的问题抽象为数学模型,利用历史数据对数据模型进行训练,然后基于数据模型对新数据进行求解,并将结果再转为现实问题的答案的过程。机器学习一般的应用实现步骤如下:
将现实问题抽象为数学问题;
数据准备;
选择或创建模型;
模型训练及评估;
预测结果;
这里我们以Kaggle上的一个竞赛Cats vs. Dogs(猫狗大战)为例来进行简单介绍,感兴趣的可亲自实验。
1. 现实问题抽象为数学问题
现实问题:给定一张图片,让计算机判断是猫还是狗?
数学问题:二分类问题,1表示分类结果是狗,0表示分类结果是猫。
2. 数据准备
数据下载地址:
https://www.kaggle.com/c/dogs-vs-cats。
下载 kaggle 猫狗数据集解压后分为 3 个文件 train.zip、 test.zip 和 sample_submission.csv。
train 训练集包含了 25000 张猫狗的图片,猫狗各一半,每张图片包含图片本身和图片名。命名规则根据 “type.num.jpg” 方式命名。
训练集示例
test 测试集包含了 12500 张猫狗的图片,没有标定是猫还是狗,每张图片命名规则根据“num.jpg”命名。
测试集示例
sample_submission.csv 需要将最终测试集的测试结果写入.csv 文件中。
sample_submission示例
我们将数据分成3个部分:训练集(60%)、验证集(20%)、测试集(20%),用于后面的验证和评估工作。
3. 选择模型
机器学习有很多模型,需要选择哪种模型,需要根据数据类型,样本数量,问题本身综合考虑。
如本问题主要是处理图像数据,可以考虑使用卷积神经网络(Convolutional Neural Network, CNN)模型来实现二分类,因为选择CNN的优点之一在于避免了对图像前期预处理过程(提取特征等)。猫狗识别的卷积神经网络结构如下面所示:
最下层是网络的输入层(Input Layer),用于读入图像作为网络的数据输入;最上层是网络的输出层(Output Layer),其作用是预测并输出读入图像的类别,由于只需要区分猫和狗,因此输出层只有2个神经计算单元;位于输入和输出层之间的,都称之为隐含层(Hidden Layer),也叫卷积层(Convolutional Layer),这里设置3个隐含层。
4. 模型训练及评估
我们预先设定损失函数Loss计算得到的损失值,通过准确率Accuracy来评估训练模型。损失函数LogLoss作为模型评价指标:
准确率(accuracy)来衡量算法预测结果的准确程度:
TP(True Positive)是将正类预测为正类的结果数目。
FP(False Positive)是将负类预测为正类的结果数目。
TN(True Negative)是将负类预测为负类的结果数目。
FN(False Negative)是将正类预测为负类的结果数目。
训练过中的 loss 和 accuracy
5.预测结果
训练好的模型,我们载入一张图片,进行识别,看看识别效果:
机器学习趋势分析
机器学习真正开始研究和发展应该从80年代开始,我们借助AMiner平台,将近些年机器学习论文进行统计分析所生成的发展趋势图如下所示:
可以看出,深度神经网络(Deep Neural Network)、强化学习(Reinforcement Learning)、卷积神经网络(Convolutional Neural Network)、循环神经网络(Recurrent Neural Network)、生成模型(Generative Model)、图像分类(Image Classification)、支持向量机(Support Vector Machine)、迁移学习(Transfer Learning)、主动学习(Active Learning)、特征提取(Feature Extraction)是机器学习的热点研究。
以深度神经网络、强化学习为代表的深度学习相关的技术研究热度上升很快,近几年仍然是研究热点。
最后,引用韩愈《进学解》中的一句话:
“业精于勤,荒于嬉;行成于思,毁于随。”
版权归原作者所有,如有侵权,请联系删除。
欢迎加入Imagination GPU与人工智能交流2群
入群请加小编微信:eetrend89
(添加请备注公司名和职称)
推荐阅读
Imagination Technologies 是一家总部位于英国的公司,致力于研发芯片和软件知识产权(IP),基于Imagination IP的产品已在全球数十亿人的电话、汽车、家庭和工作场所中使用。获取更多物联网、智能穿戴、通信、汽车电子、图形图像开发等前沿技术信息,欢迎关注 Imagination Tech!
全干货!机器学习通识篇知识分享相关推荐
- 算法到底该怎么学?算法数据结构Java编程超全干货!(ACM金牌选手分享超牛学习路径~)...
怎么才能最快的学习算法呢?(ps:文末附2022大厂面试真题~) 这是很多知友都关心的话题,作为一个ACM金牌选手,根据我的专业角度,特给大家来分享一下! 学习算法,切记不要一上来就开始啃<算法 ...
- 从零学起-----通识篇08 IP
目录 一.学习目标 二.学习背景 三.学习内容 1.IP地址 2.网络号与主机号 3.IP地址分类 4.特殊地址(全为1和全为0) 5.无分类地址CIDR 6.私有地址(子网) 7.网关 8.子网掩码 ...
- react之bind函数到组件通识篇
前言 在说起react的函数绑定之前,我们有必要了解下bind函数的作用是什么,函数的执行的上下文以及其默认的this是指向的哪里?有点抽象?那么你可以去看下下面的两个方法的执行会有什么区别吧. le ...
- 从零学起-----通识篇01 进制转换
目录 一.目标 二.学习说明背景 三.学习内容 1.进制定义 2.各进制间的转换方法 2.1 二进制转其他进制 2.2 十进制转其他进制 2.3 八进制转其他进制 2.4 十六进制转其他进制 2.5 ...
- java水仙花数代码_java知识分享篇(五)
大家好,我是小小刀,又和大家见面了,下面我们直接进入分享 开场白 一个星期坚持下来了,我也给自己打个卡,下个星期加油!我们共同学习,共同进步!! 今日分享 数据共用一个栈内存问题(蔓延) 原问题 如果 ...
- “AI芯片”通识_AI产品经理看这一篇就够了_团员分享_@书博
前言:本文作者团员@书博 ,从事过芯片.硬件.嵌入式等相关工作,最近希望成为"AI芯片"领域的产品经理,所以专门深度研究这个领域,输出了这篇文章.本文,是用产品经理能够看得懂的语言 ...
- 创立创造创建的区别_【干货|知识分享】Solidworks与Rhino有什么区别呢?
## [干货|知识分享]Solidworks与Rhino有什么区别呢? 三维建模软件有很多,其中常用.功能相似的就是Solidworks和Rhino,这两个对于大学生们最为熟悉的.最开始接触的三维建 ...
- 4个Keynote、12篇论文分享、40个Poster,CVPR 2021论文分享会全日程公布
随着人工智能的火热,AAAI.NeurIPS.CVPR 等顶级学术会议的影响力也愈来越大,每年接收论文.参会人数的数量连创新高.但受疫情影响,近两年国外举办的学术会议都转为了线上,无法满足学者们现场交 ...
- 亚马逊测评需要哪些材料、资源和注意点,测评干货知识分享
2021年不平凡的一年,发生了太多的大事件,疫情的原因实体行业并不景气,造成互联网行业爆发式的增长,大批量的国内商家入驻亚马逊电商平台,造成测评需求量暴增, 那么测评需要哪些资源呢?需要注意哪些地方呢 ...
最新文章
- Android之自定义AlertDialog无法监听控件
- Android-TCPDump for Android(抓TCP数据包工具)
- nyoj-小明的密钥(362)--数论
- ubuntu 安装docker_Docker学习笔记1 虚拟化历史及 Ubuntu环境下体验安装
- xshell网站打不开
- SEGGER_RTT、git偏僻问题常用解决方法
- 创建一个ROS工作空间(ROS Workspace)过程中遇到的问题
- 想哭的鱼最新QQ伤感日志发布:你不该,不相信我
- 成功解决FAT32 No GRLDR问题
- 改Robust Video Matting为Robust Image Matting
- Leetcode 905. Sort Array By Parity
- VB.NET学习笔记:使用Random类生成随机数(不重复、数字、字母)
- 加强生物保护 绿日同学公益组织“国际生物多样性日“宣传活动
- webdriver和火狐浏览器历史版本下载
- Python把数据写进html的表格代码里,收件人显示表格
- 【沃顿商学院学习笔记】宏观经济学——03国际移民与城市发展Immigration and Cities
- 偶数个数字,甲乙轮流取,甲先手,问能否判断甲取得数字之和不小于乙
- 小米路由器r1d刷第三方_小米路由器R1D 改造散热记录
- QComboBox的下拉多选
- python爬虫自学1-爬取静态网页-2022-02-10