SQL Language
数据类型 符号 数据类型 INT 整数 SMALLINT 短整数 DEC(m,n) 十进制数 FLOAT 浮点数 CHAR(n) 定长字符串 VARCHAR(n) 变长字符串 BIT(n) 定长位串 BIT VARYING(n) 变长位串 DATE 日期 TIME 时间 TIMESTAMP 时间戳 对表的操作创建表创建表的命令是: 1234567CREATE TABLE tablename (colname datatype [ NOT NULL ]{ , colname datatype [ NOT NULL ] }) ; 比如说: 123456CREATE TABLE student (sno CHAR(5) NOT NULL,sn CHAR(20),sd CHAR(2),sa SMALLINT,); 就会创建一张名为 student 的表,有四列,分别为 sno,sn,sd,sa 其中的 sno 不为 null 修改表增加和删除列的操作如下: 12ALTER TABLE <基表名> ...
Transport Layer
连接复用UDP: User Datagram ProtocolUDP只用一个二元组来区分链接,一个UDP的头只包括 dest ip 和 dest port 两个信息而在对上面的应用层提供服务的时候,拥有同样的 ip 和 port 的数据块会被送到同一个 Socket 里面 TCPTCP使用一个四元组来区分链接,即(source ip,source port, dest ip,dest port) 这个四元组来区分,只有当这四元组完全相同的时候才会送到同一个 Socket 里面去。 UDP优点和缺点优点 不需要握手建立连接 简单,发送端和接收端没有状态切换 报文头小 缺点 只是尽最大努力传输,所以报文可能会丢失、乱序 没有拥塞控制,可能会严重超时 UDP报文的样式 如何做checksum 可靠的传输这里面东西比较多,只记录怎么评估一个可信传输的效率 定义 表示sender工作的时长站总传输时长的占比,定义传输时间 这里的 表示每一个待发包的大小,而 表示这个Link的传输速率,那么在发送一个包并等待 ...
check3
Structure and DesignTimer首先在 TCPSender 里面实现一个 Timer 来实现计时的功能,代码如下: 12345678910111213141516171819202122232425262728293031323334353637383940class Timer{private: uint64_t initial_RTO; uint64_t RTO; uint64_t time_passed_; bool is_running_;public: explicit Timer( uint64_t initial_RTO_ ) : initial_RTO( initial_RTO_ ), RTO( initial_RTO_ ), time_passed_( 0 ), is_running_( false ) {}; bool is_running() const { return is_running_; }; bool is_expired() const { return is_running_ &&...
TRPO
从动作优势函数说起首先回顾一下动作优势函数,即:这里的优势表示的是在状态 下面选择动作 比选择平均动作的优势 援引一张从知乎文章知乎-TRPO中的图: TRPO起始式的推导TRPO的起点是表达式这里就给出了在策略 的基础上通过采样 来计算 累计回报的优势的计算方法下面来证明这个式子 引入折扣访问频率定义那么 式可以写成:最后一步是交换求和顺序,先对 求和,剩下的就是定义了 Skill oneTRPO的第一个技巧是,每次更新的策略是临近的,换言之 和 的距离是不远的,因此可以直接近似替代,换个写法,那么 式直接可以改写为:
RLHF
综述这个方法的基本想法就是,我们在强化学习的过程中,可以引入人来打分,避免训练出来的情况不符合预期,更符合实际情况,其大致的流程是: 符号定义这里相比于传统的强化学习是状态-动作,这里假定的环境是在时间 Agent会从环境中观察到 ,并且会选择一个动作 发送给环境 定义一条轨迹的某个片段是由一系列的观察和动作构成的,即 不同于传统强化学习里面环境直接反馈一个Reward回来,这里假设的是人类能够区分不同轨迹之间的优劣,换言之人类能够给出一个偏序,即判定: 评价一个RLHF的算法定量如果说人类给出评价的标准是基于一个可以定量的价值函数 的,即偏序关系 是由产生的那么最后我们只需要看这个Agent是否按照 RL 的标准最大化了 就可以了 定性如果不是能够清晰量化的评判标准,那么就只能靠人类根据感受进行评判了 关于人类选择的记录这里将人类的一个选择记录为 其中的 ,取值分为如下三种情况: 人类认为某个选择更优,则将对应的 置位为 人类认为两个选择等同,则 将独立采样 人类认为不可分辨则该样本不会出现在数据库中最终把所有的数据放在一个数据库 ...
KL Divergence and JS Divergence
KL散度定义假设有两个概率分布 和 ,他们对应的概率密度分别为 和 如果想要用 去近似 则这其中的 KL 散度为: hint 注意KL散度不具有对称性 在离散的情况下面,可以写成: 理解将KL散度展开成两项,有: Hint:为什么最后不是反过来的因为 H(P,Q)自带一个负号 第一项是交叉熵,代表用 去编码 需要的编码长度,所以KL散度可以理解为用Q拟合P比直接使用P需要多用多少信息 JS散度由于KL散度具有不对称性,这里提出JS散度 定义首先设 则如果全部展开,这个式子是:
check2
My name:李冠霖 My NJU ID:221502012 I collaborated with: NAN I would like to thank/reward these classmates for their help: NAN This lab took me about 8 hours to do. I did attend the lab session. Describe Wrap32 and TCPReceiver structure and design. Wrap32: 这个还是蛮简单的,就是要看懂他这里给的是什么意思,首先第一个 wrap 很简单直接加就行了,记得做类型转换就行。第二个 unwrap 最开始我想的是先用 0xffffffff00000000 去 mask 一下这个 checkpoint 把高32位取出来,然后再去凑最近的是哪一个,但是后面发现corner case太多了,不如直接去算最近的是哪一个。首先把减完的 offset 去减去 (1ULL << 32) / 2...
GAIL
最大熵逆强化学习的另一种写法这里给出IRL的另一种表述形式,即:这其中的 表示策略 的熵 Hint:中间的 部分可以理解为首先是在确定 的情况下面选择一个策略让 的熵是最大的,然后在这个情况下算出 再真实的专家策略获得的奖励做比较 在学出来这个 之后,再学习出最优策略 的过程是 关于这个式子怎么推导最佳的策略,请看文章 Maximum Entropy Inverse Reinforcement Learning GAIL如果这里的数据量比较小,就会导致过拟合,所以考虑加上一个对于奖励函数 的正则项,即 ,把这个式子变成: 那么这样重建出来的就是及满足了熵正则又不会过拟合 怎么解上面的式子考虑定义一个occupancy measure 为:可以认为这个是策略 下面出现行为-状态对 的概率密度 如果有了这个重建的策略定义为: 经过一通算可以发现,这里最后的优化目标就是找到而带入 occupancy measure...
check1
Structure and Design这里主要就是需要维护一个区间,来表示每一次插入的时候插入的data是什么以及有效的 first_index 和 last_index 所以首先有一个类 123456789101112131415161718192021class section{private: uint64_t first_index; uint64_t last_index;public: string data;public: section( uint64_t first_index_, uint64_t last_index_, string& data_ ) : first_index( first_index_ ), last_index( last_index_ ), data( std::move( data_ ) ) {}; uint64_t get_first_index() const { return first_index; }; uint64_t get_last_index() const { return...
Maximum Entropy Inverse Reinforcement Learning 论文阅读
背景知识熵信息熵的定义是其含义是含有信息的多少 符号定义轨迹这里定义轨迹是一组决策中所经过的状态、选择的动作的集合 专家示例定义专家的示例(expert demonstrarion)为 表示遵从专家策略选择的一组轨迹 对于价值函数的表示这篇论文认为,价值函数可以相对每个状态的特征进行线性表示,即对于任意一个状态 都可以找到一个 维的向量 来表征其特征,而对于所有状态,可以用一个共享的k维参数向量 表示,即: 重建的价值函数定义重建的价值函数为:表示在某条轨迹下面,所获取的所有价值函数的总和 在前一个假设下,可以写作: 最大熵方法Partition Function(分区函数)定义即对所有轨迹下的所获得的价值函数之和的指数进行求和(连续的情况下就是积分) MaxEnt Formulation在定义的情况下,最大化 来自知乎的解释参考文献:最大熵逆强化学习(Maximum Entropy Inverse Reinforcement Learning)公式推导与疑惑 - 知乎 (zhihu.com) 最大熵学习的追求是要求以 ...