- 博客(23)
- 收藏
- 关注
原创 深度强化学习Reinforcement Learning|PG|Actor-Critic|A3C|DDPG
目录一、PG(Policy Gradient)策略梯度算法(on-policy)1、策略梯度公式推导2、代码讲解/伪代码3、改进3.1Trick Baseline3.2 Suitable Credit二、Actor-Critic算法三、A3C算法四、DDPG算法 我们都知道强化学习环境env的不确定性是比较突出的一个特点,那么有很多情况下时需要使用强化学习设计仿真实验的,经常会设置一些随即参数,比如随机正态分布或者一个随机的常量,这种我们就正常使用科学计算库numpy或者深度学习框架比如Tensorf
2024-09-16 16:06:29 956
原创 强化学习Reinforcement Learning|Q-Learning|SARSA|DQN以及改进算法
在一个MDP模型中,我们想要获得最优的策略,对于智能体去最大化系统的预期长期奖励函数。因此,我们先定义状态值函数,表示在每个状态s下遵循策略所得到的期望值。策略的值函数V通过无界限和折现MDP量化策略的优良性,可以表示为:因为我们的目的是找到最优的策略,在每个状态的一个最优的动作可以被找到通过最优的值函数如果我们用表示为所有状态动作对的最优的Q函数,然后最优的值函数可以被写为.现在,问题被简化为寻找Q函数的最优值,即对于所有的状态-动作对,可以通过迭代(iteration)的过程完成。
2024-09-16 16:06:09 955
原创 数据结构与算法05堆|建堆|Top-k问题
堆(heap)是一种满足特定的条件的完全二叉树,主要可以分为大根堆和小根堆。大根堆(max heap):任意节点的值大于等于其子节点的值。小根堆(min heap):任意节点的值小于等于其子节点的值。由于堆作为完全二叉树的一个特例,故其具有以下的特性,1、最深一层的节点靠左填充,且前面所有层地节点均被填满。2、将完全二叉树的根节点称为堆顶,将底层最靠右的节点称为堆底。3、对于大根堆/小根堆,堆顶元素的值是最大/最小的。
2024-07-20 06:40:32 906 1
原创 数据结构与算法02迭代|递归
简介:在算法中,重复执行某个任务是常见的,它与复杂度息息相关,在程序中实现重复执行任务,即两种基本的程序控制结构:迭代(循环)与递归。
2024-07-16 14:39:22 647
原创 深度强化学习Deep Rrinforcement Learning|MDP|POMDP
现代网络规模大、结构复杂,计算复杂度很快变得难以控制。因此,DRL一直在发展成为克服这一挑战的替代解决方案。马尔科夫链(Markov Chain)、马尔科夫决策过程(Markov Decision Process,MDP)、部分可观察马尔科夫决策过程(Partially Obserable Markov Decision Process,POMDP)、隐马尔科夫模型(HMM)。
2024-07-16 14:32:10 1254 1
原创 浅谈目标检测之YOLO(You Only Look Once)v1
图1我们提出了一个新的目标检测方法YOLO。以前的目标检测工作是用分类器进行检测的。相反,本篇文章将目标检测表示为空间分离的边界框和相关的分类概率的回归问题。在一次评估中,使用单个神经网络从整个图像中预测边界框以及分类概率。由于整个的检测管道为单一神经网络,因此可以被优化为直接对端到端的性能检测。我们的架构非常快。基本的YOLO模型以每秒45帧速度实时处理图像。一个更小版本的网络,快速YOLO,处理速度每秒155帧的同时mAP(mean average precision)可达其它实时探测器的两倍。
2024-06-19 20:57:52 1141 1
原创 机器学习与数据挖掘知识点总结(二)分类算法
数据挖掘是从大量数据中发现隐藏在其中的模式、关系和规律的过程。它利用统计学、机器学习和数据库技术等工具和方法来分析大规模数据集,以发现其中的信息,并将其转化为可用的知识或决策支持。数据挖掘常用于预测、分类、聚类和关联规则发现等任务。
2024-06-08 16:06:05 1764 3
原创 机器学习与数据挖掘知识点总结(一)
神经网络有单一的神经元接收上一层神经元的输出作为本神经元的输入,即一种在神经元上运行的函数,把神经元的输入映射到输出端。图1 单神经元如图1(单输入单输出神经元)所示,p为输入,w为权重,b为偏置,若引入激活函数f,则相应的输出为a=f(wp+b),但若无激活函数,相应的输出a'=wp+b。其实也就是说,它的作用是引入非线性性质,使得神经网络能够学习和逼近更复杂的函数。在实际生活中,无论如何搭建神经网络,输出都是对于输入的线性模型叠加。
2024-06-04 21:38:45 1530 2
原创 数据结构与算法01线性表|链表|列表
数组是一种线性数据结构,把相同数据类型的元素存储在连续的内存空间中,数组的索引(元素在数组中的位置)从0开始。2、查询/访问元素数组的首元素对应的索引为0,这与现实生活中的序号有些不太一样,但可以从地址计算的角度分析看,索引本质是内存地址的偏移量。元素对应的内存地址=数组首元素地址+地址偏移量地址偏移量=(每个元素对应的大小/长度)* 元素索引 3、插入元素定义:有效数字表示为有用的存储数据;无效数据表示初始化的数据(比如:全部初始化为0)。由于数组中的数据为连续存储,所以当在第i个
2024-05-28 09:20:53 396 2
原创 人工智能之Python基础(一)控制语句|循环|常用数据类型
Python是一种强类型的动态脚本语言。强类型就是指不允许不同类型相加。例如:整型+字符串会报类型错误。动态:可以不使用数据类型声明,且确定一个变量的类型是在给它赋值的时候来确定一个变量的类型。脚本语言:一般是指解释性语言,运行代码只需要一个解释器,不需要编译器。代码会边解释边运行,直到所有代码解释完或遇到错误问题才结束。
2024-02-01 13:49:26 848 1
原创 强化学习Reinforcement Learning|Q值和V值|MC|TD
人工智能 = 深度学习 + 强化学习 ----David Silver随着深度神经网络的兴起,强化学习这一领域也获得了蓬勃的发展。强化学习是机器学习领域除有监督学习、无监督学习以外的另一个学习分支,它主要利用智能体与环境交互,从而学习到能获得良好结果的策略。举个简单的例子,扫地机器人打开开关后,不需要人类告诉机器人哪里有灰尘,哪里有垃圾,自己就会去清理了。这就是我们希望用强化学习的方式,使扫地机器人获得独立自主地完成某种任务的能力。
2024-01-20 14:45:08 1240 1
原创 Tensorflow进阶之合并与分割|数据统计|填充与复制|高级操作
tf.split(x,num_or_size_splits,axis) 其中,x为待分割张量,num_or_size_splits代表切割方案,可以为标量或张量,axis指定分割的维度索引号。填充就是在需要补充长度的数据开始或结束填充足够数量的特定数值,但这些特定数值一般代表了无效的意义。tf.concat(tensors,axis) tensors保存了所有需要合并的张量序列,axis代表所需要合并的张量维度索引。张量的合并可通过拼接和堆叠操作实现,拼接并不会产生新的维度,而堆叠操作会创建新的维度。
2024-01-17 08:00:00 908 1
原创 Tensorflow基础之张量操作索引与切片|维度变换|Broadcasting
通过start:end:step切片方式可以方便地提取一段数据,其中start为起始索引,end为结束读取位置索引(不包含end位),step为采样步长。tf.tile(x,multiples)函数完成在指定维度上复制,multiples分别指定了每个维度上的复制倍数,对应位置为1则不复制,对应位置为2则代表新长度要变为原来长度的二倍。特别地,step可以为负数,当为负数时,索引号end
2024-01-16 08:00:00 680 2
原创 Tensorflow基础之数据类型|数值精度|创建张量|张量的典型应用
由第2点创建全0或全1张量可以引出,非0非1的初始化怎样做呢,这就需要有自定义数值张量的定义了。tf.fill(shape,value) #shape为张量形状,value为数值#创建标量100#创建所有元素为100的向量#创建3*3矩阵,且所有元素均为100。
2024-01-15 15:28:11 894 2
原创 Tensorflow之网络优化以及超参数的选择
1)过拟合就是在训练集上表现良好但在测试集上表现较差,即“泛化能力较差”。2)欠拟合就是在训练集上表现较差,在测试集上表现也较差。图1如图1所示,好的拟合状态并不是在训练集上百分之百正确 ,而是既要在训练集表现良好,又要在测试集表现良好。其实已知过拟合最好的办法就是增加训练数据和减小网络容量,使用小型网络迫使学习最关键的数据。三、实例(一)开发过拟合模型,以fashion_mnist数据集为例(增加网络层数)1、先增加模型拟合能力# 1、导入库# 2、加载fashion_mnist数据集。
2024-01-13 14:49:52 1380 3
原创 Tensorflow之softmax多分类(顺序编码|独热编码)
对数几率回归解决的是二分类的问题,但对于多个选项的问题,我们可以使用softmax函数它是对数几率回归在N 个可能不同的值上的推广。神经网络的原始输出并不是一个概率值,实质上只是对输入的数值做了加权与非线性处理之后的值而已,那么如何将输出转换为概率分布?这就引入了softmax层。softmax激活要求每个样本必须属于某个类别,且所有可能的样本均被覆盖,softmax各样本分量之和为 1;当只有两个类别时,与对数几率回归(二分类)完全相同。
2024-01-12 12:05:57 1895 2
原创 Tensorflow之逻辑回归与交叉熵
线性回归预测的是一个连续值,而逻辑回归预测给出的是“是”和“否”的答案。比如在使用激活函数sigmoid时,它是一个概率分配函数,在给定特征值时,特征值与权重的乘积作为输出值,映射到[0,1]区间,神经网络本质是一个表示/映射网络,由多层感知器组成,经过一层一层的映射,最后可把[0,1]间的这个值看成是神经网络给出的概率结果。但对于逻辑回归,平方差损失函数刻画原有数据集与损失为同一数量级的情况下。eg: 若真实值回答为1,但实际神经网络给出的值为一小数0.3,刻画损失为0.7。
2024-01-11 14:49:31 1517 3
原创 Tesorflow多层感知器(MLP)实现广告的预测
首先讲述一下单层神经元以及多层神经元的推进,之前所提到的线性回归模型就是单个神经元,只需要计算输入特征的加权和,然后用一个激活函数即可计算输出,之前并没有使用激活函数。单层神经元实际无法拟合“异或”运算,神经元要求数据必须为线性可分的,因此异或问题无法通过单层神经元找到一条直线分割两个类。故受单层神经元的启发,多层神经元将单个神经元一层一层连接起来,当神经信号达到某个条件时,这个神经元就会激活,然后继续传递信息,作为后一个神经元的输入。
2024-01-10 17:12:59 1464 1
原创 Tensorflow深度学习之梯度下降算法|学习速率|优化函数|反向传播
简单描述深度学习之梯度下降算法的原理,实践中学习速率的选取,以及优化函数的选择。
2024-01-09 17:02:36 705 1
原创 Tensorflow练手机器学习原理--线性回归
问题描述:我们将使用tf.keras来实现一个简单的线性回归,举一个单变量线性回归的案例:x代表学历/受教年限,f(x)代表不同学历所对应的收入,通过搭建模型f(x)=ax+b表示二者关系,预测学历x1所对应的收入f(x1)的值。目标:为使预测函数与真实值间的整体误差最小,但结果有正有负,直接使用二者的差显然不合适,使用绝对值最为整体误差的话,在数学上计算不方便,故可使用均方差作为成本函数,即预测值与真实值的差的平方除以样本个数。首先,导入matplotlib.pyplot,并设置其显示出来。
2024-01-09 11:25:14 968 1
原创 Windows环境下安装Anaconda|Tensorflow及创建虚拟环境
自己在下载tensorflow时,可能会因为网络延时被中断,我发现原因主要是因为WiFi的原因,个人如果因为连接WiFi下载过程中老是超时或者是无法连接等原因时,不妨切换到个人热点,但下载仍需要点时间,在连接个人热点是仍有超时情况时,可以重新连接热点,保证越少设备使用此热点越好。下载完之后在本地点击安装即可,安装时,需要准备一个空的文件目录,安装难度很小,基本就是按照提示,点击下一步即可。3、安装完成tensorflow后,可在打开Anaconda Prompt页面中安装所需要的其他包。
2024-01-08 12:08:45 935 1
强化学习值函数中的状态动作值函数
2024-08-15
强化学习的状态动作值函数(Q函数)
2024-06-23
强化学习DQN系列算法做的应用问题
2024-06-08
强化学习的奖励函数和损失函数
2024-03-31
TA创建的收藏夹 TA关注的收藏夹
TA关注的人