什么是机器学习

简介: 利用计算机的运算能力,从大量的数据中发现一个 “函数”或“模型” ,并通过它来模拟现实世界事物间的关系,从而实现预测、判断等目的。建模的过程就是机器“学习”过程。

定义

利用计算机的运算能力,从大量的数据中发现一个 “函数”或“模型” ,并通过它来模拟现实世界事物间的关系,从而实现预测、判断等目的。建模的过程就是机器“学习”过程。

和传统程序的区别

1.png

传统程序员把已知的规则定义好后输入给机器的,而机器学习则从已知数据中,通过不断试错、自我优化、自身总结,归纳出来。传统程序是程序员来定义函数,而机器学习中是机器训练出函数。

标签

在机器学习中,自变量x1,x2,x3,...,xn,就叫做特征(feature),因变量y叫做标签(label)。而一些历史特征和一些历史标签的集合,就是机器学习的数据集。当机器通过训练找到一个函数/模型,我们还需要验证和评估,如果函数不好,就需要调整或者找新的函数/模型。
机器学习不一定要标签,可以分为三种情况来划分:

训练数据集全部有标签,叫监督学习(supervised learning);
训练数据集没有标签,叫做无监督学习(unsupervised learing);
在训练数据集中,有的数据有标签,有的数据没有标签,我们叫做半监督学习(semi-supervised learning)。

监督学习:监督学习被分为两类:回归问题和分类问题。

2.png

回归问题
标签是连续数值。比如预测房价、湿度、温度等。

分类问题
标签是离散性数值。比如预测明天是否会下雨、美国是否会被中国超越等。

无监督学习
目前它大多数只应用在聚类、降维等有限的场景中,往往作为数据预处理的一个子步骤显显身手。

半监督学习
半监督学习的原理、功能和流程与监督学习是很相似的,区别主要在于多了“伪标签的生成”环节,也是给无标签的数据人工“贴标签”。

很多问题无法通过“监督”学习来解决,比如说你要设计一个机器人来陪你玩牌?这就需要强化学习了。

强化学习
强化学习和监督学习的差异在于:监督学习是从数据学习,而强化学习是从环境给它的奖惩中学习。
强化学习智能体在调整策略的时候需要思路比较长远,它不一定每次都明确地选择最优动作,而是要在探索(未知领域)和利用(当前知识)之间找到平衡。它反复试错、不断收集反馈,收集可供自己学习的信号,每经过一个训练周期,都变得比原来强一点,经过亿万次的训练变得非常强大。《强化学习》第 2 版。
深度学习

深度学习是一种适用深层神经网络算法的机器学习模型,也可以应用于监督学习、半监督学习和无监督学习里,也可以应用于强化学习中。
长期以来,图形图像、自然语言和文本的处理是计算机行业的难题,因为这类信息的数据集,并不是结构化的,需要人工根据信息的类型来选择特征进行提取,这样对于特征的提取是有限的,就拿图像来说,只能提取出一些简单的滤波器。
深度学习能对非结构化的数据集进行自动的复杂特征提取,完全不需要人工干预。

相关文章
|
监控 druid Java
监控druid数据库连接池连接泄露的思路
监控druid数据库连接池连接泄露的思路
1693 2
|
JavaScript 算法 Java
看不惯各种信息收集表,我手写了一个身份证号输入组件
`shigen`是一位专注于Java、Python、Vue和Shell等技术的博主,分享知识和成长经历。为应对需频繁输入身份证号码的情况,`shigen`决定研究身份证校验机制。研究过程中,了解到身份证号码的生成规则,包括18位数字及校验码计算。通过编写JavaScript代码,实现了两个级别的身份证号码验证:一级仅检查基本格式,二级则加入校验码计算,确保符合生成规则。代码示例展示了逐步增强的验证功能,防止随意修改身份证号码。欢迎交流讨论,共同进步!
278 3
看不惯各种信息收集表,我手写了一个身份证号输入组件
|
Java 数据库连接
Java中的静态代码块深入解析
Java中的静态代码块深入解析
299 0
|
JavaScript
限制input框中的输入类型及长度
限制input框中的输入类型及长度
1253 0
|
设计模式 算法 关系型数据库
设计模式——设计模式简介、分类及面向对象设计原则
23 种设计模式中有些模式今天已经不流行了,有些模型已经被语言机制替代了,有些模式你可能常常会忘记,但这些都不重要,重要的是设计原则,因为有了这些设计原则,你有可能发明自己的模式,你也可以理解未来千千万万其他领域的模式。
242 1
|
监控 NoSQL 关系型数据库
深入浅出Redis(五):Redis的事务机制与ACID原则
深入浅出Redis(五):Redis的事务机制与ACID原则
|
Java Maven
同事被嘲笑后找到多种解决SpringBoot项目编译运行提示“程序包xxx不存在,找不到符号”方案
同事被嘲笑后找到多种解决SpringBoot项目编译运行提示“程序包xxx不存在,找不到符号”方案
574 0
同事被嘲笑后找到多种解决SpringBoot项目编译运行提示“程序包xxx不存在,找不到符号”方案
|
编译器 C++
C++ auto关键字 和 基于范围的for循环 语法糖
C++ auto关键字 和 基于范围的for循环 语法糖
394 0
|
Java
简单计算时间复杂度
简单计算时间复杂度
79 1