- 博客(24)
- 收藏
- 关注
原创 Proximal Policy Optimization (PPO)
1、On-policy v.s. Off-policyOn-policy: 学习的智能体和与环境交互的智能体是同一个Off-policy: 学习的智能体和与环境交互的智能体不是同一个大白话就是,今天要学习的智能体它是一边跟环境互动,一边学习,叫On-policy。如果它是在旁边通过看别人玩来学习的话,叫Off-policy策略梯度算法是On-policy的做法,因为actor去收集数据,然后在自己再学习∇Rˉθ=Eτ∽pθ(τ)[R(τ)∇logpθ(τ)](1)\nabla \bar R_
2021-06-10 15:18:19
511
原创 强化学习之Actor-Critic (AC, A2C, A3C, DDPG)
目录1. Review Policy Gradient2. Review Q-learning3. Actor-Critic4. Advantage Actor-Critic5. A2C解决CartPole-v11)构建actor和critic2)算法总体流程3)从概率分布选择动作4)Critic学习5)Actor学习6. A3C7. PDPG (Pathwise Derivative Policy Gradient)8. DDPG (Deep Determistic Policy Gradient)9.
2021-03-19 11:40:10
2920
原创 【6】强化学习之DQN
目录1、CarPole-v0环境2、DQN在Q-learning中我们建立了一个Q表,智能体通过查询Q表来确定动作,当然表示一个Q表必须要求状态是离散的(即有限的状态数量)。但当环境的状态为连续(即无限多个状态)的时候呢,Q-learning就无法通过建立表格来确定每个动作的Q值了。比如OpenAI Gym中的经典控制问题CarPole-v0的状态为连续的。\\[30pt]1、CarPole-v0环境通过以下代码将CarPole-v0环境渲染出来:import gymenv = gym.make
2021-01-05 20:53:15
531
原创 【5】强化学习之时序差分方法(Sarsa和Q-learning)
目录1、时序差分预测1)与动态规划方法的比较2)与蒙特卡罗方法的比较3)时序差分预测伪代码2、Sarsa算法:在线策略的时序差分方法3、Q-learning算法:离线策略的时序差分方法4、Q-learning解决寻宝问题蒙特卡罗方法可以在不知道环境特性的时候,通过与环境互动来估计状态(或状态-动作)的价值函数,但该方法也有一定的缺陷。首先,由于环境的动态特性,蒙特卡罗每次寻找的路径都可能不一样。其次,当状态空间比较大时,蒙特卡罗方法非常耗时,效率低,比如要走很多步才能到达终止状态。在所有的强化学习思想中
2021-01-05 20:49:55
1011
原创 【4】强化学习之蒙特卡罗方法
在动态规划中,我们估计状态和状态-动作函数需要有完备的环境知识,比如状态转移概率,但对于大多数的环境来说我们并不知道环境的动态特征。而蒙特卡罗方法仅仅需要经验,即从真实或模拟的环境交互中采样得到状态、动作、收益的序列。从真实经验中进行学习是非常好的,因为它不需要关于环境的动态变化规律的先验知识。...
2020-09-26 09:14:01
682
原创 【2】强化学习之有限MDP和价值函数
目录1. 智能体与环境2. 有限的MDP3. 价值函数1). 状态价值函数2). 状态-动作价值函数3). vπ(s)v_\pi(s)vπ(s)和qπ(s,a)q_\pi(s,a)qπ(s,a)的Bellman方程4). vπ(s)v_\pi(s)vπ(s)和qπ(s,a)q_\pi(s,a)qπ(s,a)之间的关系5). vπ(s)v_\pi(s)vπ(s)和qπ(s,a)q_\pi(s,a)qπ(s,a)的最优Bellman方程6). 不同策略下的状态价值函数的例子1. 智能体与环境首先
2020-09-01 19:38:00
799
原创 【3】强化学习之动态规划(策略迭代和价值迭代)
给定一个马尔科夫决策过程(MDP)<S,A,P,R,γ><S,A,P,R,\gamma><S,A,P,R,γ>,根据状态转移概率PPP是否已知,强化学习可分为基于模型(Model-based)和无模型(Model-free)的两种学习方法。动态规划就是基于模型的强化学习方法,可分为策略迭代(policy iteration)和价值迭代(value iteration)两种,下面详细介绍。\\[30pt]1. 策略迭代策略迭代又分为两个部分,即策略评估和策略改进。
2020-07-30 20:44:21
3984
原创 BP神经网络推导过程
BP神经网络推导过程1. 符号定义1. 符号定义本文以单隐藏层的神经网络结构,均方误差为损失函数为例来详细推导各个参数的梯度更新。给定训练集D={(x1,y1),(x2,y2),...,(xm,ym)},xi∈Rd,yi∈RlD=\left\{(x_1, y_1), (x_2, y_2),...,(x_m, y_m)\right\}, x_i\in \Bbb R^d, y_i \in \Bbb R^lD={(x1,y1),(x2,y2),...,(xm,ym)},xi∈Rd,yi∈R
2020-07-29 19:47:43
491
原创 如何使用pycharm将代码同步到GitHub
目录1. 创建工程2. 登录GitHub账号3. 安装Git bashGitHub是一个很方便的管理代码版本的工具。尤其是在你需要与其他人合作编程或者是使用不同电脑进行编程的时候,使用GitHub会比较方便。下面来记录一下如何将Pycharm中的项目同步到GitHub中。1. 创建工程首先在Pycharm中创建一个项目,当然可以是任意一个你想要上传到GitHub上的项目。这里使用的示例项目叫做TestGitHub2. 登录GitHub账号点击File --> Settings -->
2020-07-22 09:47:21
762
原创 交叉熵(softmax, sigmoid, weighted)_cross_entropy_with_logits和sparse_softmax_cross_entropy_with_logits
1. tf.nn.softmax_cross_entropy_with_logits该函数计算logits和labels之间的softmax交叉熵,softmax的含义是将传入的logits进行softmax映射,函数定义为:tf.nn.softmax_cross_entropy_with_logits( _sentinel=None, labels=None, logits=None, dim=-1, name=None)我们只解释label
2020-07-16 11:27:49
485
原创 【莫烦】强化学习(Q-learning和Sarsa)
Q-learning1. 两个状态两个动作的例子2. Q-learing流程1. 两个状态两个动作的例子2. Q-learing流程ϵ−greedy\epsilon-greedyϵ−greedy是用在决策上的策略,假如ϵ−greedy=0.9\epsilon-greedy=0.9ϵ−greedy=0.9,说明有90%的概率根据Q-table的最优值来选择action,而10%的概率来随机选择。α\alphaα是学习效率,来决定这一次的误差有多少要被学习,一般小于1.γ\gammaγ是对未来奖励
2020-06-06 16:41:15
845
原创 RNN,LSTM,GRU实现股票预测
1. RNN实现股票预测数据源:使用tushare模块下载的SH600519贵州茅台的日k线数据,只用该数据的C列数据,用连续60天的开盘价预测第61天的开盘价。源码:p37_tushare.pyimport tushare as tsimport matplotlib.pyplot as pltdf1 = ts.get_k_data('600519', ktype='D', start='2010-04-26', end='2020-04-26')datapath1 = "./SH6005
2020-05-28 18:09:13
4155
2
原创 循环神经网络-预测连续字母
1. 循环核:参数时间共享,循环层提取时间信息。前向传播时:记忆体内存储的状态信息hth_tht,在每个时刻都被刷新,三个参数矩阵Wxh,Whh,WhyW_{xh}, W_{hh}, W_hyWxh,Whh,Why自始至终都是固定不变的。反向传播时:三个参数矩阵Wxh,Whh,WhyW_{xh}, W_{hh}, W_{hy}Wxh,Whh,Why被梯度下降法更新。yt=softmax(htWhy+by)y_t=softmax(h_t W_{hy}+by)yt=softmax(ht
2020-05-28 17:57:08
826
原创 经典卷积神经网络-LeNet, AlexNet
LeNet是由Yann LeCun于1998年提出,是卷积网络的开篇之作,通过共享卷积核减少了网络的参数。Lecun, Y, Bottou, et al. Gradient-based learning applied to document recognition. Proceedings of the IEEE, 1998.在统计CNN网络层数是,一般只统计卷积计算层和全连接计算层,其余操作可以认为是卷积计算层的附属。LeNet一共有5层网络,2层卷积层和3层连续的全连接层。卷积就是CBA
2020-05-27 08:38:29
225
原创 5. 卷积神经网络总结
卷积神经网络是借助卷积核提取特征后,送入全连接网络。其主要模块为:卷积其实就是特征提取器,简写为CBAPD例子代码:model = tf.keras.models.Sequential([ tf.keras.layers.Conv2D(filters=6, kernel_size=(5, 5), padding='same') # 卷积层 tf.keras.layers.BatchNormalization() # BN层 tf.keras.layers.Activation
2020-05-25 10:28:17
218
原创 4. 卷积神经网络-池化(Pooling)和舍弃(Dropout)
池化操作用于减少卷积神经网络中特征数据量,一般有最大值池化和均值池化。最大值池化可提取图片纹理,均值池化可保留背景特征。tensorflow描述池化1. 最大值池化tf.keras.layers.MaxPool2D(pool_size=池化核尺寸。若是正方形则写核长整数,否则写成(核高h,核宽w)strides=池化步长。步长整数,或者写成(纵向步长h,横向步长w),默认为pool_sizepadding=‘valid’ or ‘same’。使用全零填充是’same’,不使用是’valid’
2020-05-25 09:36:40
1877
2
原创 3. 卷积神经网络-tensorflow描述卷积计算层
使用tf.keras.layers.Conv2D()函数来描述卷积层tf.keras.layers.Conv2D(fiters=6, kernel_size=(5, 5), strides=1, padding='valid', activation='sigmoid')其中参数解释为:fiters=卷积核数量kernel_size=卷积核尺寸:若是正方形则写核长整数,否则写成(核高h, 核宽w)strides=滑动步长:若横纵向移动相同则写步长整数,否则写成(纵向步长h, 横向步长w),默认为
2020-05-25 08:58:35
146
原创 2. 卷积神经网络-感受野和全零填充
感受野(Receptive Field):卷积神经网络隔输出特征图中的每个像素点,在原始输入图片上映射区域的大小。1. 假若使用3* 3 的黄色卷积核作用会输出3*3的输出特征图,那么该卷积核的感受野是32. 若对上面输出的33特征图使用下面33绿色的卷积核作用后,输出11特征图,该特征图的像素点映射到原始图片是55的区域,因此它的感受野是5。3. 对原始图片使用55的卷积核作用后,输出11的特征图,那么它的感受野是5。4. 当x>10时,两层33卷积核优于一层55卷积核...
2020-05-24 22:00:08
2678
2
原创 1. 卷积神经网络-卷积计算过程
卷积计算可认为是一种有效提取图像特征的方法。一般会用一个正方形的卷积核,按指定步长在输入特征图上滑动。遍历输入特征图中的每个像素点。对每个步长,卷积核会与输入特征图出现重合区域,重合区域对应元素相乘、求和再加上偏置项得到输出特征的一个像素点。输入特征图的深度(channel数)决定了当前层卷积核的深度。当前层卷积核的个数,决定了当前层输出特征图的深度。下面是三个卷积核的例子whc:1. 输入特征图为单通道输入特征图上的元素与卷积核的对应元素相乘后求和,再加上一个偏置项。2. 输.
2020-05-24 21:59:48
13043
原创 安装Anaconda3,tensorflow,Pycharm
@[TOC](anaconda3(python),tensorflow 安装)1. Anaconda3安装python 3.7版本百度网盘下载:https://pan.baidu.com/s/1Xccp1vB_EFmevRO-RpviYQ提取码:5xie下载完成,直接单击安装即可,过程中可以选择添加python到系统环境变量中2. 安装GPU版本的tensorflow直接在开始菜单中打开Anaconda Navigator,左侧选择Environments,在中部选择Not installed,
2020-05-23 19:11:44
110
原创 神经网络5种优化器
待优化参数w,损失函数loss,学习率lr,每次迭代一个batch,t表示当前batch迭代的总次数计算t时刻损失函数关于当前参数的梯度gt=▽loss=∂loss∂wtg_t=▽loss=\frac{\partial loss}{\partial w_t}gt=▽loss=∂wt∂loss计算t时刻一阶动量mtm_tmt和二阶动量VtV_tVt计算t时刻下降梯度:η=lr⋅mt/Vtη=lr·m_t/\sqrt V_tη=lr⋅mt/Vt计算t+1时刻参数:wt+1=wt−ηt=
2020-05-21 12:21:40
1404
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人