机器学习(吴恩达)

news2025/3/13 18:30:23

一, 机器学习

        机器学习定义: 计算机能够在没有明确的编程情况下学习

        特征: 特征是描述样本的属性或变量,是模型用来学习和预测的基础。如: 房屋面积, 地理位置

        标签: 监督学习中需要预测的目标变量,是模型的输出目标。如: 房屋价格

        样本: 如: {面积=100㎡, 卧室=3, 位置=市中心, 价格=500万}, 数据集中的一个独立实例, 包含一组特征及对应的标签。

样本向量形式:

独热编码举例:

1.1 机器学习的分类

        1) 监督学习: 根据带标签的数据训练模型,预测新样本的标签。如回归, 分类

回归应用: 房价预测

分类算法: 根据年龄和肿瘤大小判断肿瘤良/恶性

        2) 无监督学习: 从未标注数据中发现潜在结构或模式。如聚类异常检测降维(大数据集压缩成更小的数据集, 并可能少地丢失信息)

聚类: 谷歌新闻示例

        3) ​半监督学习: 结合少量标注数据和大量未标注数据进行训练。如医学图像分析

        4) ​强化学习: 通过与环境交互学习策略,最大化累积奖励。如游戏AI, 自动驾驶

1.2 监督学习算法

1.2.1 线性回归 

第i个数据特征:

        损失函数(Loss Function)​:衡量单个样本的预测值与真实值的差异。

        成本函数(Cost Function)​:衡量整个训练集的平均损失。

平方误差损失:

平方误差成本函数: 一定是凸函数,确保只有一个全局最小值

模型(y=wx)与成本函数示例 (左图w=-0.5、0、0.5、1时的情况):

模型(y=wx+b)下的成本函数:

模型与J(w,b)的平面等高线:

        学习率(α)​:控制模型参数更新步长的超参数。 

 学习率的取值的两种情况:

        1) 学习率过大:参数更新步长过大,可能导致损失值震荡甚至发散。

        2) 学习率过小:收敛速度极慢,可能陷入局部极小值。

示例:

梯度下降公式:

推导过程:

梯度算法演示:

两个特征的多元线性回归举例:

特征缩放:  加速模型收敛。有如下方法:

标准化(Z-Score标准化):

标准差:

归一化(Min-Max缩放):

标准化与归一化的区别: 

举例 (标准化前后的数据集) :

    

1.2.2 逻辑回归

        通过线性组合特征与参数,结合Sigmoid函数将输出映射到概率区间(0-1),用于解决分类问题​(尤其是二分类)。

Sigmoid函数模型: 

图形:

对数损失函数(交叉熵损失):

对应图形:  

        为什么不使用均方误差(MSE)作为损失函数: 当预测值接近 0 或 1 时, 梯度接近于0, 权重几乎无法更新。 

   

对应成本函数:

为什么选择对数损失函数:

        1) 概率视角:最大似然估计(MLE)

        2) 优化视角:凸性

梯度下降算法:

与线性回归梯度算法的区别: 模型定义不同:

线性回归与逻辑回归区别: 

1.2.3 正则化  

解决过拟合情况:

        1) 收集更多数据

        2) 仅用特征的一个子集

        3) 正则化

欠拟合(高偏差), 适中, 过拟合(高方差)

正则化项:  

添加正则化项后的梯度算法:

        原理: 通过在损失函数中添加与模型参数相关的惩罚项,限制参数的复杂度,从而提升模型的泛化能力。 (使得W尽可能小以此使得函数趋于平滑)

        λ过大: 参数被过度压缩,模型过于简单,无法捕捉数据中的有效规律。

        λ过小: 正则化作用微弱,模型过度依赖训练数据中的噪声或局部特征。

        备注: 只要正则化得当, 更大的神经网络总是更好的。

例图:

根据交叉验证误差找到适合的λ:

λ取值与交叉验证误差及训练集误差的关系:

1.2.4 决策树 

        一种树形结构的监督学习模型,通过递归划分特征空间,对样本进行分类或回归。

递归分裂过程:

  1. 从根节点开始,计算所有特征的分裂指标(如信息增益)。
  2. 选择最优特征作为当前节点的分裂特征。
  3. 根据特征的取值将数据集划分为子集,生成子节点。
  4. 对每个子节点递归执行步骤1-3,直到满足停止条件。

停止条件:

  • 节点样本数小于预设阈值。
  • 所有样本属于同一类别。
  • 特征已用完或分裂后纯度提升不显著。

        ​预剪枝: 在树生长过程中提前终止分裂。如设置最大深度

 信息熵:度量数据集的混乱程度。值越小分类越明确。图为二分类情况

 示例图:

推广多分类:

信息增益:特征分裂后熵的减少量。值越大特征越重要。图为二分类举例:

多分类推广: 

符号含义:

二分类分裂决策举例: 

  决策树处理处理连续值特征:

        1) 特征排序: 从小到大排序

        2) 候选分割点生成:相邻值的中间点作为候选分割点。

        3) ​计算分裂指标: 计算分裂后的信息增益(分类)或均方误差(回归)。

        4) 选择最优分割点

        5) 递归分裂

示例图: 选择分裂点(分类)

示例图: 选择分类点(回归, 预测值为叶子结点的平均值)

随机森林

         通过构建多棵决策树,结合投票(分类)或平均(回归)实现预测。

 训练步骤

        1) Bootstrap抽样:从D中有放回地抽取N个样本,形成子集D_{t}​。

        2) 构建决策树:在D_{t}上训练一棵CART(分类与回归树)树,每次分裂时仅考虑m个随机选择的特征。m=math.sqrt(总特征数)     

        3) 保存模型:将训练好的树ht​加入森林。

        4) 预测: 

               · 多数投票法(分类):每棵树对样本预测一个类别,最终选择得票最多的类别。

               · 平均值(回归):所有树的预测结果取平均。

        放回抽样: 每次从总体中随机抽取一个样本后,​将该样本放回总体,确保它在后续抽取中仍有可能被再次选中。

基尼系数公式:

符号含义:

        作用:衡量数据集的不纯度。基尼系数越小,数据越“纯净”(同一类样本占比越高)。

基尼指数公式:

符号含义:

        作用:衡量按特征 A 分裂后的整体不纯度。决策树选择基尼指数最小的特征进行分裂。

        XGBoost思想: 在每一轮迭代中,通过拟合前序模型的预测残差(负梯度方向),并自动调整对预测不准样本的关注度,同时结合正则化防止过拟合。

1.3 非监督学习算法

1.3.1 聚类算法

        将未标记的数据划分为若干组(簇), 组内相似性高, 组间差异性大。

        K-means算法: 随机初始化K个中心点 → 分配数据点到最近中心 → 更新中心点 → 迭代至收敛。 

 ​K-means算法流程:

 k-means工作示例:

质心:

 符号含义:

不同初始化时的可能情况: 

肘部算法: 选取合适的K值

1.3.2 异常检测

        密度评估:  当P(x)小于某个值时, 为可疑异常, 相比较监督算法, 更容易发现从未出现过的异常

正态分布(高斯分布)的概率密度函数

 

推广(向量):

非高斯特征转化 :

协调过滤:

回归成本函数:

梯度算法:

均值归一化作用: 若无评分数据,使用全局均值 μglobal​ 作为初始预测值。

预测值:

基于内容的过滤算法:

        PCA算法: 无监督的线性降维方法,通过正交变换将高维数据投影到低维空间,保留数据中的最大方差。以期用更少的特征(主成分)解释原始数据中的大部分变异性。

与线性回归的区别:

1.3.3 强化学习 

贝尔曼方程:

  • Agent(智能体):决策主体,执行动作(Action)。
  • State(状态 s):环境在某一时刻的描述。
  • Action(动作 a):Agent的行为选择。
  • Reward(奖励 R(s)):环境对Agent动作的即时反馈。
  • Value Function(价值函数):衡量状态或动作的长期价值(Q(s,a))。
  • 其中γ∈[0,1]为折扣因子

小批量处理实现流程:

  1. 数据分块:将训练集随机划分为多个小批量。
  2. 前向传播:对当前小批量计算模型输出。
  3. 损失计算:根据预测值和真实标签计算损失(如交叉熵、均方误差)。
  4. 反向传播:计算损失对参数的梯度。
  5. 参数更新:使用优化算法(如SGD、Adam)更新模型参数。
  6. 重复:遍历所有小批量完成一个训练周期(Epoch)。

        优势: 避免一次性加载全部数据, 更新更频繁,加快收敛。

软更新

二、深度学习

2.1 基本概念

        输入层: x向量表示原始数据

        隐藏层: 如下图 layer1 到 layer3输出激活值(向量)。通过权重和激活函数提取抽象特征。

        输出层: layer4, 生成最终预测结果(如分类概率)。

        神经元(节点)​:每层的圆圈代表一个神经元,负责接收输入信号并计算输出。

        激活函数: 引入非线性,使网络能够拟合复杂函数。

前向传播示例图:

三种激活函数:

        备注: 梯度下降时sigmoid两端导函数为0, 二ReLu只有一端。

        为什么模型需要激活函数: 使得模型非线性。神经都是线性回归则神经网络只是一个线性回归。

反向传播: 通过链式法则,依次计算每一层的梯度

举例:

 梯度下降: 利用反向传播计算的梯度,梯度下降通过以下公式更新参数

2.3 多分类与多标签分类

        多分类: 将样本分配到唯一一个类别中, 如数字识别

        多标签分类: 为样本分配多个相关标签, 如图像标注(包含“山”“湖”“树”)

多分类举例: 输出每个类别的概率,选择最大概率对应的类别。

损失函数:

 

网络层

        密集层

        卷积层

2.4 模型评估

数据集划分

        1) 训练集​(Training Set):用于模型训练(通常占60-80%)。

        2) 验证集: 用于调参, 学习数据中的潜在规律。

        3) 测试集​(Test Set):模拟“未知数据”,用于最终评估。

        意义: 若模型仅在训练集上表现好,但在测试集上差,说明模型过拟合(过度记忆训练数据细节),泛化能力弱。

        备注: 避免测试集调参, 若根据测试集结果反复调整模型,导致模型间接拟合测试集。

2.4.1 偏差与方差

        偏差(Bias)​:指模型预测值的期望与真实值之间的差距,反映了模型对数据的拟合能力。高偏差意味着模型过于简单,无法捕捉数据中的潜在关系,导致欠拟合​(Underfitting)。

        方差(Variance)​:指模型对训练数据中微小变化的敏感程度,反映了模型的稳定性。高方差意味着模型过于复杂,过度拟合训练数据中的噪声,导致过拟合​(Overfitting)。

 高偏差(左), 高方差(右) 

2.4.2 诊断偏差与方差

高偏差(欠拟合)​:训练集和验证集误差均高。

解决方案:

        1) 可增加模型复杂度(如使用更高阶多项式、深层神经网络)

        2) 添加更多特征或改进特征工程

        3) 减少正则化强度(如降低λ值)

高方差(过拟合)​:训练误差低,验证误差高且差距大。表现: J(验证集)>>J(训练集)

解决方案:

       1) 可降低模型复杂度(如减少神经网络层数、剪枝决策树)。

        2) 增加训练数据量或使用数据增强。

        3) 增强正则化

 多项式阶数(x轴) 与 交叉验证误差 及 训练集误差 的关系:

学习曲线: 

高偏差学习曲线情况(红线, 较人类水平相比): 

高方差学习曲线情况(前半段): 

训练神经网络的一般步骤: 

数据增强: 在现有的训练样本上修改生成另一个训练样本

 迁移学习: 预训练

两者区别:

维度数据增强迁移学习
核心目标增加数据多样性,提升模型泛化能力复用已有知识,降低目标领域训练成本
依赖条件需要少量原始数据需要源领域模型或相关数据
适用阶段数据准备阶段模型训练阶段
技术范畴数据预处理/正则化模型优化/跨任务学习
典型应用领域图像、文本、语音等所有数据驱动的任务深度学习、跨领域任务(如医疗、金融)

2.4.3 精确度与召唤率

        混淆矩阵:TP(真正例)、TN(真负例)、FP(假正例)、FN(假负例)。

        1) 真正例(TP, True Positive)​:实际为正类,预测也为正类。

        ​2) 假正例(FP, False Positive)​:实际为负类,预测为正类(误报)。

        ​3) 真负例(TN, True Negative)​:实际为负类,预测也为负类。

        ​4) 假负例(FN, False Negative)​:实际为正类,预测为负类(漏报)。

        精确率(Precision)​\frac{TP}{TP+FP}(预测为正的样本中实际为正的比例)。关注预测的准确性

        召回率(Recall)​\frac{TP}{TP+FN}​(实际为正的样本中被正确预测的比例)。关注正类的覆盖率

例子:癌症检测

        设测试集有 ​100 名患者,其中 ​10 人患癌(正类) , 90 人健康(负类)​。模型预测结果如下

  • 正确预测
    • 癌症患者:8 人(TP = 8)。
    • 健康患者:83 人(TN = 83)。
  • 错误预测
    • 将 7 名健康人误诊为癌症(FP = 7)。
    • 漏诊 2 名癌症患者(FN = 2)。

混淆矩阵

预测患癌预测健康
实际患癌TP = 8FN = 2
实际健康FP = 7TN = 83

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

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

Django与视图

我叫补三补四,很高兴见到大家,欢迎一起学习交流和进步 今天来讲一讲视图 在web应用的MVC结构中,视图一般包含模板和表单,用来给浏览器生成响应。在实际处理过程当中,视图会根据请求的参数从数据源当中找到数据&#xf…

RabbitMQ从入门到实战-2

文章目录 Java客户端快速入门WorkQueue(多消费)能者多劳配置 交换机fanout交换机案例 Direct交换机Topic交互机 声明队列和交互机(IDEA中)基于Bean声明队列和交换机基于注解声明(推) 消息转换器配置Json消息转换器 业务改造&#…

Mac 配置 Maven JDK

不使用 Homebrew,创建指定版本 JDK 1、官网下载指定版本并安装……省略 2、vi ~/.zshrc 同时要检查 bash_profile 是否存在。 if [ -f ~/.bash_profile ] ; thensource ~/.bash_profile fiJAVA_HOME_11/Library/Java/JavaVirtualMachines/jdk-11.0.1…

测试大语言模型在嵌入式设备部署的可能性-ollama本地部署测试

前言 当今各种大语言模型百花齐放,为了方便使用者更加自由的使用大模型,将大模型变成如同棒球棍一样每个人都能用,并且顺手方便的工具,本地私有化具有重要意义。 本次测试使用ollama完成模型下载,过程简单快捷。 1、进…

Ubuntu通过Ollama部署deepseek和千问

一、准备文件 本地服务器是Ubuntu20.04,输入命令uname -a即可查看 部署方式有多样,点击Ollama访问官网 可复制命令直接粘贴下载,但是过程比较慢,所以我推荐下面这种方式 从githubReleases ollama/ollama GitHub上下载ollama的…

第十一届蓝桥杯单片机国赛

什么?4T模拟赛和省赛做起来轻轻松松?不妨来挑战一下第十一届国赛,这一届的国赛居然没考超声波、串口通信!只要你正确地理解了题目的意思,规避出题人挖的坑,拿个国一轻轻松松。 附件:第十一届蓝桥…

【eNSP实战】MSTP与VRRP配合使用

拓扑图 要求: PC1划分在vlan10;PC2划分在vlan20;主机IP和网关如图所示,这里不做展示LSW1配置vlan10的根交换机,vlan20的备根交换机;LSW2配置vlan20的根交换机,vlan10的备根交换机LSW1配置vlan…

UVC摄像头命令推流,推到rv1126里面去

ffmpeg命令查询UVC设备 .\ffmpeg.exe -list_devices true -f dshow -i dummy 上图是查询UVC设备的效果图,画红框的部分是UVC设备的设备名称"USB2.0 PC CAMERA"和设备号 "device_pnp_\\?\usb#vid_1908&pid_2310&mi_00#8&39abfe5&0&a…

2025年主流原型工具测评:墨刀、Axure、Figma、Sketch

2025年主流原型工具测评:墨刀、Axure、Figma、Sketch 要说2025年国内产品经理使用的主流原型设计工具,当然是墨刀、Axure、Figma和Sketch了,但是很多刚入行的产品经理不了解自己适合哪些工具,本文将从核心优势、局限短板、协作能…

es-索引详解

在 Elasticsearch 中,**索引(Index)**是核心概念之一,类似于关系型数据库中的“表”。索引用于存储、组织和检索文档(Document)。以下是关于 Elasticsearch 索引的详细解析: 1. 索引的基本概念 …

SAP接口方式之HTTP请求发布Restful服务

SAP restful http 接口集中管理发布(SICF) 项目上有很多restful接口的需求,其中涉及到多个外围系统,就想着如何通过只发布一个服务,而不用通过Webservice,也不通过RFC方式,让个外围系统传入不同的报文,来决…

Spark-TTS:基于大模型的文本语音合成工具

GitHub:https://github.com/SparkAudio/Spark-TTS Spark-TTS是一个先进的文本到语音系统,它利用大型语言模型(LLM)的强大功能进行高度准确和自然的语音合成;旨在高效、灵活、强大地用于研究和生产用途。 一、介绍 Sp…

Netty基础—3.基础网络协议一

大纲 1.网络基础的相关问题总结 2.七层模型和四层模型 3.物理层(网线 光缆 01电信号) 4.数据链路层(以太网协议 网卡mac地址) 5.网络层(IP协议 子网划分 路由器) 6.传输层(TCP和UDP协议 Socket 端口) 7.应用层(HTTP协议 SMTP协议) 8.浏览器请求一个域名会发生什…

【mysql】centOS7安装mysql详细操作步骤!

【mysql】centOS7安装mysql详细操作步骤!—通过tar包方式 需要 root 权限,使用 root 用户进行命令操作。 1. 查看 CentOS 版本 cat /etc/redhat-release2. 安装rpm包,以8为例 打开 MySQL 官方 yum 仓库网站,获取与当前 CentOS …

使用Nodejs基于DeepSeek加chromadb实现RAG检索增强生成 本地知识库

定义 检索增强生成(RAG)的基本定义 检索增强生成(Retrieval-Augmented Generation,简称RAG)是一种结合了信息检索技术与语言生成模型的人工智能技术。RAG通过从外部知识库中检索相关信息,并将其作为提示&…

笔试刷题专题(一)

文章目录 最小花费爬楼梯(动态规划)题解代码 数组中两个字符串的最小距离(贪心(dp))题解代码 点击消除题解代码 最小花费爬楼梯(动态规划) 题目链接 题解 1. 状态表示&#xff1…

LeetCode977有序数组的平方

思路①:先平方,后快排,输出(基准元素,左小右大) 时间复杂度:O(nlogn) 思路②:双指针左右开弓,首先原数组已经是按照非递减顺序排序,那…

网络变压器的主要电性参数与测试方法(4)

Hqst盈盛(华强盛)电子导读:网络变压器的主要电性参数与测试方法(4).. 今天我们继续来看看网络变压器的2个重要电性参数与它的测试方法: 1.反射损耗(Return loss&…

Windows10 WSL又又又一次崩了 Docker Desktop - Unexpected WSL error

问题:Windows10 WSL又又又一次崩了 这回报错: 然后再打开WSL Ubuntu就卡住了,等很长时间没反应,就关掉了。 手动启动Docker Desktop,报错: An unexpected error occurred while executing a WSL comman…

【前端基础】:HTML

超链接标签: a href: 必须具备, 表示点击后会跳转到哪个页面. target: 打开方式. 默认是 _self. 如果是 _blank 则用新的标签页打开 <a href"http://www.baidu.com">百度</a>链接的几种形式: 外部链接: href 引用其他网站的地址 <a href"http…