CS224W6.2——深度学习基础
在本文中,我们回顾了深度学习的概念和技术,这些概念和技术对理解图神经网络至关重要。从将机器学习表述为优化问题开始,介绍了目标函数、梯度下降、非线性和反向传播的概念。
文章目录
- 1. 大纲
- 2. 优化问题
- 2.1 举例损失函数
- 3. 如何优化目标函数?
- 4. 梯度下降
- 4.1 对于SGD的一些概念
- 5. 如何获得目标函数?
- 5.1 反向传播
- 5.2 非线性变换
- 5.3 MLP
- 6. 总结
1. 大纲

这篇我们主要讲第一部分深度学习的基础。
2. 优化问题
我们将机器学习问题、监督学习问题看作是优化问题:

我们需要学习这样一个映射函数:将输入 x x x映射为输出的预测标签 y y y。
将这样的函数学习表述为一个优化过程。

有两件重要的是:
- 通过优化参数 Θ \Theta Θ,最小化损失函数 L \mathcal{L} L。
- 损失函数用来测量真实值与预测值之间的差距。
2.1 举例损失函数
交叉熵损失函数:

讨论多分类问题:
比如5分类问题,表示5种颜色,我们用one-hot编码表示。
我们要在某种意义上对它进行建模,使用 f ( x ) f(x) f(x)这是将某个函数 g ( x ) g(x) g(x)经过 S o f t m a x ( ) Softmax() Softmax()函数,得到一个预测5分类的概率,这些概率之和为1。
现在要衡量这个预测的质量。
通过单点的交叉熵损失函数 C E ( y , f ( x ) ) CE(y,f(x)) CE(y,f(x))得到的值越小,就表示预测值与真实的one-hot值越接近。
然后将所有单点的损失相加就得到了总的损失: L = ∑ ( x , y ) ∈ T CE ( y , f ( x ) ) \mathcal{L}=\sum_{(x,y)\in\mathcal{T}}\operatorname{CE}(y,f(x)) L=∑(x,y)∈TCE(y,f(x)),这是所有训练样本的真实值与预测值之间的总差异。
而我们想要的就是找到一个合适的函数 f ( x ) f(x) f(x)去最小化真实值与预测值之间的总差异。
3. 如何优化目标函数?

经典的优化目标函数是通过梯度下降,所以梯度的概念很重要:
某个定点的梯度是一个方向,该方向是函数的最快增长速率。
现在,我们可以对损失函数进行“询问”,关于我的参数 Θ \Theta Θ,我应该朝着哪个方向?(梯度相反的方向)改变我的参数 Θ \Theta Θ使损失 L \mathcal{L} L减少最多。
4. 梯度下降

上面是最基础的梯度下降版本,重复更新模型参数,直至收敛。
最基础的梯度下降有一些问题,所以后续提出了随机梯度下降(SGD):

传统的梯度下降每一轮迭代都需要计算所有点的梯度,计算量太大,而SGD只计算一部分。
4.1 对于SGD的一些概念

- 首先是batch_size的概念,它是我们评估梯度数据的子集,(不是在整个训练数据集上评估梯度——GD,而是在训练集的一小部分——SGD),batch_size的大小是每一批次数据点的数量,通常我们喜欢更大的batch_size,但更大的batch_size会使优化变慢。
- 其次是iteration的概念,SGD的一个迭代(iteration),是SGD的一个步骤,我们在给定的batch_size的数据点上评估梯度。迭代次数是:数据集大小/batch_size。
- 最后是epoch的概念,它是对数据集的全面遍历。
这种小批量训练的思想是深度学习的核心。
5. 如何获得目标函数?
对于简单的模型:

5.1 反向传播

反向传播的概念:使用链式法则,来传播中间步骤的梯度,最终获得关于模型参数损失的梯度。
举例:


5.2 非线性变换
目前为止只使用了简单的两层神经网络,而 W 2 W 1 W_2W_1 W2W1可以表示为另一个矩阵,它依然可以表示为一层的线性变换。

这意味着,我们通过两侧的线性变换依然得到的是一个线性模型,没有获得更多的表达能力。
而如果我们引入非线性变换,实际上增加了模型的表示能力。这将我们引向多层感知机的概念(MLP)。
5.3 MLP

6. 总结

相关文章:
CS224W6.2——深度学习基础
在本文中,我们回顾了深度学习的概念和技术,这些概念和技术对理解图神经网络至关重要。从将机器学习表述为优化问题开始,介绍了目标函数、梯度下降、非线性和反向传播的概念。 文章目录 1. 大纲2. 优化问题2.1 举例损失函数 3. 如何优化目标函…...
Linux c/c++服务器开发实践
在Linux C开发环境中,通常有两种方式来开发多线程程序,一种是利用POSIX多线程 API函数来开发多线程程序,另外一种是利用C自带线程类来开发程序。 常见的与线程相关的基本API函数: API函数含义pthread_create创建线程pthread_exi…...
2023年11月在线IDE流行度最新排名
点击查看最新在线IDE流行度最新排名(每月更新) 2023年11月在线IDE流行度最新排名 TOP 在线IDE排名是通过分析在线ide名称在谷歌上被搜索的频率而创建的 在线IDE被搜索的次数越多,人们就会认为它越受欢迎。原始数据来自谷歌Trends 如果您相…...
视频批量剪辑:视频嵌套合并实战指南,剪辑高手速成秘籍
随着社交媒体的兴起,视频制作的需求越来越广泛。无论是个人用户还是专业团队,都需要对视频进行剪辑以符合其需求。而在这个过程中,批量剪辑视频的能力就变得至关重要。视频批量剪辑是指在一次操作中处理多个视频文件的剪辑。通过使用专业的视…...
每天一点python——day66
#每天一点Python——66 #字符串的分隔 #如图: #方法①split()从左开始分隔,默认空格为分割字符,返回值是一个列表 shello world jisuanji#首先创建一个字符串 list1s.split() print(list1)#输出结果是:[hello, world, jisuanji]注…...
搭建产品帮助中心其实很简单,方法都在这了!
网站帮助中心是一个为用户提供支持和解答问题的重要资源。它不仅可以提高用户体验,还能减少用户问题反馈的数量。通过提供清晰、易于理解的文档和指南,帮助中心可以帮助用户更好地了解产品或服务,并解决他们在使用过程中遇到的问题。接下来我…...
(离散数学)命题及命题的真值
答案: (5)不是命题,因为真值不止一个 (6)不是命题,因为不是陈述句 (7)不是命题,因为不是陈述句 (8)不是命题,真值不唯一...
计算机组成原理之处理器(流水线)
引言 为什么不采用单周期实现,硬件比较简单? 主要是因为效率太低,处理器中最长的路径(一般是ld指令)决定了时钟周期 流水线概述 流水线是一种能使多条指令重叠执行的技术。 流水线更快的原因是所有的工作都在并行执行,所以单位…...
国际阿里云:云服务器灾备方案!!!
保障企业业务稳定、IT系统功能正常、数据安全十分重要,可以同时保障数据备份与系统、应用容灾的灾备解决方案应势而生,且发展迅速。ECS可使用快照、镜像进行备份。 灾备设计 快照备份 阿里云ECS可使用快照进行系统盘、数据盘的备份。目前,阿…...
计算机msvcp140.dll重新安装的四个解决方法,专门解决dll文件丢失问题的方法
在我多年的电脑使用经历中,曾经遇到过一个非常棘手的问题,那就是电脑提示找不到msvcp140.dll文件。这个问题让我苦恼了很久,但最终还是找到了解决方法。今天,我就来分享一下我解决这个问题的四种方法,希望对大家有所帮…...
提莫的idea的bug是真滴多
问题1:maven reload功能失效 我复制了一段代码到我项目里,这段代码依赖hutool包,于是我用idea快速导入,自动导入的是hutool-all:5.8.4。后来我发现这段还是有个函数报错,需要导入更高版本的hutool包才行,于…...
STM32笔记—EXTI外部中断
一、简介 中断:在主程序运行过程中,出现了特定的中断触发条件(中断源),使得CPU暂停当前正在运行的程序,转而去处理中断程序,处理完成后又返回原来被暂停的位置继续运行; 中断优先级&…...
小程序分享当前页面
小程序分享页面的时候,大部分的资料都是显示的是onShareAppMessage 这个方法 /*** 用户点击右上角分享*/onShareAppMessage(res) {return {title: 您的好友向您分享了一本通讯录: this.data.setting.name,imageUrl: this.data.setting.share_img,path: pages/shar…...
10. GPIO中断
10. GPIO中断 回顾stm32中断系统STM32中断向量表中断向量偏移NVIC中断控制器 Cortex_A7 中断系统中断向量表GIC控制器中断IDGIC逻辑分块CP15协处理器c0寄存器c1寄存器c12寄存器c15寄存器 中断使能中断优先级设置优先级数配置 GICC_PMR抢占优先级和子优先级位数设置 GICC_BPR优先…...
【离散数学必刷题】谓词逻辑(第二章 左孝凌版)刷完包过!
专栏:离散数学必刷题 本章需要掌握的重要知识: 1.利用谓词表达式表示命题 2.变元的约束 3.谓词公式的定义、谓词公式的赋值 4.谓词公式的翻译(注意在全总个体域时使用特性谓词) 5.有限论域上量词的消去 6.谓词公式中关于量词的等价…...
SpringBoot系列-2 自动装配
背景: Spring提供了IOC机制,基于此我们可以通过XML或者注解配置,将三方件注册到IOC中。问题是每个三方件都需要经过手动导入依赖、配置属性、注册IOC,比较繁琐。 基于"约定优于配置"原则的自动装配机制为该问题提供了一…...
vue3+ts 前端实现打印功能
1.安装插件 npm install vue3-print-nb --save 2.全局引用 import { createApp } from ‘vue’ import App from ‘./App.vue’ import print from ‘vue3-print-nb’ const app createApp(App) app.use(print) app.mount(‘#app’) 例子 <template><div><el-…...
egg.js sequelize数据库操作配置
egg.js sequelize数据库操作配置 文章目录 egg.js sequelize数据库操作配置1. 数据库配置2. 迁移配置3.数据表设计和迁移4.模型创建 1. 数据库配置 安装并配置egg-sequelize插件(它会辅助我们将定义好的 Model 对象加载到 app 和 ctx 上)和mysql2模块&a…...
vagrant安装k8s集群
目录 概述前期准备安装virtualbox安装vagrant安装gitbash 集群架构集群安装集群初始化集群测试 概述 使用vagrant、virtualbox创建。 前期准备 安装virtualbox 访问官网安装,版本7.0.10 安装vagrant 访问官网安装,版本2.3.7 安装gitbash 访问官网…...
ArcGIS进阶:水源涵养功能分级评价操作
首先抛出水源涵养重要性评价的公式:水源涵养量降雨量-蒸散发量-地表径流量,其中地表径流量降雨量*平均地表径流系数 声明:以下数据来源于来自于牛强老师书籍(城乡规划GIS技术)。 以下给出重要性评价阈值表࿱…...
第19节 Node.js Express 框架
Express 是一个为Node.js设计的web开发框架,它基于nodejs平台。 Express 简介 Express是一个简洁而灵活的node.js Web应用框架, 提供了一系列强大特性帮助你创建各种Web应用,和丰富的HTTP工具。 使用Express可以快速地搭建一个完整功能的网站。 Expre…...
设计模式和设计原则回顾
设计模式和设计原则回顾 23种设计模式是设计原则的完美体现,设计原则设计原则是设计模式的理论基石, 设计模式 在经典的设计模式分类中(如《设计模式:可复用面向对象软件的基础》一书中),总共有23种设计模式,分为三大类: 一、创建型模式(5种) 1. 单例模式(Sing…...
Linux云原生安全:零信任架构与机密计算
Linux云原生安全:零信任架构与机密计算 构建坚不可摧的云原生防御体系 引言:云原生安全的范式革命 随着云原生技术的普及,安全边界正在从传统的网络边界向工作负载内部转移。Gartner预测,到2025年,零信任架构将成为超…...
【C++从零实现Json-Rpc框架】第六弹 —— 服务端模块划分
一、项目背景回顾 前五弹完成了Json-Rpc协议解析、请求处理、客户端调用等基础模块搭建。 本弹重点聚焦于服务端的模块划分与架构设计,提升代码结构的可维护性与扩展性。 二、服务端模块设计目标 高内聚低耦合:各模块职责清晰,便于独立开发…...
什么是Ansible Jinja2
理解 Ansible Jinja2 模板 Ansible 是一款功能强大的开源自动化工具,可让您无缝地管理和配置系统。Ansible 的一大亮点是它使用 Jinja2 模板,允许您根据变量数据动态生成文件、配置设置和脚本。本文将向您介绍 Ansible 中的 Jinja2 模板,并通…...
Android第十三次面试总结(四大 组件基础)
Activity生命周期和四大启动模式详解 一、Activity 生命周期 Activity 的生命周期由一系列回调方法组成,用于管理其创建、可见性、焦点和销毁过程。以下是核心方法及其调用时机: onCreate() 调用时机:Activity 首次创建时调用。…...
Java求职者面试指南:Spring、Spring Boot、MyBatis框架与计算机基础问题解析
Java求职者面试指南:Spring、Spring Boot、MyBatis框架与计算机基础问题解析 一、第一轮提问(基础概念问题) 1. 请解释Spring框架的核心容器是什么?它在Spring中起到什么作用? Spring框架的核心容器是IoC容器&#…...
保姆级教程:在无网络无显卡的Windows电脑的vscode本地部署deepseek
文章目录 1 前言2 部署流程2.1 准备工作2.2 Ollama2.2.1 使用有网络的电脑下载Ollama2.2.2 安装Ollama(有网络的电脑)2.2.3 安装Ollama(无网络的电脑)2.2.4 安装验证2.2.5 修改大模型安装位置2.2.6 下载Deepseek模型 2.3 将deepse…...
Git常用命令完全指南:从入门到精通
Git常用命令完全指南:从入门到精通 一、基础配置命令 1. 用户信息配置 # 设置全局用户名 git config --global user.name "你的名字"# 设置全局邮箱 git config --global user.email "你的邮箱example.com"# 查看所有配置 git config --list…...
群晖NAS如何在虚拟机创建飞牛NAS
套件中心下载安装Virtual Machine Manager 创建虚拟机 配置虚拟机 飞牛官网下载 https://iso.liveupdate.fnnas.com/x86_64/trim/fnos-0.9.2-863.iso 群晖NAS如何在虚拟机创建飞牛NAS - 个人信息分享...
