深度强化学习第 1 章 机器学习基础

news2025/1/24 1:22:56

1.1线性模型

线性模型(linear models)是一类最简单的有监督机器学习模型,常被用于简单的机
器学习任务。可以将线性模型视为单层的神经网络。本节讨论线性回归逻辑斯蒂回归(logistic regression)、 softmax 分类器等三种模型。

1.1.1线性回归

在这里插入图片描述

1.1.2逻辑斯蒂回归

在这里插入图片描述
sigmoid 是个激活函数(activation function)
在这里插入图片描述

交叉熵(cross entropy),它常被用作分类问题的损失函数
在这里插入图片描述
与交叉熵类似的是 KL 散度(Kullback-Leibler divergence),也被称作相对熵(relative entropy),用来衡量两个概率分布的区别有多大。对于离散分布, KL 散度的定义为
在这里插入图片描述
在这里插入图片描述

由于熵 H ( p ) H(p) H(p) 是不依赖于 q 的常数,一旦固定 p,则 KL 散度等于交叉熵加上常数。如果p 是固定的,那么关于 q 优化 KL 散度等价于优化交叉熵。这就是为什么常用交叉熵作为损失函数。
在这里插入图片描述

1.1.3 Softmax 分类器

本小节研究多元分类(multi-class classification)问题,数据可以划分为 k(> 2)个类别。

在这里插入图片描述
softmax 函数让最大的元素相对变得更大,让小的元素接近 0。
在这里插入图片描述在这里插入图片描述

1.2神经网络

本节简要介绍全连接神经网络卷积神经网络,并将它们用于多元分类问题。全连接层和卷积层被广泛用于深度强化学习。循环层注意力层也是常见的神经网络结构,本书将在需要用到它们的地方详细讲解这两种结构。

1.2.1 全连接神经网络(多层感知器)

线性分类器表现差的原因在于模型太小,不能充分利用n = 60, 000 个训练样本。然而我们可以把“线性函数 + 激活函数”这样的结构一层层堆积起来,得到一个多层网络,获得更高的预测准确率。

全连接层:

在这里插入图片描述

全连接神经网络

我们可以把全连接层当做基本组件,然后像搭积木一样搭建一个全连接神经网络(fully-connected neural network),也叫多层感知器(multi-layer perceptron,缩写 MLP)

在这里插入图片描述

编程实现:

可以用 TensorFlow、 PyTorch、 Keras 等深度学习标准库实现全连接神经网络,只需要一、两行代码就能添加一个全连接层。添加一个全连接层需要用户指定两个超参数:

  • 层的宽度
    比如 MNIST数据集有 10 类,那么输出层的宽度必须是 10。而对于二元分类问题,输出层的宽度是 1。
  • 激活函数
    对于隐层,通常使用 ReLU 激活函数。对于输出层,激活函数的选择取决于具体问题。二元分类问题用 sigmoid,多元分类问题用 softmax,回归问题可以不用激活函数。

1.2.2 卷积神经网络

卷积神经网络(convolutional neural network,缩写 CNN)是主要由卷积层组成的神经网络.
把最后一个卷积层输出的张量转换为一个向量,即向量化(vectorization)。这个向量是 CNN 从输入的张量中提取的特征。

本书不具体解释 CNN 的原理,本书也不会用到这些原理。读者仅需要记住这个知识点: CNN 的输入是矩阵或三阶张量, CNN 从该张量中提取特征,输出提取的特征向量。
图片通常是矩阵(灰度图片)和三阶张量(彩色图片),可以用 CNN 从中提取特征,然后用一个或多个全连接层做分类或回归。
在这里插入图片描述
在这里插入图片描述

1.3反向传播和梯度下降

在这里插入图片描述
对于这样一个无约束的最小化问题,最常使用的算法是梯度下降(gradient descent, 缩写GD)和随机梯度下降(stochastic gradient descent, 缩写 SGD)。

1.3.1 梯度下降

1.3.2 反向传播

SGD 需要用到损失函数关于模型参数的梯度。对于一个深度神经网络,我们利用反
向传播(backpropagation, 缩写 BP)求损失函数关于参数的梯度。如果用TensorFlow 和PyTorch 等深度学习平台,我们可以不关心梯度是如何求出来的。只要定义的函数关于某个变量可微, TensorFlow 和 PyTorch 就可以自动求该函数关于这个变量的梯度。

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

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

相关文章

Windows 中环境变量的查看与设置

接触了LLM应用开发后,经常要用到环境变量的设置(openAI apikey啥的) 但是老忘记,今天来学习和总结一下 主要用到以下几种:使用 PowerShell、CMD 和 Python 来查看和设置环境变量 文章目录 1. PowerShell查看环境变量&a…

掌握深入挖掘数据本质的方法

文章目录 掌握深入挖掘数据本质的方法1. 确定数据类型2. 数据清洗3. 数据可视化4. 探索性数据分析5. 特征工程6. 机器学习算法7. 自然语言处理 📕我是廖志伟,一名Java开发工程师、Java领域优质创作者、CSDN博客专家、51CTO专家博主、阿里云专家博主、清华…

C语言:冒泡排序

C语言 基础开发----目录 冒泡排序 1. 原理 对一个有n个数据的数组进行遍历,依次对相邻两个数据进行比较大小,若大的数据在前面则交换位置(升序),完成一次遍历后数组中最大的数据到了数组的末尾位置,就象水…

六、RocketMQ发送事务消息

事务消息介绍 在一些对数据一致性有强需求的场景,可以用 Apache RocketMQ 事务消息来解决,从而保证上下游数据的一致性。 以电商交易场景为例,用户支付订单这一核心操作的同时会涉及到下游物流发货、积分变更、购物车状态清空等多个子系统的…

MySQL有时候命中索引有时候又不命中

索引失效的情况 -----可能 索引主要看where 、group by 、order by 1.组合索引不遵循最佳左前缀法制。最佳左前缀法制:如果索引了多列,要遵循最左前缀法则,指的是查询从索引的最左前列开始并且不跳过索引中的列。如组合索引为A B C 只有ABC,A…

【蓝桥】数树数

一、题目 1、题目描述 给定一个层数为 n n n 的满二叉树,每个点编号规则如下: 具体来说,二叉树从上往下数第 p p p 层,从左往右编号分别为:1,2,3,4,…, 2p-1。 给你一条从根节点开始的路径&#xff0…

Node.js初体验

Node.js简介 node.js的运行环境 1.V8引擎对js代码进行解析与执行 2.内置API:fs、path、http...等,提供了一些能力,能够使得js调用这些API去做一些后端的事情 流程:我们在node.js的运行环境中编写待执行的JavaScript代码&#…

Spring Cloud Gateway 使用 Redis 限流使用教程

从本文开始,笔者将总结 spring cloud 相关内容的教程 版本选择 为了适应 java8,笔者选择了下面的版本,后续会出 java17的以SpringBoot3.0.X为主的教程 SpringBoot 版本 2.6.5 SpringCloud 版本 2021.0.1 SpringCloudAlibaba 版本 2021.0.1.…

单目3D目标检测——MonoCon 模型训练 | 模型推理

本文分享 MonoCon 的模型训练、模型推理、可视化3D检测结果、以及可视化BEV效果。 模型原理,参考我这篇博客:【论文解读】单目3D目标检测 MonoCon(AAAI2022)_一颗小树x的博客-CSDN博客 源码地址:https://github.com/2…

在vs code中创建一个名为 “django_env“ 的虚拟环境报错?!以下或许方法可以解决

# vs code 终端窗口中运行: mkvirtualenv django_env # 拓展: mkvirtualenv django_env 是一个命令,用于创建一个名为 "django_env" 的虚拟环境。虚拟环境是一种用于隔离不同Python项目所需依赖的工具。通过创建虚拟环境&#x…

【分布式计算】九、容错性 Fault Tolerance

分布式系统应当有一定的容错性,发生故障时仍能运行 一些概念: 可用性Availability:系统是否准备好立即使用 可靠性Reliability:系统连续运行不发生故障 安全性:衡量安全故障的指标,没有严重事件发生 可维护…

zabbix内置宏、自动发现与注册

一、zabbix内置宏 1、概念: 在Zabbix中,内置宏是一种特殊的变量,通常用在 Trigger 名称和表达式中,引用有关监控对象的信息。 2、种类: {HOST.NAME} 主机名 {HOST.IP} 主机 IP 地址 {TRIGGER.DESCRIPTION} 触…

Unity中Shader的深度缓冲区

文章目录 前言一、什么是深度缓冲区深度缓冲区是和颜色缓冲区、模板缓冲区平行的一个缓冲区在这里插入图片描述 二、什么是深度信息三、深度缓冲区的作用 前言 Unity中的深度缓冲区 一、什么是深度缓冲区 深度缓冲区是和颜色缓冲区、模板缓冲区平行的一个缓冲区 深度缓冲区&a…

勒索软件组织声称它“损害了所有索尼系统”

新晋勒索软件组织 RansomedVC 声称已成功入侵娱乐巨头索尼的计算机系统。正如勒索软件团伙所做的那样,它在其暗网网站上发布了这一消息,并在那里出售从受害者计算机网络中窃取的数据。 该公告称索尼的数据正在出售: 索尼集团公司&#xff08…

数据结构与算法--并查集结构

数据结构与算法--并查集结构 1 岛问题 2 并查集结构 1 岛问题 一个矩阵中只有0和1两种值,每个位置都可以和自己的上、下、左、右 四个位置相连,如果有一片1连在一起,这个部分叫做一个岛,求一个矩阵中有多少个岛? 【举例】 001…

FutureTask的测试使用和方法执行分析

FutureTask类图如下 java.util.concurrent.FutureTask#run run方法执行逻辑如下 public void run() {if (state ! NEW ||!RUNNER.compareAndSet(this, null, Thread.currentThread()))return;try {Callable<V> c callable;if (c ! null && state NEW) {V res…

【软考】9.4 图的概念/存储/遍历/最小生成树/拓扑/查找

《图》 图的存储&#xff08;顶点和边&#xff09; 邻接矩阵&#xff1a;适合边数较多的图&#xff0c;不易造成浪费无向图&#xff1a;不分方向&#xff1b;对称矩阵 邻接链表&#xff1a;顶点&#xff0c;边——>&#xff08;编号&#xff0c;权值&#xff09;&#xff1b…

二维数组的行指针与列指针

二维数组的行指针与列指针 笔记来源&#xff1a;懒猫老师-C语言-用指针访问二维数组&#xff08;指针与二维数组&#xff09; 声明&#xff1a;本文笔记来自bili懒猫老师&#xff0c;仅供学习参考 回顾一维数组 int a[3];//其中a或a[0]是数组首地址 //a1指向第二个元素的地址…

The SDK location is inside Studio install location 解决

The SDK location is inside Studio install location 解决 安装 Android Studio SDK 时提示&#xff1a;The SDK location is inside Studio install location 解决 问题&#xff1a; 由于 SDK 与 编辑器(Android Studio)的安装在同一目录下所以报错。 解决 你需要在 Andro…