文章目录

  • 前言
  • 一、论文阅读《Interactive Learning from Policy-Dependent Human Feedback》
    • 摘要
    • Introduction
    • Related Work
    • Policy-dependent反馈
    • Convergent Actor-Critic by Humans (COACH)
      • The Advantage Function and Feedback
      • Convergence and Update Rule
    • Experiment
    • Conclusion
  • 二、机器学习算法(二)- 口袋算法(Pocket Algorithm)
    • 模型介绍
    • 算法步骤
    • 代码实现
  • 三、机器学习算法(三)- 标准线性回归算法(Standard Linear Regression Algorithm)
    • 模型介绍
    • 算法步骤
    • 最小二乘法
      • 矩阵分析
    • 代码实现
  • 总结

前言

This week, I read an article about the technical principle of ChatGPT - one of the algorithms of RLHF,and the article proposes a algorithm Convergent Actor-Critic by Humans (COACH). At the same time, I d learned machine learning algorithms . I learned about the Pocket Algorithm and Standard Linear Regression Algorithm in this week .


一、论文阅读《Interactive Learning from Policy-Dependent Human Feedback》

这是一篇ChatGPT背后的技术原理—RLHF的文章,看这篇文章的目的是为了简要了解chatGPT的运行思路。其中文章引用了许多公式,这里不进行陈述,以了解核心步骤为主,不做深究。

摘要

本文研究了利用正反馈和负反馈对教师互动学习行为进行交流的问题。之前关于这一问题的许多研究都假设,人们对依赖于他们所教授的行为的决策提供反馈,并且与学习者当前的政策无关。论文提出的实证结果表明这一假设是错误的——人类训练者对决策的积极或消极反馈受到学习者当前政策的影响。基于这一见解,我们引入了Convergent Actor-Critic by
Humans (COACH),这是一种从策略相关反馈中学习的算法,它收敛到局部最优。最后,论文证明了COACH可以成功地学习物理机器人的多种行为。

Introduction

许多算法利用了人们倾向于给出反馈的观察结果,这些反馈最好被解释为关于智能体应该遵循的策略的指导,而不是智能体要最大化的数值。然而,这些方法假设反馈模型独立于代理当前遵循的策略。我们提出了实证结果,证明了这一假设是不正确的,并进一步证明了策略无关学习算法受到这一假设影响的情况。根据这一结果,我们提出了一种从依赖于策略的人类反馈中学习的算法——Convergent Actor-Critic by
Humans (COACH)。COACH基于这样一种见解,即优势函数(一个值大致对应于与当前政策相比,一个行为的好坏程度)提供了一个更好的人类反馈模型,捕捉了人类反馈的属性,如收益递减、奖励改进,并赋予0值反馈一个语义意义,以防止遗忘。我们将COACH与其他方法在一个具有模拟反馈的简单领域进行比较。

Related Work

为了建模由人类教授的代理的潜在决策问题,我们采用马尔可夫决策过程(MDP)形式主义。MDP的随机策略π是定义智能体行为的每个状态的动作概率分布,在MDP设置中,目标是找到最优策略π *,当智能体根据π *在每个状态下选择行动时,它使期望的未来折现奖励最大化。

在强化学习(RL)中,智能体与建模为MDP的环境交互,但不能直接访问转换函数或奖励函数,而是必须从环境观察中学习策略。

在这项工作中,以人为中心的强化学习(HCRL)问题是一个学习问题,其中智能体位于MDP描述的环境中,但其中奖励是由人类训练者产生的,而不是从一个固定的MDP奖励函数中产生为了定义这个问题的学习算法,我们首先描述了人类训练者通常如何使用数字反馈来教授目标策略。如果反馈是稳定的,并打算最大化,它可以被视为奖励函数和使用标准的RL算法。将反馈解释为奖励的问题导致了这样一种见解,即人类的反馈更好地解释为对代理行为的评论;例如,积极的反馈大致对应“那是好的”,而消极的反馈大致对应“那是坏的”。

在这里研究的策略依赖反馈在行为分析强化计划中被视为必不可少的(Miltenberger, 2011)。训练师被教导提供收益递减(当智能体采取这些行动时,对良好行动的正反馈逐渐减少)、差异反馈(根据行为的改善或恶化程度,反馈的大小不同)和策略塑造(对改善行为的次优行动提供正反馈,然后在做出改善后提供负反馈),所有这些都是策略依赖的。

Policy-dependent反馈

现有HCRL算法的一个常见假设是,反馈只取决于代理的动作选择的质量。另一种假设是反馈也取决于智能体当前的策略。也就是说,一个行为选择可能会受到更大的奖励或惩罚,这取决于主体通常倾向于选择它的频率。例如,对提高绩效的代理给予更大的奖励,而不是维持现状。

作者称前者为策略无关的反馈模型,后者为策略依赖的反馈模型。

然后用一个虚拟狗跑图的实验,检验 反馈模型是否依赖决策
参与者被指示训练一只虚拟狗在网格世界中尽可能快地走到黄色目标位置,但不经过绿色单元格。他们还被告知,由于之前的训练,他们的狗在任务中要么“坏”,“好”,要么“好”,并在训练前展示了每种行为的例子。

最后结果表明,正如预测的那样,反馈符号对学习者的策略是敏感的。

Convergent Actor-Critic by Humans (COACH)

在本节中,将介绍 Convergent Actor-Critic by
Humans (COACH),这是一种基于行为批评的算法,能够从依赖策略的反馈中学习。COACH基于这样一种见解,即优势函数是人类反馈的良好模型,而行动者-评论家算法使用评论家的TD误差更新策略,这是对优势函数的无偏估计。因此,代理人的策略可以直接由人的反馈来修改,而不需要批评组件。我们首先定义优势函数及其解释为训练师反馈。然后,给出了COACH的一般更新规则及其收敛性。最后,提出了实时教练,其中包括提供可变量级反馈和在高频决策周期的问题中学习的机制。

The Advantage Function and Feedback

优势函数AΠ

优势函数描述了在策略π下,与代理的性能相比,动作选择的好坏程度。

优势函数产生的反馈与行为分析中推荐的反馈一致是毫无价值的。因为它被定义为一个行动比其当前策略的改进幅度,所以它会导致不同的反馈。它导致收益递减,因为随着π的改善,改善π的机会减少。事实上,一旦π是最优的,所有基于优势函数的反馈都是零或负的。最后,优势函数反馈引发了策略塑造,因为对于一个行为,反馈是积极的还是消极的,取决于它是否比当前行为有净改善。

Convergence and Update Rule

关于收敛规则 ,论文用到了这一条:∆θ=α∇θρ,θ表示控制智能体行为的参数,α是学习率。
其中:


简单地说,如果训练器选择策略相关反馈ft = Qπ(st, at),我们就得到了一个收敛学习算法,它(局部地)使贴现期望奖励最大化。

同时,论文使用奖励聚合(Knox & Stone, 2009b),解决提供可变大小反馈的接口,以及如何处理稀疏性和反馈时间的问题。在奖励聚合中,训练者从一组离散的反馈值中进行选择,并通过连续给出多个反馈来进一步提高或降低数值。

Experiment

实验部分,论文为了了解不同类型训练师反馈策略下COACH的行为,我们在一个简单的网格世界中进行了受控比较。(这个领域本质上是我们在人类实验中使用的狗领域的扩展版本。)分别从三个算法中进行了实验,每个都维护一个内部数据结构,它使用<s, a, f, s>形式的反馈进行更新,其中s是状态,a是在该状态下采取的操作,f是从训练器接收到的反馈,s是产生的下一个状态。

显示了三种算法的改进反馈实验结果:

最后在不断的优化反馈后,COACH表现最好。

Conclusion

在这项工作中,我们提出了实证结果,表明人们在交互式训练范式中给予智能体的数字反馈受到智能体当前策略的影响,并讨论了为什么这种依赖于策略的反馈能够实现有用的训练策略。然后,我们引入了COACH算法,与现有的以人为本的强化学习算法不同,COACH算法在使用策略相关反馈训练时收敛到局部最优。我们证明了COACH在多种反馈策略下的鲁棒学习,最后证明了COACH可以在具有高级训练方法的机器人环境中使用。

二、机器学习算法(二)- 口袋算法(Pocket Algorithm)

上一周学习了机器学习算法中的感知器学习算法(PLA),该算法可以将数据集完美的分成两种类型,但有一个前提条件就是假定数据集是线性可分的。于是在线性不可分的情况下,人们想出了另一种算法弥补这个缺陷–基于感知器学习算法设计了一个可以处理线性不可分的算法——口袋算法(Pocket Algorithm)。

模型介绍

口袋算法(Pocket Algorithm)是一个二元分类算法,将一个数据集通过线性组合的方式分成两种类型。
该算法是在感知器学习算法的基础上做的改进,其核心思想与感知器学习算法的思想一致,也是以错误为驱动,如果当前结果比口袋中的结果好,则将口袋中的结果替换为当前结果,口袋中保持着当前看到最好的结果,最后找到一个相对不错的答案。

算法步骤

口袋算法(Pocket Algorithm) - 其核心思想就是以错误为驱动,逐步修正错误,每次保存最优解,直到超过循环的次数最后停下。

初始化向量 w,例如 w 初始化为零向量
循环 t = 0,1,2 …
  找到一个随机的错误数据,即 h(x) 与目标值 y 不符
   sign(wtWxn(t)) ≠ yn(t)
  尝试修正向量 w,如果更新后的 w 的错误点相对更新前的 w 更少的时,则更新 w,反之进入下一次循环。
   wt+1 = wt + xn(t)yn(t)
   直到到达设定的最大循环数时退出循环,所得的 w 即为一组方程的解

需要人为定义一个最大的循环次数来作为退出条件,所以口袋算法相对感知器学习算法来说,运行时间会更慢一些。在循环中是随机选取错误点,最后的输出结果在每次运行时也不是一个稳定的结果。

代码实现

  1. 在数据集中随机生成一条划分线
  2. 判断该线的错误数量
  3. 临时更新错误的点的权重
  4. 新的划分线和旧的划分线比较,若新的错误点更少则永久更新权重,反之进入下一次循环
import numpy as npdef errorIndexes(w, X, y):"""获取错误点的下标集合args:w - 权重系数X - 训练数据集y - 目标标签值return:errorIndexes - 错误点的下标集合"""errorIndexes = []# 遍历训练数据集for index in range(len(X)):x = X[index]# 判定是否与目标值不符if x.dot(w) * y[index] <= 0:errorIndexes.append(index)return errorIndexesdef pocket(X, y, iteration, maxIterNoChange = 10):"""口袋算法实现args:X - 训练数据集y - 目标标签值iteration - 最大迭代次数maxIterNoChange - 在提前停止之前没有提升的迭代次数return:w - 权重系数"""np.random.seed(42)# 初始化权重系数w = np.zeros(X.shape[1])# 获取错误点的下标集合errors = errorIndexes(w, X, y)iterNoChange = 0# 循环for i in range(iteration):iterNoChange = iterNoChange + 1# 随机获取错误点下标errorIndex = np.random.randint(0, len(errors))# 计算临时权重系数tmpw = w + y[errors[errorIndex]] * X[errorIndex]# 获取临时权重系数下错误点的下标集合tmpErrors = errorIndexes(tmpw, X, y)# 如果错误点数量更少,就更新权重系数if len(errors) >= len(tmpErrors):iterNoChange = 0# 修正权重系数w = tmpwerrors = tmpErrors# 提前停止if iterNoChange >= maxIterNoChange:breakreturn w

参考:文章

三、机器学习算法(三)- 标准线性回归算法(Standard Linear Regression Algorithm)

元分类算法——感知器算法、口袋算法,这些算法解决的都是分类的问题,但是现实中更多的是例如预测某一地区的房价、银行该给某个人多少额度的信用卡、今天应该买卖多少股票等等这种最后得到一个具体数值结果的问题,这种类型的问题在机器学习中统一被称为回归问题。

模型介绍

回归分析在统计学中是研究多组变量间关系的方法,在机器学习中也是应用广泛,其中一种算法模型 - 线性回归1(Linear Regression)
在一堆二维或者多维的的数据中寻找一个超平面(单变量时为一条直线,两变量时为一个平面),去拟合这些样本点。线性方程如下:
(1)超平面函数方程一般形式
(2)同感知器算法一样,将 b 看作第零个 w,将超平面函数方程简写成两个向量 w 和 x 的点积的形式
y = b + w1x1 + w2x2 + ··· +wmxm = wTx

或者多维的超平面

算法步骤

假设有 N 个样本点 { x , y } { x, y }{x,y},每个样本点的自变量有 M 个 { x1, x2 , . . . } ,则可以定义所有样本点与这个超平面的距离之和为拟合这些样本点的代价函数。

这里用到了两个新的知识点:
矩阵求导,最小二乘法

最小二乘法

在工程应用中,我们经常会用一组观测数据去估计模型的参数,模型是我们根据先验知识定下的。比如我们有一组观测数据( xi , yi )(一维),通过一些数据分析我们猜测y和x之间存在线性关系,那么我们的模型就可以定为:f ( x ) = k x + b

这个模型只有两个参数,所以理论上,我们只需要观测两组数据建立两个方程,即可解出两个未知数。类似的,假如模型有n nn个参数,我们只需要观测n nn组数据就可求出参数,换句话说,在这种情况下,模型的参数是唯一确定解。

但是在实际应用中,由于我们的观测会存在误差(偶然误差、系统误差等),所以我们总会做多余观测。比如在上述例子中,尽管只有两个参数,但是我们可能会观测n nn组数据( x1 , y 1 ) . . , ( x n , yn ),这会导致我们无法找到一条直线经过所有的点,于是求出近似解,使得模型能在各个观测点上达到“最佳“拟合。
最后证明“误差的平方和最小”估计出来的模型是最接近真实情形的。

矩阵分析

代码实现

import numpy as np
def linear(X, y):"""线性回归args:X - 训练数据集y - 目标标签值return:w - 权重系数"""# pinv 函数直接求矩阵的伪逆矩阵return np.linalg.pinv(X).dot(y)

总结

本周阅读了论文《Interactive Learning from Policy-Dependent Human Feedback》,这就一篇关于chatGPT的基础文章,其内容大意是讲述了Convergent Actor-Critic by Humans (COACH)从人类反馈中学习强化学习的其中一个算法Convergent Actor-Critic by Humans (COACH)。证明了COACH算法在使用策略相关反馈训练时收敛到局部最优以及COACH在多种反馈策略下的鲁棒性。同时对学习机器学习的算法也有了新的进展和认识,知道了理论知识的重要性,一个模型是如何一步一步被推出来的。本周学习了口袋算法(Pocket Algorithm),和标准线性回归算法(Standard Linear Regression Algorithm),下周将继续对机器学习的其他算法进行学习。

2022.2.26 第十五次周报相关推荐

  1. 2022.10.9 第二十五次周报

    目录 前言 文献阅读-<使用深度学习方法进行河水温度预测> 题目 作者 核心内容 主要技术 测试模型 气流模型 随机森林 反向传播神经网络 区块链:BTC协议 double spendin ...

  2. 2022.11.6 第二十九次周报

    目录 前言 文献阅读 题目 作者 背景 主要问题 拟定方案 开创性贡献 工业5.0中IIoT的拟议联合网络自动化方案概述以及详细的结构设计流程和数学初步 面向工业5.0的拟议方案概述 区块链赋能的联邦 ...

  3. 2022.10.16 第二十六次周报

    目录 前言 文献阅读-<基于卷积神经网络的手语静态手势识别及基于ORB描述符和Gabor滤波器的特征提取方法> 核心思路 主要操作 1.预处理 2.特征提取 3.结构的架构 工程-CNN内 ...

  4. Hibiscus的脑机接口学习周报(2022/12/26~2022/1/1)

    2022/12/26(星期一) 在学习使用python mne库读取.set类型数据时,遇到了类似如下报错:buffer is too small (来源于Python读取.set格式的脑电数据出现b ...

  5. 第十五周学习周报(20180611-20180617)

    第十五周学习周报 一.本周学习情况 1.本周主要学习李宏毅老师的机器学习课程 Backpropagation Convolutional Neural Network Semi-supervised ...

  6. 平安科技移动开发二队技术周报(第十五期)

    平安科技移动开发二队技术周报(第十五期) @author ASCE1885的 Github 简书 微博 CSDN 业界新闻 1)谷歌重组更名Alphabet 谷歌8月11日宣布重组.拉里-佩奇将与谢尔 ...

  7. 2022.3.12 绍兴文理学院元培学院第十五届大学生程序设计竞赛

    绍兴文理学院元培学院第十五届大学生程序设计竞赛 A 阳光明媚的数学题 B 爱的素数 C 庄生的笔 D 上流的聚餐 E 规划(一) F 规划(二) G 运动的球球 H 物资转移 I 小杨环 J 前四位 ...

  8. 【2022/01/21】thinkphp源码无差别阅读(二十五)

    thinkphp源码无差别阅读(二十五) ORM阅读 db/CacheItem.php 属性:key.value.expire.tag.isHit 构造方法:__construct 为此缓存项设置键: ...

  9. 【2022 CCF BDCI文心大模型创意项目】使用文心大模型制作《十五的月亮》MV

    一.使用文心大模型制作<十五的月亮>MV 在文心大模型ERNIE-ViLG文生图模型地址:https://wenxin.baidu.com/moduleApi/ernieVilg) 能力很 ...

最新文章

  1. linux下-exec和xargs的区别
  2. 有了这篇你还说你不会redis性能优化、内存分析及优化
  3. NeurIPS 2020有哪些值得读的「图神经网络」论文?
  4. 前端周刊第58期:送你 3 道面试题
  5. OpenGL+VS2013环境配置
  6. miui v5 android版本,miuiv5主题下载-miuiv5主题(MiroEX) 安卓版v3.4.1-PC6安卓网
  7. 亚马逊美国站审核便携式火炉逊、户外烧烤架ASTM F3363测试项目
  8. ResHacker NSIS获取控件ID居家CODE必备良药!!!!!
  9. ❤️FFmpeg❤️ MP4格式文件,将MPEG4的编码方式转为H.264
  10. python3.7-secrets模块
  11. Unity Shader 学习记录(5) —— 实现漫反射光照模型
  12. excel数据分析 - 39个快捷键&10个操作技巧
  13. PacBio和NanoPore两种三代测序仪的比较
  14. tf24: GANs—生成明星脸
  15. sqlite的count
  16. 基于Android实现的锁屏软件APP
  17. npm ERR! fatal: unable to access ‘https://github.com/adobe-webplatform/eve.git/‘: OpenSSL SSL_read:
  18. [SSL: CERTIFICATE_VERIFY_FAILED] certificate verify failed
  19. 【优化求解】基于自适应模拟退火粒子群优化算法求解单目标优化问题matlab代码
  20. 通过jsp向mysql批量导入数据_对大数据的批量导入MySQL数据库

热门文章

  1. IPO势必重启 改革方案即将征求意见
  2. mRNA免疫荧光实验
  3. 面试官最讨厌求职者的行为有哪些?
  4. VSAN 6.1九大特性
  5. Kdevelop显示行号
  6. java毕业设计高校体育场馆预约管理系统设计与实现(附源码、数据库)
  7. ADS-B显示终端6.8 基本操作视频 更新
  8. Python爬取B站排行榜前100视频信息
  9. java c语言语法对比_c语言和java语法有区别吗?
  10. 对顺序表中元素从小到大排序的算法