AI人工智能(2):机器学习

1 简介

        机器学习(Machine Learning)是人工智能(AI)的一个分支,它使计算机系统能够利用数据和算法自动学习和改进其性能。机器学习是让机器通过经验(数据)来做决策和预测。机器学习已经广泛应用于许多领域,包括推荐系统、图像识别、语音识别、金融分析等。举个例子,通过机器学习,汽车可以学习如何识别交通标志、行人和障碍物,以实现自动驾驶。

1.1 机器学习与传统编程的区别

        在传统的编程方法中,程序员会编写一系列规则或指令,告诉计算机如何执行任务。而在机器学习中,程序员并不是直接编写所有规则,而是训练计算机从数据中自动学习和推断模式。具体的差异可以总结如下:

  • 传统编程: 程序员定义明确的规则和逻辑,计算机根据这些规则执行任务。
  • 机器学习: 计算机通过数据"学习"模式,生成模型并基于这些模式进行预测或决策。

        举个简单的例子,假设我们要训练一个模型来识别猫和狗的图片。

        在传统编程中,程序员需要手动定义哪些特征可以区分猫和狗(如耳朵形状、鼻子形状等),而在机器学习中,程序员只需要提供大量带标签的图片数据,计算机会自动学习如何区分猫和狗。

1.2 常见机器学习任务

  • 回归问题:预测连续值,例如房价预测。
  • 分类问题:将样本分为不同类别,例如垃圾邮件检测。
  • 聚类问题:将数据自动分组,例如客户细分。
  • 降维问题:将数据降到低维度,例如主成分分析(PCA)。

1.3 机器学习常见算法

监督学习:

  • 线性回归(Linear Regression)
  • 逻辑回归(Logistic Regression)
  • 支持向量机(SVM)
  • K-近邻算法(KNN)
  • 决策树(Decision Tree)
  • 随机森林(Random Forest)

无监督学习:

  • K-均值聚类(K-Means Clustering)
  • 主成分分析(PCA)

深度学习:

  • 神经网络(Neural Networks)
  • 卷积神经网络(CNN)
  • 循环神经网络(RNN)

1.4 机器学习工作流程

        机器学习通过让计算机从大量数据中学习模式和规律来做出决策和预测。

  • 首先,收集并准备数据,然后选择一个合适的算法来训练模型。
  • 然后,模型通过不断优化参数,最小化预测错误,直到能准确地对新数据进行预测。
  • 最后,模型部署到实际应用中,实时做出预测或决策,并根据新的数据进行更新。

        机器学习是一个迭代过程,可能需要多次调整模型参数和特征选择,以提高模型的性能。下面这张图展示了机器学习的基本流程:

  1. Labeled Data(标记数据)::图中蓝色区域显示了标记数据,这些数据包括了不同的几何形状(如六边形、正方形、三角形)。
  2. Model Training(模型训练)::在这个阶段,机器学习算法分析数据的特征,并学习如何根据这些特征来预测标签。
  3. Test Data(测试数据)::图中深绿色区域显示了测试数据,包括一个正方形和一个三角形。
  4. Prediction(预测)::模型使用从训练数据中学到的规则来预测测试数据的标签。在图中,模型预测了测试数据中的正方形和三角形。
  5. Evaluation(评估)::预测结果与测试数据的真实标签进行比较,以评估模型的准确性。

1.5 机器学习的类型

机器学习主要分为以下三种类型:

1. 监督学习(Supervised Learning)

  • 定义: 监督学习是指使用带标签的数据进行训练,模型通过学习输入数据与标签之间的关系,来做出预测或分类。
  • 应用: 分类(如垃圾邮件识别)、回归(如房价预测)。
  • 例子: 线性回归、决策树、支持向量机(SVM)。

2. 无监督学习(Unsupervised Learning)

  • 定义: 无监督学习使用没有标签的数据,模型试图在数据中发现潜在的结构或模式。
  • 应用: 聚类(如客户分群)、降维(如数据可视化)。
  • 例子: K-means 聚类、主成分分析(PCA)。

3. 强化学习(Reinforcement Learning)

  • 定义: 强化学习通过与环境互动,智能体在试错中学习最佳策略,以最大化长期回报。每次行动后,系统会收到奖励或惩罚,来指导行为的改进。
  • 应用: 游戏AI(如AlphaGo)、自动驾驶、机器人控制。
  • 例子: Q-learning、深度Q网络(DQN)。

 

2 机器学习基本概念

        在学习机器学习时,理解其核心基础概念至关重要。这些基础概念帮助我们理解数据如何输入到模型中、模型如何学习、以及如何评估模型的表现。接下来,我们将详细讲解几个机器学习中的基本概念:

  • 训练集、测试集和验证集:帮助训练、评估和调优模型。
  • 特征与标签:特征是输入,标签是模型预测的目标。
  • 模型与算法:模型是通过算法训练得到的,算法帮助模型学习数据中的模式。
  • 监督学习、无监督学习和强化学习:三种常见的学习方式,分别用于不同的任务。
  • 过拟合与欠拟合:两种常见的问题,影响模型的泛化能力。
  • 训练误差与测试误差:反映模型是否能适应数据,并进行有效预测。
  • 评估指标:衡量模型好坏的标准,根据任务选择合适的指标。

        这些基础概念是理解和应用机器学习的基础,掌握它们是进一步学习的关键。

2.1 训练集、测试集和验证集

  • 训练集(Training Set): 训练集是用于训练机器学习模型的数据集,它包含输入特征和对应的标签(在监督学习中)。模型通过学习训练集中的数据来调整参数,逐步提高预测的准确性。

  • 测试集(Test Set): 测试集用于评估训练好的模型的性能。测试集中的数据不参与模型的训练,模型使用它来进行预测,并与真实标签进行比较,帮助我们了解模型在未见过的数据上的表现。

  • 验证集(Validation Set): 验证集用于在训练过程中调整模型的超参数(如学习率、正则化参数等)。它通常被用于模型调优,帮助选择最佳的模型参数,避免过拟合。验证集的作用是对模型进行监控和调试。

2.2 特征(Features)和标签(Labels)

  • 特征(Features): 特征是输入数据的不同属性,模型使用这些特征来做出预测或分类。例如,在房价预测中,特征可能包括房子的面积、地理位置、卧室数量等。

  • 标签(Labels): 标签是机器学习任务中的目标变量,模型要预测的结果。对于监督学习任务,标签通常是已知的。例如,在房价预测中,标签就是房子的实际价格。

2.3 模型(Model)与算法(Algorithm)

  • 模型(Model): 模型是通过学习数据中的模式而构建的数学结构。它接受输入特征,经过一系列计算和转化,输出一个预测结果。常见的模型有线性回归、决策树、神经网络等。

  • 算法(Algorithm): 算法是实现机器学习的步骤或规则,它定义了模型如何从数据中学习。常见的算法有梯度下降法、随机森林、K近邻算法等。算法帮助模型调整其参数以最小化预测误差。

2.4 监督学习、无监督学习和强化学习

  • 监督学习(Supervised Learning): 在监督学习中,训练数据包含已知的标签。模型通过学习输入特征与标签之间的关系来进行预测或分类。监督学习的目标是最小化预测错误,使模型能够在新数据上做出准确的预测。例如:线性回归、逻辑回归、支持向量机(SVM)、决策树。

  • 无监督学习(Unsupervised Learning): 无监督学习中,训练数据没有标签,模型通过分析输入数据中的结构或模式来进行学习。目标是发现数据的潜在规律,常见的任务包括聚类、降维等。例如: K-means 聚类、主成分分析(PCA)。

  • 强化学习(Reinforcement Learning): 强化学习是让智能体(Agent)通过与环境(Environment)的互动,采取行动并根据奖励或惩罚来学习最优策略。智能体的目标是通过最大化长期奖励来优化行为。例如:AlphaGo、自动驾驶、游戏AI。

2.5 过拟合与欠拟合

  • 过拟合(Overfitting): 过拟合是指模型在训练数据上表现非常好,但在测试数据上表现很差。这通常发生在模型复杂度过高、参数过多,导致模型"记住"了训练数据中的噪声或偶然性,而不具备泛化能力。过拟合的模型无法有效应对新数据。可以通过简化模型、增加训练数据或使用正则化等方法来缓解。

  • 欠拟合(Underfitting): 欠拟合是指模型在训练数据上和测试数据上都表现不佳,通常是因为模型过于简单,无法捕捉数据中的复杂模式。欠拟合的模型无法从数据中学习到有用的规律。可以通过增加模型复杂度或使用更复杂的算法来改进。

2.6 训练与测试误差

  • 训练误差(Training Error): 训练误差是模型在训练数据上的表现,反映了模型是否能够很好地适应训练数据。如果训练误差很大,可能说明模型不够复杂,欠拟合;如果训练误差很小,可能说明模型太复杂,容易过拟合。

  • 测试误差(Test Error): 测试误差是模型在未见过的数据上的表现,反映了模型的泛化能力。测试误差应当与训练误差相匹配,若测试误差远高于训练误差,通常是过拟合。

2.7 评估指标

        根据任务的不同,机器学习模型的评估指标也不同。以下是常用的一些评估指标:

  • 准确率(Accuracy): 分类任务中,正确分类的样本占总样本的比例。

  • 精确率(Precision)和召回率(Recall): 主要用于处理不平衡数据集,精确率衡量的是被模型预测为正类的样本中,有多少是真正的正类;召回率衡量的是所有实际正类中,有多少被模型正确识别为正类。

  • F1 分数: 精确率与召回率的调和平均数,用于综合考虑模型的表现。

  • 均方误差(MSE): 回归任务中,预测值与真实值之间差异的平方的平均值。

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

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

相关文章

Photon最新版本PUN 2.29 PREE,在无网的局域网下,无法连接自己搭建的本地服务器

1.图1为官方解答 2.就是加上这一段段代码:PhotonNetwork.NetworkingClient.SerializationProtocol SerializationProtocol.GpBinaryV16; 完美解决 unity 商店最新PUN 2 插件 不能连接 (环境为:本地局域网 无外网情况 ) …

android 官网刷机和线刷

nexus、pixel可使用google官网线上刷机的方法。网址:https://flash.android.com/ 本文使用google线上刷机,将Android14 刷为Android12 以下是失败的线刷经历。 准备工作 下载升级包。https://developers.google.com/android/images?hlzh-cn 注意&…

Qt官方下载地址

1. 最新版本 Qt官方最新版本下载地址:https://www.qt.io/download-qt-installer 当前最新版本Qt6.8.* 如下图: 2. 历史版本 如果你要下载历史版本安装工具或者源码编译方式安装,请转至此链接进行下载:https://download.qt.i…

带格式 pdf 翻译

支持 openAI 接口,国内 deepseek 接口兼容 openAI 接口, deepseek api 又非常便宜 https://pdf2zh.com/ https://github.com/Byaidu/PDFMathTranslate

WebRTC 在视频联网平台中的应用:开启实时通信新篇章

在当今这个以数字化为显著特征的时代浪潮之下,实时通信已然稳稳扎根于人们生活与工作的方方面面,成为了其中不可或缺的关键一环。回首日常生活,远程办公场景中的视频会议让分散各地的团队成员能够跨越地理距离的鸿沟,齐聚一堂共商…

《ROS2 机器人开发 从入门道实践》 鱼香ROS2——第6章内容

第6章 建模与仿真-创建自己的机器人 6.1 机器人建模与仿真概述 6.2使用URDF创建机器人 6.2.1 帮机器人创建一个身体 1. 新建文件chapt6/chapt6_ws/src/fishbot_description/urdf/ 2. 新建文件first_robot.urdf <?xml version"1.0"?> <robot name &…

Postman接口测试03|执行接口测试、全局变量和环境变量、接口关联、动态参数、断言

目录 七、Postman 1、安装 2、postman的界面介绍 八、Postman执行接口测试 1、请求页签 3、响应页签 九、Postman的环境变量和全局变量 1、创建环境变量和全局变量可以解决的问题 2、postman中的操作-全局变量 1️⃣手动设置 2️⃣代码设置 3️⃣界面获取 4️⃣代…

【巨实用】Git客户端基本操作

本文主要分享Git的一些基本常规操作&#xff0c;手把手教你如何配置~ ● 一个文件夹中初始化Git git init ● 为了方便以后提交代码需要对git进行配置&#xff08;第一次使用或者需求变更的时候&#xff09;&#xff0c;告诉git未来是谁在提交代码 git config --global user.na…

下载导出Tomcat上的excle文档,浏览器上显示下载

目录 1.前端2.Tomcat服务器内配置3.在Tomcat映射的文件内放置文件4.重启Tomcat&#xff0c;下载测试 1.前端 function downloadFile() {let pictureSourceServer "http://192.168.1.1:8080/downFile/";let fileName "测试文档.xlsx";let fileURL pictu…

spring boot发送邮箱,java实现邮箱发送(邮件带附件)3中方式【保姆级教程一,代码直接用】

文章目录 Java发送邮箱的方式1. 基于 Javax.mail 实现关于附件上传的方法 2. 基于 org.apache.commons.mail 实现常见报错 3. 基于 spring-boot-starter-mail 实现&#xff08;推荐&#xff09; 实际开发时需要实现邮件发送&#xff0c;本文章实现如何从零实现邮件发送。也就是…

计算机网络期末复习(知识点)

概念题 在实际复习之前&#xff0c;可以看一下这个视频将网络知识串一下&#xff0c;以便更好地复习&#xff1a;【你管这破玩意叫网络&#xff1f;】 网络规模的分类 PAN&#xff08;个人区域网络&#xff09;&#xff1a;用于个人设备间的连接&#xff0c;如手机与蓝牙耳机…

Autoencoder(李宏毅)机器学习 2023 Spring HW8 (Boss Baseline)

1. Autoencoder 简介 Autoencoder是一种用于学习数据高效压缩表示的人工神经网络。它由两个主要部分组成: Encoder 编码器将输入数据映射到一个更小的、低维空间中的压缩表示,这个空间通常称为latent space或bottleneck。 这一过程可以看作是数据压缩,去除冗余信息,仅保留…

LLaMA-Factory web微调大模型并导出大模型

LLaMA-Factory 开源大模型如LLaMA&#xff0c;Qwen&#xff0c;Baichuan等主要都是使用通用数据进行训练而来&#xff0c;其对于不同下游的使用场景和垂直领域的效果有待进一步提升&#xff0c;衍生出了微调训练相关的需求&#xff0c;包含预训练&#xff08;pt&#xff09;&am…

一个基于Spring Boot的智慧养老平台

以下是一个基于Spring Boot的智慧养老平台的案例代码。这个平台包括老人信息管理、健康监测、紧急呼叫、服务预约等功能。代码结构清晰&#xff0c;适合初学者学习和参考。 1. 项目结构 src/main/java/com/example/smartelderlycare├── controller│ ├── ElderlyCon…

cmake - build MS STL project

文章目录 cmake - build MS STL project概述笔记END cmake - build MS STL project 概述 MS在github上开源了VS IDE 用的STL实现。 想看看微软的测试用例中怎么用STL. 想先用CMake编译一个MS STL发布版出来。 笔记 CMake需要3.30以上, 拟采用 cmake-3.30.6-windows-x86_64.…

【算法与数据结构】—— 回文问题

回文问题 目录 1、简介2、经典的回文问题(1) 判断一个字符串是否为回文(2) 给定字符集求构建的最长回文长度(3) 求最长回文子串方法一&#xff1a;中心拓展方法二&#xff1a;Manacher 算法 (4) 求回文子串的数目方法一&#xff1a;中心拓展方法二&#xff1a;Manacher 算法 1、…

Linux第一个系统程序---进度条

进度条---命令行版本 回车换行 其实本质上回车和换行是不同概念&#xff0c;我们用一张图来简单的理解一下&#xff1a; 在计算机语言当中&#xff1a; 换行符&#xff1a;\n 回车符&#xff1a;\r \r\n&#xff1a;回车换行 这时候有人可能会有疑问&#xff1a;我在学习C…

西电-神经网络基础与应用-复习笔记

此为24年秋研究生课程复习笔记 导论 神经网络的研究方法分为 连接主义&#xff0c;生理学派&#xff0c;模拟神经计算。高度的并行、分布性&#xff0c;很强的鲁棒和容错性。便于实现人脑的感知功能(音频图像的识别和处理)。符号主义&#xff0c;心理学派&#xff0c;基于符号…

利用obs studio制作(人像+屏幕)录制影像

1.什么是obs? OBS&#xff08;Open Broadcaster Software&#xff09;是一款功能强大的开源软件&#xff0c;它使用户能够直接从电脑录制视频和直播内容到 Twitch&#xff0c;YouTube 和 Facebook Live 等平台。它在需要直播或录制屏幕活动的游戏玩家、YouTube 用户和专业人士…

maven多模块项目编译一直报Failure to find com.xxx.xxx:xxx-xxx-xxx:pom:1.0-SNAPSHOT in问题

工作中项目上因为多版本迭代&#xff0c;需要对不同迭代版本升级版本号&#xff0c;且因为项目工程本身是多模块结构&#xff0c;且依然多个其他模块工程。 在将工程中子模块的pom.xml中版本号使用变量引用父模块中定义的版本号时&#xff0c;一直报Failure to find com.xxx.x…