Datawhale X 李宏毅苹果书 AI夏令营:task1通过案例了解机器学习

news/2024/11/16 6:18:08/文章来源:https://www.cnblogs.com/cytwjyy/p/18383647

隐藏任务:

①:找出本篇中形如回归(regression)加粗字体的术语,并用自己的话进行解释,列成表格,与学习群的其他小伙伴讨论你的理解和搜索到的相关案例。

②:整理出本篇中所有的公式,手动摘录,并尝试理解。

③:找出机器学习找函数的3个步骤!并查找资料,交叉佐证这些步骤。

④:归纳梯度下降的步骤。

⑤:为什么局部最小是一个假问题,局部最小怎么解决?真正的难题是什么?

⑥:搜索资料了解线性模型的基本历史发展,以及目前的主要应用方向。

⑦:了解什么叫批量(batch)、以及怎么样从线性模型过度到神经元、神经网络深度学习~


1.隐藏任务1

术语 解释
机器学习 是一种人工智能技术,它让计算机能够在没有明确编程的情况下从数据中学习。简而言之,就是让计算机自己发现规律并做出预测或决策。
深度学习 是机器学习的一个分支,它使用多层神经网络来自动识别数据中的模式。深度学习特别擅长处理图像、语音和自然语言等复杂的数据类型。
标量 是一个单一数值,与向量和矩阵不同,它只有一个数值而不包含方向。在机器学习中,标量常常用来表示单个数据点或计算结果。
回归 是一种预测连续值的方法。比如,预测房价、销售额或温度等数值型数据。回归分析试图找到输入变量与输出变量之间的数学关系。
分类 是预测离散类别的一种方法。例如,判断一封邮件是否为垃圾邮件、诊断病人是否患有某种疾病等。分类问题的输出是一组固定的类别标签。
结构化学习 是一种解决具有结构化输出的问题的方法。与传统的分类或回归不同,结构化学习关注的是预测复杂的结构化对象,如序列、树或图。
参数 是定义机器学习模型行为的可调数值。例如,在线性回归中,斜率和截距都是模型的参数。
模型 是对现实世界的简化表示,它通过一系列数学公式来捕捉数据中的模式。模型可以用来做预测或决策。
特征 是用于训练模型的数据属性。例如,在预测房价的任务中,房屋的面积、卧室数量等都是特征。
权重 是模型中赋予不同特征的重要性程度。权重越大,该特征对模型的贡献就越大。
偏置 是模型中的一个额外参数,它类似于数学中的截距。偏置可以帮助模型更好地拟合数据。
平均绝对误差 是评估预测准确性的一种指标,它是预测值与真实值之差的绝对值的平均值。
均方误差 是另一种评估预测准确性的指标,它是预测值与真实值之差的平方的平均值。相比于 MAE,MSE 更加重视较大的误差。
交叉熵(shang) 是用来衡量两个概率分布之间的差异的指标。在机器学习中,它常被用作分类任务的损失函数。
梯度下降 是一种优化算法,用于最小化损失函数。它通过沿着梯度的负方向迭代更新参数来逐渐降低损失函数的值。
学习率 决定了梯度下降中参数更新的速度。较高的学习率会导致更大的更新步长,但也可能导致错过最小值。
超参数 是在训练模型之前设置的参数,它们控制着模型的学习过程。例如,学习率、批次大小等都是超参数。
全局最小值 是整个参数空间中最小的损失函数值。找到全局最小值意味着模型达到了最优状态。
局部最小值 是在某个局部区域内的最小值,但它可能不是全局最小值。在优化过程中,模型可能会陷入局部最小值而无法找到全局最小值。

2.隐藏任务2

本篇中所有公式如下:(总共10个公式)

\[y=b+\omega x_1 \]

\[\hat{y}=500+1x_1 \]

\[e_1=|y-\hat{y}|=400 \]

\[e_2=|y-\hat{y}|=2100 \]

\[L=\frac{1}{N}\sum_n e_n \]

\[e=|\hat{y}-y| \]

\[e=(\hat{y}-y)^2 \]

\[\omega^1\leftarrow\omega^0-\eta\frac{\partial L}{\partial \omega}\biggr\rvert_{\omega=\omega^0} \]

\[\frac{\partial L}{\partial b} \biggr\rvert_{\omega=\omega^0 ,b=b^0}\\ \frac{\partial L}{\partial \omega} \biggr\rvert_{\omega=\omega^0 ,b=b^0} \]

\[\omega^1\leftarrow\omega^0-\eta\frac{\partial L}{\partial \omega}\biggr\rvert_{\omega=\omega^0 ,b=b^0}\\ b^1\leftarrow b^0-\eta\frac{\partial L}{\partial b}\biggr\rvert_{\omega=\omega^0 ,b=b^0} \]

2.1 公式1理解:

\[y=b+\omega x_1 \]

其中 b 跟 w 是未知的。带有未知的参数的函数称为模型。模型在机器学习里面,就是一个带有未知的参数的函数。特征 x1 是这个函数里面已知的,它是来自后台的信息。而w和b是未知的参数。w称为权重,b称为偏置

2.2 公式2理解:

\[\hat{y}=500+1x_1 \]

基于公式1,假设未知的参数的设定是b=500,w=1,预测未来的观看次数的函数救变成y=500+x1。

2.3 公式3理解:

\[e_1=|y-\hat{y}|=400 \]

估测的值 yˆ 跟真实值 y 的差距 e。

其中真实的值称为标签

计算差距不止一种方式。

公式3是其中一种:取绝对值。

通过公式2得出yˆ = 5300,真正的结果是 4900。

由公式3得出e1=400。

2.4 公式4理解:

\[e_2=|y-\hat{y}|=2100 \]

除了用1月1日的值来预测1月2日的值,还可以用1月2日的值来预测1月3日的值。

根据 1 月 2 日的观看次数,预测的 1 月 3 日的观看次数的,值是 5400。

公式4计算5400 跟跟标签(7500)之间的差距。

2.5 公式5理解:

\[L=\frac{1}{N}\sum_n e_n \]

计算3年来每一天的误差都可以得到e。把这些e加起来取得平均,得到损失L,也就是公式5.

其中N代表训练数据的个数。

L越大,代表现在这一组参数越不好;L越小,代表现在这一组参数越好。

2.6 公式6理解:

\[e=|\hat{y}-y| \]

估测的值和实际的值之间的差距其实有不同的计算方法,计算y 与 yˆ 之间绝对值的差距。

公式6则被称为平均绝对误差

2.7 公式7理解:

\[e=(\hat{y}-y)^2 \]

如果计算y 与 yˆ 之间平方的差距,即为公式7。则其称为均方误差

2.8 公式8理解:

\[\omega^1\leftarrow\omega^0-\eta\frac{\partial L}{\partial \omega}\biggr\rvert_{\omega=\omega^0} \]

把 w0 往右移一步,新的位置为 w1,这一步的步伐是 η 乘上微分的结果,即公式8.

image

w 代不同的数值的时候,就会得到不同的损失,这一条曲线就是误差。怎么样找一个 w 让损失的值最小呢?首先要随机选取一个初始的点 w0。接下来计算 ∂L/∂w|w=w0,在 w 等于 w0 的时候,参数 w 对损失的微分。计算在这一个点,在 w0 这个位置的误差表面的切线斜率,也就是这一条蓝色的虚线,它的斜率。

2.9 公式9理解:

\[\frac{\partial L}{\partial b} \biggr\rvert_{\omega=\omega^0 ,b=b^0}\\ \frac{\partial L}{\partial \omega} \biggr\rvert_{\omega=\omega^0 ,b=b^0} \]

假设有两个参数,随机初始值为 w0, b0。要计算 w, b 跟损失的微分,计算在 w = w0 的位置,b = b0 的位置,要计算 w 对 L 的微分,计算 b 对 L 的微分。

2.10公式10理解:

\[\omega^1\leftarrow\omega^0-\eta\frac{\partial L}{\partial \omega}\biggr\rvert_{\omega=\omega^0 ,b=b^0}\\ b^1\leftarrow b^0-\eta\frac{\partial L}{\partial b}\biggr\rvert_{\omega=\omega^0 ,b=b^0} \]

计算完公式9后更新 w 跟 b,把 w0 减掉学习率乘上微分的结果得到 w1,把 b0 减掉学习率乘上微分的结果得到 b1。


3.隐藏任务3

以视频的点击次数预测为例介绍下机器学习的运作过程。

机器学习找函数的3个步骤如下:

1.写出一个带有未知参数的函数 f,其能预测未来观看次数。比如将函数写成

\[y=b+\omega x_1 \]

其中,y 是准备要预测的东西,要预测的是今天(2 月 26 日)这个频道总共观看的人,y 就假设是今天总共的观看次数。x1 是这个频道,前一天(2 月 25 日)总共的观看次数,y 跟 x1 都是数值,b 跟 w 是未知的参数,它是准备要通过数据去找出来的,w 跟 b 是未知的,只是隐约地猜测。

2.定义损失,损失也是一个函数。这个函数的输入是模型里面的参数,模型是 y = b + w ∗ x1,而 b 跟 w 是未知的,损失是函数 L(b, w),其输入是模型参数 b 跟w。

3.解一个最优化的问题。找一个 w 跟 b,把未知的参数找一个数值出来,看代哪一个数值进去可以让损失 L 的值最小,就是要找的 w 跟 b,这个可以让损失最小的 w 跟 b 称为 w∗ 跟 b∗ 代表它们是最好的一组 w 跟 b,可以让损失的值最小。梯度下降(gradient descent)是经常会使用优化的方法。

‌机器学习找函数的三个步骤‌主要包括:

1.选择或构建模型‌:首先,需要确定一个带有未知参数的函数形式。这个函数通常是一个线性模型,如y=wx+b,其中w和b是未知参数,w被称为权重,b被称为偏置。这个步骤涉及到根据具体问题和任务选择或构建一个合适的模型。

2.定义损失函数‌:接下来,需要定义一个损失函数,这是一个用来评价模型预测效果与实际结果之间差距的函数。损失函数的输入是模型的参数(在这个例子中是w和b),输出是模型预测的准确度或好坏程度。损失函数的选择取决于具体的问题类型,例如,回归问题通常使用均方误差(MSE)或平均绝对误差(MAE),而分类问题则可能使用交叉熵代价函数。

3.优化求解‌:最后,通过优化算法(如梯度下降法)来寻找使损失函数最小的参数值。这一步骤的目标是找到最佳的函数参数,使得模型在新样本上的表现达到最佳。优化过程可能涉及到迭代更新参数值,直到达到某个停止条件,如损失函数的值不再显著变化或达到预设的迭代次数。

这三个步骤共同构成了机器学习算法的核心流程,通过不断地调整和优化模型参数,使得模型能够更好地适应和预测新数据‌。


4.隐藏任务4

下面是梯度下降的基本步骤:

(1) 初始化参数
  • 首先,随机或根据某种策略初始化模型的参数。例如,在深度学习中,权重通常是随机初始化的,而偏置通常初始化为零。
(2) 计算损失
  • 计算模型预测与实际目标之间的差异,通常使用损失函数(如均方误差 MSE 或交叉熵损失)来量化这种差异。
(3)求导数
  • 对损失函数关于每个参数求偏导数。这一步骤的目标是计算梯度向量,即损失函数在当前位置的斜率。梯度的方向指向了函数增长最快的方向。
(4) 更新参数
  • 使用以下公式更新参数:

    \[\omega^1\leftarrow\omega^0-\eta\frac{\partial L}{\partial \omega}\biggr\rvert_{\omega=\omega^0} \]

    其中:η是学习率,决定了每次更新步长的大小。
(5)重复步骤2至4
  • 迭代进行上述步骤,直到满足停止条件。停止条件可能是达到预定的最大迭代次数、梯度的模小于一个阈值或损失函数的变化小于某个阈值等。

5.隐藏任务5

(1)局部最小为何可能是个“假问题”:
  1. 在高维空间中:随着参数空间维度的增加,局部最小变得不那么重要。在深度学习中,由于参数数量巨大(高维空间),局部最小往往非常接近全局最小,或者说,很多局部最小点的性能相差无几。
  2. 鞍点问题:在深度学习中,比局部最小更常见的问题是鞍点(saddle points)。这些点周围的梯度接近于零,但它们既不是局部最小也不是局部最大,而是有多个方向上的增减变化。
  3. 实际应用中的效果:在实践中,找到一个能够使模型很好地泛化到新数据的局部最小点,往往比找到绝对的全局最小点更重要。
(2)如何解决局部最小问题:
  1. 随机初始化:通过多次随机初始化权重来训练模型,这样可以探索不同的局部最小点。
  2. 动量方法:如动量梯度下降(Momentum)、Nesterov 加速梯度下降(NAG)等,可以帮助模型逃离局部最小点。
  3. 自适应学习率方法:如 AdaGrad、RMSProp 和 Adam 等优化算法,这些方法通过动态调整学习率来改善优化过程。
  4. 正则化技术:如 L1 和 L2 正则化,可以帮助模型避免过拟合,并且有时也能帮助模型跳出局部最小点。
  5. 批量归一化:通过归一化输入和/或隐藏层的输出,可以帮助优化过程更加稳定。
(3)真正的难题:
  • 鞍点问题:在高维空间中,鞍点比局部最小更常见,也是优化过程中的一大挑战。
  • 泛化能力:即使找到了一个全局最小点,模型也未必能在未见过的数据上表现良好。因此,如何设计模型使其具有良好的泛化能力是另一个重要的考虑因素。
  • 计算资源:寻找最优解需要大量的计算资源,特别是在处理大规模数据集和复杂模型时。如何高效地利用计算资源也是一个关键问题。

6.隐藏任务6

6.1 线性模型的历史发展
  1. 早期起源
    • 线性模型的基础可以追溯到18世纪末和19世纪初,当时科学家们开始使用简单的线性方程来描述数据之间的关系。
    • 19世纪中叶,卡尔·弗里德里希·高斯(Carl Friedrich Gauss)和阿道夫·凯特勒(Adolphe Quetelet)的工作为线性模型奠定了理论基础,他们使用最小二乘法来估计参数。
  2. 20世纪的发展
    • 20世纪初期,统计学家如罗纳德·费希尔(Ronald Fisher)和尤金·皮尔逊(Egon Pearson)等人推动了线性模型的理论和应用发展。
    • 20世纪中叶,随着计算机的出现和发展,线性模型的计算变得更加可行,这促进了线性模型在各种领域的广泛应用。
  3. 现代发展
    • 20世纪后期和21世纪初,随着大数据时代的到来,线性模型的形式和应用范围得到了扩展,例如广义线性模型(Generalized Linear Models, GLMs)的引入,使得线性模型能够适用于更多的数据类型和场景。
    • 近年来,随着机器学习和人工智能的兴起,线性模型在预测和决策支持系统中扮演着重要角色。
6.2 当前的主要应用方向
  1. 经济学和金融
    • 线性模型被广泛用于预测市场趋势、风险评估和投资组合优化等领域。
  2. 生物学和医学
    • 在生物统计学中,线性模型用于分析基因表达数据、疾病预测和临床试验结果。
  3. 社会科学
    • 社会科学研究中经常使用线性模型来分析社会现象,如人口趋势、社会经济状况的影响等。
  4. 工程学
    • 工程领域使用线性模型来优化设计、质量控制和故障预测。
  5. 市场营销
    • 在市场营销中,线性模型可用于预测消费者行为、产品销售和广告效果。
  6. 信息技术
    • IT行业使用线性模型进行网络流量预测、服务器负载均衡等。
  7. 机器学习
    • 在机器学习中,线性模型如线性回归和逻辑回归仍然是非常基础且重要的工具,用于分类和回归任务。
    • 特别是在线性回归方面,它作为最基本的模型之一,在机器学习入门阶段被广泛教授和使用。
  8. 深度学习
    • 尽管深度学习模型是非线性的,但在某些情况下,也会使用线性模型作为基准模型,或在神经网络的某些层中使用线性变换。
  9. 精算科学
    • 线性模型在保险业中用于评估风险和制定保费政策。
  10. 环境科学
    • 在环境科学中,线性模型被用于预测气候变化的影响、污染物扩散等。

7.隐藏任务7

7.1 什么叫批量

批量(batch)通常指的是在计算机科学和数据处理中,将多个数据项或任务组合在一起,作为一个单元进行处理的方法。这种方法可以提高处理效率,尤其是在处理大量数据时,可以更好地利用计算资源,减少资源的浪费。在深度学习中,批量大小(batch size)是指在训练模型时一次性输入的样本数目,它是一个重要的超参数,影响模型的训练速度、内存使用、收敛性和泛化能力。批量算法是指使用整个训练集的优化算法,这种方法在机器学习中用于确保模型得到较好的泛化能力。

7.2 怎么样从线性模型过度到神经元、神经网络深度学习

线性模型在处理复杂数据和非线性问题时存在局限性。为了克服这些局限性,可以通过引入神经元和构建神经网络来实现更高级的数据表示和学习能力。以下是从线性模型过渡到神经元和神经网络的关键步骤:

  1. 理解神经元的工作原理:神经元是神经网络的基本构建块,它接收多个输入,通过加权求和后应用激活函数来产生输出。激活函数引入了非线性,使得神经网络能够学习和模拟复杂的函数映射。
  2. 构建多层感知机(MLP):通过将多个神经元连接成多层结构,形成多层感知机。每一层的神经元可以提取输入数据的不同层次的特征,从而实现更复杂的数据表示。
  3. 反向传播算法:反向传播是训练多层神经网络的关键算法,它通过计算损失函数相对于网络权重的梯度,并使用梯度下降等优化算法来更新权重,以最小化预测误差。
  4. 正则化和优化技术:在深度学习中,为了防止过拟合和提高模型的泛化能力,通常会采用L1、L2正则化以及Dropout等技术。这些技术可以帮助模型在训练过程中更好地学习数据的内在结构。
  5. 深度学习框架:利用深度学习框架(如TensorFlow、PyTorch等)可以方便地构建、训练和部署神经网络模型。这些框架提供了丰富的工具和预构建的层,使得构建复杂的神经网络变得更加高效。
  6. 实践和实验:通过实际构建和训练神经网络模型,可以加深对神经网络工作原理的理解,并通过实验调整网络结构和超参数,以获得最佳的模型性能。

通过上述步骤,可以从简单的线性模型过渡到复杂的神经元和神经网络,从而处理和学习更加复杂的数据集和任务。深度学习模型在图像识别、自然语言处理等领域已经取得了显著的成功。

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

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

相关文章

25. Socket与粘包问题

1. Socket概念 Socket允许应用程序通过它发送或接收数据,对其进行像对文件一样的打开、读写和关闭等操作,从而允许应用程序将I/O插入到网络中,并与网络中的其他应用程序进行通信。Socket是应用层与传输层之间的接口,提供了一种标准的通信方式,使得不同的程序能够在网络上进…

网络爬虫中Fiddler抓取PC端网页数据包与手机端APP数据包

Fiddler是常用的数据包捕获软件,具有分析请求数据、设置断点、调试web应用、修改请求的数据等功能,本文对如何用Fiddler抓取HTTP、HTTPS、手机APP数据包介绍了,另外还补充介绍了数据包过滤的功能。1 引言在编写网络爬虫时,第一步(也是极为关键一步)就是对网络的请求(req…

【Leetcode_Hot100】普通数组

普通数组 53. 最大子数组和 56. 合并区间 189. 轮转数组 238. 除自身以外数组的乘积 41. 缺失的第一个正数 53. 最大子数组和 方法一:暴力解 依次遍历数组中的每个子数组,进而判断res的最大值 超时 class Solution {public int maxSubArray(int[] nums) {int res = 0;for(int…

【python】基础之迭代器

1.总览2.迭代器介绍2.1:迭代器是一个实现了迭代协议的对象,它可以让我们遍历一个容器中的所有元素,而不需要知道容器的内部结构,迭代器可以用于遍历列表,元祖,字典,集合等容器类型; 2.2:迭代器的工作原理是通过实现两个方法:iter()和__next__()方法,iter()方法返回迭…

Java元注解介绍

Java四种元注解相关介绍 概述 注解从Java1.5引入以来,不断地简化我们编写代码的流程,逐渐的也成为了我们必学的一项技术。我们学习了各种注解,学习了他们的用法,学习了他们的限制,是否想过他们的组成呢,下面我将我对元注解的理解分享给大家。 元注解是用来修饰注解的注解…

RocketMQ在基金大厂的分布式事务实践

1 行业背景 基金公司核心业务主要分为:投研线业务,即投资管理和行业研究业务,体现基金公司核心竞争力 市场线业务,即基金公司利用自身渠道和市场能力完成基金销售并做好客户服务随互联网技术发展,基金销售渠道更加多元化,线上成为基金销售重要渠道。相比传统基金客户,线上…

从混乱到有序:10款建筑项目管理软件推荐

国内外主流的 10 款建筑企业项目管理系统对比:PingCode、Worktile、广联达、泛普软件、建文软件、Asana、Trello、Basecamp、Jira、Monday.com。在建筑行业,找到一个能够高效管理时间、成本和资源的项目管理系统常常是一项挑战。这种系统的选择不仅影响项目的流程和效率,还直…

begin-预览,不行啊还是太弱了

方便管理,主要是想熟悉下git的操作 先创建并且切换到一个新的分支: git commit --allow-empty -am "before starting PA1" git checkout -b PA1其中--allow-empty表示允许提交一个空的提交,git默认是不能提交一个空的提交信息,如果当前的文档没有什么修改,那么就…

nginx部署出现 Welcome to nginx! If you see this page 该如何解决

当你部署nginx的时候出现,ping域名网站可以通,但是访问不了网站怎么办,不用急,往下看; 1.问题所在其实出现以上的问题就代表你已经成功搭建好了nginx,只是现在默认访问的时候跳转到了nginx的首页问题。 2.解决方案 默认情况下,Nginx 安装后会使用默认配置文件,这些文件…

GLM-4-Flash 大模型API免费了,手把手构建“儿童绘本”应用实战(附源码)

GLM-4-Flash 大模型API免费了,我们本文基于免费API构建一个“儿童绘本”应用,包括使用文生图产出绘本故事插图……老牛同学刚刷到了一条劲爆的消息,GLM-4-Flash大模型推理 API 免费了:https://bigmodel.cn/pricing老牛同学一直觉得上次阿里云百炼平台为期 1 个月免费额度的…

CoreShop---.NET、Uni-App开发支持多平台的小程序商城系统

前言 小程序商城系统是当前备受追捧的开发领域,它可以为用户提供一个更加便捷、流畅、直观的购物体验,无需下载和安装,随时随地轻松使用。今天给大家推荐一个基于.NET、Uni-App开发支持多平台的小程序商城系统(该商城系统完整开源、无封装无加密、商用免费、支持二次开发、…