a b s t r a c t

\qquad 控制器基于Actor-Critic(AC)算法,受强化学习和最优控制理论(optimal control theory)的启发。控制器的主要特性是:

  1. 同时调整 胰岛素基础率 the insulin basal rate 和 大剂量 the bolus dose;
  2. 根据临床规程进行初始化;
  3. real-time personalization。

\qquad 所提出的方法的有效性利用 开环 和 闭环程序 在 silico 数据集中 adults, adolescents 和 children 人群中进行了验证,食用含碳水化合物大约在25%左右的 announced meals。
\qquad 结果显示血糖控制在三组人群中都是有效的,即使在食物中碳水化合物的成分不确定的时候。the Control Variability Grid Analysis (CVGA) 的 A + B zones 中的百分数分别是:成人100%,青少年93%,儿童93%。
\qquad 基于AC的控制器似乎是一种很有前途的方法来自动调节胰岛素输注,以改善血糖控制。算法优化后,控制器将用于临床试验。

2. Methods

2.1 AC algorithm

p(y∣x,u)p(y|x,u)p(y∣x,u) 从状态x到下一个状态y的转换依赖于状态x和通过转换概率函数的当前控制动作u.
每个状态被分配相应的局部 代价 c(x,u)c(x,u)c(x,u) 表示它的 quality。
控制策略 —— control policy μ(u∣x,θ)\mu(u|x,\theta)μ(u∣x,θ),maps the state x to the control input u,根据参数 θ∈RK\theta \in R^Kθ∈RK
对任意的 θ\thetaθ 马尔科夫链 Xk{X_k}Xk​ 和 Xk,Uk{X_k, U_k}Xk​,Uk​ 是 irreducible 和 aperiodic, 其稳定概率分布为 πθ(x)\pi _ \theta(x)πθ​(x) 和 ηθ(x,u)=πθ(u∣x,θ)\eta _ \theta (x,u) = \pi _ \theta(u|x,\theta)ηθ​(x,u)=πθ​(u∣x,θ)
目标函数 —— the average cost

状态价值函数 —— Vθ(x)V_\theta (x)Vθ​(x) 状态 xxx 的 expected future cost

Vθ(x)V_\theta (x)Vθ​(x) 满足如下的泊松公式:

动作价值函数 —— Qθ(x,u)Q_\theta (x,u)Qθ​(x,u) :

梯度 ∇θαˉ(θ)\nabla_\theta \bar{\alpha}(\theta)∇θ​αˉ(θ) 表示为:

其中,

Critic:用于近似Q价值函数 Q(x,u)Q(x,u)Q(x,u),用线性参数化的函数进行近似:

其中,r∈RKr \in R^Kr∈RK , φθ\varphi_\thetaφθ​ 是 依赖于 Actor的参数 θ\thetaθ 的基础函数的向量。
用 Temporal Differences (TD) 来更新 Critic 的参数向量 rrr 并且形式化表示为:

其中, dkd_kdk​ 是 TD error,定义为连续两个预测之间的误差,公式化表示为:

其中, γkc\gamma _k ^cγkc​ 是一个正的非递增函数,定义了 Critic 的学习率,0<λ<10 < \lambda<10<λ<1是一个常数,rTr^TrT 表示转置。
资格迹(eligibility vectors) zkz_kzk​ 实现了算法的迭代,定义为:

zkz_kzk​ 的更新规则由下式给出:

最终,average cost 定义为:

Actor:用于近似策略函数 μ(u∣x)\mu (u|x)μ(u∣x)。
Actor 的目标是通过拟合最优控制策略 μ(ut∣xt,θt)\mu(u_t|x_t,\theta_t)μ(ut​∣xt​,θt​) 最小化 average cost aˉ\bar{a}aˉ 。每次迭代中,参数更新是基于 Critic 的估计来进行的:

其中,γkα\gamma_k^\alphaγkα​ 是正的、非增函数,定义了Actor 的学习率。

2.2 implementation

\qquad 制定两个 AC 算法,一个用于估计 基础率,另一个用于估计 大剂量。算法使用了 the University of Virginia (UVa) T1D simulator 教育版 进行了评估。在每天开始时,算法根据前一天的血糖值进行迭代,其中k表示试验第k天。
\qquad Basal-AC 用来调节一天的平均基础率,Bolus-AC 则用来估计 各自的 IC ratio, IC ratio根据下一餐的量进行估计,被用于计算 大剂量给药量。

2.2.1 Basal-AC

\qquad Actor 的策略是 the daily average basal rate。过去一天血糖变化的两个特征用于调整平均基础率,并被定义为:

\qquad 其中,Gmax,GminG_{max},G_{min}Gmax​,Gmin​ 是一天中测量的最高和最低血糖浓度。GhG_hGh​ 是高血糖阈值界 Gh=230mg/dlG_h=230 mg/dlGh​=230mg/dl,GlG_lGl​ 是低血糖阈值界 Gl=70mg/dlG_l=70mg/dlGl​=70mg/dl。注意我们放松了高血糖阈值界(从180到230),目的是为了避免 coarse insulin increments 从而导致低血糖。特征 F1F_1F1​ 和 F2F_2F2​ 组成当前时刻状态 xk=[F1kF2k]Tx_k=[F_1^k F^k_2]^Txk​=[F1k​F2k​]T 被算法用于估计Q值函数和Actor的参数。分配到每一天的 local cost 被定义为:

\qquad 权重 aha_hah​ 和 ala_lal​ 用来权衡高低血糖的比重,ah=0.01a_h = 0.01ah​=0.01,al=0.1a_l=0.1al​=0.1。 ala_lal​ 被赋予较大的值,说明优先考虑低血糖的严重后果,从而尽量避免低血糖的发生。通过试错法合适的权重值,并且 ah/ala_h/a_lah​/al​ 的阶数比权重的实际值起着更重要的作用。
\qquad 控制策略,例如接下来几天的平均基础率,计算方式为:

其中, PbasP_{bas}Pbas​ 是 BmeanB_{mean}Bmean​ 比率的改变的估计:

θ=[θ1θ2]T\theta = [\theta_1 \theta_2]^Tθ=[θ1​θ2​]T 是 Actor 的参数向量。

\qquad Critic 的基础函数 φθ\varphi_\thetaφθ​ 设置为等于 ψθ\psi_\thetaψθ​,这是AC算法的最直接的实现方式。
\qquad 所有患者的 Critic 的参数向量 rrr 被初始化为 (0,1) 之间的随机值。所有患者的 Actor 的参数向量 θ\thetaθ 被初始化为 0。初始的基础率被设置为使患者保持空腹血糖的最佳基础率,由UVA模拟器提供。Actor 和 Critic 的学习率被定义为:

\qquad 已经选择了学习率函数,需要注意以下问题:

  1. 最大的收敛时间为20天;
  2. 批评家需要更快的学习;
  3. 基础变化率大约在10%。

\qquad Basal-AC 的学习率在图2a中给出。需要指出的是,选择20天作为最大收敛时间是为了确保算法有足够的时间进行必要的胰岛素调整,从而有效地调节葡萄糖。
\qquad 我们研究了输注的基础率的两种情况:

  • Profile 1 (P1):实际基础率是根据临床启发式方法计算每天每小时基础胰岛素输注的百分比:

    其中 BBB 是 每日基础胰岛素输注总量。为此,一天的总基础胰岛素是根据平均基础率计算的,然后根据前面的公式估计一天的实际基础率。
  • Profile 2 (P2):平均基础胰岛素的注入速率是恒定的。
2.2.2. Bolus-AC

IC率 的估计方法与 基础率 相似。每天的血糖状况也使用相同的特征,控制策略将IC率定义为:

其中, PICP_{IC}PIC​ 是 IC 的变化率,被估计为:

θ=[θ1θ2]T\theta = [\theta_1 \theta_2]^Tθ=[θ1​θ2​]T 是 Actor 的参数向量。

\qquad 与 Basal-AC 的情况相同,Critic 的 basis functions φθ\varphi_\thetaφθ​ 设置为等于 ψθ\psi_\thetaψθ​。Actor 和 Critic 的参数初始化与 Basal-AC 情况相同。每名患者的 初始 ICratio 被设置为 最优 IC ratio,由 the UVa simulator 提供。Actor 和 Critic 的学习率与 Basal-AC 形式相同,被定义为:

Bolus-AC 的学习率如 Fig. 2b 所示。
\qquad 算法是利用MathWork MATLAB和MathWork Simulink软件开发的。

3. Results

\qquad 该模拟器的总数据库包括10名成年人、10名青少年和10名儿童; 其中两名儿童被排除在外,原因是他们的葡萄糖反应过度。为了模拟试验,我们设计了一种每日膳食方案,包括四种不同大小、不同时间的膳食,详见[45]。 在模拟中,进餐是在进餐前半小时宣布的。为了弥补膳食估计的不准确,这些膳食被随机指定——正确的CHO 含量、低估25%、高估25%。
\qquad 基础输注(The basal infusion profiles),P1 和 P2, 应用于所有的患者。P1对成年人和青少年有效。除了一名12岁(青春期)儿童和一名超重儿童外,大多数儿童通过每天持续的基础胰岛素注射得到了更好的调节(P2)。这一观察结果与临床实践一致,即儿童在青春期开始之前,经常接受恒定的基础率治疗。
\qquad 总试验时间为30天。我们评估了 控制算法 是否有 适当的更新 基础率 和 IC比率的能力,有效的实现了 28例患者在 Control Variability Grid Analysis (CVGA)[46] 中的 葡萄糖调节。
\qquad 图 3 给出了三个例子,分别针对不同的年龄组,说明 controller 的 调整 胰岛素输注方案 的能力,在逐渐将血糖浓度控制在正常血糖范围内时。对于成年人和青少年,基础率 和 IC率 的表现都很好。该算法仅对胰岛素输注方案进行了微调(图3a 和 图3b),就能够保证这种性能,并且迅速收敛到最终的基础剂量方案;成人的平均收敛时间为4天,青少年为2天。然而,对于儿童,AC的效果很明显,如图3c所示。很明显,随着胰岛素输注的调整,葡萄糖逐渐向正常血糖界限靠拢。
在这种情况下,算法需要更多的时间来达到最终值,需要10 - 20天。
\qquad evaluation 基于最后10天的实验数据,在达到收敛后进行。三个年龄组的患者在试验期最后10天的CVGAs如图4所示。在A + B区,成人的天数百分比为100%,青少年和儿童的天数分别为93%。虽然发生了低血糖事件,特别是儿童,但没有观察到严重的低血糖(没有在区域E的)。

\qquad 控制变化性网络分析(Control Variability Grid Analysis,CVGA)

3.1 Meal announcement: accurate vs. inaccurate

\qquad 为了研究 controller 对不确定的膳食 的处理能力,将该算法在初始实验设置下的性能 与 仅包含确定的膳食计划的第二次试验的性能 进行了比较。Table 1 给出了 两个实验中每个 CVGA区域的点的百分比。由于膳食的不确定性,A+B区域的百分比 比 确定饮食的要低,青少年为-4%,儿童为-3%,成年人没有区别(两次实验的 A+B 均为 100%)。由此可见,***膳食不确定性对控制器的性能影响不大,说明AC能够分别考虑这些不确定性和优化控制器的性能 ***。

3.2. Insulin infusion: open vs. closed-loop

\qquad 第三次实验是为了比较算法在 基础率和IC比率固定的开环情况下 的性能(基础率和IC比率又模拟器提供)。从 Table 1 展示的结果中,我们可以观察到 AC算法很明显的改善了血糖调节,尤其是对儿童,与开环方法相比,A+B区域的百分比提高了 220%。对于成年人和青少年,改善较少(分别为15%和2%),因为如前所述,这些患者的初始基础值和IC值能够充分调节血糖值(我理解:初始注射就可以使得血糖有效下降)。

4. Discussion

\qquad 在这项研究中,一个自适应控制算法被设计和发展为估计 最佳的基础胰岛素率和IC比率。该算法对三个年龄组的患者进行了评估,但在饮食方面存在不确定性。AC算法的目的是估计最佳的基础胰岛素率和IC比率,以最小化低血糖和高血糖事件引起的成本。调整包括一个临床适用的方法来初始化基础率和IC比率和有限的人工干预,限制在学习率的设计。
学习速率参数的值对所有患者都是通用的,并且是根据患者的定性特征估计的。该算法能够对所有患者进行收敛,并实现有效的血糖调节,在大多数情况下没有发生低血糖事件。AC的贡献在儿童中尤其显著,因为儿童最初的基础值和IC值不足以进行有效的控制。此外,当膳食被准确估计时,算法的性能是相似的,这表明所提出的方法能够处理错误的CHO计数引起的不确定性。
\qquad AC算法被提出作为一种新的自适应的方法,以调节葡萄糖,其目的是补偿主体的变化和不确定的膳食估计。改进该方法需要解决和讨论几个问题。
\qquad 学习:使用自适应算法对于未建模动态的复杂系统,如glucoregulatory系统是一个复杂的任务,不是建立在文学,由于高多样性和特殊的特点,定义每个系统和实施需要不同的方法。在血糖控制方面,一个重要的问题是,在试验的任何阶段都不能接受极值。这就限制了学习过程的设计,通常需要较慢的学习速度,然而,这应该弥补快速收敛到正常血糖的需要。
根据[25],临床可接受的收敛速度大约为7天。在AC的情况下,虽然成人和青少年满足这一要求,但儿童需要更多的时间,直到算法设法实现血糖调节接近正常血糖。原因可能是,如开环试验所示,基础率和IC比值的初始值未能给予足够的葡萄糖调节。这表明需要在患者相关信息的基础上制定和调整葡萄糖调节的控制算法。在这个框架下,个性化学习率的设计可能会导致更快的收敛和改善血糖控制。
\qquad 餐数估算:当前版本的算法要求在进食前通知传入的餐数,以便给出所需的bolus。然而,AC也可以与诸如[27,47]中提到的膳食检测算法相结合,以最小化患者在控制过程中的介入和主观性。

5. Conclusions

\qquad 一种基于AC学习算法的新型自适应控制方法已被提出,用于在CGM和胰岛素泵下同时调整T1D患者的基础发病率和IC比率。AC已被证明是一种很有前途的控制方法,能够有效地执行在存在的变数和不确定的膳食估计,并改善血糖控制相比,标准优化开环基础丸治疗。为了避免血糖调节系统的数学模型带来的额外误差,该算法以无模型的方式设计和开发。胰岛素给药政策的结果符合临床公认的各年龄段的特点。未来的工作应该包括基于患者具体信息的个性化学习率的调查,以加速融合。结合其他模块,如食物检测算法,可以增强算法的自主性。

An Actor–Critic based controller for glucose regulation in type 1 diabetes相关推荐

  1. 【强化学习笔记】2020 李宏毅 强化学习课程笔记(PPO、Q-Learning、Actor + Critic、Sparse Reward、IRL)

    前言 如果你对这篇文章感兴趣,可以点击「[访客必读 - 指引页]一文囊括主页内所有高质量博客」,查看完整博客分类与对应链接. 文章目录 前言 Introduction Two Learning Mod ...

  2. 深度增强学习--Actor Critic

    Actor Critic value-based和policy-based的结合 实例代码 1 import sys 2 import gym 3 import pylab 4 import nump ...

  3. 强化学习论文笔记:Soft Actor Critic算法

    Soft Actor Critic是伯克利大学团队在2018年的ICML(International Conference on Machine Learning)上发表的off-policy mod ...

  4. CS294(285) Actor Critic算法系列

    CS294(285) Actor Critic算法系列 CS294(285) Actor Critic之agents(https://duanzhihua.blog.csdn.net/article/ ...

  5. actor critic玩cartpole

    只能玩到reward=200多,git actor critic采用单步更新,每一步游戏后Actor和Critic都进行学习. Actor网络使用交叉熵损失,是因为r_s为正时需要增加选择a_s的概率 ...

  6. 【强化学习】Actor Critic原理

    PG算法是一种只基于policy的一种方法,存在的问题就是该算法需要完整的状态序列,且单独对策略函数进行迭代更新,不太容易收敛. Actor-critic方法呢是一种将 策略(Policy Based ...

  7. SpringBoot 项目中在Controller 直接调用Mapper,提示:Field mapper in ‘*Controller ‘ required a bean of type ‘*Map

    今天使用IDEA 搭建SpringBoot 项目,我心血来潮想省略Service 层的编写就直接在Controller 层调用Mapper 层接口,提示如下错误信息: **************** ...

  8. Field **Service in **Controller required a bean of type **that could not be found.

    Spring Boot项目进行web开发 出错 错误描述 Field ServerService in com.boot.mms.business.server.controller.ServerCo ...

  9. 深度增强学习--DDPG

    DDPG DDPG介绍2 ddpg输出的不是行为的概率, 而是具体的行为, 用于连续动作 (continuous action) 的预测 公式推导 推导 代码实现的gym的pendulum游戏,这个游 ...

最新文章

  1. NSDictionary、NSMutableDictionary基本使用
  2. 这是一名南京985AI硕士,CSDN博客专家
  3. 水稻微生物组时间序列分析
  4. JavaScript 笔记 ( Prototype )
  5. 百度推出惊雷算法,打击快排产业,但重点是这个工具
  6. BZOJ2648: SJY摆棋子
  7. android系统性能优化(13)---Android性能优化典范 - 第1季
  8. js已知文件路径得到file对象_NodeJs 的几种文件路径
  9. 设计模式解密(7)- 代理模式
  10. JavaScript之表单验证
  11. matlab hough变换检测平行直线,浅谈Hough变换的平行直线检测改进方案
  12. 解决浏览器 fakepath 实现图片上传预览
  13. java contains忽略大小写_关于java:字符串包含-忽略大小写
  14. 条码生成器如何导入CSV文件批量生成条形码
  15. 2021国内软件开发培训机构排名,避坑必看!
  16. OSChina 周四乱弹 ——来,带你吃旋转寿司
  17. java课程设计中国象棋对弈xitong_java课程设计中国象棋对弈系统txt
  18. 微信小程序邀请判断登陆信息(邀请前做其他操作)
  19. win10如何彻底关闭病毒实时保护
  20. 红米手机使用应用沙盒动态修改位置数据

热门文章

  1. 购买公司旅行保险计划的10个提示
  2. 北航计算机学院吉祥物,北航软件学院吉祥物征集令
  3. 【java】计算员工工资
  4. 街区尺度下的通勤出行方式挖掘及其影响因子:以北京市为例
  5. MySQL 8.0原理与实战一网打尽,甲骨文数据库专家硬刚5年之作
  6. 魅族android不兼容Android,魅族17系列彻底跟上时代,搭载基于Android 10的Flyme 8.1系统...
  7. php获取搜索记录,PHP写的获取各搜索蜘蛛爬行记录代码
  8. 【AI应用】NVIDIA GeForce RTX 2060的详情参数
  9. 使用Python Openssl库解析X509证书信息
  10. Flutter高仿微信-第36篇-单聊-语音通话