机器学习框架(1)

以吴恩达的《机器学习》课程为蓝本,整理课程框架,自己学习的简单记录。
课程讲解很清楚,建议有空可以看看原课程。

01 单变量线性回归

回归偏向于连续属性,分类偏向于离散属性。
监督学习是给定标签的学习;而无监督学习,未给定标签,以聚类算法为典型。

1.1 模型表达

对于单变量,一种可能的表达方式为:表达式1

1.2 代价函数

代价函数可简单理解为,表达的是模型所预测的值与训练集中实际值之间的差距(即,建模误差)。常用表达式为:
表达式2
也有其他代价函数,只是上述比较常用。
可画图,观察不同参数对代价函数的影响。

1.3 梯度下降

梯度下降是一个用来求函数最小值的算法。
梯度下降背后的思想是:开始时我们随机选择一个参数的组合,计算代价函数,然后我们寻找下一个能让代价函数值下降最多的参数组合。我们持续这么做直到到到一个局部最小值(local minimum),因为我们并没有尝试完所有的参数组合,所以不能确定我们得到的局部最小值是否便是全局最小值(global minimum)。
选择不同的初始参数组合,可能会找到不同的局部最小值。
批量梯度下降(batch gradient descent)算法的公式为:
批量梯度下降其中α是学习率(learning rate),它决定了我们沿着能让代价函数下降程度最大的方向向下迈出的步子有多大。
α太小,移动可能很慢,需要很久才能达到局部/全局最低点。
α太大,移动步伐太大,可能会超过最低点,无法收敛。

注意参数需要同时更新(代码部分容易不同步):
同步更新

02 多变量线性回归

只是参数变多,其他处理和单变量类似。
求出最优解的方式,引入“正规方程”:
正规方程
比较

03 逻辑回归

3.1 逻辑函数

一个常用的逻辑函数为 S 形函数(Sigmoid function),公式为:
公式
函数图像为:
函数图像
假定:
在这里插入图片描述
ℎ(x)的作用是,对于给定的输入变量,根据选择的参数计算输出变量=1 的可能性。如:
解释说明

3.2 判定边界

已知,z=0, g(z)=0.5,则边界条件为z=0时的条件,且有:
在这里插入图片描述

3.3 代价函数

代价函数
函数有许多局部最小值,将会影响梯度下降算法寻找全局最小值。
对比

3.4 简化的成本函数和梯度下降

上面的表达式可以变化为:
代价函数
最小化代价函数的方法,是使用梯度下降法(gradient descent)。
需要反复更新每个参数,式子如下:
更新式子优化代价函数的不同方法,共轭梯度法 BFGS (变尺度法) 和 L-BFGS (限制变尺度法)

04 正则化

4.1 过拟合问题

过拟合问题
第一个模型是一个线性模型,欠拟合,不能很好地适应我们的训练集;第三个模型是一个四次方的模型,过于强调拟合原始数据,而丢失了算法的本质:预测新数据。
对于第三个模型,可以看出,若给出一个新的值使之预测,它将表现的很差,是过拟合,虽然能非常好地适应我们的训练集但在新输入变量进行预测时可能会效果不好;而中间的模型似乎最合适。
出现过拟合问题,常从两个角度思考处理方法:
1)丢弃一些不能帮助我们正确预测的特征(如PCA)
2)正则化。(保留所有的特征,但是减少参数的大小)

4.2 代价函数

若在之前的回归问题中,我们的模型为:
过拟合的模型
我们可以清楚,是高次项导致了过拟合的产生,尝试思考在一定程度上让高次项的系数减小。
因此,我们尝试对代价函数进行修改,对高次项的系数设置一些“惩罚”。这样做的话,是尝试最小化代价时将这个“惩罚”也纳入考虑,并导致最终选择较小一些的高次项的系数。
修改后的代价函数为:
修改后的代价函数假如有非常多的特征,不知道其中哪些特征我们要惩罚,直接将对所有的特征进行惩罚,并且让代价函数最优化的软件来选择这些惩罚的程度。
这样得到了一个较为简单的能防止过拟合问题的假设:
修正公式
其中,λ也被称为“正则化参数”。
根据惯例,我们不对 公式进行惩罚。
注意,正则化参数λ不可过大,过大则会把所有参数都最小化。

对于逻辑回归的正则化表达式为:
正则化表达式

05 神经网络

了解基本结构:输入层,隐含层,输出层。
将神经网络的分类定义为两种:二类分类和多类分类。
从前往后,算到最后一层输出的预测方式,称为正向传播方法。

5.1 代价函数

原来只有一个输出变量时的代价函数为:
代价函数
我们可以有多个输出变量。这里假设我们的输出维度为K,即K个输出变量,代价函数更新为:
代价函数2
这个更复杂一点的代价函数,与之前代价函数的区别是:
对于每一行特征,我们都会给出K个预测。利用循环,对每一行特征都可预测出K个不同结果,然后再利用循环在K个预测中选择可能性最高的一个,将其与y中实际数据进行比较。

5.2 反向传播算法

之前在计算神经网络预测结果时,我们采用的是正向传播方法,即从第一层正向到最后一层的计算。
但是,为了计算代价函数的偏导数,偏导数,我们需要采用的事一种反向传播算法。即,先计算最后一层的误差,再从后往前,求出一层又一层的误差。
以一个四层的神经网络为例:
向前传播
从最后一层的误差开始计算,误差是激活单元表达式之间的误差。
误差表达
由于第一层是输入变量,故不存在误差。
当有了所有误差的表达式后,便可以计算代价函数的偏导数:
计算其中,
l代表目前所计算的是第几层。
j代表目前计算层中的激活单元的下标,也将是下一层的第j个输入变量的下标。
i代表下一层中误差单元的下标,是受到权重矩阵中第i行影响的下一层中的误差单元的下标。
PS:反向传播会有点难以理解,先学会用,再说是否搞明白了原理。

5.3 梯度检验

对一个较为复杂的模型(例如神经网络)使用梯度下降算法时,可能会存在一些不容易察觉的错误。即,虽然代价看上去在不断减小,但最终的结果可能并不是最优解。
为了避免这样的问题,采取一种叫做梯度的数值检验(Numerical Gradient Checking)方法。这种方法,是通过估计梯度值来检验计算出的导数值是否真的是要求的。
对梯度的估计采用的方法,是在代价函数上沿着切线的方向,选择离两个非常近的点,然后计算两个点的平均值用以估计梯度。

5.4 模型的检验

通常将数据集分为训练集、交叉验证集、测试集。
例如,下面按照6:2:2 的比例分:
模型检验

5.5 诊断偏差和方差

当运行一个学习算法时,如果这个算法的表现不理想,常为两种情况:偏差比较大;方差比较大。对应的问题就是欠拟合和过拟合的问题。
例如:
示意图
通常会通过将训练集和交叉验证集的代价函数误差与多项式的次数绘制在同一张图表上来帮助分析:
示意图2
对于训练集,当d 较小时,模型拟合程度更低,误差较大;随着d的增长,拟合程度提高,误差减小。
对于交叉验证集,当d较小时,模型拟合程度低,误差较大;但是随着d的增长,误差呈现先减小后增大的趋势,转折点是我们的模型开始过拟合训练数据集的时候。
则有:
示意图3
训练集误差和交叉验证集误差近似时:偏差/欠拟合
交叉验证集误差远大于训练集误差时:方差/过拟合

5.6 正则化和偏差/方差

在训练模型的过程中,常会使用一些正则化方法来防止过拟合。
但可能会正则化的程度太高或太小了,即在选择 λ 的值时,也需要注意λ的选择问题。
示意图4
我们选择一系列的想要测试的λ值,通常是 0-10 之间的呈现 2 倍关系的值(如:0,0.01,0.02,0.04,0.08,0.15,0.32,0.64,1.28,2.56,5.12,10共 12 个)。
同样把数据分为训练集、交叉验证集和测试集。将训练集和交叉验证集模型的代价函数误差与 λ 的值绘制在一张图表上。

5.7 学习曲线

也可使用学习曲线来判断某一个学习算法是否处于偏差、方差问题。
对于高偏差/欠拟合:作为例子,尝试用一条直线来适应下面的数据,可以看出,无论训练集有多么大误差都不会有太大改观:
欠拟合
即,在高偏差/欠拟合的情况下,增加数据到训练集不一定能有帮助。

对于高方差/过拟合:假设使用一个非常高次的多项式模型,并且正则化非常小,可以看出,当交叉验证集误差远大于训练集误差时,往训练集增加更多数据可以提高模型的效果。
高方差
即,在高方差/过拟合的情况下,增加更多数据到训练集可能可以提高算法效果。
解决思路:

  1. 获得更多的训练实例——解决高方差
  2. 尝试减少特征的数量——解决高方差
  3. 尝试获得更多的特征——解决高偏差
  4. 尝试增加多项式特征——解决高偏差
  5. 尝试减少正则化程度 λ——解决高偏差
  6. 尝试增加正则化程度 λ——解决高方差

5.8 其他概念

类偏斜情况表现为:训练集中有非常多的同一种类的实例,只有很少或没有其他类的实例。
例如,我们希望用算法来预测癌症是否是恶性的。在我们的训练集中,只有 0.5%的实例是恶性肿瘤。假设我们编写一个非学习而来的算法,在所有情况下都预测肿瘤是良性的,那么误差只有 0.5%。然而我们通过训练而得到的神经网络算法却有 1%的误差。这时,误差的大小是不能视为评判算法效果的依据的。
因此,我们将算法预测的结果分为四类:

  1. 正确肯定(True Positive,TP):预测为真,实际为真
  2. 正确否定(True Negative,TN):预测为假,实际为假
  3. 错误肯定(False Positive,FP):预测为真,实际为假
  4. 错误否定(False Negative,FN):预测为假,实际为真
    定义:
    查准率=TP/(TP+FP)。例,在所有我们预测有恶性肿瘤的病人中,实际上有恶性肿瘤的病人的百分比,越高越好。
    查全率=TP/(TP+FN)。例,在所有实际上有恶性肿瘤的病人中,成功预测有恶性肿瘤的病人的百分比,越高越好。
    对于刚才那个总是预测病人肿瘤为良性的算法,其查全率是 0。
    因此,查准率和查全率,可作为遇到偏斜类问题的评估度量值。再很多应用中,我们希望能够保证查准率和查全率的相对平衡。

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

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

相关文章

AI Ready数据库,OceanBase打了一个样

大数据产业创新服务媒体 ——聚焦数据 改变商业 过去一年,企业对AI的兴趣不减。从接入大模型,到部署RAG(检索增强生成)系统、探索AI Agent,AI从“新技术”变成了“业务工具”的候选项。但一个技术能否真正落地&#x…

趣味数据结构之——链

记得数组吗,一个萝卜一个坑的想象。在数组的世界里我们就是第三视角,置身于坑外的。如果我们是二维平面上的生物,那数组就是一维的线,我们可以随机访问,增删查改,也可以一眼看出数组大小。 那么对于链来说…

构建低代码平台的技术解析

低代码平台表单引擎与业务事件设计实践 低代码平台表单引擎与业务事件设计实践一、什么是低代码?它能做什么?二、请假系统案例介绍2.1 主要功能2.2 业务流程 三、表单元数据、实例数据与业务事件联动设计3.1 表单元数据(Meta)如何…

Hive SQL 快速入门指南

在大数据蓬勃发展的当下,处理海量数据成为企业面临的关键挑战。Hive SQL 作为一款强大的工具,为我们打开了高效处理大数据的大门。接下来,让我们一起踏上 Hive SQL 的入门之旅。​ 一、Hive SQL 是什么​ Hive 是基于 Hadoop 的数据仓库工具…

国内公司把数据湖做成了数据库

在做多年的数据仓库项目,数据湖也在做,但是做完发现,这个不是传统数据库里面的ODS吗? 好多公司做数据湖,就是把数据湖做成了ODS层(贴源数据层),难道真的数据湖就是这样等于ODS吗&am…

Python 数据分析与可视化 Day 6 - 可视化整合报告实战

🎯 今日目标 整合数据分析与可视化结果生成结构化报告用代码自动生成完整的图文分析文档熟悉 Jupyter Notebook / Markdown 图表 报告生成流程 🧩 一、项目背景:学生成绩分析报告 数据来源:students_cleaned.csv(含姓…

服务器、树莓派/香橙派部署HomeAssistant与小爱音箱联动

HomeAssistant功能介绍与多平台部署实战:CentOS服务器、树莓派、香橙派部署及小爱音箱联动控制 一、HomeAssistant简介 HomeAssistant是一款基于Python开发的开源智能家居自动化平台,它最大的特点是高度集成和自定义。通过HomeAssistant,用…

内存泄漏系列专题分析之二十四:内存泄漏测试Camera相机进程内存指标分布report概述

【关注我,后续持续新增专题博文,谢谢!!!】 上一篇我们讲了: 这一篇我们开始讲: 内存泄漏系列专题分析之二十四:内存泄漏测试Camera相机进程内存指标分布report概述 目录 一、问题背景 二、:内存泄漏测试Camera相机进程内存指标分布report概述 2.1:Camera领域相机进…

华为堆叠理论及配置

一,堆叠基本概念 1.1交换机角色 主交换机(Master):主交换机负责管理整个堆叠。**堆叠系统中只有一台主交换机。**备交换机(Standby):备交换机是主交换机的备份交换机。堆叠系统中只有一台备交换…

【数字经济】数据即产品架构在数字经济时代的应用

数据即产品架构在数字经济时代的应用 在数字经济中,数据已成为核心生产要素,“数据即产品”(Data-as-a-Product)架构通过系统化封装原始数据,实现其可交易、可交付的产品化价值。以下是其架构设计与应用解析&#xff…

MySQL 中的时间序列数据分析与处理

在互联网应用和企业业务系统中,特别是现在当下环境电商以及跨境电商火爆的情况下,时间序列数据无处不在,如电商订单时间、用户登录日志、设备监控数据等。MySQL 作为主流数据库,具备强大的时间序列数据处理能力。本文将结合电商订…

STM32——MDK5编译和串口下载程序+启动模式

一、MDK5编译 1.1 编译中间文件 还可通过 .map文件计算程序大小 中间文件 > 下载到开发板中的文件 > .hex 二、串口下载 2.1 前提须知 2.2 串口硬件链接(M3、M4系列) M7无串口下载 PC端需安装 CH340 USB 虚拟串口驱动:CH340 USB 虚…

HyperWorks仿真案例:拓扑优化与激光增材制造的完美结合挖掘轻量化结构的新潜力

许多技术创新都基于自然界中生物结构的设计。通过不断进化,大自然在数百万年间已学会根据各种形状的功能对形状进行调整,从而最大程度地提高效率。当工程师设法构建坚固而轻盈的结构时,这些自然界中的示例可以提供重要线索。在目前的研究项目…

在Windows系统部署本地智能问答系统:基于百度云API完整教程

引言 在人工智能时代,搭建私有化智能问答系统能有效保护数据隐私并提升响应效率。本教程将手把手教你在Windows环境中,通过百度云API构建专属智能问答系统,全程无需服务器,仅需本地计算机即可运行! 一、环境准备 系统…

Vue的watch函数实现

<script setup> import { watch, ref, reactive, toRefs } from vue;const count ref(0); const obj reactive({name: 张三,age: 18 });// 我们可以使用toRefs&#xff0c;将reactive对象中的属性转换为ref对象&#xff0c;保持响应性&#xff01;&#xff01; const {…

Tomcat 安装使用教程

&#x1f4cc; 什么是 Tomcat&#xff1f; Apache Tomcat 是一个开源的 Java Servlet 容器&#xff0c;也是运行 Java Web 应用最常用的服务器之一&#xff0c;支持 Servlet、JSP 等规范。 &#x1f9f0; 一、准备工作 1. 系统要求 操作系统&#xff1a;Windows / Linux / m…

【邀请】点击邀请链接参加阿里云训练营活动,完成学习送礼品+户外折叠凳,一个小时就能完成

点击邀请链接参加阿里云训练营活动&#xff0c;完成学习送礼品户外折叠凳&#xff0c;快的话一个小时就能完成。 7月28日23:59前完成。 OSS进阶应用与成本优化训练营 礼品如下&#xff1a; 包尖钢笔/祈福小神仙积木/雨伞/不锈钢餐具随机发放 户外折叠凳

用户行为序列建模(篇六)-【阿里】DSIN

简介 DSIN&#xff08;Deep Session Interest Network&#xff09;是阿里巴巴于2019年提出的点击率预估模型。相比于DIN、DIEN&#xff0c;考虑了用户行为序列的内在结构&#xff08;序列是由session组成的&#xff0c;在每个session内&#xff0c;用户行为是高度同构的&#…

现代Web表情选择器组件:分类系统与实现详解

你好呀&#xff0c;我是小邹。今天给博客的emoji表情进行了归类、补充&#xff0c;具体优化如下。 表情选择器的核心价值在于其分类系统。本文将深入解析表情分类体系的设计与实现&#xff0c;通过完整代码示例展示如何构建一个专业级的表情选择器组件。 一、表情分类系统设计…

华为云Flexus+DeepSeek征文 |华为云ModelArts Studio集成OpenAI Translator:开启桌面级AI翻译新时代

华为云FlexusDeepSeek征文 |华为云ModelArts Studio集成OpenAI Translator&#xff1a;开启桌面级AI翻译新时代 引言一、ModelArts Studio平台介绍华为云ModelArts Studio简介ModelArts Studio主要特点 二、OpenAI Translator介绍openai-translator简介openai-translator主要特…