机器学习的原理是什么?
训过小狗没?
没训过的话总见过吧?
你要能理解怎么训狗,就能非常轻易的理解机器学习的原理.
比如你想教小狗学习动作“坐下”一开始小狗根本不知道你在说什么。但是如果你每次都说坐下”然后帮助它坐下,并给它一块小零食作为奖励,经过多次重复,狗就会学会当听到“坐下”这个词时就要坐下。
以此类推,小狗可以听懂各种指令,比如坐下,蹲下,握手等等
机器学习本质上跟教小狗一模一样,只不过机器学习不是一条狗或者一只猫,而是用的“模型“
我们用电脑和特殊的程序(叫做“模型”)来代替小狗。我们给电脑一堆数据,比如一堆照片,其中有些是猫,有些是狗。然后我们告诉电脑哪些是猫,哪些是狗(这叫“标签”)。电脑就像小狗一样,通过这些“示范”和“奖励”(或“惩罚”)来学习怎么区分猫和狗Q
比如“模型”每区分正确一张照片,就给它奖励一分,否则扣一分,然后我们设定了目标是分数越高越好,那么“模型”就会根据这个机制进行不断的学习,最后就成为了一个非常优秀的区分猫狗的“好模型”
但与教小狗不同,电脑可以快速地查看成千上万张照片,并从中学习。电脑也可以学习很多其他复杂的任务,比如识别人的声音、推荐你可能喜欢的音乐,甚至帮助医生诊断疾病。
从上面我们可以总结出来几个名词:
- 模型(Model):模型就像是电脑的“大脑”的决策用来处理和学习数据。你可以想象它为一个迷工厂,输入数据进去,输出结果。
- 数据集(Dataset):数据集就是用来训练模型的大量信息。这些信息可能是文字、图像、声音等。
- 标签(Label):标签是对数据集中每一项数据的解释或标记。比如,在一个由猫和狗照片组成的数据集中,每张照片会被标签为“猫”或“狗”。
- 训练(Train)和测试(Test):训练是让模型从标签好的数据集中学习的过程。测试则是检查模型是否真的学会了某件事。
- 奖励(Reward)和惩罚(Punishment):在某些机器学习模式中,模型会根据其预测的准确性获得奖励或惩罚。 监督学习
- (Supervised Learning) 和无监督学习 (Unsupervised
Learning):在监督学习中模型从带有标签的数据中学习。在无监督学习中,数据没有标签,模型需要自己找出数据的结。
从上面来看其实我们归纳一下,机器学习就是让电脑通过数据和例子来学习做某件事,而不是由人直接编程告诉它每一步应该怎么做。
这一句话会有点儿难懂,那么还是拿训练计算机去分辨猫狗照片来举例。
我们想要做的是让计算机去自动的学会分辨猫和狗,而不是告诉计算机这是一张哈士奇的图,另张是金毛。
这跟自动的分辨有什么区别呢?
区别就在于“学习”,因为猫和狗不像是阿拉伯数字,只有从0到9的10个数字,你直接硬塞给计算机这10个数字是没问题的。
但是猫和狗不一样,世界上有很多种的猫和狗,纯种的,杂交的,国内的,国外的,还有不同角度拍的,俯拍的,正面拍的,背后拍的,照片不是很清楚的。
你没有办法告诉计算机所有的关于猫和狗的照片,另外给所有的照片打上标签也是不现实的,因为工作量太大,如果我们现在要把大象,老虎,狮子,马等等动物都进行分类呢?
每种动物都要打标签的话那工作量简直是天文数字
事实上,你想想自己分辨这些动物的过程,需要看很多的照片吗?
比如老虎和狮子Q,你基本上看个2,3张照片就可以轻松的进行分辨
根本不需要成千上万张,甚至一张不太清楚的照片也不会影响你去做分辨
而我们想要计算机实现的功能就是学习能力,我们提供给计算机每种动物几百张照片,然后告诉它每张照片对应的动物
我们希望它可以通过学习这些图片来获得识别动物的能力。
比如根据他们的毛色,提醒大小,形体特征等等。
对于机器学习以及人工智能的学习,与ChatGPT结合,这是对于新手来说避免被落下太多,甚至被取代的好方法。它比多数书籍更强大,像个知无不言的老师,它可以放大你的能力,比如说你不擅长代码,那么它可以帮助你实现你的想法,无论什么语言它都可以做的非常棒。其实无论是从业者,还是对这一行感兴趣的朋友,都特别推荐去看看[知乎知学堂%的2天公开课,快速掌握大模型的潜力和应用。

这就是[机器学习]Machine Learning这个名词的来源,主要原理可以概括为“从经验中学习”
- 明确目标:首先,你需要明确你想让模型(或小狗)完成的任务。例如,区分猫和狗。
- 收集数据:接着,你需要准备一个数据集。就像你会有很多“坐下”的场景来教狗一样
- 标签与示范: 在监督学习中,你需要标签来告诉模型数据集中每项数据的意义。这像是每次帮助小狗坐下并说“这是坐下”
- 训练与调整:使用数据和标签来训练模型,模型会尝试找出数据之间的规律或关系。如果模型做得好,它会获得“奖励”;做得不好,则会受到“惩罚”
- 测试与评估:一旦模型经过足够的训练,你就可以用没有标签的新数据来测试它,看看其表现如何.
- 应用与拓展:一旦模型经过测试并证明有效,它就可以用于各种其他任务,从识别声音到医疗诊断
总的来说,机器学习是一种通过数据和算法来训练模型,使其能够完成特定任务或做出预测的技术。与训练小狗不同,模型可以处理非常大量的数据,并用于解决各种复杂的问题。
区分下几个经常会被混淆的名词: 机器学习/人工智能/深度学习
从下图可以看到
人工智能AI是一个广泛的概念,包括所有模仿、延伸或者扩充人类智能的技术
机器学习是AI中的一个分支,主要关注通过数据来训练模型。
深度学习则是机器学习中的一个子集,专注于使用类似人脑的神经网络进行高级、复杂的任务

相关文章:
机器学习的原理是什么?
训过小狗没? 没训过的话总见过吧? 你要能理解怎么训狗,就能非常轻易的理解机器学习的原理. 比如你想教小狗学习动作“坐下”一开始小狗根本不知道你在说什么。但是如果你每次都说坐下”然后帮助它坐下,并给它一块小零食作为奖励,经过多次…...
Java集合框架之ArrayList源码分析
文章目录 简介ArrayList底层数据结构初始化集合操作追加元素插入数据删除数据修改数据查找 扩容操作总结 简介 ArrayList是Java提供的线性集合,本篇笔记将从源码(java SE 17)的角度学习ArrayList: 什么是ArrayList?ArrayList底层数据结构是…...
TensorFlow入门(二十、损失函数)
损失函数 损失函数用真实值与预测值的距离指导模型的收敛方向,是网络学习质量的关键。不管是什么样的网络结构,如果使用的损失函数不正确,最终训练出的模型一定是不正确的。常见的两类损失函数为:①均值平方差②交叉熵 均值平方差 均值平方差(Mean Squared Error,MSE),也称&qu…...
MySQL中死锁
数据库的死锁是指不同的事务在获取资源时相互等待,导致无法继续执行的一种情况。当发生死锁时,数据库会自动中断其中一个事务,以解除死锁。在数据库中,事务可以分为读事务和写事务。读事务只需要获取读锁,而写事务需要…...
【LeetCode刷题(数据结构)】:给定一个链表 每个节点包含一个额外增加的随机指针 该指针可以指向链表中的任何节点或空节点 要求返回这个链表的深度拷贝
给你一个长度为 n 的链表,每个节点包含一个额外增加的随机指针 random ,该指针可以指向链表中的任何节点或空节点 构造这个链表的 深拷贝。 深拷贝应该正好由 n 个 全新 节点组成,其中每个新节点的值都设为其对应的原节点的值。新节点的 next…...
uniapp封装loading 的动画动态加载
实现效果 html代码 <view class"loadBox" v-if"loading"><img :src"logo" class"logo"> </view> css代码 .loadBox {width: 180rpx;min-height: 180rpx;border-radius: 50%;display: flex;align-items: center;j…...
Kopler.gl笔记:可视化功能总览
1 添加数据 2 添加图层 打开“数据层”菜单,开始可视化。 层(Layers)简单来说就是可以相互叠加的数据可视化。 3 添加过滤器 在地图上添加过滤器以限制显示的数据。过滤器必须基于数据集中的列。要创建新的过滤器,打开“过滤器…...
rust学习Cell、RefCell、OnceCell
背景 Rust 内存安全基于以下规则:给定一个对象 T,它只能具有以下之一: 对对象有多个不可变引用 (&T)(也称为别名 aliasing)对对象有一个可变引用 (&mut T)(也称为可变性 mutability)这是由 Rust 编译器强制执行的。然而,在某些情况下,该规则不够灵活(this r…...
基于SSM的摄影约拍系统
基于SSM的摄影约拍系统的设计与实现 开发语言:Java数据库:MySQL技术:SpringSpringMVCMyBatisJSP工具:IDEA/Ecilpse、Navicat、Maven 【主要功能】 前台系统:首页拍摄作品展示、摄影师展示、模特展示、文章信息、交流论…...
分析智能平台VMware Greenplum 7 正式发布!
📢📢📢📣📣📣 哈喽!大家好,我是【IT邦德】,江湖人称jeames007,10余年DBA及大数据工作经验 一位上进心十足的【大数据领域博主】!😜&am…...
动态规划算法(3)--0-1背包、石子合并、数字三角形
目录 一、0-1背包 1、概述 2、暴力枚举法 3、动态规划 二、石子合并问题 1、概述 2、动态规划 3、环形石子怎么办? 三、数字三角形问题 1、概述 2、递归 3、线性规划 四、租用游艇问题 一、0-1背包 1、概述 0-1背包:给定多种物品和一个固定…...
Linux C/C++ 嗅探数据包并显示流量统计信息
嗅探数据包并显示流量统计信息是网络分析中的一种重要技术,常用于网络故障诊断、网络安全监控等方面。具体来说,嗅探器是一种可以捕获网络上传输的数据包,并将其展示给分析人员的软件工具。在嗅探器中,使用pcap库是一种常见的方法…...
Vitis导入自制IP导致无法构建Platform
怎么还有这种问题( 解决Vitis导入自制IP导致无法构建Platform – TaterLi 个人博客 Vitis报错:fatal error: xxx.h: No such file or directory._ly2lj的博客-CSDN博客 在指定位置黏入以上代码即可: INCLUDEFILES$(wildcard *.h) LIBSOUR…...
SQLAlchemy 使用封装实例
类封装 database.py #! /usr/bin/env python # -*- coding: utf-8 -*-import sys import json import logging from datetime import datetimefrom core.utils import classlock, parse_bool from core.config import (MYSQL_HOST,MYSQL_PORT,MYSQL_USER,MYSQL_PASS,MYSQL_DA…...
Android Framework通信:Binder
文章目录 前言一、Linux传统跨进程通信原理二、Android Binder跨进程通信原理1、动态内核可加载模块2、内存映射3、Binder IPC 实现原理 三、Android Binder IPC 通信模型1、Client/Server/ServiceManager/驱动Binder与路由器之间的角色关系 2、Binder通信过程3、Binder通信中的…...
如何用精准测试来搞垮团队?
测试行业每年会冒出来一些新鲜词:混沌工程、精准测试、AI测试…… 这些新概念、新技术让我们感到很焦虑,逼着自己去学习和了解这些新玩意,担心哪一天被淘汰掉。 以至于给我这样的错觉,当「回归测试」、「精准测试」这两个词摆在一…...
暴力递归转动态规划(十)
题目 给定一个二维数组matrix[][],一个人必须从左上角出发,最终到达右下角,沿途只可以向下或者向右走,沿途的数字都累加就是距离累加和。返回最小距离累加和。 这道题中会采用压缩数组的算法来进行优化 暴力递归 暴力递归方法的整…...
深度学习-房价预测案例
1. 实现几个函数方便下载数据 import hashlib import os import tarfile import zipfile import requests#save DATA_HUB dict() DATA_URL http://d2l-data.s3-accelerate.amazonaws.com/def download(name, cache_diros.path.join(.., data)): #save"""下载…...
【26】c++设计模式——>命令模式
c命令模式 C的命令模式是一种行为模式,通过将请求封装成对象,以实现请求发送者和接受者的解耦。 在命令模式中,命令被封装成一个包含特定操作的对象,这个对象包含的执行该操作的方法,以及一些必要的参数。命令对象可以…...
ElasticSearch容器化从0到1实践(一)
背景 通过kubernetes集群聚合多个Elasticsearch集群碎片资源,提高运维效率。 介绍 Kubernetes Operator 是一种特定的应用控制器,通过 CRD(Custom Resource Definitions,自定义资源定义)扩展 Kubernetes API 的功能…...
测试微信模版消息推送
进入“开发接口管理”--“公众平台测试账号”,无需申请公众账号、可在测试账号中体验并测试微信公众平台所有高级接口。 获取access_token: 自定义模版消息: 关注测试号:扫二维码关注测试号。 发送模版消息: import requests da…...
C++实现分布式网络通信框架RPC(3)--rpc调用端
目录 一、前言 二、UserServiceRpc_Stub 三、 CallMethod方法的重写 头文件 实现 四、rpc调用端的调用 实现 五、 google::protobuf::RpcController *controller 头文件 实现 六、总结 一、前言 在前边的文章中,我们已经大致实现了rpc服务端的各项功能代…...
Flask RESTful 示例
目录 1. 环境准备2. 安装依赖3. 修改main.py4. 运行应用5. API使用示例获取所有任务获取单个任务创建新任务更新任务删除任务 中文乱码问题: 下面创建一个简单的Flask RESTful API示例。首先,我们需要创建环境,安装必要的依赖,然后…...
Spring Boot 实现流式响应(兼容 2.7.x)
在实际开发中,我们可能会遇到一些流式数据处理的场景,比如接收来自上游接口的 Server-Sent Events(SSE) 或 流式 JSON 内容,并将其原样中转给前端页面或客户端。这种情况下,传统的 RestTemplate 缓存机制会…...
PPT|230页| 制造集团企业供应链端到端的数字化解决方案:从需求到结算的全链路业务闭环构建
制造业采购供应链管理是企业运营的核心环节,供应链协同管理在供应链上下游企业之间建立紧密的合作关系,通过信息共享、资源整合、业务协同等方式,实现供应链的全面管理和优化,提高供应链的效率和透明度,降低供应链的成…...
聊聊 Pulsar:Producer 源码解析
一、前言 Apache Pulsar 是一个企业级的开源分布式消息传递平台,以其高性能、可扩展性和存储计算分离架构在消息队列和流处理领域独树一帜。在 Pulsar 的核心架构中,Producer(生产者) 是连接客户端应用与消息队列的第一步。生产者…...
JVM垃圾回收机制全解析
Java虚拟机(JVM)中的垃圾收集器(Garbage Collector,简称GC)是用于自动管理内存的机制。它负责识别和清除不再被程序使用的对象,从而释放内存空间,避免内存泄漏和内存溢出等问题。垃圾收集器在Ja…...
工程地质软件市场:发展现状、趋势与策略建议
一、引言 在工程建设领域,准确把握地质条件是确保项目顺利推进和安全运营的关键。工程地质软件作为处理、分析、模拟和展示工程地质数据的重要工具,正发挥着日益重要的作用。它凭借强大的数据处理能力、三维建模功能、空间分析工具和可视化展示手段&…...
从零开始打造 OpenSTLinux 6.6 Yocto 系统(基于STM32CubeMX)(九)
设备树移植 和uboot设备树修改的内容同步到kernel将设备树stm32mp157d-stm32mp157daa1-mx.dts复制到内核源码目录下 源码修改及编译 修改arch/arm/boot/dts/st/Makefile,新增设备树编译 stm32mp157f-ev1-m4-examples.dtb \stm32mp157d-stm32mp157daa1-mx.dtb修改…...
BCS 2025|百度副总裁陈洋:智能体在安全领域的应用实践
6月5日,2025全球数字经济大会数字安全主论坛暨北京网络安全大会在国家会议中心隆重开幕。百度副总裁陈洋受邀出席,并作《智能体在安全领域的应用实践》主题演讲,分享了在智能体在安全领域的突破性实践。他指出,百度通过将安全能力…...
