李宏毅 机器学习与深度学习【2022版】 01

news2024/11/17 1:34:47

文章目录

  • 一、基本概念
  • 二、深度学习内容总览
  • 三、预测YouTube播放量的模型
    • 1、假设一个含有未知参数的函数式
    • 2、根据Training Data定义一个 Loss
    • 3、最优化Optimization
    • 4、测试集验证模型性能
    • 5、线性模型特征维度提升
    • 6、非线性模型
    • 7、ReLU
  • 四、深度学习概述
    • 1、Fully Connect Feedforward Network
    • 2、举例:数字识别
    • 3、Universal Approximation Theorem
    • 4、反向传播backpropagation
    • 5、正则化 Regularization
    • 6、神奇宝贝属性分类
    • 7、逻辑回归

一、基本概念

(1)机器学习就是找一个函数
(2)深度学习是找一个函数,这个函数是神经网络Neural Network

函数的输入可以是:vector、Matrix、Sequence

函数按输出类型划分任务类型:
(1)Regression回归: 函数输出是一个标量(属于连续区间)
(2)Classification分类: 给定一些类别选项,函数输出一个正确的选项。
(3)Structured Learning结构化学习: 创造有结构的东西,例如输出document、image

二、深度学习内容总览

(1)Supervised Learning监督学习:用带标签labels的数据,作为训练数据Training Data,给模型训练。
(2)Self-supervised Learning自监督学习: 如果没法为每个任务收集大量带标签的数据,可以先用无标签unlabeled的数据,进行预训练Pre-train,发展通用知识,比如将一个图片换个背景颜色、旋转个方向,然后再进行训练,让它判断是否为同一张图片。当预训练好后,其在下游任务Downstream Tasks,也会表现很好。其中Pre-trained Model又叫Foundation Model
(3)Generative Adversarial Network生成对抗网络: 收集大量的输入数据x,以及标签y,不需要它们成对的关系,机器自己把它们的关系找出来。
(4)Reinforcement Learning强化学习: 在不知道怎么给数据打标签时,比如下围棋,人类也不知道下一步下在哪,但知道它的结果的好坏,就可以用RL技术。
(5)Anomaly Detection异常检测: 比如训练数据是猫和狗,给模型一头猪,它需要拥有回答我不知道的能力。
(6)Explainable AI可解释性AI: 模型不仅需要告诉我们答案,还要告诉我们为什么它知道答案是这样。
(7)Model Attack模型的攻击:比如一张图片里稍微改一点,模型分类的结果完全不同。
(8)Domain Adaptation域适应: 比如让模型识别数字,训练数据都是黑白的,但是测试数据Testing Data是彩色的,模型的正确率会暴跌,可以用域适应来解决该问题。
(9)Network Compression模型压缩: 将巨大的模型压缩小一些。
(10)Life-long Learning终身学习: 机器不能一直学习不同的任务,而变得无所不能。 Life-long Learning会解释该原因。
(11)Meta learning元学习: 学习如何学习

三、预测YouTube播放量的模型

这是一个回归问题。
需要以下步骤:

1、假设一个含有未知参数的函数式

该假设的函数式,即为模型model
这里先假设为线性模型: y = b + w x 1 y=b+wx_1 y=b+wx1,
  其中 y y y为预测值, x 1 x_1 x1为特征feature
   b , w b,w b,w为未知参数,需要从data中学习, w w w为权重weight b b b为偏置bias

2、根据Training Data定义一个 Loss

Loss是关于 b , w b,w b,w的函数,即 L ( b , w ) L(b,w) L(b,w),它是用来评价参数 b , w b,w b,w的好坏的。
L o s s :   L = 1 N ∑ n e n Loss:\ L=\frac 1 N\sum\limits_ne_n Loss: L=N1nen
e = ∣ y − y ^ ∣ e=|y-\hat y| e=yy^, L L L是mean absolute error (MAE),
e = ( y − y ^ ) 2 e=(y-\hat y)^2 e=(yy^)2, L L L是mean square error (MSE),
  其中 y ^ \hat y y^表示真实值

有位置参数 b , w b,w b,w值,构成的坐标轴,画出的Loss等高线图,叫做Error Surface
在这里插入图片描述

3、最优化Optimization

w ∗ , b ∗ = arg ⁡ min ⁡ w , b L w^*,b^*=\arg\min\limits_{w,b}L w,b=argw,bminL
这里用梯度下降法Gradient Descend
为了方便学习,这里先只考虑 w w w
①随机选取一个初始值: w 0 w^0 w0

②计算 ∂ L ∂ w ∣ w = w 0 \left.\frac {\partial L} {\partial w}\right|_{w=w^0} wL w=w0

   w 1 ← w 0 − η ∂ L ∂ w ∣ w = w 0 {w_1\leftarrow w^0-\eta \frac {\partial L} {\partial w}|_{w=w^0}} w1w0ηwLw=w0
  其中, η \eta η为学习率 learning rate,是一个超参数。
超参数是在机器学习中,需要自己设定的参数值,而不是通过训练数据中学习到的参数。

在这里插入图片描述
③以此方法迭代更新参数 w w w
在这里插入图片描述
不用担心局部极小值点问题,因为在线性回归中,loss函数是凸的,没有局部极小值点。

我们应该同时考虑参数 w , b w,b w,b,方法同上:
①随机选取一个初始值: w 0 , b 0 w^0,b^0 w0b0
②计算梯度 ∂ L ∂ w ∣ w = w 0 , b = b 0 \left.\frac {\partial L} {\partial w}\right|_{w=w^0,b=b^0} wL w=w0,b=b0
      ∂ L ∂ b ∣ w = w 0 , b = b 0 \left.\frac {\partial L} {\partial b}\right|_{w=w^0,b=b^0} bL w=w0,b=b0

其中如果, L ( w , b ) = ∑ n = 1 N ( y ^ n − ( b + w ⋅ x n ) ) 2 {L(w,b)=\sum\limits_{n=1}^{N}(\hat y^n-(b+w \cdot x^n))^2} L(w,b)=n=1N(y^n(b+wxn))2,则
∂ L ∂ w = ∑ n = 1 N 2 ( y ^ n − ( b + w ⋅ x n ) ) ( − x n ) {\frac {\partial L} {\partial w}=\sum\limits_{n=1}^N2(\hat y^n-(b+w\cdot x^n))(-x^n)} wL=n=1N2(y^n(b+wxn))(xn)
∂ L ∂ b = ∑ n = 1 N 2 ( y ^ n − ( b + w ⋅ x n ) ) ( − 1 ) {\frac {\partial L} {\partial b}=\sum\limits_{n=1}^N2(\hat y^n-(b+w\cdot x^n))(-1)} bL=n=1N2(y^n(b+wxn))(1)

然后,
   w 1 ← w 0 − η ∂ L ∂ w ∣ w = w 0 , b = b 0 {w_1\leftarrow w^0-\eta \frac {\partial L} {\partial w}|_{w=w^0,b=b^0}} w1w0ηwLw=w0,b=b0
   b 1   ← b 0   −   η ∂ L ∂ b ∣ w = w 0 , b = b 0 {b_1\ \leftarrow b^0\ -\ \eta \frac {\partial L} {\partial b}|_{w=w^0,b=b^0}} b1 b0  ηbLw=w0,b=b0
③以此方法迭代更新参数 w , b w,b w,b
在这里插入图片描述

4、测试集验证模型性能

前三步为在训练集训练模型的步骤,模型还需在测试集检验性能。测试集是没给模型训练时看过的数据。用测试集上的数据,去求 L o s s Loss Loss值。

5、线性模型特征维度提升

前四步可以构成一个模型训练测试的完成过程。我们发现播放量以七天为一个周期,上下波动,为了进一步降低 L o s s Loss Loss值。将特征维度设为7,模型变为: y = b + ∑ j = 1 7 w j x j y=b+\sum\limits_{j=1}^{7}w_jx_j y=b+j=17wjxj
我们按此思路,维度可以进一步提高到28、56,训练集上的 L o s s Loss Loss随之进一步降低,但测试集的 L o s s Loss Loss会随着维度增高,先是降低,但降到一定程度,并不会继续降低。

6、非线性模型

线性模型太简单,如下图,无论怎么调账 b , w b,w b,w,也很难拟合出一个比较好的函数,线性模型有严重的局限性,我们称之为Model Bias。这时候我们需要将模型变得更复杂更柔性,这就需要用非线性模型。因为模型更复杂,它可能包含的函数集合就越大,就能在训练集上从中挑选出error更小的模型。
在这里插入图片描述


在这里插入图片描述


在这里插入图片描述


在这里插入图片描述


在这里插入图片描述


在这里插入图片描述
这样,可以通过调整参数 w , b , c w,b,c w,b,c,来得到各种形状的sigmoid function。


在这里插入图片描述

模型: y = b + w x 1 → y = b + ∑ i c i s i g m o i d ( b i + w i x 1 ) {y=b+ wx_1 \rightarrow y=b+\sum\limits_ic_i sigmoid(b_i+w_ix_1)} y=b+wx1y=b+icisigmoid(bi+wix1)

提高特征维度:
y = b + ∑ j w j x j → y = b + ∑ i c i s i g m o i d ( b i + ∑ j w i j x j ) {y=b+\sum\limits_j w_jx_j \rightarrow y=b+\sum\limits_ic_i sigmoid(b_i+\sum\limits_jw_{ij}x_j)} y=b+jwjxjy=b+icisigmoid(bi+jwijxj)


在这里插入图片描述


在这里插入图片描述


在这里插入图片描述


在这里插入图片描述


在这里插入图片描述


在这里插入图片描述
即,模型的未知参数,组成一个向量,统称为 θ {\boldsymbol {\theta}} θ


定义 L o s s \bf Loss Loss:
模型函数确定后, L o s s Loss Loss和前文一样, L = 1 N ∑ n e n L=\frac 1 N\sum\limits_ne_n L=N1nen

新模型优化:

在这里插入图片描述
以此方法,不断计算梯度,迭代更新参数。

这里我们可以把训练数据分成一个个的batch,按下图进行训练:

在这里插入图片描述
另,我们把一次参数更新,叫做一次update。例:
10,000 examples (N = 10,000), Batch size is 10 (B = 10),在一个epoch中,有1,000 updates

7、ReLU

在这里插入图片描述

sigmoid: y = b + ∑ i c i s i g m o i d ( b i + ∑ j w i j x j ) {y=b+\sum\limits_ic_i sigmoid(b_i+\sum\limits_jw_{ij}x_j)} y=b+icisigmoid(bi+jwijxj)
ReLU: y = b + ∑ 2 i c i max ⁡ ( 0 , b i + ∑ j w i j x j ) {y=b+\sum\limits_{2i}c_i \max(0, b_i+\sum\limits_jw_{ij}x_j)} y=b+2icimax(0,bi+jwijxj)
注:我们把 Sigmoid 和 ReLU 函数,称之为激活函数。


可以增加更多的隐层 hidden layers,效果更好。
在这里插入图片描述


在这里插入图片描述
但是并不是说越深越好,会造成过拟合Overfitting,过拟合就是在训练数据表现更好,在未见的数据却表现更差。

四、深度学习概述

Neuron之间不同的连接,会产生不同的结构。

1、Fully Connect Feedforward Network

在这里插入图片描述
这里激活函数为sigmoid

如果还不知道参数,只是定出了网络结构,就是定义了一个函数集合,即模型。


在这里插入图片描述


在这里插入图片描述


在这里插入图片描述
写成这种矩阵运算的好处是,可以用GPU加速。


在这里插入图片描述

2、举例:数字识别

这是一个分类问题。
在这里插入图片描述


在这里插入图片描述


在这里插入图片描述
我们需要决定一个网络结构,使得一个好的函数,在我们定义的函数集合里。然而我们往往只能通过经验和直接来找出这个网络结构,当然也有一些方法来自动决定网络结构。


在这里插入图片描述


在这里插入图片描述
接下来可以用梯度下降的方法进行参数优化。

3、Universal Approximation Theorem

万能逼近定理:紧凑域上任何连续函数,都可以通过一个隐藏层的神经网络来近似,且神经元数量越多,近似程度越高。

4、反向传播backpropagation

由于神经网络的参数十分庞大,所以我们利用反向传播算法可以高效地计算它的梯度。

链式法则:
在这里插入图片描述


在这里插入图片描述


在这里插入图片描述
∂ z ∂ w 1 = x 1 {\frac {\partial z} {\partial w_1}=x_1} w1z=x1
∂ z ∂ w 2 = x 2 {\frac {\partial z} {\partial w_2}=x_2} w2z=x2
偏导计算规律是:连接权重的输入值。


在这里插入图片描述


在这里插入图片描述
由于已知激活函数,所以很容易求 ∂ a ∂ z {\frac {\partial a} {\partial z}} za。如果后面接的网络比较复杂,求 ∂ C ∂ a {\frac {\partial C} {\partial a}} aC应用链式法则是比较复杂的。


所以我们可以换个思路,构建一个虚拟的网络,仿照前向传播求导方法,但方向是从前往后求导。
在这里插入图片描述


在这里插入图片描述


在这里插入图片描述


在这里插入图片描述


在这里插入图片描述


在这里插入图片描述

5、正则化 Regularization

如果模型定义为 y = b + ∑ w i x i y=b+\sum w_ix_i y=b+wixi,
损失函数我们可以定义为:
   L = ∑ n ( y ^ n − ( b + ∑ w i x i ) ) 2 + λ ∑ ( w i ) 2 L=\sum\limits_n(\hat y^n-(b+\sum w_ix_i))^2+\lambda \sum(w_i)^2 L=n(y^n(b+wixi))2+λ(wi)2,
这样定义损失函数,可以是模型函数更平滑。因为 w i w_i wi会尽可能小,当 x i x_i xi的产生变化量 Δ x i \Delta x_i Δxi w i Δ x i w_i\Delta x_i wiΔxi也会尽可能小,进而 Δ y \Delta y Δy会尽可能小,函数就会更平滑。
正则化是用来解决过拟合问题的。因为当函数更平滑,就可以减少输入的噪声影响。


在这里插入图片描述

6、神奇宝贝属性分类

这是一个分类问题。
在这里插入图片描述


将分类问题,按照回归问题做,会出现如下问题:
在这里插入图片描述

  由于更接近1,被认为是class 1,更接近-1,被认为是class 2。当出现一些远大于1的样本点时,分类边界会移动到它认为远大于1的样本点也接近1的位置。
  另外,在多分类问题中,比如1表示class 1, 2表示class 2, 3表示class 3…这样会让模型认为class 1与class 2更接近,class 2与class 3更接近,实际上它们无关联关系。


对于二分类问题:

在这里插入图片描述


我们可以假设模型是一个概率分布,这样不在训练数据内的样本,也不会是概率为零:
在这里插入图片描述


在这里插入图片描述


在这里插入图片描述


在这里插入图片描述


在这里插入图片描述
μ \mu μ决定里这个分布的最高点位置, Σ \Sigma Σ决定了分布的离散程度。确定了这两个参数,就确定了该高斯分布。


这里用最大似然估计来求该参数:
在这里插入图片描述


在这里插入图片描述


在这里插入图片描述


在这里插入图片描述


在这里插入图片描述


在这里插入图片描述


在这里插入图片描述


在这里插入图片描述


在这里插入图片描述


在这里插入图片描述


在这里插入图片描述


在这里插入图片描述


在这里插入图片描述


在这里插入图片描述

7、逻辑回归

在这里插入图片描述


在这里插入图片描述


在这里插入图片描述


在这里插入图片描述


在这里插入图片描述


在这里插入图片描述


在这里插入图片描述


在这里插入图片描述


在这里插入图片描述


在这里插入图片描述


在这里插入图片描述


在这里插入图片描述


在这里插入图片描述
两种方法,获得的w和b是不同的。


在这里插入图片描述


在这里插入图片描述


在这里插入图片描述


在这里插入图片描述


生成模型的优点:
①假设一个概率分布,可以需要更少的训练数据。
②假设一个概率分布,可以对噪音更鲁棒。
③先验概率和后验概率可以来自不同的数据源,被估计。


在这里插入图片描述


在这里插入图片描述


在这里插入图片描述


在这里插入图片描述


在这里插入图片描述


在这里插入图片描述


在这里插入图片描述
注:右下角的横纵坐标画反了。


在这里插入图片描述

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

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

相关文章

基于改进YOLOv8的景区行人检测算法

贵向泉, 刘世清, 李立, 秦庆松, 李唐艳. 基于改进YOLOv8的景区行人检测算法[J]. 计算机工程, 2024, 50(7): 342-351. DOI: 10.19678/j.issn.10 原文链接如下:基于改进YOLOv8的景区行人检测算法https://www.ecice06.com/CN/rich_html/10.19678/j.issn.1000-3428.006…

DOM Clobbring个人理解

目录 toString One Level Two Level Three Level More Dom Clobbering:就是⼀种将 HTML 代码注⼊⻚⾯中以操纵 DOM 并最终更改⻚⾯上 JavaScript ⾏为的技术 DOM Clobbering中的操作也是根据JavaScript行为的层级来分为一层、两层、三层和更多 toString 我们…

集合及数据结构第一节————初识集合框架和数据结构

系列文章目录 集合及数据结构第一节————初识集合框架和数据结构 初始集合框架和数据结构 什么是集合框架?集合框架的重要性背后所涉及的数据结构以及算法数据结构的基本概念和术语逻辑结构和物理结构数据类型 文章目录 系列文章目录集合及数据结构第一节——…

机器学习/自主系统与亚当·斯密

人工智能中的机器学习和自主系统是当前科技领域的热门话题,它们与亚当斯密的经济学理论之间可能存在一些潜在的联系和启示。亚当斯密的经济学理论主要关注市场经济的运行和资源分配。他的核心观点是,通过市场机制的作用,个体追求自身利益的行…

算法日记day 41(动归之最长序列问题)

一、最长递增子序列 题目: 给你一个整数数组 nums ,找到其中最长严格递增子序列的长度。 子序列 是由数组派生而来的序列,删除(或不删除)数组中的元素而不改变其余元素的顺序。例如,[3,6,2,7] 是数组 [0…

一款免费的开源支付网关系统,支持X宝、某信、云闪付等多种支付方式,提供收单、退款、聚合支付、对账、分账等功能(附源码)

前言 在数字化浪潮中,电子-商务和移动支付迅速崛起,支付系统成为企业运营的核心组件。然而,现有支付处理方案常面临成本高、集成复杂、系统耦合度高等挑战。 这些问题不仅增加了企业负担,也制约了业务的快速迭代和创新。市场迫切…

Tomcat的核心文件讲解

参考视频&#xff1a;对应视频 server.xml中的以下部分可修改&#xff1a; 1.connector标签里的port可以修改。--修改端口号 Tomcat默认端口号&#xff1a;8080 <Connector connectionTimeout"20000" maxParameterCount"1000"port"8080" prot…

Mac文件需要分卷压缩怎么办 Mac上怎么解压分卷压缩的文件

在处理大型文件的传输和存储的时候&#xff0c;Mac用户常面临文件大小超过限制的问题。为了有效管理这些大文件&#xff0c;分卷压缩成为一种必不可少的解决方案。Mac文件需要分卷压缩怎么办&#xff1f;Mac上怎么解压分卷压缩的文件&#xff1f;本文将向你介绍如何使用BetterZ…

STM32F103之DMA

DMA简介 DMA&#xff0c;即Direct Memory Access&#xff0c;是一种在无需CPU参与的情况下&#xff0c;将数据在存储器&#xff08;单片机的RAM&#xff09;和外设&#xff08;一般是I/O设备&#xff09;之间高效传输的硬件机制。实现这种功能的集成电路单元叫做DMA Controlle…

北京大学数学课程相关视频

今天无意中发现了一个网站&#xff1a;北京大学教学媒体资源服务平台媒体资源服务平台-北京大学&#xff0c;发现里面有一些精品的课程&#xff0c;于是将里面的数学相关可成整理出来。 北大精品课 离散数学&#xff08;2013&#xff09; 屈婉玲 课程链接&#xff1a;媒体资源…

Bugku-web-Simple_SSTl_1

开启环境 翻译一下 他说 您需要输入一个名为flag的参数。 SSTL 是一个模板注入, SECRET KEY:是flask 一个重要得配置值 需要用以下代码来加密 /?flag{{config.SECRET KEY}}(注意大小写),或直接 /?flag{{config}} 关于SSTL注入 SSTL注入&#xff0c;通常指的是‌服务器端…

Vxe UI vue vxe-table 实现表格数据分组功能,根据字段数据分组

Vxe UI vue vxe-table 实现表格数据分组功能&#xff0c;根据字段数据分组 实现数据分组功能 基于树结构功能就可以直接实现数据分组功能&#xff0c;代码如下&#xff1a; <template><div><vxe-button status"primary" click"listToGroup()&…

Self-Attention自注意力机制解读(2):图解版!

文章目录 一、前言二、流程解读1.它整体做了一件什么事2.多层Self-attention3.self-attention做了一件什么事4.具体流程 三、流程的矩阵表示三、Softmax层的解释 一、前言 上一篇文章 Self-Attention自注意力机制&#xff1a;深度学习中的动态焦点 | 手把手实例解析 看不懂你打…

Keepalived实验

keepalived在架构中的作用 LVS和HAProxy组成负载均衡 调度器LVS&#xff08;四层&#xff09;后端服务器&#xff08;多&#xff09; LVS&#xff1a;优点是速度快&#xff0c;性能要求不高&#xff0c;但是没有对后端服务器的健康检测&#xff1b; HAProxy&#xff1a;有后…

有名管道 | 信号

匿名管道由于没有名字&#xff0c;只能用于具有亲缘关系的进程间通信。 为了克服这个缺点&#xff0c;就提出了有名管道&#xff08;FIFO&#xff09;&#xff0c;也称为命名管道、FIFO文件。 有名管道 FIFO在文件系统中作为一个特殊的文件而存在并且在文件系统中可见&#…

8个最佳iMacros替代方案(2024)

iMacros作为一款经典的网页自动化工具&#xff0c;多年来帮助无数用户自动化了繁琐的网页任务。然而&#xff0c;随着技术的进步&#xff0c;越来越多功能更强大、界面更友好的替代方案涌现&#xff0c;为用户提供了更多选择。如果你正在寻找2024年最好的iMacros替代工具&#…

中国智能物流系统集成玩家图谱:很全

导语 大家好&#xff0c;我是社长&#xff0c;老K。专注分享智能制造和智能仓储物流等内容。 上海欣巴自动化科技股份有限公司 总部&#xff1a;上海服务行业&#xff1a;快递、电商、服装、零售、医药、食品饮料等解决方案&#xff1a;自动化分拣输送系统&#xff1b;控制软件…

linux下tomcat nio 底层源码调用系统函数处理流程

linux tomcat使用nio处理请求 调用jvm native C 底层调用系统函数源码原理 ##Acceptor接受socket socket endpoint.serverSocketAccept(); ##NioEndpoint serverSock.accept() ##ServerSocketChannelImpl n accept(this.fd, newfd, isaa); ##ServerSocketChannelImpl a…

Linux的安装和使用

Linux 第一节 Linux 优势 1. 开源 为什么这么多的的设备都选择使用 Linux&#xff1f;因为它是开源软件&#xff08;open source software&#xff09;&#xff0c;具有不同的含义。使用一个安全的操作系统工作变得必不可少的事&#xff0c;而 Linux 恰好满足了这个需求。因…

Golang | Leetcode Golang题解之第344题反转字符串

题目&#xff1a; 题解&#xff1a; func reverseString(s []byte) {for left, right : 0, len(s)-1; left < right; left {s[left], s[right] s[right], s[left]right--} }