Datawhale X 李宏毅苹果书 AI夏令营 Task2打卡

线性模型(Linear model)

通常模型的修改来自于对问题的理解,即领域知识

 基本定义:把输入特征x乘上一个权重,再加上一个偏置就可以得到预测的结果。

优点:简单易理解,可理解性好(权重w可以直观表达了各属性在预测中的重要性)

1 分段线性曲线

1.1 线性模型的局限性

  • Linear(线性)的Model太过简单,对于绝大多数的实际情况来说x1与y的关系不是简单的线性关系。
  • 随著 x1 越来越高,y 就应该越来越大,可以通过设定不同的 w改变这条线的斜率,可以设定不同的 b改变这一条蓝色的直线跟 y 轴的交点,但是无论怎么改 w 和 b,x1与y永远都是线性关系,永远都是x1越大y就越大。
  • 模型的偏差(Model Bias):无论如何调整Model中的参数,都无法用Linear的Model制造类似红色的折线,也就是指模型无法模拟真实情况。

1.2 分段曲线的拟合

图中的各种Curves(曲线)都是由许多线段组成的,称为Piecewise Linear 的 Curves(分段线性曲线)。这些曲线都可以用常数+各种蓝色Function组成。曲线转折越多、越复杂,需要的蓝色Function就越多。

在实际案例的训练数据选择中,有时也会考虑数据本身的周期性等规律,以求更好减小模型在训练数据上的损失。

1.3 连续曲线的拟合

基于分段曲线可以逼近任何连续曲线的原理,我们可以使用Sigmoid函数来逼近Hard Sigmoid函数

当x1的值趋近于无穷大时,指数项会消失,函数收敛于c处,当x1趋近于负无穷小,y的值则趋近于0。

1.3.1 Sigmoid函数

中调整 b、w 和 c 可以制造各种不同形状的 Sigmoid 函数

 

在拟合连续曲线时,使用的Sigmoid函数数量(超参数的一种)可以自行设定,其数量越多,就可以产生有越多断线的分段线性函数,可以逼近更复杂的函数。

1.3.2 损失函数的计算

在这种拟合情况下,将损失函数设置为L(θ),其中,θ代表某一组W,b,的值,通过带入特征值x,可以得到预估的y,从而得到与真实标签之间的误差e,将所有误差通过一定计算进行总和,可以得到对应损失。

为了优化模型,减小损失,可以在一开始先设置一个初始值θ0,

一般来说,梯度更新的停止条件是计算出梯度为0向量,导致无法再更新参数(较小可能)或者我们主动终止计算。

1.3.3 批量

批量(batch):存有B笔数据(N笔数据被随机分成一个个批量)的一组数据。

在实际情况中,通常是每次先选一个批量计算损失函数L的值,并进行梯度更新。当所有批量都看过一次后,称为一个回合(epoch)

注:每次更新一次参数叫做一次更新,把所有的批量都看过一遍,叫做一个回合

2 模型变形

2.1 修正线性单元(Rectified Linear Unit,ReLU)

定义:是一种常用的人工神经网络中的激活函数(activation function)

形式 f(x) = max(0,x)/。它在x大于零的时候激活,输出x;在x小于等于零的时候不激活,输出零。

优点:计算简单、神经元数量少、训练速度快、避免梯度消失的问题等。

它已成为现代神经网络中最为普遍的激活函数之一,用于隐藏层中。

 2.2 神经网络(neural network)

过拟合(overfitting):模型在训练数据和测试数据上的能力/结果不一致。

3 机器学习框架

对于训练集,训练过程有3个步骤:

知识竞答

①下面哪种激活函数可以用来逼近Hard Sigmoid函数

A) ReLU
B) Sigmoid
C) tanh
D) softmax
E) ELU

B

②在深度学习中,我们经常遇到过拟合现象。以下哪些方法可以用来解决过拟合现象?

A) 增加训练数据量
B) 减少模型的参数数量
C) 增加模型的层数
D) 使用正则化技术
E) 使用Dropout技术

ABDE

③在预测观看人次的模型中,考虑前 7 天的数据而非前 1 天的数据有什么好处?
A. 可以降低模型的复杂度
B. 可以减少训练时间
C. 可以捕捉数据的周期性变化,降低损失
D. 可以提高模型的非线性能力
E. 可以避免过拟合

C

④教程中提到,模型在训练数据上的性能通常好于在测试数据上的性能。这种现象为什么会发生?

这种现象发生是因为模型直接在训练数据上优化,不可避免会学习到一些训练数据特有的模式,包括可能的噪声。测试数据代表了模型未见过的数据,更能反映模型的泛化能力。在实际应用中,应该更关注模型在测试数据上的表现。

⑤在教程的视频观看次数预测例子中,我们看到了如何从考虑前1天扩展到考虑前7天、28天甚至56天。这种扩展的意义是什么?教程中显示,从28天增加到56天时,在未见过的数据上的性能并没有显著提升,为什么考虑更多天数不一定总能提高预测准确性?

扩展考虑的天数允许模型捕捉更长期的模式,如周期性变化。然而,考虑更多天数并不总是能提高准确性,因为:1) 可能引入无关或噪声信息;2) 增加了模型复杂度,可能导致过拟合;3) 很久以前的数据可能对当前预测不再相关。

⑥在视频观看人数预测模型中,为什么使用100个ReLU比使用10个ReLU效果更好?这种改进是否总是有效的?

每一层ReLU都可以被视为对数据的一次非线性变换,使用更多的ReLU可以增加模型的复杂度,使其能够捕捉更复杂的非线性关系。100个ReLU相比于10个ReLU,可以学习更细致的模式,有更强的表达能力。然而,这种改进并非总是有效,因为过多的ReLU可能导致过拟合,特别是在数据量较小的情况下。此外,还需要考虑计算资源和推理时间的限制。应该在模型性能不再显著提升,或者验证集性能开始下降时停止增加复杂度。

⑦在教程中,我们看到了如何使用ReLU函数构建深层网络。为什么要在每个线性变换后都加入非线性激活函数?如果去掉这些激活函数会发生什么?

非线性激活函数(如ReLU)在每个线性变换后引入非线性变换,使得模型能够学习复杂的非线性关系。如果去掉这些激活函数,多层线性变换可以简化为单个线性变换,这会大大降低模型的表达能力,使其无法捕捉复杂的模式。

⑧在改进模型时,为什么使用ReLU函数比使用Sigmoid函数效果更好?这可能与什么因素有关?

ReLU函数比Sigmoid函数计算更简单,能缓解梯度消失问题,允许模型学习更复杂的非线性关系。在视频观看人数预测这种可能存在突然变化的场景中,ReLU的非饱和性可能更有利于捕捉数据中的急剧变化。

与Sigmoid激活函数相比,ReLU有几个明显的优点。首先,ReLU在处理正数时非常简单,它直接将正数传递出去,这使得计算更高效。相比之下,Sigmoid函数在处理正数时会变得非常平缓,导致梯度变得非常小,这使得训练过程变得缓慢。这种平缓的性质还可能导致训练过程中会出现梯度消失的问题,即模型在训练时更新参数的速度变得非常慢。
其次,ReLU函数的计算过程非常简单,只需检查输入是否大于零,这使得模型训练速度更快。而Sigmoid函数需要进行复杂的数学运算,这会增加计算的复杂性和时间。

⑨在使用梯度下降法优化模型时,为什么使用小批量而不是整个数据集?这种方法有什么优势和劣势?

优势:
小批量更新可以充分利用现代计算硬件(如GPU)的并行处理能力,而且不需要等待整个数据集的梯度计算完成就可以更新参数,从而加快训练速度。其次,处理整个数据集可能需要大量内存,而小批量可以在有限的内存中进行训练,使得训练过程更加可行。另外还引入了一定的随机性,有助于逃离局部最小值
劣势:
由于小批量梯度下降每次更新都是基于一个子集的估计,这可能导致收敛路径不如全批量梯度下降平滑,有时可能会出现震荡或不稳定。此外,选择小批量的大小是一个需要经验的过程,不同的大小可能对训练过程的效率和模型性能产生影响。过小的批量可能导致梯度估计不准确,过大的批量可能导致内存不足或训练速度慢。

参考资料

Datawhale (linklearner.com)

机器学习——线性模型(内附详细公式推导)_简单描述几个线性模型建立的过程-CSDN博客

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

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

相关文章

C++(Qt)-GIS开发-QGraphicsView显示瓦片地图简单示例2

C(Qt)-GIS开发-QGraphicsView显示瓦片地图简单示例2 文章目录 C(Qt)-GIS开发-QGraphicsView显示瓦片地图简单示例21、概述2、实现效果3、主要代码4、源码地址 更多精彩内容👉个人内容分类汇总 👈👉GIS开发 👈 1、概述 支持多线程…

AWS-亚马逊网络服务(基础服务)-AWS 定价计算器-概述与动手部署:

让我们来概述并亲身实践如何使用 AWS 定价计算器来计算 概述: AWS 定价计算器是 Amazon Web Services (AWS) 提供的基于 Web 的工具,可帮助用户估算其特定用例的 AWS 服务成本。欢迎来到雲闪世界。 它允许客户建模他们的基础设施并根据他们打算使用的…

大数据智能风控核心:模型

概述 模型 线性判别分析方法,Sir Ronald Fisher最早提出模型评分的概念。 个人FICO模型信用分。 巴塞尔委员会发布巴塞尔Ⅱ协议,推出内部评级法(Internal Rating Based Approach,IRB)​。IRB综合考虑客户评级和债项…

【STM32】BKP备份寄存器与RTC实时时钟

本篇博客重点在于标准库函数的理解与使用,搭建一个框架便于快速开发 目录 BKP简介 BKP代码注解 读写备份寄存器 复位备份寄存器 BKP代码 RTC简介 RTC代码注解 RTCCLK时钟源选择 分频器配置 时钟同步 RTC代码 MyRTC.h MyRTC.c main.c BKP简介 BKP&…

手把手教你从开发进度划分测试

一.单元测试(Unit Testing) 单元测试:软件单元测试的对象是可独立编译或汇编的程序模块。测试的对象是软件测试中的最小单位:模块。 测试阶段:编码后或者编码前(TDD:测试驱动开发)…

【网络基础】探索 NAT 技术:IP 转换、NAPT、NAT穿越及代理服务器

文章目录 1. 前言2. IP 转换过程3. NAPT① 基本概念② 工作原理③ 优缺点④ 实际应用 4. 缺陷5. NAT 穿越① 概述② 示例 6. NAT 与 代理服务器① 代理服务器与NAT的区别:② 正向代理 / 反向代理 服务器 1. 前言 NAT(网络地址转换)是一种常见…

Python数据清洗基础

在Python中进行数据清洗和可视化是一个多步骤的过程,涉及到数据的读取、预处理、分析和图形表示。以下是一些关键步骤和代码示例,这些步骤可以帮助你从原始数据中提取有价值的信息,并以直观的方式展示。 数据清洗 读取数据: im…

【Python 千题 —— 基础篇】评论倾向分析

Python 千题持续更新中 …… 脑图地址 👉:⭐https://twilight-fanyi.gitee.io/mind-map/Python千题.html⭐ 题目描述 在某个电商平台的评论系统中,用户可以提交商品评论。为了分析评论的情感倾向,我们需要编写一个程序来处理用户评论,并对评论内容进行简单的分析和处理。…

Mac/Linux系统matplotlib中文支持问题

背景 matplotlib是python中最常用的数据可视化分析工具,Mac和Linux系统无中文字体,不支持中文显示(希望后续可以改进),需要进行字体的下载和设置才能解决。笔者经过实践,发现Mac系统和Linux系统解决方案略…

1.【R语言】R语言的下载和安装

R语言是一种开源编程语言,它提供了丰富的统计模型和图形绘制功能,广泛用于数据科学、统计分析、数据挖掘和机器学习。R有一个活跃的社区和大量的包,可以满足各种需求,如数据清洗、绘图和报告生成。其强大的数据处理能力和灵活的可…

Ant Design vue 多层for循环form表单自定义校验

数据结构如下&#xff1a;三维数组。 注意&#xff1a;<a-form-model>一定得写在for外面&#xff01;&#xff01;&#xff01;&#xff01; <!-- 弹出框 --> <a-modal:title"title":dialog-style"{ top: 20px }":visible"visible&quo…

Datawhale X 李宏毅苹果书 AI夏令营 入门 Task2-了解线性模型

目录 线性模型分段线性曲线模型变形 线性模型 输入的特征 x 乘上一个权重&#xff0c;再加上一个偏置就得到预测的结果&#xff0c;这样的模型称为线性模型。 分段线性曲线 线性模型有很大的限制&#xff0c;这一种来自于模型的限制称为模型的偏差&#xff0c;无法模拟真实的…

Bluetooth: att protocol

一篇搞懂 ATT 支持的东西都有什么。 READ_BY_GROUP_TYPE_REQ/RSP 如下是 Spec 内容&#xff1a; The attributes returned shall be the attributes with the lowest handles within the handle range. These are known as the requested attributes.If the attributes with th…

零知识证明-基础数学(二)

零知识证明(Zero—Knowledge Proof)&#xff0c;是指一种密码学工具&#xff0c;允许互不信任的通信双方之间证明某个命题的有效性&#xff0c;同时不泄露任何额外信息 导数、偏导数 ,互质数&#xff0c;费马小定理&#xff0c;欧拉定理 1 导数 导数是微积分学中的重要概念&am…

科研绘图系列:R语言组合图形绘图

介绍 柱状图、箱线图和棒棒图组合 加载R包 # Library library(ggplot2) library(dplyr) library(forcats)读取数据 data <- data.frame(name=c("north","south","south-east","north-west","south-west","north…

jquery下载的例子如何应用到vue中

参考测试圈相亲平台开发流程&#xff08;4&#xff09;&#xff1a;选个漂亮的首页 (qq.com) 下载的文件夹解压到v_love项目的pubilc下的static文件夹内&#xff0c;这里放的都是我们的静态资源。 打开文件夹内的index.html&#xff0c;我们先确定下它是不是我们要的东西&…

基于yolov10的PCB检测算法研究

内容&#xff1a;项目将YOLOV10创新后的PCB检测算法成功部署到GD32H757上&#xff0c;实现PCB缺陷的工业产线实时检测。 项目主要支持开源代码&#xff1a;HomiKetalys/gd32ai-modelzoo: Provide deployable deep learning models on gd32 (github.com) &#xff08;想了解将…

信息打点-红队工具篇FofaQuakeKunyuSuize水泽Arl灯塔

知识点&#xff1a; 1、网络空间四大引擎-Fofa&Quake&Shodan&Zoomeye 2、自动化信息收集项目-ARL灯塔&Suize水泽&Kunyu坤舆 3、单点功能信息收集项目-企查&子域名&指纹识别&社工信息 黑暗引擎&#xff1a; https://fofa.info https://qua…

GPT-4 vs LLaMA3.1:核心技术架构与应用场景对比

目录 前言 一、GPT-4 的核心技术架构 1.1 Transformer 结构概述 1.2 GPT-4 的主要组成部分 1.3 GPT-4 的创新与改进 二、LLaMA3.1 的核心技术架构 2.1 模型概述 2.2 LLaMA3.1 的主要组成部分 2.3 LLaMA3.1 的创新与改进 三、GPT-4 和 LLaMA3.1 的主要差异 3.1 模型规…

Native开发与逆向第五篇 - hook log打印

开发demo 新建native项目&#xff0c;实现log打印字符串。 下载地址&#xff1a;https://download.csdn.net/download/u013170888/89698015 #include <android/log.h> #define LOGI(...) __android_log_print(ANDROID_LOG_INFO, "JNI_LOG", __VA_ARGS__)exte…