机器学习是怎么回事?

news/2024/11/18 5:37:12/文章来源:https://www.cnblogs.com/joke-dream/p/18349823

什么是机器学习

最近在入门人工智能,发现了一大堆的名词,和大家分享一下我是怎么理解机器学习的。

机器学习的概念

在百度上有定义,这里我说一下我自己的定义哈。机器学习就是让机器可以猜到你心里想的那个数字

我们想一下,什么是学习? 不就是从一开始的瞎猜到合理的推测吗?

我们玩一个猜数字的游戏,这个游戏规定,数字大小在0~100之间,但是我个人的习惯就是,这个数在50附近,比如48,49,50,51,52,一直都是这五个值中的一个。

假设我和你玩了一百次,每次你猜完,我告诉你猜对了都是这五个数字中的一个,如果继续玩,你是不是就会在这五个数字中去问我对不对? 所以,你现在就学会了怎么较为准确的猜出我心里想的数字。

以上过程我们就可以说是学习,即从过去的经验中得到下一次类似事件可能发生的结果。

机器怎么学习?

其实,在我看来,机器学习就是统计学和计算机的组合,可能这个说法比机器学习这个名词更接近真相。

现在我们来做一个线性拟合(这个机器学习的一个经典应用),假设现在有五个点,这五个点

  1. p1:(1,5)
  2. p2:(2,6)
  3. p3:(3,7)
  4. p4:(4.8)
  5. p5:(5,9)

上面这五个点,我们要是画一条线,就可以直接看出来,是y=x+4的直线上的五个点,对吧。

在高中,我们学过最小二乘法去计算斜率和截距的值,但现在我们不用这种公式来解这个系数,而是用猜的方式来学习怎么得到比较准确的系数。

我们按照以下过程看看能不能得到这样的系数:

  1. 我们先假设斜率是3,截距是20
  2. 我们导入y=3x+20,带入x为1到5,发现所有的y值都大于给出的点
  3. 根据2得出的结论,我认为截距值大了,我就-5,然后 y=3x+15
  4. 将新的公式带入x,看y值,发现还是所有的值都大于给出的点
  5. 继续做上面的调整,直到我们发现有这条线从这些点中间穿过,即部分点在线上面,部分在下面
  6. 微调斜率,让所有点都在得出的线上面或者下面
  7. 微调截距,让新的线穿过这些点
  8. 重复上面这个过程,直到我们计算的这些点和线的均方差达到一个阈值即可,比如说小于了10,我们就认为可以了

当然,我这里的推到并不是很严谨。但大体上说明白了怎么去猜测出一个合适的系数,让一条直线穿过这些点的时候,总误差比较小。

而且,我们可以看出,如果给出的点越多,这个猜测结果可信度越高。

如果能把上面的逻辑通过代码变成算法,我们就获得了一个机器学习的算法。

当然还可以优化,比如我们开始的时候不是随意的给出一个随机的斜率和随机的截距,而是让这条直线直接穿过其中的一个点,可以加快迭代次数等。

看了上面的例子是不是忽然觉得,这不就很像一个人在没有专业的数学功底的情况下去解决一个数学问题的推理方式吗?虽然不会用某个公式来直接解决,但是可以凭借直觉去调整参数。让机器像人一样思考!!!

只是线性函数,如何满足复杂情况?

在很多时候,要得到的曲线不是线性的,复杂问题往往需要一个曲线,或者说一段一段的分段函数。

这一个部分,我推荐大家去B站看一下这个视频,这个大哥我觉得将得很清楚,主要是我觉得我讲不了这么清楚。

点击这里

通过上面这个视频,你就会发现,只需要把线性函数和一个激活函数组合,然后再进行叠加,就可以得到一个你想要的任何形状的曲线。这个曲线通过参数不停优化,你甚至可以用一条曲线画一只猫猫,不是吗?

image

好了,祝大家学有所成,天天开心!

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

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

相关文章

MD5手机号在线解密 MD5解密

分享个好用的在线破解md5手机号的网站-日常使用完全足够 链接:http://www.tandaima.com 在线解密就任意的md5手机号都可以解密出来,并且还附带手机号归属地 API解密 地址:http://www.tandaima.com/api.html 还支持Api形式MD5手机号解密,但是每次解密需要token的这个可以酌…

java中——接口

接口的作用只能用来调用 如果十个人里有三个会游泳,就可以新建一个接口储存swim方法,三人可以通过继承关系调用 而抽象是在方法的基础上重写,体现出同一个方法的不同形态 如果十个人游泳,但是游泳的姿势不同,如狗刨。。。此时就可以通过抽象继承关系去重写子类的游泳姿势 …

SVG之path详解(一),全面解析椭圆弧命令A

简述 SVG 中的 <path> 元素用于创建路径,它是 SVG 中最强大和最灵活的基本形状之一 使用 <path> 元素可以绘制直线、曲线、弧线等各种复杂的图形,并且可以通过设置路径命令来控制路径的形状和样式在进入正题前,先温习一下svg的坐标系,x轴为水平向右,y轴为垂直…

AppleScript实现FaceTime数据检测,FaceTime蓝号检测,无痕检测是否开通FaceTime功能

FaceTime是苹果公司iOS和macOS(以前称Mac OS X或OS X)内置的一款视频通话软件,通过Wi-Fi或者蜂窝数据接入互联网,在两个装有FaceTime的设备之间实现视频通话。其要求通话双方均具有装有FaceTime的苹果设备,苹果ID以及可接入互联网的3G/4G/5G或者Wi-Fi网络。一、Windows电脑…

搭建时空基底,建设“数字之城”

在这个日新月异的时代,数字技术正以前所未有的速度重塑我们的世界。今天,让我们一同深入探讨如何通过搭建时空基底,为“数字之城”的建设奠定坚实基础。一、时空基底:数字之城的骨骼与脉络所谓“时空基底”,是指结合时间维度与空间维度的综合性信息框架,它是构建数字城市…

没闲着系列 22

最近下班后,时间还是比较宽松的,相对宽松。 今天更新一下TaskSaas近期有什么变动: 一个就是概览dashboard以及需求、问题的选择中,加入了ALL TODO DONE的分类,更便于查询全部、待做(新建、重新打开、进行中、待反馈)、已完成的分类。第二个是修复了工作台里的一系列bug。…

解决端口号占用问题:Spring Boot报错,Web server failed to start. Port 8080 was already in use.

报错信息:Web server failed to start. Port 8080 was already in use. 报错原因:端口被占用 解决方法: 解决方法一:修改端口 修改配置文件,加上参数:server.port=8014或者在application.yml文件中添加 server:port: 8014在访问时,替换对应的端口号即可 解决方法二:关闭…

Redis连接问题解决汇总

Redis连接失败常见解决方案 1. 检查Redis命令行是否可以正常连接 使用命令行客户端,输入: redis-cli -h 虚拟机ip地址 -p 6379 -a redis访问密码如若连接成功,输入ping,看控制台是否返回PONG此步骤若正常,则代表虚拟机可正常连接 2. Redis命令行无法正常连接 1)未打开Red…

解决Spring报错:Failed to read candidate component class: file [ ]; nested exception is org.

使用IDEA 建立一个很基础的Spring项目时,之前用xml方式,写bean标签一直正常使用,改用注解方式后发现报错,显示: Exception in thread "XXX" org.springframework.beans.factory.BeanDefinitionStoreException: Failed to read candidate component class: file …

8.8前后端联调

MAC强制关闭进程 因为common和control是分开的 所以是control 如何找到你自己的admin 在历史里面找找 返回的信息码缺少了响应数据 严格控制请求头顺序,否则会错加字段 如果单个ads下只有一个Store的校验逻辑就必须重新考量,或者就必须强一致 如果没有设置怎么校验 如何在低…

字符串part01

今天学了字符产的第一部分:反转字符串,使用双指针。 反转字符串Ⅱ,需要固定规律一段一段去处理字符串的时候,要想想在在for循环的表达式上做做文章。 数组填充问题,其做法都是先预先给数组扩容带填充后的大小,然后在从后向前进行操作。1. 反转字符串 题目:编写一个函数,…

upload-labs第21关分析与答案

upload-labs第21关审计1 第二十一关的参考代码 $is_upload = false; $msg = null; if(!empty($_FILES[upload_file])){//检查MIME$allow_type = array(image/jpeg,image/png,image/gif);if(!in_array($_FILES[upload_file][type],$allow_type)){$msg = "禁止上传该类型文件…