在前面讲到的DQN系列强化学习算法中,我们主要对价值函数进行了近似表示,基于价值来学习.这种Value Based强化学习方法在很多领域都得到比较好的应用,但是Value Based强化学习方法也有很多局限性,因此在另一些场景下我们需要其他的方法,比如本篇讨论的策略梯度(Policy Gradient),它是Policy Based强化学习方法,基于策略来学习. 本文参考了Sutton的强化学习书第13章和策略梯度的论文. 1. Value Based强化学习方法的不足 DQN系列强化学习算法主…
深度学习课程笔记(十三)深度强化学习 --- 策略梯度方法(Policy Gradient Methods) 2018-07-17 16:50:12 Reference:https://www.youtube.com/watch?v=z95ZYgPgXOY&t=512s…
前言 上一篇中介绍了计算图以及前向传播的实现,本文中将主要介绍对于模型优化非常重要的反向传播算法以及反向传播算法中梯度计算的实现.因为在计算梯度的时候需要涉及到矩阵梯度的计算,本文针对几种常用操作的梯度计算和实现进行了较为详细的介绍.如有错误欢迎指出. 首先先简单总结一下, 实现反向传播过程主要就是完成两个任务: 实现不同操作输出对输入的梯度计算 实现根据链式法则计算损失函数对不同节点的梯度计算 再附上SimpleFlow的代码地址: https://github.com/PytLab/simp…
Tensorflow 的求梯度函数: [db, dW, dx] = tf.gradient(C, [b, w, x]) 在调试时用处较大. 实例: import tensorflow as tf import numpy as np w1 = tf.Variable(2.0) w2 = tf.Variable(3.0) a = tf.multiply(w1,w2) g = tf.get_default_graph() with g.gradient_override_map({"Sign&quo…
I optimizer.minimize(loss, var_list) 我们都知道,TensorFlow为我们提供了丰富的优化函数,例如GradientDescentOptimizer.这个方法会自动根据loss计算对应variable的导数.示例如下: loss = ... opt = tf.tf.train.GradientDescentOptimizer(learning_rate=0.1) train_op = opt.minimize(loss) init = tf.initiali…
tensorflow学习笔记——使用TensorFlow操作MNIST数据(1) 一:神经网络知识点整理 1.1,多层:使用多层权重,例如多层全连接方式 以下定义了三个隐藏层的全连接方式的神经网络样例代码: import tensorflow as tf l1 = tf.matmul(x, w1) l2 = tf.matmul(l1, w2) y = tf.matmul(l2,w3) 1.2,激活层:引入激活函数,让每一层去线性化 激活函数有多种,例如常用的 tf.nn.relu  tf.nn.…
1,自编码器简介 传统机器学习任务很大程度上依赖于好的特征工程,比如对数值型,日期时间型,种类型等特征的提取.特征工程往往是非常耗时耗力的,在图像,语音和视频中提取到有效的特征就更难了,工程师必须在这些领域有非常深入的理解,并且使用专业算法提取这些数据的特征.深度学习则可以解决人工难以提取有效特征的问题,它可以大大缓解机器学习模型对特征工程的依赖.深度学习在早期一度被认为是一种无监督的特征学习(Unsuperbised Feature Learning),模仿了人脑的对特征逐层抽象提取的过程.这…
在之前的TensorFlow学习笔记——图像识别与卷积神经网络(链接:请点击我)中了解了一下经典的卷积神经网络模型LeNet模型.那其实之前学习了别人的代码实现了LeNet网络对MNIST数据集的训练.而这篇文章是想自己完成LeNet网络来训练自己的数据集.LeNet主要用来进行手写字符的识别与分类,下面记录一下自己学习的过程. 我的学习步骤分为以下四步: 1,温习LeNet-5的网络层 2,使用LeNet-5训练MNIST数据集 3,使用LeNet-5训练TFRecord格式的MNIST数据集…
续集请点击我:tensorflow学习笔记——使用TensorFlow操作MNIST数据(2) 本节开始学习使用tensorflow教程,当然从最简单的MNIST开始.这怎么说呢,就好比编程入门有Hello World,机器学习入门有MNIST.在此节,我将训练一个机器学习模型用于预测图片里面的数字. 开始先普及一下基础知识,我们所说的图片是通过像素来定义的,即每个像素点的颜色不同,其对应的颜色值不同,例如黑白图片的颜色值为0到255,手写体字符,白色的地方为0,黑色为1,如下图. MNIST…
循环神经网络(RNN) 卷积网络专门处理网格化的数据,而循环网络专门处理序列化的数据. 一般的神经网络结构为: 一般的神经网络结构的前提假设是:元素之间是相互独立的,输入.输出都是独立的. 现实世界中的输入并不完全独立,如股票随时间的变化,这就需要循环网络. 循环神经网络的本质 循环神经网络的本质是有记忆能力,能将前一时刻的输出量('记忆')作为下一时刻的输入量. RNN的结构与原理 结构如下: 设某个神经元的 \[X_t:表示t时刻的输入,h_t:表示t时刻的输出,S_t:表示t时刻的状态(s…