An Actor–Critic based controller for glucose regulation in type 1 diabetes

2023-12-28 04:38

本文主要是介绍An Actor–Critic based controller for glucose regulation in type 1 diabetes,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

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(yx,u) 从状态x到下一个状态y的转换依赖于状态x和通过转换概率函数的当前控制动作u.
每个状态被分配相应的局部 代价 c ( x , u ) c(x,u) c(x,u) 表示它的 quality。
控制策略 —— control policy μ ( u ∣ x , θ ) \mu(u|x,\theta) μ(ux,θ),maps the state x to the control input u,根据参数 θ ∈ R K \theta \in R^K θRK
对任意的 θ \theta θ 马尔科夫链 X k {X_k} Xk X k , U k {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)=πθ(ux,θ)
目标函数 —— the average cost
在这里插入图片描述
状态价值函数 —— V θ ( x ) V_\theta (x) Vθ(x) 状态 x x x 的 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 ∈ R K r \in R^K rRK , φ θ \varphi_\theta φθ 是 依赖于 Actor的参数 θ \theta θ 的基础函数的向量。
用 Temporal Differences (TD) 来更新 Critic 的参数向量 r r r 并且形式化表示为:
在这里插入图片描述
其中, d k d_k dk 是 TD error,定义为连续两个预测之间的误差,公式化表示为:
在这里插入图片描述
其中, γ k c \gamma _k ^c γkc 是一个正的非递增函数,定义了 Critic 的学习率, 0 < λ < 1 0 < \lambda<1 0<λ<1是一个常数, r T r^T rT 表示转置。
资格迹(eligibility vectors) z k z_k zk 实现了算法的迭代,定义为:
在这里插入图片描述
z k z_k zk 的更新规则由下式给出:
在这里插入图片描述
最终,average cost 定义为:
在这里插入图片描述

Actor:用于近似策略函数 μ ( u ∣ x ) \mu (u|x) μ(ux)
Actor 的目标是通过拟合最优控制策略 μ ( u t ∣ x t , θ t ) \mu(u_t|x_t,\theta_t) μ(utxt,θ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 其中, G m a x , G m i n G_{max},G_{min} Gmax,Gmin 是一天中测量的最高和最低血糖浓度。 G h G_h Gh 是高血糖阈值界 G h = 230 m g / d l G_h=230 mg/dl Gh=230mg/dl G l G_l Gl 是低血糖阈值界 G l = 70 m g / d l G_l=70mg/dl Gl=70mg/dl。注意我们放松了高血糖阈值界(从180到230),目的是为了避免 coarse insulin increments 从而导致低血糖。特征 F 1 F_1 F1 F 2 F_2 F2 组成当前时刻状态 x k = [ F 1 k F 2 k ] T x_k=[F_1^k F^k_2]^T xk=[F1kF2k]T 被算法用于估计Q值函数和Actor的参数。分配到每一天的 local cost 被定义为:
在这里插入图片描述
\qquad 权重 a h a_h ah a l a_l al 用来权衡高低血糖的比重, a h = 0.01 a_h = 0.01 ah=0.01 a l = 0.1 a_l=0.1 al=0.1 a l a_l al 被赋予较大的值,说明优先考虑低血糖的严重后果,从而尽量避免低血糖的发生。通过试错法合适的权重值,并且 a h / a l a_h/a_l ah/al 的阶数比权重的实际值起着更重要的作用。
\qquad 控制策略,例如接下来几天的平均基础率,计算方式为:
在这里插入图片描述
其中, P b a s P_{bas} Pbas B m e a n B_{mean} Bmean 比率的改变的估计:
在这里插入图片描述
θ = [ θ 1 θ 2 ] T \theta = [\theta_1 \theta_2]^T θ=[θ1θ2]T 是 Actor 的参数向量。

\qquad Critic 的基础函数 φ θ \varphi_\theta φθ 设置为等于 ψ θ \psi_\theta ψθ,这是AC算法的最直接的实现方式。
\qquad 所有患者的 Critic 的参数向量 r r r 被初始化为 (0,1) 之间的随机值。所有患者的 Actor 的参数向量 θ \theta θ 被初始化为 0。初始的基础率被设置为使患者保持空腹血糖的最佳基础率,由UVA模拟器提供。Actor 和 Critic 的学习率被定义为:
在这里插入图片描述
\qquad 已经选择了学习率函数,需要注意以下问题:

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

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

  • Profile 1 (P1):实际基础率是根据临床启发式方法计算每天每小时基础胰岛素输注的百分比:
    在这里插入图片描述
    其中 B B B 是 每日基础胰岛素输注总量。为此,一天的总基础胰岛素是根据平均基础率计算的,然后根据前面的公式估计一天的实际基础率。
  • Profile 2 (P2):平均基础胰岛素的注入速率是恒定的。
2.2.2. Bolus-AC

IC率 的估计方法与 基础率 相似。每天的血糖状况也使用相同的特征,控制策略将IC率定义为:
在这里插入图片描述
其中, P I C P_{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的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/545079

相关文章

Retrieval-based-Voice-Conversion-WebUI模型构建指南

一、模型介绍 Retrieval-based-Voice-Conversion-WebUI(简称 RVC)模型是一个基于 VITS(Variational Inference with adversarial learning for end-to-end Text-to-Speech)的简单易用的语音转换框架。 具有以下特点 简单易用:RVC 模型通过简单易用的网页界面,使得用户无需深入了

Oracle type (自定义类型的使用)

oracle - type   type定义: oracle中自定义数据类型 oracle中有基本的数据类型,如number,varchar2,date,numeric,float....但有时候我们需要特殊的格式, 如将name定义为(firstname,lastname)的形式,我们想把这个作为一个表的一列看待,这时候就要我们自己定义一个数据类型 格式 :create or repla

MVC(Model-View-Controller)和MVVM(Model-View-ViewModel)

1、MVC MVC(Model-View-Controller) 是一种常用的架构模式,用于分离应用程序的逻辑、数据和展示。它通过三个核心组件(模型、视图和控制器)将应用程序的业务逻辑与用户界面隔离,促进代码的可维护性、可扩展性和模块化。在 MVC 模式中,各组件可以与多种设计模式结合使用,以增强灵活性和可维护性。以下是 MVC 各组件与常见设计模式的关系和作用: 1. Model(模型)

Caused by: org.hibernate.MappingException: Could not determine type for: org.cgh.ssh.pojo.GoodsType,

MappingException:这个主要是类映射上的异常,Could not determine type for: org.cgh.ssh.pojo.GoodsType,这句话表示GoodsType这个类没有被映射到

Spring 注解(@Repository 、@Service 和 @Controller )

Spring 2.5 中除了提供 @Component 注释外,还定义了几个拥有特殊语义的注释,它们分别是:@Repository、@Service 和 @Controller 。         在目前的 Spring 版本中,这 3 个注释和 @Component 是等效的,但是从注释类的命名上,很容易看出这 3 个注释分别和持久层 、业务层 和控制层 相对应。虽然目前这 3 个注释和 @

easyswoole not controller class match

not controller class match composer.json 注册 App 这个名称空间了吗?执行过 composer dump-autoload 了吗?存在 Index 控制器,但是文件大小写、路径都对了吗? task socket listen fail 注意,在部分环境下,例如 win10 的 docker 环境中,不可把虚拟机共享目录作为 EasySwoole 的 T

MACS bdgdiff: Differential peak detection based on paired four bedGraph files.

参考原文地址:[http://manpages.ubuntu.com/manpages/xenial/man1/macs2_bdgdiff.1.html](http://manpages.ubuntu.com/manpages/xenial/man1/macs2_bdgdiff.1.html) 文章目录 一、MACS bdgdiff 简介DESCRIPTION 二、用法

Neighborhood Homophily-based Graph Convolutional Network

#paper/ccfB 推荐指数: #paper/⭐ #pp/图结构学习 流程 重定义同配性指标: N H i k = ∣ N ( i , k , c m a x ) ∣ ∣ N ( i , k ) ∣ with c m a x = arg ⁡ max ⁡ c ∈ [ 1 , C ] ∣ N ( i , k , c ) ∣ NH_i^k=\frac{|\mathcal{N}(i,k,c_{

兔子--The method setLatestEventInfo(Context, CharSequence, CharSequence, PendingIntent) from the type

notification.setLatestEventInfo(context, title, message, pendingIntent);     不建议使用 低于API Level 11版本,也就是Android 2.3.3以下的系统中,setLatestEventInfo()函数是唯一的实现方法。  Intent  intent = new Intent(

AI模型:追求全能还是专精?-- 之6 语言复杂度类别(Category 0~3 类)和语言功能性类型(Type 0~Ⅲ 型)之2

Q17、我前面说过,语言复杂度的0~3级(Category 0~3)表示了语言的的上下文相关性 : 完全不相关, 单相关的 单词上下文, 双相关的句子上下文 全相关的文章上下文 。我准备翻译为 Context - irrelative /relative/correlative/ full-correlative,显式表达了语言复杂度的0~3级(Category 0~3)区别的上下文相关性是一种关