自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(43)
  • 收藏
  • 关注

原创 C++百日训练第二天

熟悉各种向量的拼接方法,并进行对比分析,分析性能差异。

2024-09-02 11:12:27 133

原创 c++百日训练第一天

输入一个字符串,统计该字符串中字符个数、数字个数、空格个数以及其他类型字符个数。

2024-09-01 15:07:08 81

原创 ubuntu安装anaconda教程以及Anaconda使用教程

ubuntu安装anaconda教程以及anaconda使用教程

2024-08-26 16:13:58 371

原创 ubantu常用命令

【指令】ubantu常用命令。

2024-08-23 11:53:37 222

原创 解决向日葵在ubantu多用户下出现切换用户时黑屏以及外部网络无法正常工作问题的方法

在弹出的Configuring lightdm界面,选择lightdm,回车后安装结束后重启电脑,就可以使用远程软件连接显示了。编辑后重启电脑,重新查看电脑图形接口协议echo $XDG_SESSION_TYPE输出结果为x11时可以再重新使用todesk等远程工具远程。近日在出差一个项目中出现多用户切换采用向日葵远程控制时切换黑屏以及网络无法连接的问题,查阅大量网络解决资料后找到解决方法。ubantu经常使用时发生网络断开的问题,排查发现是由于开启了网络检查导致的,尝试关闭它!2.向日葵黑屏问题解决。

2024-08-20 11:48:19 763

原创 强化学习之Actor-Critic算法(基于值函数和策略的结合)——以CartPole环境为例

Actor-Critic算法是基于值函数和基于策略的方法的叠加,价值模块Critic在策略模块Actor采样的数据中学习分辨什么是好的动作,什么是不好的动作,进而指导Actor进行策略更新,随着Actor训练不断进行,与环境交互产生的数据分布也发生改变,这需要Critic尽快适应新数据分布并给出好的判别。Actor-Critic算法则结合了两种学习方法,其本质是基于策略的方法,因为其目标是优化一个带参的策略,只是会额外学习价值函数帮助策略函数更好地学习。这正是 Actor-Critic 算法所做的。

2024-08-13 16:44:14 944

原创 强化学习之REINFORECE策略梯度算法——已CartPole环境为例

【代码】强化学习之REINFORECE策略梯度算法——已CartPole环境为例。

2024-08-10 18:56:21 201

原创 强化学习之Dueling DQN对DQN的改进——以倒立摆环境(Inverted Pendulum)为例

结论:相比传统的DQN,Dueing DQN在多个动作选择下的学习更加稳定,得到的回报最大值也更大,由Dueling DQN 原理知随着动作空间增大,Dueling DQN相比DQN优势更加明显。本实验中离散动作数设置为11,可以增加动作数(例如15,25,30等),继续对比实验,实验效果更为明显。通过前面的推导,我们得到了Dueling Network的数学形式为。当然我们可以改变网络结构,加大隐藏层数量, 更改神经网络结构如下所示。当然我们神经网络也可以写成如下形式,是等价的。6.训练DQN函数实现。

2024-08-07 23:49:42 396

原创 强化学习之DQN算法——以车杆环境(CartPole)为例

0.简介深度Q学习(Deep Q-Learning,简称DQN)是一种结合了深度学习和Q-Learning的强化学习算法。其主要目标是使用深度神经网络来近似Q函数,从而解决传统Q-Learning在面对大规模或连续状态空间时的计算困难。DQN的核心思想是使用一个深度神经网络(通常是卷积神经网络或者多层感知机)作为函数逼近器,来估计动作-值函数(action-value function),即Q函数。网络的输入是环境的状态,输出是每个可能动作的预期奖励。原文算法流程如下:1.导库2.经验回访池定义。

2024-08-07 02:39:05 829

原创 强化学习之Double DQN算法与DQN算法对比学习——以倒立摆(Inverted Pendulum)环境为例

在此介绍DQN算法改进算法之一Double DQN,其在DQN算法基础上稍加修改实现在一定程度上改善DQN效果。训练过程中会记录每个状态下的最大Q值,训练后可结果可进行可视化,观测这些Q值存在的过高估计的情况,以此对比DQN与Double DQN差异。我们发现DQN算法在倒立摆环境中能取得不错的回报,最后的期望回报在-200左右,但是不少Q值超过了0,有些还超过10,这一现象表明了DQN算法会对Q值过高估计。显然DQN 与Double DQN差别在于计算状态s'下的Q值如何选择动作。4.设置相应的超参数。

2024-08-07 00:35:52 1075

原创 强化学习之Dyna-Q算法——以悬崖漫步环境为例

本次内容实现了经典的基于模型的强化学习算法Dyna-Q算法在悬崖漫步环境中的学习过程,并通过调整Q-planning步数直观展示Q-planning步数对算法收敛速度的影响。在Q-learning算法代码基础上进行修改实现Dyna-Q算法代码,修改内容有加入环境模型,环境模型采用字典表示,每次在真实环境中收集到新的数据,就把它加入字典,根据字典的性质,若该数据本身存在于字典中,就不会再一次进行添加,在Dyna-Q的更新中,执行完Q-learning后会立即执行Q-plaaning。

2024-08-02 11:38:25 1253

原创 强化学习时序差分算法之Q-learning算法——以悬崖漫步环境为例

打印出的回报是行为策略在环境中交互得到的,而不是Q-learning算法在学习的目标策略的真实回报,目标策略打印出来如上所示,发现其更偏向于走在悬崖边上,这与Sarsa算法得到的比较保守的策略相比更优。基于时序差分算法的强化学习算法除了Sarsa算法以外还有一种著名算法为Q-learning算法,为离线策略算法,与在线策略算法Sarsa算法相比,其时序差分更新方式变为。3.Q-learning算法实现。2.悬崖漫步环境实现环节。4.打印目标策略函数。6.程序主体部分实现。

2024-08-01 16:44:33 977

原创 强化学习时序差分算法之多步Sarsa算法——以悬崖漫步环境为例

通过实验我们可以发现5步Sarsa算法的收敛性比单步Sarsa算法更快,此时多步Sarsa算法得到的策略会在最远离悬崖的一边行走,以保证最大的安全性。蒙特卡洛算法是无偏的,但是它的每一步的状态转移具有不确定性,同时每一步状态采取的动作所得到的不一样的奖励最终会累计起来,从而极大影响最终的状态估计,因而其方差较大。时序差分算法只采用了一步状态转移以及使用了一步奖励,因而具有非常小的方差;蒙特卡洛方法利用当前状态之后每一步奖励而不使用任何价值估计,时序差分算法则只利用当前状态的奖励以及对下一状态的价值估计。

2024-07-31 23:53:31 1035

原创 强化学习时序差分算法之Sarsa算法——以悬崖漫步环境为例

2.本悬崖漫步环境中无需提供奖励函数以及状态转移函数,而需提供一个与智能体进行交互的step()函数,该函数输入为智能体当前状态下的动作,输出为当前状态下的奖励以及智能体的下一状态,代码如下所示。3.实现Sarsa算法,维护一个Q_table()表格,本表格主要存储当前策略下所有状态动作对的价值,即所有状态下各个动作的动作价值函数,Sarsa算法与环境进行交互,采用。我们可以发现随着训练的进行,Sarsa算法获得的回报越来越高,在进行500条序列的学习后,可以获得-20左右的回报,此时非常接近最优策略了。

2024-07-31 01:02:42 841

原创 强化学习之价值迭代动态规划算法求解冰湖环境最优策略及最优状态价值

【代码】强化学习之价值迭代动态规划算法求解冰湖环境最优策略及最优状态价值。

2024-07-29 12:38:14 234

原创 强化学习之价值迭代算法动态规划求解悬崖漫步环境(CliffWalking)最优策略及最优状态价值函数

【代码】强化学习之价值迭代算法动态规划求解悬崖漫步环境(CliffWalking)最优策略及最优状态价值函数。

2024-07-29 12:22:46 250

原创 强化学习算法之策略迭代动态规划算法——以冰湖环境(FrozenLake-v1)为例

【代码】强化学习算法之策略迭代动态规划算法——以冰湖环境(FrozenLake-v1)为例。

2024-07-28 20:53:22 145

原创 强化学习算法之策略迭代动态规划算法——以悬崖漫步环境(CliffWalking)为例

【代码】强化学习算法之策略迭代动态规划算法——以悬崖漫步环境(CliffWalking)为例。

2024-07-28 18:35:18 363

原创 强化学习经典环境之悬崖漫步环境

【代码】强化学习经典环境之悬崖漫步环境。

2024-07-27 22:17:17 127

原创 蒙特卡洛采样法近似估计马尔可夫决策过程MDP中不同策略下的占用度量

【代码】蒙特卡洛采样法近似估计马尔可夫决策过程MDP中不同策略下的占用度量。

2024-07-26 17:48:59 229

原创 强化学习-蒙特卡洛方法估计一个策略在马尔可夫决策过程中的状态价值

【代码】强化学习-蒙特卡洛方法估计一个策略在马尔可夫决策过程中的状态价值。

2024-07-26 12:46:00 120

原创 强化学习学习程序笔记记录二(马尔可夫决策过程)

【代码】强化学习学习程序笔记记录二(马尔可夫决策过程)

2024-07-25 18:10:33 121

原创 强化学习学习程序笔记记录一(多臂老虎机问题)

【代码】强化学习学习程序笔记记录一(多臂老虎机问题)

2024-07-23 23:47:11 151

原创 对geometry_msgs/PoseStamped的解读

对geometry_msgs/PoseStamped的解读

2024-07-15 15:54:46 650

原创 AutoTS秒杀时间序列

时间序列问题涉及到气象、金融、贸易等多个领域,其在股票预测、天气预测和交易量预测等方面的作用日益强大。如今在机器学习不断发展的情况下它正朝着日益精确全面的方向进步。目前已经具有多种时间序列建模工具,其中就有融合了自动化机器学习技术的AutoTS。AutoTS工作程序:数据预处理,删除异常数据值;学习寻找到最佳NAN值。只需要一行代码就能训练多个时间序列模型,包括ARIMA、VRB等,寻找到最佳模型。AutoTS是一个开源库,功能是对时间序列问题进行预测,它包含的技术有:遗传规划优化方法进行时

2022-03-25 02:24:09 2568 1

原创 使用Python进行Web页面元素提取

#gethtmllines() extractimageurls() showresults() saveresults()def main(): inputfile='nationalgeograhic.html' outputfile='nationalgeographic.txt' htmllines=gethtmllines(inputfile) imageurls=extractimageurls(htmllines) showresults(ima.

2021-08-25 19:41:55 526

原创 利用Python的jieba和wordcloud第三方库制作精美词云

import jiebaf=open('红楼梦.txt','r')txt=f.read()f.close()words=jieba.icut(txt)counts={}for word in words: if len(word)==1: continue else: counts[word]=counts.get(word,0)+1items=list(counts.items())items.sort(key=lambda x:x[1],.

2021-08-25 10:25:38 531

原创 Python的turtle和random标准库绘制雪景图做壁纸

from turtle import *from random import *def drawsnow(): hideturtle() pensize(2) for i in range(100): r,g,b=random(),random(),random() pencolor(r,g,b) penup() setx(randint(-350,350)) sety(randint(1,270).

2021-08-22 09:49:44 411

原创 利用Python的time库函数实现程序计时功能

import timedef coreLoop(): limit=10**8 while (limit>0): limit-=1def otherLoop1(): time.sleep(0.2)def otherLoop2(): time.sleep(0.4)def main(): starttime=time.localtime() print('程序开始时间:',time.strftime('%Y-%m-%d-%H:%M:%.

2021-08-21 18:09:45 817

原创 利用Python的标准库turtle库绘制图形入门实例

import turtleturtle.speed(2)turtle.setup(800,800,startx=None,starty=None)turtle.pensize(3)turtle.pu() #三角形turtle.goto(-200,-50)turtle.pd()turtle.begin_fill()turtle.color('red')turtle.circle(40,steps=3)turtle.end_fill()turtle.up()#四边形turtle.got.

2021-08-21 13:43:14 381

原创 利用Python对体育竞技比赛进行分析

程序设计:#MatchAnalysis.pyfrom random import randomdef printintro(): print('这个程序模拟两个选手A和B的某种竞技比赛') print('程序运行需要A和B的能力值(以0到1之间的小数表示)')def getinput(): a=eval(input('请输入选手A的能力值(0-1):')) b=eval(input('请输入选手B的能力值(0-1):')) n=eval(input(.

2021-08-19 10:37:10 1189

原创 钢管切割配料问题

某钢管零售商从钢管厂进货,将钢管按照顾客的要求切割后售出,从钢管厂进货时得到的原料钢管都是19m。现有一客户需要50根4m,20根6m,15根8m的钢管,应该如何切割配料最省? 零售商如果采用的不同的切割模式太多,将会导致生产过程的复杂化,从而增加生产和管理成本,所以零售商规定采用的不同的切割模式不能超过3种。此外,该客户除了需要(1)中的三种钢管外,还需要10根5m的钢管,应该如何切割配料最省?问题求解:首先明确优化模型中的决策变量和目标函数。一根钢管有多种切割方案,直接从长度有困难,

2021-07-01 03:11:42 3754

原创 MATLAB基础知识:MATLAB在矩阵理论中的应用

1.矩阵的创建矩阵是MATLAB最基本的数据对象,其大部分运算或者命令都是在矩阵运算的意义下执行的,所以创建矩阵是MATLAB最基本的操作,在MATLAB中有三种方式创建矩阵。 1.直接输入法 将矩阵的元素用方括号括起来,按照矩阵行的顺序输入各元素,同一行元素之间用空格或者逗号(其中空格的个数没有限制)进行分隔,不同行元素之间用分号分隔开来,也可以用回车键来代替分号。例如,键入命令:: A=[1 2 3;4 5 6;7 8 ...

2021-06-27 21:37:59 2549

原创 利用MATLAB的intlinprog函数实现线性规划中的整数规划

一.常规模式:针对特定数据类型的运用% f :目标函数的系数矩阵% intcon :整数所在位置% A :不等式约束的变量系数矩阵% B:不等式约束的资源数% Aeq :等式约束的变量系数矩阵% Beq :等式约束的资源数% lb :变量约束下限% ub :变量约束上限% [x,fval] = intlinprog(f,intcon,A,B,Aeq,Beq,lb,ub); % fval代表最优解处的函数值% x,fva.

2021-06-27 18:10:43 2791

原创 经济学基础之名义利率与实际利率以及他们同复利公式的运用

1.名义利率(即非有效利率):如果一年计息一次,则年利率既是实际利率又是名义利率;如果每年计息k(k>=2)次,则k次称之为计息周期数,每次计息的利率为r’,则r称之为周期利率;名义利率=周期利率*每年计息周期数。通常说的年利率即为名义利率。如果不对计息期进行说明,表示一年计息一次,此时的年利率也为年实际利率或者称为年有效利率。若用r代表名义利率,r’代表周期利率,m代表每年的计息周期数,则:r=r’x mr’=r/m2.实际利率(即有效利率):周期...

2021-06-19 04:02:43 3464

原创 图像的非线性运算

在线性运算中,像素点间值的变化是一种比例变化,但是在实际中 需要对图像的某个特征进行放大或者缩小,特别是在进行图像增强的过程中,为了消除图像失真,非线性运算显示了其重要性。幂运算、指数运算、对数运算...

2021-06-16 00:45:56 871

原创 MATLAB利用histeq函数进行直方图均衡化

MAT语法格式如下:b=histeq(a);b=histeq(a,n);%把图像a的灰度阶变为n阶

2021-06-13 19:57:43 2829 1

原创 MATLAB进行直方图均衡化

直方图均衡化又称为直方图平坦化。直方图均衡化的基本思想是将原始图像的不均衡的直方图变化为均匀分布的形式,即将输入图像转化为在每一灰度级上都有相同的像素点数(即输入的直方图是平坦的,其)...

2021-06-13 15:24:26 5074 1

原创 基于Opencv的图像处理技术中图像的基本运算之一------------加法运算 

基于Opencv的图像处理技术中图像的基本运算之一------------加法运算 在面向Python的OpenCV中有两个方法可以实现图像的加法运算,一种是通过运算符“+”对图像进行加法运算,另一种是通过cv2.add()函数来实现对图像的加法运算。因为计算机一般使用8个比特位来表示灰度图像,所以像素值的范围为0~255。当像素值的和超过255时,这两种加法方式的处理方法是不一样的。下面对这两种加法方式进行详细的介绍以及具体的阐释。运算符“+”在使用运算符“+”对两个图像的像素进...

2021-05-06 15:32:09 434

原创  使用python opencv 对图像通道的基本操作

使用python opencv 对图像通道的基本操作在图像处理过程中,有时会根据需要对通道进行拆分和合并。在OpenCV中提供了split()和merge()函数。下面对这两个函数进行介绍。split()拆分函数Split()函数可以拆分图像的通道,例如BGR图像的三个通道,一般常见调用格式如下:b,g,r=cv2.split(img)其中:b,g,r分别是B通道、G通道、R通道的图像信息。img是要拆分的图像。【例】编写程序,对图像进行拆...

2021-05-05 10:27:29 1847 1

空空如也

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除