【2024】Datawhale X 李宏毅苹果书 AI夏令营 Task1

news2024/11/16 11:36:14

本文是关于李宏毅苹果书“第1章 机器学习基础”学习内容的记录。

1、术语解释

术语解释
机器学习(Machine Learning, ML)机器学习是一种人工智能(AI)技术,它使计算机能够从数据中学习并做出决策或预测,而无需明确编程。常见的机器学习任务包括分类、回归和聚类。
深度学习(Deep Learning, DL)深度学习是机器学习的一个子领域,利用多层神经网络进行数据处理和分析。它在图像识别、自然语言处理等领域表现出色,可以自动从数据中提取特征,无需手动设计特征。
回归(regression)回归是一种监督学习方法,用于预测连续数值变量。例如,预测房价、股票价格等。线性回归是最简单的回归模型之一。
分类(classification)分类是另一种监督学习方法,用于将数据分类到不同的类别中。例如,将邮件分类为“垃圾邮件”和“非垃圾邮件”。
参数(parameter)在机器学习模型中,参数是模型从数据中学习并用来做预测的数值。例如,在线性回归中,斜率和截距是参数。
模型(model)模型是机器学习系统的核心部分,它是一个数学表示,能够基于输入数据生成输出。模型从训练数据中学习,并用这些知识进行预测或分类。
权重(weight)权重是神经网络中连接不同神经元的数值,它们决定了输入特征对最终预测的影响大小。通过调整权重,模型可以优化其性能。
偏置(bias)偏置是模型中的另一个参数,用来调整模型的输出,使得模型能够更好地拟合数据。在神经网络中,偏置项用于控制神经元的激活。
平均绝对误差(Mean Absolute Error, MAE)MAE是一种评估回归模型的指标,表示预测值与真实值之间差异的绝对值的平均值。它提供了模型预测误差的平均幅度。
均方误差(Mean Squared Error, MSE)MSE是另一种评估回归模型的指标,它是预测误差的平方平均值。MSE对大的误差更加敏感,因此它可以惩罚大误差。
交叉熵(cross entropy)交叉熵是一种常用于分类问题的损失函数,尤其是在二分类和多分类问题中。它衡量了预测的概率分布与实际分布之间的差异。
误差表面(error surface)误差表面是模型参数与其误差之间的图形表示。通过查看误差表面,可以理解参数如何影响模型的误差,并帮助优化模型。
梯度下降(gradient descent)梯度下降是一种优化算法,用于通过逐步调整模型参数来最小化损失函数。它通过计算损失函数相对于参数的梯度,并沿着梯度的负方向移动,以减少误差。
学习率(learning rate)学习率是梯度下降中的一个超参数,决定了每次更新模型参数时的步长。学习率太大可能会导致训练过程不稳定,而学习率太小则会使训练过程非常缓慢。
超参数(hyperparameter)超参数是在训练模型之前设定的参数,它们不会在训练过程中更新。常见的超参数包括学习率、正则化参数、神经网络的层数等。
全局最小值(global minima)全局最小值是指在整个误差表面上最低的点,即损失函数的最小值。在这个点上,模型的误差最小。
局部最小值(local minima)局部最小值是指在误差表面上某个区域的最低点,但它不一定是整个表面的最低点。梯度下降算法可能会陷入局部最小值,从而阻碍找到全局最小值。

补充:函数和函数模型有什么区别?函数是某个空间中元素到某个空间中元素的映射关系。函数模型通过根据函数的问题背景对问题进行建模,求解函数模型可以得到近似函数。可以认为函数模型是一个函数近似器。

2、公式理解

第1章的公式较为简单,主要有基础的线性函数表达式、两种误差的表达式以及梯度下降法中参数的更新过程。

  • 线性函数

y = b + ω x \bold{y} = b + \bold{\omega} \bold{x} y=b+ωx

此式在机器学习入门中常见,其中 x \bold{x} x表示输入, y \bold{y} y表示输出, ω \bold{\omega} ω表示输入的权重参数, b b b表示偏置参数。此式在确定参数 ω \bold{\omega} ω b b b后,可以根据 x \bold{x} x得到 y \bold{y} y

  • 平均绝对误差

ϵ = ∣ y ^ − y ∣ \epsilon = | \hat{y} - y | ϵ=y^y

其中, y ^ \hat{y} y^表示模型输出的值,即估计值, y y y表示实际值。平均绝对误差表示估计值与实际值之间的差距的绝对值,必为非负值。

  • 均方误差

ϵ = ( y ^ − y ) 2 \epsilon = (\hat{y} - y)^2 ϵ=(y^y)2

均方误差表示估计值与实际值之间的差距的平方,必为非负值。与平均绝对误差相比,均方误差对误差的放大效果更明显。

  • 梯度下降法中参数的更新过程

假设 ω \omega ω b b b是损失函数 L L L的表达式中的参数,若使用梯度下降法求解使 L L L的值最小的参数,参数的更新过程为:
ω t ← ω t − 1 + η ∂ L ∂ ω ∣ ω = ω t − 1 , b = b t − 1 b t ← b t − 1 + η ∂ L ∂ ω ∣ ω = ω t − 1 , b = b t − 1 \begin{aligned} \omega^t & \leftarrow \omega^{t-1} + \eta \frac{\partial L}{\partial \omega} \bigg| _{\omega = \omega^{t-1}, b = b^{t-1}} \\ b^t & \leftarrow b^{t-1} + \eta \frac{\partial L}{\partial \omega} \bigg| _{\omega = \omega^{t-1}, b = b^{t-1}} \end{aligned} ωtbtωt1+ηωL ω=ωt1,b=bt1bt1+ηωL ω=ωt1,b=bt1
其中, η \eta η表示学习率,是参数更新快慢的影响因子之一。此式表示在旧参数值的基础上使用学习率与对应参数的偏导值的乘积进行更新。

3、机器学习找函数的3个步骤

  • 定义带有未知参数的函数 f f f

    在深度学习中,函数 f f f通常使用各种深度学习网络或模型表示。

  • 定义损失函数 L L L

    损失函数的输入:函数 f f f的参数

    损失函数的输出:使用函数 f f f得到的估计值与真实值的差距的衡量

  • 最优化损失函数

    在机器学习中,损失函数最优化的过程通常使用梯度下降法完成。损失函数最优时,输入损失函数的参数为函数 f f f的最佳参数。

4、梯度下降的3个步骤

在这里插入图片描述

  • 随机初始化参数,定义学习率的大小

  • 计算损失函数在每个参数值上的(偏)微分

    当损失函数只有一个参数时,此步骤相当于求解曲线在该参数值上的斜率。

  • 使用学习率与(偏)微分值更新参数

    更新式子见“2、公式理解”。

5、梯度下降法面临的难题

如下图所示,使用梯度下降法可能只能找到局部最小值、无法找到全局最小值。
在这里插入图片描述

梯度下降法如何避免只能找到局部最小值?

  • 使用不同的初始点:通过使用不同的随机初始化点,多次运行梯度下降算法,可以增加找到全局最小值的机会。

  • 调节学习率:动态调整学习率,如使用自适应学习率方法(如Adam、RMSprop等),可以帮助算法在接近最小值时更好地探索周围的区域,避免陷入局部最小值。

  • 使用动量:动量是一种通过保留上一更新方向的部分信息来加速梯度下降的技术。它可以帮助模型跳出一些浅的局部最小值。

  • 模拟退火:这种技术将梯度下降与随机扰动相结合,以探索全局解空间。随着算法的进行,扰动幅度逐渐减小,从而集中搜索最优解。

  • 批量梯度下降:小批量随机梯度下降(Mini-batch SGD)中的随机性可以帮助算法跳出局部最小值。由于每次只使用部分数据进行更新,它有一定的噪声,这种噪声有助于避免陷入局部最小值。

  • 修改函数形式:设计函数为凸函数,避免函数出现局部最小值。

如何求解全局最小值并非梯度下降法面临的真正难题。梯度下降法面临的真正难题是什么?

  • 鞍点(Saddle Points):在某些维度上是最小值,而在其他维度上是最大值。
  • 梯度消失和梯度爆炸(Vanishing and Exploding Gradients): 在深层神经网络中,梯度可能在向后传播的过程中逐渐消失(变得非常小)或者爆炸(变得非常大),这会导致训练过程非常困难。归一化技术(如Batch Normalization)可以缓解梯度消失或梯度爆炸,长短期记忆网络(LSTM)则通过特殊的网络结构设计缓解这些问题。

参考:为什么LSTM可以缓解梯度消失?

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

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

相关文章

【python计算机视觉编程——3.图像到图像的映射】

python计算机视觉编程——3.图像到图像的映射 3.图像到图像的映射3.1 单应性变换3.1.1 直接线性变换算法(DLT)3.1.2 仿射变换 3.2 图像扭曲3.2.1 图像中的图像3.2.2 分段仿射扭曲3.2.3 图像配准 3.3 创建全景图3.3.1 RANSAC3.3.2 稳健的单应性矩阵估计3.…

【二叉树】LC405-删除二叉搜索树的节点

文章目录 1 删除二叉树的节点思路其他代码参考 1 删除二叉树的节点 https://leetcode.cn/problems/delete-node-in-a-bst/description/ 给定一个二叉搜索树的根节点 root 和一个值 key,删除二叉搜索树中的 key 对应的节点,并保证二叉搜索树的性质不变。…

探索全球设计灵感:六大海外设计平台

海外设计网站对于设计师而言,不仅是灵感的源泉,更是专业成长的加速器。这些平台聚集了全球创意人士,提供了一个分享和发现最新设计趋势的环境。设计师可以通过这些网站学习行业内的创新技术,参与设计挑战,提升个人设计…

End-to-End视觉里程计新突破:从运动模糊图像中精确估计相机姿态

更多优质内容,请关注公众号:智驾机器人技术前线 1.论文信息 论文标题:MBRVO: A Blur Robust Visual Odometry Based on Motion Blurred Artifact Prior 作者:Jialu Zhang, Jituo Li*, Jiaqi Li, Yue Sun, Xinqi Liu, Zhi Zheng,…

饮水机复杂交互功能联网调试

饮水机复杂交互功能联网调试 引言 饮水机我们从最开始的放水和加热, 逐渐拓展到保温功能, 童锁功能, 红外检测功能, 对于这些复杂的交互功能, 我们如果通过按键进行调试, 会极大的增加我们的开发时间和成本, 如果我们频繁的进行烧录, 则如果涉及到一些中间变量, 则无法进行调试…

帆软BI怎么制作不等宽柱状图

帆软BI怎么制作不等宽柱状图 文章目录 帆软BI怎么制作不等宽柱状图不等宽柱状图起源一、怎么做不等宽柱状图准备二、操作步骤1.展示效果2.操作步骤-3.操作步骤 -图形属性4.操作步骤 -组件样式5.操作步骤 -横轴和纵轴6.完成7.不等宽柱状图与传统等宽柱状图对比 总结 不等宽柱状图…

【深度学习】嘿马深度学习笔记第5篇:神经网络与tf.keras,学习目标【附代码文档】

本教程的知识点为:深度学习介绍 1.1 深度学习与机器学习的区别 TensorFlow介绍 2.4 张量 2.4.1 张量(Tensor) 2.4.1.1 张量的类型 TensorFlow介绍 1.2 神经网络基础 1.2.1 Logistic回归 1.2.1.1 Logistic回归 TensorFlow介绍 总结 每日作业 神经网络与tf.keras 1.3 …

介绍云计算在医疗领域的应用实例

云计算在医疗领域的应用日益广泛,为医疗行业带来了诸多便利和创新。以下是几个典型的应用实例: 电子病历管理系统: 基于云计算技术的电子病历管理系统,通过互联网实现对病历数据的存储、管理、维护和查询等功能。这类系统能够自动…

关于助记词,词库的讨论

我有个想法,既然私钥碰撞的难度大。 -seed-(pathmasterkey)-privatekey-publickey-address 通过反推的难度大,那我可以尝试使用助记词碰撞 就例如,我生成1000个eth地址 1000个地址的助记词全部拿到,然后…

C++学习笔记——打印ASCII码

一、题目描述 二、代码 #include <iostream> using namespace std; int main() {char a_char;int a_int;cin >> a_char;a_int a_char;cout << a_int;return 0; }

【数据结构】关于TreeMap与TreeSet的使用你了解多少???

前言&#xff1a; &#x1f31f;&#x1f31f;本期讲解TreeMap与Set的相关知识&#xff0c;希望能帮到屏幕前的你。 &#x1f308;上期博客在这里&#xff1a;http://t.csdnimg.cn/K1moi &#x1f308;感兴趣的小伙伴看一看小编主页&#xff1a;GGBondlctrl-CSDN博客 目录 &am…

开源模型应用落地-LangChain实用小技巧-使用各种Loader高效解析不同数据源(七)

一、前言 在 LangChain框架中&#xff0c;提供了Loader机制&#xff0c;以统一的方式来从各种数据源获取数据&#xff0c;使得开发人员可以方便地集成不同类型的数据源&#xff0c;而无需为每种数据源编写特定的加载代码。它可以将不同格式的数据转换为 LangChain 可以处理的统…

如何使用ssm实现新锐台球厅管理系统的设计与实现+vue

TOC ssm221新锐台球厅管理系统的设计与实现vue 系统概述 1.1 研究背景 如今互联网高速发展&#xff0c;网络遍布全球&#xff0c;通过互联网发布的消息能快而方便的传播到世界每个角落&#xff0c;并且互联网上能传播的信息也很广&#xff0c;比如文字、图片、声音、视频等…

Python(R)均方根误差平均绝对误差导图

&#x1f3af;要点 回归模型评估指标评估薪水预测模型评估员工倦怠率模型评估大气分析生成式对抗模型目标对象缺失下&#xff0c;性能估算法追踪模型误差指标降尺度大气学模拟模型准确性评估蛋白染色质相互作用模型评估 Python回归误差指标 平均绝对误差表示数据集中实际值和…

Manim实现目标的移动和出现速度控制

一&#xff0c;介绍 缓动函数 自定义参数随时间变化的速率。 现实生活中&#xff0c;物体并不是突然启动或者停止&#xff0c; 当然也不可能一直保持匀速移动。就像我们 打开抽屉的过程那样&#xff0c;刚开始拉的那一下动作很快&#xff0c; 但是当抽屉被拉出来之后我们会不自…

TCP协议中断开连接机制

目录 客户端与服务端四次挥手 关于TIME_WAIT状态 为什么TIME_WAIT状态等待的时间是2MSL&#xff1f; 客户端与服务端四次挥手 基于TCP协议通信的客户端与服务端断开连接就要进行四次挥手&#xff0c;如下图&#xff1a; 四次挥手过程中客户端与服务端状态转化&#xff1a; …

Rocm-Programming with HIP 内存分配

1. 主机内存&#xff08;Host Memory&#xff09; hipHostMalloc 是 HIP API 中的一个函数&#xff0c;它用于在主机上分配特殊的内存&#xff0c;这种内存被称为 "pinned" 或 "page-locked" 内存。这种内存有以下特点和用途&#xff1a; GPU 地址空间映射…

SD6201 同步增压DC/DC调节器芯片IC

一般描述 SD6201是高效率同步、PWM升压型DC/DC转换器&#xff0c;专为中型功率系统提供高效率解决方案而优化。该器件在0.9 V至4.4V的输入电压下工作&#xff0c;开关频率为1.4 MHz。这些功能允许使用微小、低剖面的电感和陶瓷电容器&#xff0c;从而最大限度地减少了整…

LivePortrait模型构建指南

一、介绍 快手可灵大模型团队开源了名为 LivePortrait 的可控人像视频生成框架&#xff0c;能够准确、实时地将驱动视频的表情、姿态迁移到静态或动态人像视频上&#xff0c;生成极具表现力的视频结果。该项目的模型产生了定性肖像动画&#xff0c;只要输入一张静态的肖像图像…

多线程面试常问

一、创建线程的几种方式 1、继承Thread类并重写run()方法。 public class MyThread extends Thread {Overridepublic void run() {System.out.println("通过集成 Thread 类实现线程"); } } // 如何使用 new MyThread().start() 2、实现Runnable接口并重写run()方法…