机器学习的原理是什么?
训过小狗没?
没训过的话总见过吧?
你要能理解怎么训狗,就能非常轻易的理解机器学习的原理.
比如你想教小狗学习动作“坐下”一开始小狗根本不知道你在说什么。但是如果你每次都说坐下”然后帮助它坐下,并给它一块小零食作为奖励,经过多次重复,狗就会学会当听到“坐下”这个词时就要坐下。
以此类推,小狗可以听懂各种指令,比如坐下,蹲下,握手等等
机器学习本质上跟教小狗一模一样,只不过机器学习不是一条狗或者一只猫,而是用的“模型“
我们用电脑和特殊的程序(叫做“模型”)来代替小狗。我们给电脑一堆数据,比如一堆照片,其中有些是猫,有些是狗。然后我们告诉电脑哪些是猫,哪些是狗(这叫“标签”)。电脑就像小狗一样,通过这些“示范”和“奖励”(或“惩罚”)来学习怎么区分猫和狗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 的功能…...
Python打包神器大PK:Nuitka vs PyInstaller,谁才是你的菜?(附实测数据)
Python打包工具深度评测:Nuitka与PyInstaller的终极对决 当开发者需要将Python项目分发给没有Python环境的用户时,打包工具的选择往往成为关键决策。本文将深入分析两大主流工具Nuitka和PyInstaller在多个维度的表现,帮助开发者根据项目需求做…...
简单介绍C语言中的字符串函数
1.首先给出字符分类函数这几个就简单过一下,不做重点说明。这两个为字符转换函数,顾名思义,没什么好介绍的;接下来简单介绍几个字符串函数:strlen.strcpy.strcat.strstr.strncpy.strncat.memcpy.memmove;strlen:求字符…...
2026实测不踩坑!6款成品PPT网站客观测评
2026实测不踩坑!6款成品PPT网站客观测评作为常年深耕AI工具测评的博主,日常需应对各类PPT创作需求,也经常收到粉丝咨询相关工具选择。经过实测多款成品PPT网站后,整理出6款适配性较强的平台,涵盖不同需求场景ÿ…...
告别轮询!用STM32F407的USART3+DMA+空闲中断实现高效串口数据接收
STM32F407高效串口通信:USART3DMA空闲中断实战指南 在嵌入式开发中,串口通信是最基础也最常用的外设之一。传统的中断接收方式虽然简单,但在高速或大数据量传输时,频繁的中断响应会显著增加CPU负担,甚至导致数据丢失。…...
Realtek RTL8821CU无线网卡驱动解决方案 - Linux系统WiFi适配完美指南
Realtek RTL8821CU无线网卡驱动解决方案 - Linux系统WiFi适配完美指南 【免费下载链接】rtl8821CU Realtek RTL8811CU/RTL8821CU USB Wi-Fi adapter driver for Linux 项目地址: https://gitcode.com/gh_mirrors/rt/rtl8821CU 你是否在Linux系统上使用Realtek RTL8821CU…...
Self Service Password与LDAP集成实战:从部署到问题排查
1. Self Service Password与LDAP集成概述 自助密码重置功能已经成为企业IT基础设施中不可或缺的一部分。想象一下,当员工在深夜加班时忘记密码,又找不到IT支持人员,这种场景下的自助解决方案就显得尤为重要。Self Service Password࿰…...
CLIP 实战宝典:从零开始掌握文本与图像编码的终极技巧
1. CLIP模型基础入门:图文匹配的魔法钥匙 第一次听说CLIP模型时,我正被一个图像搜索项目折磨得焦头烂额。传统方法需要先标注海量数据,再训练复杂的分类器,整个过程就像用算盘计算火箭轨道。直到遇见CLIP,才发现原来图…...
Go AI 生态实战:从单机 RAG 到分布式智能服务架构演进
Go AI 生态实战:从单机 RAG 到分布式智能服务架构演进 摘要:本文面向具备后端与架构背景的技术人员,系统讲透 Go 在 AI 应用落地中的工程化方法。文章不再停留在“调用一个模型接口”的层面,而是从 RAG 原理、服务拆分、索引构建、高并发治理、缓存策略、容错机制、可观测性…...
Spring Boot 实现网络限速:让流量“收放自如”
Spring Boot 实现网络限速:让流量“收放自如” 一、为啥要网络限速? 在当今这个数字化时代,网络服务就像我们生活中的水电一样不可或缺,而网络限速则是保障这些服务稳定、高效运行的关键一环。它能确保在各种复杂的网络环境下&…...
Nordic Power Profiler Kit II 保姆级教程:从硬件连接到软件操作全流程
Nordic Power Profiler Kit II 实战指南:从开箱到精准功耗分析 第一次拿到Power Profiler Kit II(PPK2)时,我正为一个蓝牙低功耗项目的电池寿命问题头疼不已。这款由Nordic Semiconductor推出的专业功耗分析工具,凭借其…...
