强化学习之策略学习
强化学习之策略学习
策略学习的意思是通过求解一个优化问题,学出最优策略函数或它的近似(比如策略网络)。
首先把策略学习描述成一个最大化问题。
推导策略梯度
利用不同的方法近似策略梯度,得到两种训练策略网络的方法
策略网络
策略函数 π 是个条件概率质量函数
π(a|s) = P(A=a|S=s)输入状态的动作,输出一个0-1之间的概率值。我们在每一个状态s下,利用策略函数计算每个动作的概率值,然后随机抽样得到动作a,让Agent执行动作a。
如何得到这样一个策略函数?
最有效还是用神经网络去近似π函数,这样的神经网络称为策略网络。
θ 表示神经网络的参数;一开 始随机初始化 θ,随后利用收集的状态、动作、奖励去更新 θ。
策略网络的目标函数复习一些基本内容回报 Ut 是从 t 从 时刻开始的所有奖励之和。Ut 依赖于 t 时刻开始的所有状态和动作:
S_t, A_t, S_{t+1}, A_{t+1}, S_{t+2}, A_{t+2}, ··
\\
U_t = r_t+r_{t+1} + ....在 t 时刻,Ut 是随机变量,它的不确定性来自于未来未知的状态和动作。
动作价 ...
强化学习前置知识
强化学习前置知识
深度强化学习(Deep Reinforcement Learning)基础部分。
目录
基本概念
马尔可夫决策过程
蒙特卡洛
基本概念一些数学基础
随机变量
概率密度函数
期望
随机抽样
蒙特卡洛(采样越多,越近似最优解;尽量找好的,但不保证是最好的。)
一些机器学习基础
线性模型
神经网络
反向传播和梯度下降
一些基础名词
马尔可夫决策过程
马尔科夫决策过程(Markov decision process, MDP)是对完全可观测的环境进行描述的,也就是说观测到的状态内容完整地决定了决策的需要的特征。几乎所有的强化学习问题都可以转化为MDP。
马尔科夫性
某一状态信息包含了所有相关的历史,只要当前状态可知,所有的历史信息都不再需要,当前状态就可以决定未来,则认为该状态具有马尔科夫性。
马尔科夫过程
马尔科夫过程 又叫马尔科夫链,它是一个无记忆的随机过程,可以用一个元组表示,其中S是有限数量的状态集,P是状态转移概率矩阵。
举例说明:学生马尔科夫链
如图:圆圈表示学生所处的状态,方格Sleep是一个终止状态,或者可以描述成自循环的状态,也就是Sleep ...
强化学习之价值学习
强化学习之价值学习
在贝尔曼方程中,我们试图求出 Q(s,a) 使得Agent获得最大的利益,这样的学习方式,称之为价值学习。
再次细分,如果是求解最优动作值函数
Q^∗(s,a)=max_π Q^π(s,a)称为Q-Learning。
如果是求解动作值函数
Q^π(s,a)=E[r_{t+1}+λr_{t+2}+λ^2r_{t+3}+...|s,a]
\\
=E_{s′}[r+λQ^π(s′,a′)|s,a]称为SARSA。
同策略与异策略为了解释同策略和异策略,我们要从行为策略 (Behavior Policy) 和目标策略 (Target Policy) 讲起。
在强化学习中,我们让智能体与环境交互,记录下观测到的状态、动作、奖励,用 这些经验来学习一个策略函数。在这一过程中,控制智能体与环境交互的策略被称作行为策略。行为策略的作用是收集经验 (Experience),即观测的环境、动作、奖励。
训练的目的是得到一个策略函数,在结束训练之后,用这个策略函数来控制智能体; 这个策略函数就叫做目标策略。
同策略是指用相同的行为策略和目标策略。如下所使用的SARSA。
比如SA ...
Fabric-SDK-GO工作流程解析
Fabric-SDK-GO工作流程解析
首先按惯例,使用fabric-sample中的fabcar案例介绍,其背后的工作流程。
此处只关注于其中的application部分,即调用SDK的部分。
示例fabcar.go
123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140/*Copyright 2020 IBM All Rights Reserved.SPDX-License-Identifier: Apache-2.0* ...
Fabric-CA项目结构简析
Fabric CA 代码结构解析
Fabric CA项目是超级账本Fabric内的MemberService组件, 对网络内各个实体的身份证书的管理, 它提供的功能有:
身份认证,或者从 LDAP(轻量目录访问协议) 中获取注册信息;
发行担保证书 ECerts (Enrollment Certificates);
发行交易证书 TCerts (Transaction Certificates),保障 Hyperledger Fabric 区域链交易平台上的信息匿名性和不可追踪性;
证书更新和撤销。
api123├─api│ client.go│ net.go
主要是封装一些Request和Response的结构体,以及一些信息的结构体。
如: 新身份注册的请求体
12345678910111213141516171819202122// RegistrationRequest for a new identitytype RegistrationRequest struct { // Name is the unique name of t ...
X509数字证书标准
X.509数字证书标准X.509 数字证书结构图
简单来说,数字证书就是一张附带了数字签名的信息表。
以RSA算法为例X.509证书和私钥生成生成秘钥流程
使用crypto/rsa中的GenerateKey(random io.Reader, bits int)方法生成私钥(结构体)
因为X509证书采用了ASN1描述结构,需要通过Go语言API将的到的私钥(结构体),转换为BER编码规则的字符串。
需要将ASN1 BER 规则转回为PEM数据编码。pem.Encode(out io.Writer, b *Block)
将返回的数据保存
生成证书流程
使用crypto/rsa中的GenerateKey(random io.Reader, bits int)方法生成私钥(结构体)
构建x.509的证书的结构模型template
根据公钥、私钥、证书模板生成DER编码规则的字符串。
需要生成的DER编码转回为PEM数据编码。pem.Encode(out io.Writer, b *Block)
将返回的数据保存
1234567891011121314151617181920 ...
国密算法了解与实践
国密算法了解与实践了解
国密即国家密码局认定的国产密码算法。主要有SM1,SM2,SM3,SM4。密钥长度和分组长度均为128位。
SM1 为对称加密。
其加密强度与AES相当。该算法不公开,调用该算法时,需要通过加密芯片的接口进行调用。采用该算法已经研制了系列芯片、智能IC卡、智能密码钥匙、加密卡、加密机等安全产品,广泛应用于电子政务、电子商务及国民经济的各个应用领域(包括国家政务通、警务通等重要领域)。
SM2为非对称加密,基于ECC。
该算法已公开。由于该算法基于ECC,故其签名速度与秘钥生成速度都快于RSA。ECC 256位(SM2采用的就是ECC 256位的一种)安全强度比RSA 2048位高,但运算速度快于RSA。
SM3 消息摘要。
可以用MD5作为对比理解。该算法已公开。校验结果为256位。
SM4 无线局域网标准的分组数据算法。对称加密,密钥长度和分组长度均为128位。
由于SM1、SM4加解密的分组大小为128bit,故对消息进行加解密时,若消息长度过长,需要进行分组,要消息长度不足,则要进行填充。
实践
基于同济研究院国密算法。其实现了 GM SM2 ...
HyperledgerExplorer安装与解析
HyperledgerExplorer安装与SDK解析安装
详细步骤参照hyperledger Explorer README 文件中 quick start using docker 部分。
试验目录: /data/explorer
前置环境:启动 fabric test-netwrok 网络 并安装 fabric-sample中的 fabcar 链码
目录结构如下:
12345docker-compose.yamlconfig.jsonconnection-profile/test-network.jsonorganizations/ordererOrganizations/organizations/peerOrganizations/
核心就是配置前三个文件,完善explorer的用户、证书、和网络配置。后两个是test-network生成的证书文件夹
其中test-network.json指定了explorer的登录账号密码和channel及组织证书信息
docker-compose.yaml 指定了explorer的数据库容器和explorer容器的生成配置
解析
hy ...
Fabric简易分布式部署
Fabric 简易分布式部署
只部署两个节点:orderer和peer1,其分布在不同的服务器上。
orderer 在 192.168.56.100
org1-peer1 在 192.168.56.99
未使用Fabric CA,域名和TLS
项目目录为:/data/t
192.168.56.100生成证书crypto_config.yaml , 需要注意的是证书只生成一次,后面所有的节点都使用这个证书文件夹。(每次生成的证书都不同)
1234567891011121314151617181920212223# ---------------------------------------------------------------------------# "OrdererOrgs" - Definition of organizations managing orderer nodes# ---------------------------------------------------------------------------OrdererOrg ...
GAN基础理解
GAN基础理解
生成对抗网络(Generative Adversarial Network,简称GAN),是非监督式学习的一种方法,通过让两个神经网络相互博弈的方式进行学习。
GAN介绍生成网络生成网络做的事不同于之前的network,都是一个function,你给他一个X就可以输出一个Y。
生成网络做的事实际上不是输入一个X输出一个Y,而是给定一个随机的启发的点(distribution sample)加上或者不加上X 最终输出一个分布(distribution)。
那这种可以输出,一个distribution的network,我们就叫它generator
GAN的分类
GAN细的分类有很多,此处以结构进行划分。
unconditional generation,不输入X,只输入一个 distribution sample 生成 y。
conditional generation,给定一个 Condition x,让它根据 x 跟 z 来產生 y。
unsupervised Learning,如Cycle GAN,X跟Y是不成对(unlabeled)的数据,只给X ...