【深度学习】李宏毅2021/2022春深度学习课程笔记 - Deep Learning Introduction

news2024/9/25 8:26:56

文章目录

  • 一、深度学习的概念
  • 二、函数的类型
  • 三、深度学习的步骤
    • 3.1 定义一个参数未知的函数表达式
    • 3.2 定义一个损失函数
    • 3.3 采用梯度下降法求解使得函数表达式的Loss最小的参数
  • 四、视频播放量预测案例
    • 4.1 案例介绍和思路分析
    • 4.2 线性函数表达式1
    • 4.3 改进1:使用前一段时间的播放量来预测明天的播放量
    • 4.4 改进2:采用非线性函数表达式
    • 4.5 多层神经网络


一、深度学习的概念

让机器自动寻找一个函数

如下图所示:

  • 语音识别:输入一段语音,通过函数,得到对应的文字内容
  • 图像识别:输入一张图片,通过函数,得到对应的图像类别
  • 机器下围棋:输入当前“局面”,通过函数,得到下一步应该落子的坐标

在这里插入图片描述


二、函数的类型

  • 回归:函数输出是一个实数。(当然还有多标签回归,输出是一个实数型的向量/矩阵)
  • 分类:函数输出是一个类别。(类别通常用独热编码表示)
  • 结构:函数输出是一个结构体

三、深度学习的步骤

3.1 定义一个参数未知的函数表达式

这一步骤在 Deep Learning 中通常表现为建立Model。比如,建立了一个3层的全连接网络,每一层是由线性层+ReLu激活函数构成的,这就是我们定义的函数表达式。在每一个线性层中,都有未知的参数 w 和 b

3.2 定义一个损失函数

损失函数的值代表了真实值与预测值之间的差距,通常来说,损失函数值越小,代表模型的预测就越接近真实值。常用的损失函数如下图所示:MAE、MSE 等

在这里插入图片描述

3.3 采用梯度下降法求解使得函数表达式的Loss最小的参数

在这里插入图片描述


四、视频播放量预测案例

接下来,我们通过一个视频播放量的预测案例,来更深入的理解深度学习的相关概念

4.1 案例介绍和思路分析

案例介绍

已知2017年-2020年的播放量数据,通过已知的数据,训练一个模型(拟合一个函数),预测未来的播放量

思路分析

按照上面介绍的三个步骤:

  1. 建立参数未知的函数表达式
  2. 定义损失函数
  3. 梯度下降优化

实际上,很多时候步骤2和3都是比较固定的,例如回归问题,损失函数常用MSE,分类问题损失函数常用交叉熵损失等,梯度下降优化就不用说了,也是一个通用的方法。

所以,预测的效果,很大程度上取决于模型的建立,即函数表达式的选取。下面,我们会介绍几种函数表达式,带大家感受不同函数表达式的预测效果的差别,并且让大家浅浅感受一下 Why Deep Learning

在这里插入图片描述

4.2 线性函数表达式1

最简单的,我们可以定义一个线性的函数表达式 y = wx + b,w 是斜率,b是偏置

采用该函数表达式,相当于只根据今天的播放量对明天的播放量进行预测

在这里插入图片描述

采用MAE作为损失函数,下面是损失值计算的例子

在这里插入图片描述

进行梯度下降优化,找到最佳参数

在这里插入图片描述

查看预测效果(红色线是真实值,蓝色线是预测值)

可以看到,预测值基本上就是真实值延后一天。这是因为我们采用的简单的线性表达式导致的,只考虑今天的播放量来预测明天

在这里插入图片描述

4.3 改进1:使用前一段时间的播放量来预测明天的播放量

如下图所示,将函数表达式修改一下

第一个函数表达式:表示用前7天的播放量预测明天的播放量
第二个函数表达式:表示用前28天的播放量预测明天的播放量
第三个函数表达式:表示用前56天的播放量预测明天的播放量

L表示模型在训练集上的损失值,L‘表示模型在测试集,也就是预测未来播放量时候的损失值

可以看出,随着采用前一段时间的天数越来越大,模型在训练集和测试集上的损失值都在减小,但是采用前一段时间的天数为56和28时的损失值相差不大,说明通过增加采用前一段时间的天数来提高莫模型精度的方法达到了瓶颈

在这里插入图片描述

4.4 改进2:采用非线性函数表达式

现实的曲线(红色线),可能在某一段为线性关系,但总体来看为非线性
红色的线可以看为一个常数加上很多蓝色线

在这里插入图片描述

蓝色的函数:hard sigmoid
w:斜率
b:左右移动
c:高度

在这里插入图片描述

所以红色的线等于下式

在这里插入图片描述

函数表达式变为下图所示

在这里插入图片描述

写成矩阵

在这里插入图片描述
在这里插入图片描述

写成神经网络的样子

在这里插入图片描述
将w每一个行,b,c,常数写为一个长向量

在这里插入图片描述

计算loss(同上面)
optimization:梯度下降法(同上面)
可以将长向量分为很多短向量,依次用梯度下降法

在这里插入图片描述

每更新一个参数叫1update ,所有的batch算完叫1epoch。

在这里插入图片描述

4.5 多层神经网络

上面讲的是单层神经网络。而深度学习中的“深度”指的是多层的神经网络。了解了单层神经网络的基本原理之后,要想实现多层神经网络就很简单了,只需要将第i层的输出作为第i+1层的输入即可实现

在这里插入图片描述

我们来看看在这个案例中,使用多层的神经网络有什么效果把

在这里插入图片描述
从上图我们可以看到,网络层数在1-3之间时,随着层数增加,测试集损失值在逐渐下降。但是,到第4层的时候,测试集的损失值反而上升了。我们把这种现象称为“过拟合”。

过拟合:模型过于复杂,学到了很多噪声,导致训练集loss下降,但是验证集loss上升

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

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

相关文章

此文件存在危险因此chrome已将其拦截

当您尝试在 chrome 中下载一些文件时,有时 chrome 会说“此文件可能很危险,因此 Chrome 已阻止它”。这可能是因为 Chrome 的内置安全功能可能已将其检测为可能有害的文件。但是,如果您信任文件的来源并想要下载它,那么您可以按照…

authorization server client resource 使用1

authorization server && client && resource 使用1 OAuth2介绍 OAuth(Open Authorization)是一个关于授权(authorization)的开放网络标准,允许用户授权第三方应用访问他们存储在另外的服务提供者上…

leetcode.1691 堆叠长方体的最大高度 - dp + 排序

1691. 堆叠长方体的最大高度 目录 1、java 2、c 思路: 根据题目描述,长方体 j 能够放在长方体 i 上,当且仅当 题目允许旋转长方体,也就是可以选择长方体的任意一边作为长方体的高。 对于任意一种合法的堆叠&#xff0…

聊一聊三级等保

本文为joshua317原创文章,转载请注明:转载自joshua317博客 聊一聊三级等保 - joshua317的博客 一、前言 1.1 基本认知 网络安全:根据《信息安全技术网络安全等级保护基本要求》(GB/T 22239-2019),是指通过采取必要措…

m基于功率谱,高阶累积量和BP神经网络-GRNN网络的调制方式识别仿真,对比2psk,4PSK,2FSK以及4FSK

目录 1.算法描述 2.仿真效果预览 3.MATLAB核心程序 4.完整MATLAB 1.算法描述 首先区分大类的话采用的基于功率谱提取的len参数(峰值频率间隔),用峰值个数来代替,这样能很好的区分大类把MFSK和MPSK信号区分开。 针对MPSK&…

VSCode-远程连接服务器进行开发

一:安装插件 二:设置SSH 按照划线位置依次配置要连接的服务器配置 三:打开远程连接选项 勾选此选项后即可显示配置好的远程服务器,点击登录即可。 输入服务器用户密码 注意 :终端框install不要关闭!&#…

基于MPS算法和改进的非支配排序遗传算法II(MNSGA-II)求解配备起重机的模糊鲁棒设施布局问题(Matlab代码实现)

👨‍🎓个人主页:研学社的博客 💥💥💞💞欢迎来到本博客❤️❤️💥💥 🏆博主优势:🌞🌞🌞博客内容尽量做到思维缜…

【C语言航路】第八站:调试(第二幕)

目录 四、一些调试的实例 1.实例一 2.实例二 五、如何写出优秀的,易于调试的代码 1.优秀的代码 2.几个经典的例子 (1)模拟实现strcpy函数 (2)模拟实现strlen 六、编程常见的错误 1.编译型错误 2.链接型错误 …

Spring学习:学完总结

前言: 此次学习大概花了6天的时间,不过只是浅浅的学到了皮毛,所以后面有新的理解就会持续更新!下面是一些重点总结。 总结: 一、Spring概述 1.1 什么是Spring (1)全称:EJB(sun企…

alibaba微服务组件sentinel

alibaba微服务组件sentinel 官方文档:https://sentinelguard.io/zh-cn/docs/introduction.html 官方示例:https://github.com/alibaba/Sentinel/tree/master/sentinel-demo 随着微服务的流行,服务和服务之间的稳定性变得越来越重要。Senti…

MYSQL数据库-索引

MYSQL数据库-索引零、前言一、索引概念二、认识磁盘三、理解索引1、如何理解Page2、B vs B3、聚簇索引 VS 非聚簇索引4、普通索引5、总结四、索引操作1、创建索引2、查询索引3、删除索引零、前言 本章主要讲解MYSQL数据库中的索引这一重要知识点 一、索引概念 索引的价值&…

Allegro如何打印光绘层操作指导Plot模式

Allegro如何打印光绘层操作指导Plot模式 Allegro支持把视图打印成pdf格式的文件,下面介绍用plot模式打印,具体操作如下 打开光绘设置 确保光绘设置都是正确的 选择file-plot setup 出现打印设置的参数,常规默认即可,如果需要打印黑白的,选择Black and white 选择ok …

无人机无线传感器网络中的节能数据采集(Matlab代码实现)

👨‍🎓个人主页:研学社的博客 💥💥💞💞欢迎来到本博客❤️❤️💥💥 🏆博主优势:🌞🌞🌞博客内容尽量做到思维缜…

【LeetCode】1691. 堆叠长方体的最大高度

题目描述 给你 n 个长方体 cuboids &#xff0c;其中第 i 个长方体的长宽高表示为 cuboids[i] [widthi, lengthi, heighti]&#xff08;下标从 0 开始&#xff09;。请你从 cuboids 选出一个 子集 &#xff0c;并将它们堆叠起来。 如果 widthi < widthj 且 lengthi < le…

React学习笔记:组件

组件 将页面按照界面功能进行拆分&#xff0c;每一块界面都拥有自己的独立逻辑&#xff08;组件&#xff09;&#xff0c;这样可以提高项目代码的可维护性和复用性。 如上图所示将这个卡片分为三个组件&#xff0c;那么当需要添加一个这样的卡片时&#xff0c;就可以复用这些…

【Java进阶篇】第八章 反射与注解

文章目录一、反射机制概述1、作用2、相关类二、反射1、获取Class的三种方式2、通过反射机制实例化对象3、forName方法的另一个应用4、获取类路径下文件的绝对路径5、资源绑定器ResourceBundle6、类加载器三、反射与反编译1、获取Field2、反编译Field3、通过反射机制访问对象的属…

Akka 学习(七)Actor的生命周期

在Actor的生命周期中会调用几个方法&#xff0c;我们在需要时可以重写这些方法。 ● prestart()&#xff1a;在构造函数之后调用。 ● postStop()&#xff1a;在重启之前调用。 ● preRestart(reason, message)&#xff1a;默认情况下会调用postStop()。 ● postRestart()&…

D/A转换器

性能指标&#xff1a;转换精度&#xff0c;转换速度 相互之间是矛盾的&#xff0c;精度越高&#xff0c;相比而言速度就会慢一些 权电阻网络D/A转换器 阻值的选取是按照二进制的位权来选择的&#xff0c;所以我们看到了这个结构&#xff0c;和我们刚才分析的是一致的 权电阻网…

基于花授粉算法优化的lssvm回归预测-附代码

基于花授粉算法优化的lssvm回归预测 - 附代码 文章目录基于花授粉算法优化的lssvm回归预测 - 附代码1.数据集2.lssvm模型3.基于花授粉算法优化的LSSVM4.测试结果5.Matlab代码摘要&#xff1a;为了提高最小二乘支持向量机&#xff08;lssvm&#xff09;的回归预测准确率&#xf…

c++11 std::thread和mutex用法

c11 std::thread和mutex用法thread和mutex用法thread简单示例thread构造函数梳理thread关键成员函数mutex使用thread和mutex用法 本文对c 11中的std::thread 和 mutex作简要的使用说明 thread简单示例 #include <iostream> #include <string> #include <thre…