外行人都能看得懂的机器学习,错过了血亏!
前言
只有光头才能变强
没错,这篇主要跟大家一起入门机器学习。作为一个开发者,”人工智能“肯定是听过的。作为一个开发面试者,肯定也会见过”机器学习“这个岗位(反正我校招的时候就遇到过)。
可能还会听过或者见过“深度学习”、“神经网络”等等这些非常火的名词,那你对这些术语了解多少呢?
相信大家这几天在朋友圈也可以看到这照片:
// 通过if else 以人工穷举的方式来假装实现智能机器人聊天
希望阅读完本文中后,大家可以对这些术语和机器学习有一定的了解。
一、术语介绍
首先我们来简单看看人工智能、深度学习、机器学习这些术语和它们之间的关系究竟是怎么样的。
1.1人工智能
不知道听到“人工智能”大家会联想到什么,可能大多数都会想到科幻电影的机器人。
我们看来看看维基百科的定义:
人工智能(英语:Artificial Intelligence,缩写为 AI)亦称机器智能,指由人制造出来的机器所表现出来的智能。通常人工智能是指通过普通计算机程序的手段实现的人类智能技术。
人工智能也可以分成两类:
- 强人工智能:强人工智能观点认为“有可能”制造出“真正”能推理(Reasoning)和解决问题的智能机器,并且,这样的机器将被认为是具有知觉、有自我意识的。
- 像绝大多数科幻电影中的机器人就是在这范畴
- 弱人工智能:弱人工智能观点认为“不可能”制造出能“真正”地推理和解决问题的智能机器,这些机器只不过**“看起来”像是智能**的,但是并不真正拥有智能,也不会有自主意识。
- 我们目前阶段的人工智能,其实都是弱人工智能。
1.2机器学习
不知道听到“机器学习”大家会联想到什么。Emmm…反正我就是从字面的意思去理解:“机器可以自我学习”。
首先我们看一下维基百科是怎么说的:
机器学习是实现人工智能的一个途径,即以机器学习为手段解决人工智能中的问题。机器学习在近30多年已发展为一门多领域交叉学科,涉及概率论、统计学、逼近论、凸分析、计算复杂性理论等多门学科
简单来说:机器学习可以通过大量的数据或者以往的经验自动改进计算机程序/算法。
生成完模型f(x)
之后,我们将样例数据丢进模型里边,就可以输出结果:
我们说机器学习可以自我学习,是因为我们会将样例数据也会丢到“历史数据”中,这样生成模型就会有一定的改动,从而达到“自我学习”的效果。
1.3它们之间的关系
等等,我们好像还没讲深度学习呢。我们从上面机器学习的介绍也可以知道,机器学习已发展为一门多领域交叉学科,机器学习中就有好多个经典的算法,其中就包含了神经网络(深度学习可看成是神经网络的升级版)。由于近几年深度学习发展迅猛,一些特有的学习手段相继被提出,所以越来越多的人将其单独看作一种学习的方法。
《机器学习 周志华》:
所谓深度学习,狭义地说就是**“很多层”的神经网络**,在若干测试和竞赛下,尤其涉及语音、图像等复杂对象的引用中,深度学习取得优越的性能。
所以我们可以总结出人工智能、机器学习、深度学习之间的关系是这样的:
- 机器学习,是实现人工智能的重要方法。
- 深度学习,是实现机器学习的技术。
想要了解更多,可参考:
- 人工智能、机器学习和深度学习的区别?
- https://www.zhihu.com/question/57770020
二、机器学习入门
通过上面我们可以简单认为机器学习就是:利用计算机从历史数据找出规律,把这些规律用到未来不确定场景的决策中。
下面我们再来学习一下机器学习的一些入门知识。
2.1机器学习的术语
特征、样本、数据集、标记这些术语的说明:
特征(属性)所张成的空间叫做特征空间。
例如我们把“色泽”、"根蒂“、”敲声“作为三个坐标轴,则它们张成一个用于描述西瓜的三围空间,每个西瓜都可在这个空间中找到自己的坐标位置。由于空间中的每个点对应一个坐标向量,我们也把一个示例称为“特征向量”。
回到我们上面的图,再来讲讲“训练数据”、“训练”、“标记”:
2.2机器学习的分类
一般机器学习又可以分成以下几类:
- 监督学习
- 半监督学习
- 非监督学习
- 增强学习
2.2.1监督学习
监督学习:训练数据(Training Data)可以告诉我们要找的那个模型的输入(Input)与输出(Output,也就是我们说的label)之间有什么样的关系。
- 给出的数据都有“答案”或“标记”
训练数据:“Java3y公众号”->好的公众号 , “Java4y公众号”->不好的公众号。
输出结果:好的公众号或者不好的公众号
在监听学习下又分为两种算法:
- 回归(Regression):结果是一个连续的数值(scalar),而非类别
- 分类(Classification):为训练数据进行分类别(多分类)
- 二分类:类别只有两种结果(YES OR NO)
回归例子:知道前几天的PM2.5数值,预测一下明天的PM2.5数值。
**二分类例子:**判断一封邮件是垃圾邮件还是正常邮件。
**多分类例子:**将新闻帖子分类成不同的类别。
2.2.2非监督学习
非监督学习:训练数据(Training Data)没有对应“答案”或“标记”
训练数据:“Java3y公众号” “Java4y公众号” “Java5y公众号” “Java6y公众号” “yyy公众号” “xxx公众号” “zzz公众号”
输出结果:(“Java3y公众号” “Java4y公众号” “Java5y公众号” “Java6y公众号”) (“yyy公众号” “xxx公众号” “zzz公众号”) 分门类别
对没有“标记”的数据进行分类-聚类分析
聚类分析例子:在以前,中国移动有三个品牌:神州行、动感地带、全球通。我们给一堆的SIM卡交由学习算法训练,不告诉它每张SIM卡具体是什么卡,最后我们是可以将这些SIM卡分类别出来的。
2.2.3半监督学习
理解了监督学习和非监督学习,对于半监督学习就很容易理解了。
一部分数据有“标记”或者“答案”,另一部分数据没有
- 因为各种原因产生的标记缺失。
通常都会使用非监督学习手段对数据进行处理(特征提取、降维),之后再只用监督学习手段做模型的训练和预测。
2.2.4增强学习
根据周围环境的情况,采取行动,根据采取行动的结果,学习行动方式
每次行动,就给这次的行动评分,算法会根据评分来评估下一次的行动是好还是坏,最终不断改进。
例子:Alpha Go下每步棋的时候都会评估自己这次下得怎么样,通过最终的结果不断改进下的每步棋。
2.3机器学习的其他分类
除了我们上面所说的监督学习、非监督学习、半监督学习、增强学习之外,机器学习也可以分成:
- 在线学习:及时将样例数据作为训练数据对模型进行训练。
- 需要加强对数据进行监控(有可能样本数据是脏数据,这样就破坏我们的模型)
- 离线(批量)学习:定时将样例数据作为训练数据对模型进行训练。
- 不能很快的适应环境的变化
还有:
- 参数学习:一旦学到了参数,就不再需要原有的数据集。通过调参数就好了。
- 非参数学习:不对模型进行过多的假设,非参数不代表没参数。
最后
机器学习的核心在于算法上,这篇只是对机器学习的一个简单的入门,希望能对大家有所帮助。
机器学习资源,可关注我的公众号,回复“机器学习”即可领取。
- 有周志华《机器学习》电子版。吴恩达、李宏毅视频及笔记
乐于分享和输出干货的Java技术公众号:Java3y。
文章的目录导航:
- https://github.com/ZhongFuCheng3y/3y
外行人都能看得懂的机器学习,错过了血亏!相关推荐
- 简单到外行人都能看懂的“学生管理系统”
简单到外行人都能看懂的"学生管理系统" 话不多说,直接开始 1-------------首先万物第一步,定义属性 我们这里定义了三个属性,名字,年龄,学号, public clas ...
- [免费专栏] Android安全之Android Xposed插件开发,小白都能看得懂的教程
也许每个人出生的时候都以为这世界都是为他一个人而存在的,当他发现自己错的时候,他便开始长大 少走了弯路,也就错过了风景,无论如何,感谢经历 Android安全付费专栏长期更新,本篇最新内容请前往: [ ...
- yolov5使用2080ti显卡训练是一种什么样的体验我通过vscode搭建linux服务器对python-yolov5-4.0项目进行训练,零基础小白都能看得懂的教程。>>>>>>>>>第二章番外篇
第二章番外篇:yolov5通过vscode搭建linux服务器对python-yolov5-4.0项目进行训练,零基础小白都能看得懂的教程.YOLOv5搭建的最快搭建方式,踩坑经历详谈 前期准备: 2 ...
- yolov5-4.0环境搭建,零基础小白都能看得懂的教程。YOLOv5搭建的最快搭建方式,踩坑经历详谈)yolov5/yolov4/yolov3/yolov3通>>>>>>>>>>>>>>>>>第一章
第一章:python最新YOLOv5-4.0环境搭建,零基础小白都能看得懂的教程.YOLOv5搭建的最快搭建方式,踩坑经历详谈 环境准备: yolov5-4.0环境搭建整体说明 2,anaconda的 ...
- 小白都能看得懂的教程 一本教你如何在前端实现markdown编辑器
小白都能看得懂的教程 一本教你如何在前端实现markdown编辑器 大家好,我是亓官劼(qí guān jié ),在[亓官劼]公众号.CSDN.GitHub.B站.华为开发者论坛等平台分享一些技 ...
- C语言,谁都能看得懂的归并排序
喜欢看排序算法动态效果的,可以看看这个网站 https://visualgo.net/zh/sorting 里面很多算法的动画解释,可以看到算法的排序效果,而且还附带了伪代码的实现过程. 本来想录制几 ...
- 外行人都能看懂的WebFlux,错过了血亏
前言 只有光头才能变强. 文本已收录至我的GitHub仓库,欢迎Star: https://github.com/ZhongFuCheng3y/3y 本文知识点架构: 知识点架构 如果有关注我公众号文 ...
- 外行人都能看懂的 NFS 知识,错过血亏
目录 前言 初识 NFS 1.1 什么是 NFS? 1.2 RPC 远程调度 1.3 NFS 工作过程 1.4 NFS 权限 1.5 NFS 相关文件 NFS 案例 2.1 NFS server 2. ...
- 尚硅谷springcloud第二季笔记_外行人都能看懂的 Spring Cloud,错过了血亏
一.前言 这篇主要来讲讲SpringCloud的一些基础的知识(我就是现学现卖了,主要当做我学习SpringCloud的笔记吧!)当然了,我的水平是有限的,可能会有一些理解错的的概念/知识点,还请大家 ...
- 外行人都能看懂的SpringCloud,错过了血亏!
一.前言 只有光头才能变强 认识我的朋友可能都知道我这阵子去实习啦,去的公司说是用SpringCloud(但我觉得使用的力度并不大啊~~)... 所以,这篇主要来讲讲SpringCloud的一些基础的 ...
最新文章
- Oracle推出轻量级Java微服务框架Helidon
- JAVA 多用户商城系统b2b2c-服务容错保护(Hystrix依赖隔离)
- 2440从sd卡启动wince
- SIFT定位算法关键步骤的说明
- 基本套接字总结(@function)
- 调试一个C#研究生管理信息系统源码
- Intellij Idea非常6的10个姿势!
- 最难面试IT公司的测试题
- 网络基础一(协议的概念,网络应用程序设计模式)
- html中加减号怎么输入,jQuery 实现点击加减号改变input标签中的value值,该怎么解决...
- iOS版微信跟上了!已支持改微信号,修改后好友不会收到提醒
- c#报错不实现接口成员_当接口和具体在不同的项目中时,c#-“无法实现接口成员”错误...
- 小心中中国移动“短号集群网”的招
- C#ToString() 格式化数值
- 教新手小白如何通过五分钟学会用Python爬取女神照片!
- 清华教授!亲手教你JavaScript 在线解压 ZIP 文件,实战理论全都有
- ov5640帧率配置_基于OV5640的FPGARAM HDMI显示
- Cannot find module ‘vite-plugin-compression‘ or its corresponding type declarations
- Python面向对象:小明和小美爱跑步
- windows下使用nvm管理node版本