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

文章目录

  • 一、基本概念
  • 二、深度学习内容总览
  • 三、预测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.rhkb.cn/news/402934.html

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

相关文章

边缘计算技术解决行业痛点,TSINGSEE智能分析网关V4技术特点与应用场景解析

一、行业背景 随着人工智能(AI)技术的飞速发展,边缘计算硬件作为其核心组成部分,正逐步成为市场的新宠。这些硬件不仅提升了数据处理和分析的效率,还极大地降低了数据传输的延迟,为各行各业的智能化转型提…

Unity | 游戏开发中的优化思维

目录 ​​​​​​一、优化三板斧: 第1步:定标准 第2步:重数据 第3步:严测试 二、流程和性能的优化 1.定标准: 2.重数据: 三、交互和表现的优化 1.卡顿和延迟 2.手感硬 四、沟通和学习 ​​​​…

string模拟

本章准备对string模拟进行讲解,以下是string的学习网址: string - C Reference (cplusplus.com) string本质可以理解为储存char类型的顺序表,其中string的迭代器用一个char*就可以解决。所以string类成员变量如下: 这里用了一个命…

普通人如何抓住AI这个风口?

最强AI视频生成:小说文案智能分镜智能识别角色和场景批量Ai绘图自动配音添加音乐一键合成视频百万播放量https://aitools.jurilu.com/ AI不仅仅是提升办公效率的利器,更是普通人目前最容易上手和变现的工具!对于风口,大家应该都听…

使用yolov5实现目标检测简单案例(测试图片)

一、前置 测试这个案例之前需要安装一些前置的东西,如果已经安装的可以忽略,下面我给出我跟着做的一些很好的博客提供大家参考,因为我们主要目的还是实现yolov5的目标检测。 1、安装nvidia显卡驱动 可以参考:【Windows】安装NV…

Unified 阻抗控制 architecture、framework、approach

Unified 阻抗控制(Unified Impedance Control)作为一种控制策略,其architecture(架构)、framework(框架)和approach(方法)为: 一、Unified 阻抗控制 Archite…

京东数据编织

计算引擎是Hbase 中间计算结果的物化【就是存下来】 自动物化 在这里插入图片描述

Python自动化:解锁高效工作与生产力的密钥

在当今快节奏的数字时代,自动化已成为提升工作效率、优化流程、减少人为错误的不可或缺的工具。Python,作为一种功能强大、易于学习且应用广泛的编程语言,在自动化领域扮演着举足轻重的角色。无论是数据处理、Web自动化、软件测试&#xff0c…

SQL注入(原理、分类、union、POST注入)

目录 【学习目标、重难点知识】 【学习目标】 【重难点知识】 SQL注入简介 SQL注入原理 SQL注入类型 MySQL与SQL注入的相关知识 information_schema 数据库的结构 数据库查询语句 limit的用法 需要记住的几个函数 注释符号 SQL注入探测方法 SQL注入漏洞攻击流程…

ssh免密码登陆设置时Authentication refused: bad ownership or modes错误解决方法

0.环境: 三个节点:node1,node2,node3 1.问题描述: 配置好免密登录后,免密登录失效,还需要输入密码,如下图: 2.原因查找: 去查看系统的日志文件 使用命令: sudo tail …

基于Java语言的光伏监控系统+光伏项目+光伏储能+光伏运维系统

介绍 基于Java语言的光伏监控系统光伏发电系统光伏软件系统光伏监控系统源码光伏发电系统源码 软件架构 部分软件截图

Tmagic-editor低代码底层拖拽库Moveable示例学习

在前面咱们的自研低代码海报制作平台学习分享计划中分享了自己开发的基本拖拽组件,也只是做了最简单的基本实现。真要写产品,更多还是依赖相关的开源优秀库。 文章目录 参考基本拖拽基本缩放基本Scalable基本旋转基于原点的拖拽和旋转关于练习源码 参考 …

TCP详解(二)滑动窗口/流量控制

本文解释了TCP为何能保证数据传输的可靠性,以及如何保证整个网络的顺畅。 1 网络分层模型 这是一切的本质。网络被设计成分层的,所以网络的操作就可以称作一个“栈”,这就是网络协议栈的名称的由来。在具体的操作上,数据包最终形…

20. OTA流程 - 2

1. 概述 BES蓝牙方案自带OTA功能,支持SPP和BLE。 建议采用BLE的功能,因为苹果手机默认不支持SPP。 2. OTA框架 OTA时,耳机端需要先进入OTA状态 2.1 SPP升级

Nginx--代理与负载均衡(扩展nginx配置7层协议及4层协议方法、会话保持)

前言:本博客仅作记录学习使用,部分图片出自网络,如有侵犯您的权益,请联系删除 一、代理原理 1、反向代理产生的背景 单个服务器的处理客户端(用户)请求能力有一个极限,当接入请求过多时&#…

【网络安全】SSO登录过程实现账户接管

未经许可,不得转载。 文章目录 正文正文 登录页面展示了“使用 SSO 登录”功能: 经分析,单点登录(SSO)系统的身份验证过程如下: 1、启动SSO流程:当用户点击按钮时,浏览器会发送一个GET请求到指定的URL: /idp/auth/mid-oidc?req=[UNIQUE_ID]&redirect_uri=[REDI…

Leetcode JAVA刷刷站(41)缺失的第一个正数

一、题目概述 二、思路方向 为了找到未排序整数数组中未出现的最小正整数,并满足时间复杂度为 O(n) 和只使用常数级别额外空间的要求,我们可以采用原地哈希(也称为索引哈希)的方法。这个方法的基本思想是将每个数字(如…

[C++进阶]二叉树进阶的一些面试题(一)

首先我们先回忆我们过去学的二叉树和最近学的二叉搜索树,来完成下面的题目: 606. 根据二叉树创建字符串 这道题属于与基础题,首先我们观察输入输出样例可以得到如果root->left为空,root->right不为空时,我们的空格仍然需要保留,如果当前节点有两个孩子,那我…

人工智能在肿瘤亚型分类领域的研究进展|顶刊速递·24-08-13

小罗碎碎念 文献日推主题:人工智能在肿瘤亚型分类领域的研究进展 昨天晚上在研究鼻咽癌的病理学诊断指南,看到了下面这段话的时候,我问了自己一个问题——通过AI识别出肿瘤亚型的根本目的是什么?可以衔接哪些具体的下游任务&#…

TinyEngine是什么?

TinyEngine 是 OpenTiny 项目下的一个开源低代码引擎,旨在帮助开发者快速构建应用程序。它提供了可视化搭建页面的能力,支持在线实时构建和二次开发或集成,适用于多种场景的低代码平台开发,例如资源编排、服务端渲染、模型驱动、移…