机器学习:基本介绍

机器学习介绍

在这里插入图片描述

Hnad-crafted rules

Hand-crafted rules,叫做人设定的规则。那假设今天要设计一个机器人,可以帮忙打开或关掉音乐,那做法可能是这样:

  • 设立一条规则,就是写一段程序。如果输入的句子里面看到**“turn off”**这个词汇,那chat-bot要做的事情就是把音乐关掉。这个时候,之后对chat-bot说,Please turn off the musiccan you turn off the music, Smart? 它就会帮你把音乐关掉。看起来好像很聪明。别人就会觉得果然这就是人工智能。但是如果今天想要欺负chat-bot一下,就可以说please don‘t turn off the music,但是还是会把音乐关掉。这是个真实的例子。相同的例子在车上面也体现,打开车窗,不要打开车窗,最终都会打开车窗。身边有很多这种类似的chat-bot,然后去真的对它说这种故意欺负它的话,它其实是会答错的。

使用hand-crafted rules有什么样的坏处呢,它的坏处就是:hand-crafted rules没办法考虑到所有的可能性,它非常的僵化,而用hand-crafted rules创造出来的machine,它永远没有办法超过它的创造者人类。 人类想不到东西,就没办法写规则,没有写规则,机器就不知道要怎么办。所以如果一个机器,它只能够按照人类所设定好的hand-crafted rules,它整个行为都是被规定好的,没有办法freestyle。如果是这样的话,它就没有办法超越创造它的人类。

你好像看到很多chat-bot看起来非常的聪明。如果你是有一个是一个非常大的企业,他给以派给成千上万的工程师,用血汗的方式来建出数以万计的规则,然后让他的机器看起来好像很聪明。但是对于中小企业来说,这样建规则的方式反而是不利的。

要做的其实是让机器它有自己学习的能力,也就我们要做的应该machine learning的方向。讲的比较拟人化一点,所谓machine learning的方向,就是你就写段程序,然后让机器人变得了很聪明,他就能够有学习的能力。接下来,你就像教一个婴儿、教一个小孩一样的教他,你并不是写程序让他做到这件事,你是写程序让它具有学习的能力。然后接下来,你就可以用像教小孩的方式告诉它。
在这里插入图片描述

machine learning所做的事情,可以想成就是在寻找一个function,要让机器具有一个能力,这种能力是根据你提供给它的资料去寻找要寻找的function。

在这里插入图片描述

在这里插入图片描述

在这里插入图片描述

要先准备一个function set(集合),这个function里面有成千上万的function。举例来说,这个function在里面,有一个f1,你给它看一只猫,它就告诉你输出猫,看一只狗就输出狗。有一个function f2它很怪,你给它看猫,它说是猴子;你给他看狗,它说是蛇。所以要准备一个function set,这个function set里面有成千上万的function。先假设手上有一个function set,这个function set就叫做model(模型)。

在这里插入图片描述

有了这个function set,接下来机器要做的事情是:它有一些训练的资料,这些训练资料告诉机器说一个好的function,它的输入输出应该长什么样子,有什么样关系。你告诉机器说呢,现在在这个影像辨识的问题里面,如果看到这个猴子,看到这个猴子图也要输出猴子,看到这个猫的图也要输出猴子猫,看到这个狗的图,就要输出猴子猫狗,这样才是对的。只有这些训练资料,拿出一个function,机器就可以判断说,这个function是好的还是不好的。

在这里插入图片描述

机器可以根据训练资料判断一个function是好的,还是不好的。举例来说:在这个例子里面显然 f 1 f_1 f1,他比较符合training data的叙述,比较符合我们的知识。所以f1看起来是比较好的。 f 2 f_2 f2看起来是一个荒谬的function。这种task叫做supervised learning
在这里插入图片描述

现在机器有办法决定一个function的好坏。但光能够决定一个function的好坏是不够的,因为在function set里面有成千上万的function,它有会无穷无尽的function,所以需要一个有效率的评估算法,可以从function的set里面挑出最好的function。一个一个衡量function的好坏太花时间,实际上做不到。所以需要有一个好的评价算法,从function set里面挑出一个最好的的function,这个最好的function将它记为 f ∗ f^* f

在这里插入图片描述

machine learning里面非常重要的问题:机器有举一反三的能力

在这里插入图片描述

左边这个部分叫training,就是学习的过程;右边这个部分叫做testing,学好以后就可以拿它做应用。所以在整个machine learning framework整个过程分成了三个步骤:

  • 第一个步骤就是找一个function
  • 第二个步骤让machine可以衡量一个function是好还是不好
  • 第三个步骤是让machine有一个自动的方法,有一个好评估算法可以挑出最好的function。

在这里插入图片描述

机器学习其实只有三个步骤,这三个步骤简化了整个process。可以类比为:把大象放进冰箱。把大象塞进冰箱,其实也是三个步骤:把门打开;象塞进去;后把门关起来,然后就结束了。所以说,机器学习三个步骤,就好像是说把大象放进冰箱,也只需要三个步骤。

在这里插入图片描述

监督学习

在这里插入图片描述

Regression是一种machine learning的task,当我们说:要做regression时的意思是,machine找到的function,它的输出是一个scalar,这个叫做regression。举例来说,在作业一里面会做PM2.5的预测(比如说预测明天上午的PM2.5) ,也就是说要找一个function,这个function的输出是未来某一个时间PM2.5的一个数值,这个是一个regression的问题。

机器要判断function明天上午的PM2.5输出,你要提供给它一些资讯,它才能够猜出明天上午的PM2.5。你给他数据可能是今天上的PM2.5、昨天上午的PM2.5等等。这是一个function,它吃我们给它过去PM2.5的资料,它输出的是预测未来的PM2.5。在这里插入图片描述
若要训练这种machine,如同在Framework中讲的,需要准备一些训练资料,就告诉它是根据过去从政府的open data上搜集下来的资料。九月一号上午的PM2.5是63,九月二号上午的PM2.5是65,九月三号上午的PM2.5是100。所以一个好的function输入九月一号、九月二号的PM2.5,它应该输出九月三号的PM2.5;若给function九月十二号的PM2.5、九月十三号的PM2.5,它应该输出九月十四号的PM2.5。若收集更多的data,那就可以做一个气象预报的系统

在这里插入图片描述
classification(分类)的问题。Regression和Classification的差别就是要机器输出的东西的类型是不一样。在Regression中机器输出的是一个数值,在Classification里面机器输出的是类别。假设Classification问题分成两种,一种叫做二分类输出的是是或否(Yes or No);另一类叫做多分类(Multi-class),在Multi-class中是让机器做一个选择题,等于是给他数个选项,每个选项都是一个类别,让从数个类别里选择正确的类别。

在这里插入图片描述

在这里插入图片描述

训练这样的function很简单,给它一大堆的Data并告诉它,现在输入这封邮件,应该说是垃圾邮件,输入这封邮件,应该说它不是垃圾邮件。足够多的这种资料去学就可以自动找出一个可以侦测垃圾邮件的function。

在这里插入图片描述

刚才讲的都是让machine去解的任务,接下来要讲的是在解任务的过程中第一步就是要选择function set,选不同的function set就是选不同的model。Model有很多种,最简单的就是线性模型,但会花很多时间在非线性的模型上。在非线性的模型中最耳熟能详的就是Deep learning。

在这里插入图片描述

在做Deep learning时,它的function是特别复杂的,所以它可以做特别复杂的事情。比如它可以做图像识别,这个复杂的function可以描述pixel和class之间的关系。

在这里插入图片描述

用Deep learning的技术也可以让机器下围棋, 下围棋这个task 其实就是一个分类的问题。对分类问题需要一个很复杂的function,输入是一个棋盘的格子,输出就是下一步应该落子的位置。知道一个棋盘上有十九乘十九的位置可以落子,所以今天下围棋这件事情就可以把它想成是一个十九乘十九个类别的分类问题,或者是可以把它想成是一个有十九乘十九个选项的选择题。
在这里插入图片描述

在这里插入图片描述

所以若你有了这样的棋谱之后,可以告诉machine如果现在有人落子下5之五,下一步就落子在天元;若五之五和天元都有落子,那就要落子在另外一个五之5上。然后你给它足够多的棋谱,它就能学会下围棋了。

在这里插入图片描述

在这里插入图片描述

刚才讲的都是supervised learning(监督学习),监督学习的问题是需要大量的training data。training data告诉要找的function的input和output之间的关系。如果在监督学习下进行学习,需要告诉机器function的input和output是什么。这个output往往没有办法用很自然的方式取得,需要人工的力量把它标注出来,这些function的output叫做label。

半监督学习

假设先想让机器鉴别猫狗的不同,想做一个分类器让它告诉你,图片上是猫还是狗。有少量的猫和狗的labelled data,但是同时又有大量的Unlabeled data,但是又没有力气去告诉机器说哪些是猫哪些是狗。在半监督学习的技术中,这些没有label的data,这些数据可能也是对学习有帮助,之后会讲为什么这些没有label的data对学习会有帮助。
在这里插入图片描述
另外一个减少data用量的方向是迁移学习。

迁移学习

在这里插入图片描述
迁移学习的意思是:假设要做猫和狗的分类问题,只有少量的有label的data。但是现在有大量的data,这些大量的data中可能有label也可能没有label。但是跟我们现在要考虑的问题是没有什么特别的关系的,分辨的是猫和狗的不同,但是这边有一大堆其他动物的图片还是动画图片。

在这里插入图片描述
更加进阶的就是无监督学习,希望机器可以学到无师自通。

无监督学习

在这里插入图片描述
在reinforcement learning里面,没有告诉机器正确的答案是什么,机器所拥有的只有一个分数,就是他做的好还是不好。若现在要用reinforcement learning方法来训练一个聊天机器人的话,训练的方法会是这样:就把机器发到线下,让它和进来的客人对话,然后对话半天以后呢,最后客人勃然大怒把电话挂掉了。那机器就学到一件事情就是刚才做错了。但是它不知道哪边错了,它就要回去自己想道理,是一开始就不应该打招呼吗?还是中间不应该在骂脏话了之类。它不知道,也没有人告诉它哪里做的不好,它要回去反省检讨哪一步做的不好。机器要在reinforcement learning的情况下学习,机器是非常intelligence的。 reinforcement learning也是比较符合人类真正的学习的情景,这是在学校里面的学习老师会告诉你答案,但在真实社会中没人回告诉你正确答案。只知道做得好还是做得不好,如果机器可以做到reinforcement learning,那确实是比较intelligence。
在这里插入图片描述
Alpha Go其实是用监督学习加上reinforcement learning去学习的。先用棋谱做监督学习,然后在做reinforcement learning,但是reinforcement learning需要一个对手,如果使用人当对手就会很让费时间,所以机器的对手是另外一个机器。

在这里插入图片描述

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/41615.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

C#__使用Type类反射数据的基本用法

// 简单介绍 // 元数据(metadata):与程序及其类型有关的数据。 // 反射:一个运行的程序查看本身元数据或其他程序集中的元数据的行为 // Assembly类:允许访问给定程序集的元数据,包含了可以加载和执行程序…

Maven框架SpringBootWeb简单入门

一、Maven ★ Maven:是Apache旗下的一个开源项目,是一款用于管理和构建java项目的工具。 官网:https://maven.apache.org/ ★ Maven的作用: 1. 依赖管理:方便快捷的管理项目依赖的资源(jar包),避免版本冲突问题。 2. 统一项目结构:提供标准、统一的项目结构。 …

LightDB 23.3 plorasql 函数支持inout参数输出

开篇立意 oracle PLSQL函数中返回值有两种情况: (1)使用return返回值; (2)使用out修饰的参数(oracle不支持inout) SQL> create function yu(id inout int) return int asbeginn…

【C# 基础精讲】文件读取和写入

文件读取和写入是计算机程序中常见的操作,用于从文件中读取数据或将数据写入文件。在C#中,使用System.IO命名空间中的类来进行文件读写操作。本文将详细介绍如何在C#中进行文件读取和写入,包括读取文本文件、写入文本文件、读取二进制文件和写…

选择大型语言模型自定义技术

推荐:使用 NSDT场景编辑器 助你快速搭建可二次编辑器的3D应用场景 企业需要自定义模型来根据其特定用例和领域知识定制语言处理功能。自定义LLM使企业能够在特定的行业或组织环境中更高效,更准确地生成和理解文本。 自定义模型使企业能够创建符合其品牌…

PAT 1013 Battle Over Cities

个人学习记录,代码难免不尽人意。 It is vitally important to have all the cities connected by highways in a war. If a city is occupied by the enemy, all the highways from/toward that city are closed. We must know immediately if we need to repair a…

计算机机房的管理

1 电源问题 不稳定的电源对电脑的使用寿命是一个极大的威胁,特别是对于机房来说危害 性更大。为此,学校要添置必要的稳压器,设置其正常供电的电压为 220 伏、电流 为 l6 安对电脑室供电。如有电压发生偏差,要及时检查供电情况&…

BDA初级分析——认识SQL,认识基础语法

一、认识SQL SQL作为实用技能,热度高、应用广泛 在对数据分析人员的调查中SQL长期作为热度排名第-一的编程语言超过Python和R SQL:易学易用,高效强大的语言 SQL:Structured Query Language 结构化查询语言 SQL:易学…

python threading.Event()用法

红绿灯例子 Event的用法 import threading,timeeventthreading.Event()def lighter():timesec0event.set()while True:if 5<timesec<10:event.clear()print("红灯亮")elif timesec>10:event.set()timesec0else:print("绿灯亮")time.sleep(1)tim…

BSN“五、十、百”工程实施半年成果丰硕,助力数字化转型和高质量发展

为推动“云网链”融合的新基建赋能数字经济高质量发展&#xff0c;将区块链服务网络&#xff08;BSN&#xff09;打造成为中国数字经济和社会治理的核心区块链公共服务平台&#xff0c;2023年2月&#xff0c;在“第三届区块链服务网络&#xff08;BSN&#xff09;全球合作伙伴大…

力扣75——二分查找

总结leetcode75中的二分查找算法题解题思路。 上一篇&#xff1a;力扣75——堆/优先队列 力扣75——二分查找 1 猜数字大小2 咒语和药水的成功对数3 寻找峰值4 爱吃香蕉的珂珂1-4解题总结 1 猜数字大小 题目&#xff1a; 猜数字游戏的规则如下&#xff1a;每轮游戏&#xff0…

多维时序 | MATLAB实现WOA-CNN-BiGRU-Attention多变量时间序列预测

多维时序 | MATLAB实现WOA-CNN-BiGRU-Attention多变量时间序列预测 目录 多维时序 | MATLAB实现WOA-CNN-BiGRU-Attention多变量时间序列预测预测效果基本介绍模型描述程序设计参考资料 预测效果 基本介绍 多维时序 | MATLAB实现WOA-CNN-BiGRU-Attention多变量时间序列预测 1.程…

java 向上取整 java对小数取整

取整方法 Math.floor(double a) 向下取整 Math.ceil(double a) 向上取整 Math.round(double a) 四舍五入 0.5向下取整 Math.rint(double a) 就近取整 1.6接近2&#xff0c;所以就取2 1.4接近1&#xff0c;所以就取1 1.5跟1和2都很接近&#xff0c;这时候就取偶数 (int) 类型强转…

MongoDB:数据库初步应用

一.连接MongoDB 1.MongoDBCompass连接数据库 连接路径:mongodb://用户名:密码localhost:27017/ 2.创建数据库(集合) MongoDB中数据库被称为集合. MongoDBCompass连接后,点击红色框加号创建集合,点击蓝色框加号创建文档(数据表) 文档中的数据结构(相当于表中的列)设计不用管…

腾讯云国际轻量应用服务器使用流程是什么呢?

腾讯云国际轻量应用服务器怎么使用呢&#xff1f;下面一起来了解一下&#xff1a; 1. 熟悉轻量应用服务器基础知识 ①什么是轻量应用服务器 TencentCloud Lighthouse&#xff1f; ②轻量应用服务器与云服务器 CVM 的区别是什么&#xff1f; ③为什么选择轻量应用服务器&#xf…

一个DW的计算

一个DW的计算 1- 题目: 已知一个DW1.1 要求: 从DW中取出指定的位的值1.1.1 分析1.1.2 实现1.1.3 简化实现1.1.4 验证 2- 题目: 已知一个DW2.1 要求: 从DW中的指定的P和S,取出指定的位的值2.1.1 分析2.1.2 实现 1- 题目: 已知一个DW 有图中所示一行信息&#xff0c;表示一个DW(…

常见的Web安全漏洞有哪些,Web安全漏洞常用测试方法介绍

Web安全漏洞是指在Web应用程序中存在的可能被攻击者利用的漏洞&#xff0c;正确认识和了解这些漏洞对于Web应用程序的开发和测试至关重要。 一、常见的Web安全漏洞类型&#xff1a; 1、跨站脚本攻击(Cross-Site Scripting&#xff0c;XSS)&#xff1a;攻击者通过向Web页面注入…

神经网络基础-神经网络补充概念-41-梯度的数值逼近

概念 梯度的数值逼近是一种用于验证梯度计算正确性的方法&#xff0c;它通过近似计算梯度来与解析计算的梯度进行比较。虽然数值逼近在实际训练中不常用&#xff0c;但它可以用来检查手动或自动求导的实现是否正确。 代码实现 import numpy as np# 定义函数 f(x) x^2 def f…

养生的年轻人,自己给自己“治病”

【潮汐商业评论/原创】 “最近嘴周总长痘&#xff0c;应该是上火了&#xff0c;我这就下单点金银花露喝。”对于长痘这件事&#xff0c;Anna的第一反应就是“内调”。 “针对性护肤和涂药这些方法治标不治本&#xff0c;就算用完痘痘不泛红且瘪了&#xff0c;身体里的问题没解…

上传文件报413Request EntityToo Large错误解决办法

产生这种原因是因为服务器限制了上传大小 1、nginx服务器的解决办法 修改nginx.conf的值就可以解决了 将以下代码粘贴到nginx.conf内 client_max_body_size 20M 可以选择在http{ }中设置&#xff1a;client_max_body_size 20m; 也可以选择在server{ }中设置&#xff1a;cli…