人工智能学习(四)之机器学习基本概念

机器学习基本概念详细解析:从生活实例轻松入门

在当今数字化时代,机器学习作为人工智能领域的核心技术之一,正深刻地改变着我们的生活和工作方式。从智能语音助手到图像识别系统,从个性化推荐引擎到自动驾驶汽车,机器学习的应用无处不在。本文将深入探讨机器学习的基本概念,帮助读者全面了解这一充满魅力的领域。

一、机器学习是什么?

从生活中的例子来看,机器学习就像是家里的智能扫地机器人。起初,它在清扫时毫无章法,频繁撞到家具。但随着清扫次数增多,它通过 “观察” 和 “记忆”,逐渐熟悉了房间布局和家具位置,后续清扫时就能巧妙避开障碍物,高效完成任务。这便是机器学习最直观的体现,它让机器从不断的实践中学习经验,从而优化自身行为。

从技术层面来讲,机器学习是一门融合了统计学、计算机科学、数学等多领域知识的交叉学科。它的核心在于让计算机通过对大量数据的分析和处理,自动学习到数据背后隐藏的模式和规律,进而利用这些知识对新数据进行预测和决策,而不是依赖于人类预先编写的具体指令。这就好比教孩子认识苹果,无需反复强调 “苹果是红色、圆形、口感甜的水果” 这类规则,只要让孩子多观察苹果实物和图片,孩子便能自主掌握苹果的特征,实现对苹果的识别。

二、机器学习都有哪些类型?

(一)监督学习:有老师指导的学习

监督学习就如同老师辅导学生做作业,每完成一道题,老师都会及时告知学生答案的对错。在机器学习领域,监督学习的训练数据同时包含输入特征(如房屋面积、房间数量、周边配套设施等)和对应的输出标签(房屋价格)。模型通过对这些数据的学习,构建起输入特征与输出标签之间的映射关系,从而具备对新数据进行准确预测的能力。

以房价预测为例,我们收集大量房屋的各项特征数据作为输入,将对应的实际房价作为输出,让模型学习两者之间的关联。后续只要输入新房屋的相关特征信息,模型就能依据学习到的关系预测出该房屋的大致价格。常见的监督学习算法有线性回归、逻辑回归、决策树、支持向量机等。线性回归常用于处理连续型数据的预测,逻辑回归则擅长解决二分类问题,决策树能够处理复杂的非线性关系,支持向量机在小样本、非线性分类问题上表现出色,它们各自有着独特的优势和适用场景。

(二)无监督学习:自己探索的学习

无监督学习类似周末家长带孩子去游乐场,孩子在没有家长过多引导的情况下,自由玩耍并自行探索。在玩耍过程中,孩子会根据游乐设施的玩法、趣味性等因素,将相似的游乐设施归为一类,这便是无监督学习的过程。在无监督学习中,训练数据没有给定的标签,模型的任务是自主挖掘数据中潜在的结构和模式,常见的应用包括聚类、降维、特征提取等。

在电商领域,商家可以利用 K-Means 聚类算法对用户的购买行为数据进行分析。通过分析用户购买商品的种类、频率、品牌偏好等信息,将具有相似购买行为的用户划分到同一类。比如,将经常购买运动装备、健身器材的用户归为运动爱好者群体;将频繁购买美妆、护肤产品的用户归为美妆爱好者群体。这样,商家就能针对不同群体的特点和需求,进行精准的产品推荐和营销活动,提高营销效果和用户满意度。

(三)半监督学习:少量指导下的自主探索

半监督学习就像是家长给孩子布置作业时,提供几道例题作为参考,然后让孩子自主完成剩余作业。在这种学习模式下,训练数据由少量带有标签的数据和大量未标注数据组成。半监督学习算法充分利用少量有标签数据的指导作用,同时结合大量无标签数据所蕴含的丰富信息,来提升模型的性能和泛化能力。

在图像分类任务中,给图像标注标签是一项既耗时又费力的工作。例如,要对大量的医学影像进行分类标注,需要专业的医生花费大量时间和精力来完成。半监督学习则可以先对一小部分医学影像进行精确标注,然后将这些标注数据与大量未标注的医学影像数据一起用于模型训练。模型在学习过程中,既能从标注数据中获取明确的分类信息,又能从未标注数据中挖掘出潜在的图像特征和模式,从而实现更强大的分类能力,同时大大节省了标注成本和时间。

(四)强化学习:在试错中成长

强化学习类似于孩子玩游戏,赢了会得到奖励(如一颗糖),输了则会受到惩罚(如不能玩下一局)。为了获得更多奖励,孩子会不断尝试不同的游戏策略。在强化学习中,智能体(如游戏中的角色)在环境中采取行动,环境会根据智能体的行动给予相应的奖励或惩罚信号。智能体的目标是通过不断地尝试和探索,找到能够最大化长期累积奖励的最优行为策略。

著名的 AlphaGo 便是强化学习的成功典范。在与自己对弈的过程中,AlphaGo 不断尝试各种落子策略,每一局对弈结束后,根据胜负结果(奖励或惩罚)来调整自身的策略。通过大量的自我对弈和策略优化,AlphaGo 逐渐掌握了围棋的精妙策略,最终成为战胜人类顶尖棋手的围棋高手,展现了强化学习在复杂决策问题上的强大能力。

三、如何训练一个机器学习模型?

(一)数据准备:好食材做出好饭菜

要烹饪出美味的菜肴,必须准备新鲜、优质的食材。同样,训练机器学习模型也离不开高质量的数据。数据就如同模型的 “食材”,其质量直接影响模型的性能和效果。

数据收集:数据来源广泛,可以从各种渠道收集数据。例如,电商平台可以收集用户的购买记录、浏览历史、评价信息等;社交媒体平台可以收集用户的个人资料、发布内容、点赞评论等数据;医疗领域可以收集患者的病历、检查报告、基因数据等。丰富的数据来源能够为模型提供更全面、多样化的信息,有助于模型学习到更准确的模式和规律。

数据清洗:收集到的数据往往存在各种问题,如噪声数据、重复数据、缺失值等。这些问题数据就像食材中的杂质,会影响模型的学习效果,因此需要进行清洗。例如,去除重复的用户购买记录,避免数据冗余;处理缺失值,可以采用均值填充、中位数填充、模型预测填充等方法;识别并纠正噪声数据,确保数据的准确性和可靠性。

数据预处理:对清洗后的数据进行预处理,使其更适合模型的学习。常见的预处理操作包括数据标准化、归一化、特征编码等。数据标准化和归一化可以将不同特征的数据转化到相同的尺度范围,避免某些特征因数值过大或过小而对模型产生过大影响。例如,将房屋面积、价格等不同量级的特征进行标准化处理,使其具有可比性。特征编码则是将非数值型的特征(如房屋的朝向、装修风格等)转化为数值型特征,以便模型能够处理。

数据划分:将预处理后的数据划分为训练集、验证集和测试集。训练集用于训练模型,让模型学习数据中的模式和规律;验证集用于调整模型的超参数,如学习率、正则化系数等,通过在验证集上的性能表现来确定最优的超参数设置;测试集用于评估模型的最终性能,检验模型在未见过的数据上的泛化能力。一般来说,将数据集按照 70%、15%、15% 的比例划分为训练集、验证集和测试集是比较常见的做法,但具体比例可以根据数据量和问题的复杂程度进行调整。

(二)模型选择与训练:挑选合适的工具并训练

就像厨师会根据不同的菜品选择合适的烹饪工具一样,在机器学习中,我们需要根据具体的问题和数据特点选择合适的模型。不同的模型具有不同的结构和学习方式,适用于不同类型的问题。例如,线性模型适用于处理线性可分的数据,能够简单快速地建立输入与输出之间的线性关系;决策树模型则擅长处理复杂的非线性关系,通过构建树形结构来对数据进行分类和预测;神经网络模型具有强大的非线性拟合能力,能够学习到数据中非常复杂的模式,在图像识别、语音识别等领域表现出色。

选择好模型后,就可以使用训练集对模型进行训练。在训练过程中,模型通过优化算法不断调整自身的参数,以最小化损失函数。损失函数用于衡量模型预测结果与真实标签之间的差异,常见的损失函数有均方误差(MSE)、交叉熵损失等。以均方误差为例,在房价预测任务中,它通过计算模型预测房价与实际房价之间差值的平方的平均值,来衡量模型预测的准确性。模型训练的过程就是不断调整参数,使均方误差逐渐减小的过程,直到模型达到收敛状态,即损失函数不再明显下降。

(三)模型评估与调优:不断改进菜品

一道菜烹饪完成后,需要邀请食客品尝并给出评价,以便厨师了解菜品的优缺点并进行改进。同样,模型训练完成后,也需要使用评估指标来衡量其性能,并根据评估结果进行调优。

准确率(Accuracy):预测正确的样本数占总样本数的比例。在预测水果类别时,如果模型预测 100 个水果,其中 80 个预测正确,准确率就是 80%。但当数据类别不均衡时,准确率可能会 “骗人”。比如在一个包含 99 个苹果和 1 个橙子的数据集里,模型如果全预测为苹果,准确率虽然高达 99%,但却完全没有识别出橙子,这显然不能真实反映模型的分类能力。

召回率(Recall):正确预测出的正样本数占实际正样本数的比例。在癌症检测中,实际有 100 个癌症患者,模型检测出 80 个,召回率就是 80%。召回率高意味着模型能尽量找到所有真正的正样本,减少漏检情况的发生。例如在疾病诊断中,高召回率可以确保更多的患者能够得到及时的诊断和治疗。

F1 值:综合考虑准确率和召回率的指标,它是两者的调和平均数,F1 值越高,说明模型性能越好。当模型在准确率和召回率之间需要平衡时,F1 值能够更全面地评估模型的表现。例如在信息检索任务中,既要保证检索结果的准确性(准确率),又要尽可能多地找到相关信息(召回率),F1 值就能很好地衡量检索系统的性能。

均方误差(MSE):常用于回归问题,衡量预测值与真实值之间误差的平方的平均值。在预测房价时,MSE 越小,说明预测值越接近真实房价。MSE 能够直观地反映模型预测值与真实值之间的偏差程度,帮助我们评估模型在回归任务中的准确性。

根据评估结果,我们可以对模型进行调优。常见的调优方法包括调整模型的超参数、进行特征工程、采用模型融合等技术。调整超参数可以通过网格搜索、随机搜索等方法,在超参数空间中寻找最优的参数组合。例如,通过调整决策树的最大深度、叶子节点最小样本数等超参数,来优化决策树模型的性能。特征工程则是对原始数据进行处理和转换,提取更有价值的特征,从而提升模型的表现。例如,在房价预测中,可以从房屋面积、房龄等原始特征中,衍生出单位面积价格、房龄与周边房价的关系等新特征,为模型提供更多的信息。模型融合是将多个不同的模型进行组合,综合利用它们的优势,提高模型的泛化能力和稳定性。例如,将多个不同的决策树模型进行集成,形成随机森林模型,往往能够取得比单个决策树更好的性能。

四、过拟合与欠拟合

(一)过拟合

过拟合就像学生在学习过程中过度依赖死记硬背,只记住了老师讲解的例题和具体细节,却没有真正理解知识点的本质和内在逻辑。在机器学习中,过拟合表现为模型在训练数据上的表现非常出色,几乎能够完美地预测训练数据,但在面对新的测试数据时,性能却急剧下降。例如,一个房价预测模型在训练过程中,过度学习了训练集中房屋的特殊信息和噪声,如某套房屋的独特装修风格、特殊地理位置等,而没有学习到房价与房屋面积、房龄、地段等普遍因素之间的真正关系。当遇到训练集外的房屋时,模型就无法准确预测房价,因为它缺乏对新数据的泛化能力。

过拟合的主要原因是模型过于复杂,学习能力过强,导致它不仅学习到了数据中的真实规律,还学习到了大量的噪声和细节。为了避免过拟合,可以采取以下措施:

增加数据量:提供更多的训练数据,让模型能够学习到更广泛的数据特征和模式,减少对个别数据的依赖。例如,在图像分类任务中,收集更多不同角度、不同光照条件下的图像数据,使模型能够学习到更全面的图像特征,提高泛化能力。

正则化:在损失函数中添加正则化项,对模型的复杂度进行约束。例如,L1 正则化和 L2 正则化可以使模型的参数值变小,避免模型过度拟合数据中的噪声和细节。通过正则化,模型会更加关注数据的整体特征和普遍规律,从而提高泛化能力。

早停法:在模型训练过程中,监控模型在验证集上的性能。当模型在验证集上的性能不再提升,甚至开始下降时,停止训练,避免模型继续学习噪声和过拟合。早停法可以有效地防止模型在训练后期过度拟合训练数据,保持模型的泛化能力。

(二)欠拟合

欠拟合则与过拟合相反,类似于学生对知识点掌握不足,连简单的例题都无法正确解答。在机器学习中,欠拟合表现为模型在训练数据和测试数据上的表现都很差,无法学习到数据中的有效规律。例如,使用简单的线性模型去拟合复杂的非线性房价数据,由于线性模型的表达能力有限,无法准确捕捉房价与各种因素之间的复杂非线性关系,导致模型在训练数据上就无法准确预测房价,更无法在新数据上取得好的表现。

欠拟合的主要原因是模型过于简单,学习能力不足,或者数据特征不够丰富。解决欠拟合问题可以采取以下方法:

选择更复杂的模型:根据数据的特点和问题的复杂程度,选择具有更强表达能力的模型。例如,将简单的线性模型替换为非线性的神经网络模型,或者使用集成学习方法,如随机森林、梯度提升树等,这些模型能够更好地处理复杂的数据关系,提高模型的学习能力。

进行特征工程:对原始数据进行更深入的分析和处理,提取更多有价值的特征。例如,在房价预测中,除了考虑房屋面积、房龄等基本特征外,还可以引入周边配套设施(如学校、医院、商场的距离)、交通便利性(如公交线路、地铁站的数量)等更多特征,丰富数据的信息含量,帮助模型更好地学习数据中的规律。

增加训练数据:更多的数据可以提供更多的信息和模式,有助于模型学习到更准确的规律。通过增加训练数据,模型可以更好地捕捉数据的分布特征,提高对复杂数据的适应能力,从而改善欠拟合的情况。

五、学习资源

(一)书籍

《机器学习实战》:这本书通过大量丰富的实际案例,使用 Python 语言实现了各种常见的机器学习算法。书中详细介绍了从数据收集、预处理到模型训练、评估和应用的全过程,非常适合初学者上手实践。读者可以通过实际操作代码,深入理解机器学习算法的原理和应用,快速掌握机器学习的基本技能。

《深度学习》:由深度学习领域的知名专家撰写,全面而系统地介绍了深度学习领域的知识。涵盖了神经网络的基本原理、优化算法、深度学习模型的构建与训练、计算机视觉、自然语言处理等多个方面的内容。这本书不仅适合有一定机器学习基础的读者深入学习深度学习,也为研究人员提供了深入的理论知识和前沿的研究方向。

(二)在线课程

Coursera 上的 “Machine Learning”:由吴恩达教授授课,是机器学习领域的经典入门课程。课程将理论知识与实际案例紧密结合,通过视频讲解、编程作业等方式,帮助学生深入理解机器学习的基本概念、算法原理和应用实践。吴恩达教授的讲解深入浅出,通俗易懂,非常适合初学者系统地学习机器学习知识。

网易云课堂上的机器学习课程:网易云课堂上汇聚了众多优质的机器学习课程,涵盖了从基础入门到高级进阶的不同层次内容。这些课程由来自高校、企业的专业讲师授课,内容丰富多样,包括理论讲解、实战项目、案例分析等。学习者可以根据自己的基础和需求,选择适合自己的课程进行学习,逐步提升自己的机器学习技能。

(三)开源项目

Scikit-learn:是 Python 中最常用的机器学习库之一,它提供了丰富的机器学习算法和工具,包括分类、回归、聚类、降维等多种功能。Scikit-learn 具有简单易用、高效实用的特点,其文档详细,示例丰富,非常适合初学者学习和使用。通过学习 Scikit-learn 库的使用,学习者可以快速掌握各种机器学习算法的实现和应用。

TensorFlow 和 PyTorch:这两个是目前主流的深度学习框架,具有强大的计算能力和灵活的模型构建能力。它们提供了丰富的 API 和工具,方便用户构建、训练和部署深度学习模型。TensorFlow 在工业界应用广泛,具有完善的分布式训练和模型

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

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

相关文章

deep generative model stanford lecture note2 --- autoregressive

1 Introduction 在note1 已经明确了生成模型,是通过概率分布来拟合数据,这个部分采用自回归的模型结构来拟合数据。主要任务包括:选择什么样的自回归模型结构和设计什么样的loss函数来让模型收敛。 自回归模型结构的理论基础还是贝叶斯概率结…

C++模板初了解

这节我们来学习一下C的一个便捷之处——模板 文章目录 一、泛型编程 泛型编程的基本思想 泛型编程的优点 泛型编程的应用 二、模板 函数模板 函数模板格式 函数模板的原理 函数模板的实例化 1.隐式实例化 2.显示实例化 函数模板的匹配原则 类模板 类模板的格式 类模板的实例化 …

PPT演示设置:插入音频同步切换播放时长计算

PPT中插入音频&同步切换&放时长计算 一、 插入音频及音频设置二、设置页面切换和音频同步三、播放时长计算 一、 插入音频及音频设置 1.插入音频:点击菜单栏插入-音频-选择PC上的音频(已存在的音频)或者录制音频(现场录制…

React

1. React 基础 1) 环境准备 创建项目 首先,通过 react 脚手架创建项目 npx create-react-app client --template typescriptclient 是项目名目前 react 版本是 18.x 运行项目 cd client npm start会自动打开浏览器,默认监听 3000 端口 修改端口 在…

[ESP32:Vscode+PlatformIO]新建工程 常用配置与设置

2025-1-29 一、新建工程 选择一个要创建工程文件夹的地方,在空白处鼠标右键选择通过Code打开 打开Vscode,点击platformIO图标,选择PIO Home下的open,最后点击new project 按照下图进行设置 第一个是工程文件夹的名称 第二个是…

3、从langchain到rag

文章目录 本文介绍向量和向量数据库向量向量数据库 索引开始动手实现rag加载文档数据并建立索引将向量存放到向量数据库中检索生成构成一条链 本文介绍 从本节开始,有了上一节的langchain基础学习,接下来使用langchain实现一个rag应用,并稍微…

【自然语言处理(NLP)】基于Transformer架构的预训练语言模型:BERT 训练之数据集处理、训练代码实现

文章目录 介绍BERT 训练之数据集处理BERT 原理及模型代码实现数据集处理导包加载数据生成下一句预测任务的数据从段落中获取nsp数据生成遮蔽语言模型任务的数据从token中获取mlm数据将文本转换为预训练数据集创建Dataset加载WikiText-2数据集 BERT 训练代码实现导包加载数据构建…

41【文件名的编码规则】

我们在学习的过程中,写出数据或读取数据时需要考虑编码类型 火山采用:UTF-16 易语言采用:GBK php采用:UTF-8 那么我们写出的文件名应该是何种编码的?比如火山程序向本地写出一个“测试.txt”,理论上这个“测…

NLP深度学习 DAY4:Word2Vec详解:两种模式(CBOW与Skip-gram)

用稀疏向量表示文本,即所谓的词袋模型在 NLP 有着悠久的历史。正如上文中介绍的,早在 2001年就开始使用密集向量表示词或词嵌入。Mikolov等人在2013年提出的创新技术是通过去除隐藏层,逼近目标,进而使这些单词嵌入的训练更加高效。…

HarmonyOS简介:应用开发的机遇、挑战和趋势

问题 更多的智能设备并没有带来更好的全场景体验 连接步骤复杂数据难以互通生态无法共享能力难以协同 主要挑战 针对不同设备上的不同操作系统,重复开发,维护多套版本 多种语言栈,对人员技能要求高 多种开发框架,不同的编程…

Windows11 不依赖docker搭建 deepseek-R1 1.5B版本(附 Open WebUi搭建方式)

零、前言 过年这几天发现 DeepSeek 非常火,试用了一下发现确实不错。与豆包、kimi、perplexity 这些相比完全不是一个次元的存在,特别是用ta写文章的时候体验非常好。所以试着自己搭一个环境。 一、安装 Ollama和DeepSeek-R1 我的安装方式很简单&#xf…

解决whisper 本地运行时GPU 利用率不高的问题

我在windows 环境下本地运行whisper 模型,使用的是nivdia RTX4070 显卡,结果发现GPU 的利用率只有2% 。使用 import torch print(torch.cuda.is_available()) 返回TRUE。表示我的cuda 是可用的。 最后在github 的下列网页上找到了问题 极低的 GPU 利…

springCload快速入门

原作者:3. SpringCloud - 快速通关 前置知识: Java17及以上、MavenSpringBoot、SpringMVC、MyBatisLinux、Docker 1. 分布式基础 1.1. 微服务 微服务架构风格,就像是把一个单独的应用程序开发为一套小服务,每个小服务运行在自…

Gradle配置指南:深入解析settings.gradle.kts(Kotlin DSL版)

文章目录 Gradle配置指南:深入解析settings.gradle.kts(Kotlin DSL版)settings.gradle.kts 基础配置选项单项目配置多项目配置 高级配置选项插件管理(Plugin Management)基础配置模板案例:Android项目标准配…

C++ Primer 标准库类型string

欢迎阅读我的 【CPrimer】专栏 专栏简介:本专栏主要面向C初学者,解释C的一些基本概念和基础语言特性,涉及C标准库的用法,面向对象特性,泛型特性高级用法。通过使用标准库中定义的抽象设施,使你更加适应高级…

[EAI-028] Diffusion-VLA,能够进行多模态推理和机器人动作预测的VLA模型

Paper Card 论文标题:Diffusion-VLA: Scaling Robot Foundation Models via Unified Diffusion and Autoregression 论文作者:Junjie Wen, Minjie Zhu, Yichen Zhu, Zhibin Tang, Jinming Li, Zhongyi Zhou, Chengmeng Li, Xiaoyu Liu, Yaxin Peng, Chao…

使用MATLAB进行雷达数据采集可视化

本文使用轮趣科技N10雷达,需要源码可在后台私信或者资源自取 1. 项目概述 本项目旨在通过 MATLAB 读取 N10 激光雷达 的数据,并进行 实时 3D 点云可视化。数据通过 串口 传输,并经过解析后转换为 三维坐标点,最终使用 pcplayer 进…

UE求职Demo开发日志#19 给物品找图标,实现装备增加属性,背包栏UI显示装备

1 将用到的图标找好,放一起 DataTable里对应好图标 测试一下能正确获取: 2 装备增强属性思路 给FMyItemInfo添加一个枚举变量记录类型(物品,道具,装备,饰品,武器)--> 扩展DataT…

Docker 部署 Starrocks 教程

Docker 部署 Starrocks 教程 StarRocks 是一款高性能的分布式分析型数据库,主要用于 OLAP(在线分析处理)场景。它最初是由百度的开源团队开发的,旨在为大数据分析提供一个高效、低延迟的解决方案。StarRocks 支持实时数据分析&am…

(9) 上:学习与验证 linux 里的 epoll 对象里的 EPOLLIN、 EPOLLHUP 与 EPOLLRDHUP 的不同

(1)经过之前的学习。俺认为结论是这样的,因为三次握手到四次挥手,到 RST 报文,都是 tcp 连接上收到了报文,这都属于读事件。所以: EPOLLIN : 包含了读事件, FIN 报文的正常四次挥手、…