[深度学习应用]神经网络算法在MRI领域的应用

简介: 笔记

一.自优化?自判别?从神经网络到CEST-MRI


 神经网络处理回归问题的原理是基于训练样本的输入与输出之间的关系,通过调整神经网络的参数来使得神经网络对新的输入数据做出预测,并且使得神经网络输出的预测结果尽可能地准确。

 具体来说,回归问题中的目标是预测一个连续值。神经网络可以通过学习输入与输出之间的非线性映射关系,捕获输入和输出之间的复杂关系,并用该关系来为新数据提供预测输出。

 在神经网络中,回归问题通常使用具有一个或多个连续输出的输出层,并使用一个适当的损失函数(例如均方误差)来评估预测输出与真实输出之间的误差。为了减少损失函数,神经网络将在训练期间不断调整权重和偏差,并优化模型以最大程度地准确预测输入数据的输出值。

 应用神经网络算法,CEST-MRI成像中的扫描参数(即若干次扫描中不同饱和脉冲强度𝐵_1、偏频∆ω的组合)作为神经网络参数进行自动优化,同时将目标物质与CEST效应有关的参数(即比例浓度𝑓_b、交换速率𝑘_b、横向弛豫速率𝑅_2b)和可以表征预设物质组分模型是否符合实际情形的参数(数值拟合的残差均方根值RMSE)作为神经网络输出一并获得。

 同时实现扫描参数自动优化、目标物质参数准确计算及物质组分模型可靠性自动判别


二.模拟数据集的构建


 拟尝试不同策略的多组(∆ω,𝐵_1)的组合作为神经网络的初始值分别进行训练优化。例如:

 ①固定𝐵_1=0.6 μT,∆ω在1.4 ppm到4.0 ppm之间以0.2 ppm步进;及固定∆ω=1.7, 1.9, 2.1, 2.3, 2.5, 2.7, 2.9 ppm,𝐵_1在0.3 μT至1.5 μT之间以0.3 μT步进。

 ②∆ω在1.4 ppm到2.9 ppm之间以0.2 ppm步进,𝐵_1在0.3 μT至1.5 μT之间以0.2 μT步进。

 ③仿照压缩感知方法在∆ω=1.5~2.9 ppm、𝐵_1=0.3~1.5 μT的范围内进行较无规律的20个点的采样;及固定𝐵_1=0.6 μT,∆ω在1.0 ppm到2.0 ppm之间、3.0 ppm到5.0 ppm之间以0.2 ppm步进。其余固定的采样参数为:饱和脉冲时长为1.5 s,采样重复时间TR为2.0 s。

 在模拟采样中,利用𝑅_1𝜌弛豫模型计算出一组𝑅_1𝜌值和相应的一组Z值,并基于实际成像信噪比叠加上标准差在0.002-0.006之间随机取值的高斯白噪声,构成一个数据组。每组用于训练神经网络模型的模拟数据集包含约10万个独立的数据组。


三.神经网络的构建与训练


 待训练的神经网络是具有一个输入层、一个输出层、多个隐藏层(约10-20个)的前馈神经网络。

 神经网络总体架构类似于Perlman等人研究中使用的AutoCEST神经网络架构。

 神经网络的前一部分是对CEST数据(Z值)的采集进行模拟。该部分的输入层包括随机生成的各项参数如水的弛豫时间、各种溶质的含量交换速率和弛豫时间、主磁场偏移、叠加在Z值上的随机噪声值等;该部分的节点间传递函数为基于𝑅_1𝜌弛豫模型的计算图,其中可进行优化的节点值为每次采集CEST信号所使用的饱和脉冲偏频值∆ω和强度值𝐵_1;该部分的输出层为模拟采集到的一组Z值。

 后一部分是基于Z值进行目标溶质CEST参数和RMSE值的计算。该部分的输入层即是前一部分的输出层,该部分的隐藏层包含多层节点,节点之间的传递函数为S型(Matlab中为tansig,pytorch中为tanh)函数。该部分的输出层即为已生成出的目标溶质CEST参数值,和基于gQUCESOP方法模拟计算得到的此种物质背景下的RMSE值。运用误差逆传播法对网络中各节点的权重值进行训练。


四.AutoCEST神经网络框架


 整个AutoCEST分为三个子模块。

 第一个模块为CEST饱和块(CEST saturation block)。它使用Bloch-McConnell方程的解析解来模拟CEST饱和过程,可以计算出饱和后的水池Mz分量,以及其他溶质的质子交换参数。

 第二个模块为自旋动力学模块(Spin dynamics module)。在这个过程中,可以更新翻转角度(FA)和恢复时间(Trec)参数,并计算预期的“ADC”信号。

 第三个模块为深度重建网络(Deep reconstruction network)。使用了两个隐藏层,每个隐藏层有300个节点,并且使用tanh激活函数进行激活。

20.png

1.CEST饱和块(CEST saturation block)

21.png

上图为本模块传递函数使用的BM方程计算图。

 下面的蓝色方块表输入:初始磁化强度(M0)、水的弛豫速率(R1a、R2a)、溶质横向弛豫速率(R2b)、交换速率(kb)和比例浓度(fb)。

 橙色方块表那些需要随着训练动态更新的参数:饱和时间(Tsat)、饱和频率(ω1)、饱和频率偏移(ωrf)。

 本模块最终计算出饱和后的水池Mz分量,以及其他溶质的质子交换参数。这些参数可以用于定量CEST/MT质子交换参数图的重建,从而提高CEST-MRI的灵敏度和特异性。

 插曲:怎么将计算图作为传递函数嵌入神经网络中呢?

 首先,需要定义一个继承自torch.autograd.Function的类,并实现其中的forward和backward方法。

 在forward方法中定义计算图的计算过程;而在backward方法中实现计算图的反向传播方法(链式求导)。

 最后,在定义神经网络时,可以使用自定义的计算图函数作为层的参数,并将其用作传递函数。

 下面以简单的计算图z=(x+y)^2为例,代码如下图所示。

22.png23.png24.png

2.自旋动力学模块(Spin dynamics module)

  Spin dynamics:指原子核在外部磁场和RF脉冲作用下的演化过程,包括自旋翻转、自旋弛豫等过程。

25.png

左图为本模块传递函数使用的Bloch方程计算图。

 下面的蓝色方块表示输入的水池参数:初始磁化强度(M0)、水的弛豫时间(T1a、T2a)。

 橙色方块表示需要随训练动态更新的参数:翻转角度(FA,即磁场中的磁矢量在翻转后与初始方向之间的夹角)和恢复时间(Trec ,即磁共振成像中的两次脉冲之间的时间间隔)。

 本模块最终计算出“ADC”信号(自由扩散系数,apparent diffusion coefficient),是一种反映组织水分子自由扩散能力的参数,在第三个模块中被转换为CEST定量参数。这个地位类似于我们的Z值。


3.深度重建网络(Deep reconstruction network)

26.png27.png

上图为前馈神经网络的示意图。

 输入为一组在时间维度上进行二范数归一化的ADC值(为了消除不同时间点的信号强度差异,使得不同时间点的信号可以进行比较和分析),使用了两个(或更多)隐藏层,每个隐藏层有300个节点,并且使用tanh激活函数进行激活。输出即为交换速率(kb)和比例浓度(fb)。

 Batchsize=256,Epochs=100。

 Epoch:一个epoch 指的是把所有训练数据丢进神经网络一次。

 Iteration(step):指的是一批数据要分成几次丢进神经网络。

 Batchsize:数据的个数,指的是每次扔进神经网络训练的数据是几个。

 例:如果你有100个训练数据,epoch = 10, batchsize = 5, iteration = ?

 把100个数据集扔进神经网络训练10次,每次(每个epoch)你要把100个数据集分成20份,每份数据为5个(batch size=5),所以你需要投入20次(iteration)来完成一个epoch

 为了进一步促进稳健学习,将白噪声(标准差为0.002)注入到训练数据中。

 损失定义为估计的质子交换速率(kb)和比例浓度(fb)与其相应的基准真值之间的均方误差。使用RMSprop算法作为优化器,学习率分别设置为0.001和0.0001。

28.png

Dropout是一种防止过拟合的技术。

 其主要思想是在训练过程中随机地丢弃一些神经元和连接(以一定的概率随机将某些神经元的输出置为零),以降低模型的复杂度,从而提高泛化能力。

 训练模式:net.train() √

 评估模式:net.eval() ×

29.png30.png

网络异常,图片无法展示
|
网络异常,图片无法展示
|


相关文章
|
7天前
|
机器学习/深度学习 人工智能 算法
深度学习在图像识别中的应用与挑战
本文探讨了深度学习技术在图像识别领域的应用,重点分析了卷积神经网络(CNN)的工作原理及其在处理图像数据方面的优势。通过案例研究,展示了深度学习如何提高图像识别的准确性和效率。同时,文章也讨论了当前面临的主要挑战,包括数据不足、过拟合问题以及计算资源的需求,并提出了相应的解决策略。
|
5天前
|
机器学习/深度学习 人工智能 算法框架/工具
深度学习中的卷积神经网络(CNN)入门
【10月更文挑战第41天】在人工智能的璀璨星空下,卷积神经网络(CNN)如一颗耀眼的新星,照亮了图像处理和视觉识别的路径。本文将深入浅出地介绍CNN的基本概念、核心结构和工作原理,同时提供代码示例,带领初学者轻松步入这一神秘而又充满无限可能的领域。
|
6天前
|
机器学习/深度学习 算法 大数据
深度学习在医疗影像诊断中的应用
本文探讨了深度学习技术在医疗影像诊断领域的应用,分析了其如何通过提高图像识别精度来辅助医生做出更准确的诊断。文章首先介绍了深度学习的基本概念和关键技术,随后详细阐述了这些技术在处理复杂医疗影像数据时的优势,并通过案例分析展示了深度学习在实际应用中取得的成果。此外,还讨论了当前面临的挑战以及未来的发展趋势。
|
6天前
|
机器学习/深度学习 人工智能 供应链
深度学习在图像识别中的应用及案例分析
【10月更文挑战第40天】本文将探讨深度学习在图像识别领域的应用,通过分析其基本原理、关键技术和实际应用案例,揭示深度学习如何革新了图像处理技术。文章不仅提供理论框架,还深入讨论了深度学习模型如卷积神经网络(CNN)的构建和训练过程,以及这些技术如何在自动驾驶汽车、医疗诊断等多个领域得到实际应用。通过具体案例,我们将看到深度学习如何使机器视觉更加精准和高效。
|
8天前
|
机器学习/深度学习 自然语言处理 监控
探索深度学习在自然语言处理中的应用与挑战
本文深入分析了深度学习技术在自然语言处理(NLP)领域的应用,并探讨了当前面临的主要挑战。通过案例研究,展示了如何利用神经网络模型解决文本分类、情感分析、机器翻译等任务。同时,文章也指出了数据稀疏性、模型泛化能力以及计算资源消耗等问题,并对未来的发展趋势进行了展望。
|
8天前
|
机器学习/深度学习 人工智能 算法
基于Python深度学习的【垃圾识别系统】实现~TensorFlow+人工智能+算法网络
垃圾识别分类系统。本系统采用Python作为主要编程语言,通过收集了5种常见的垃圾数据集('塑料', '玻璃', '纸张', '纸板', '金属'),然后基于TensorFlow搭建卷积神经网络算法模型,通过对图像数据集进行多轮迭代训练,最后得到一个识别精度较高的模型文件。然后使用Django搭建Web网页端可视化操作界面,实现用户在网页端上传一张垃圾图片识别其名称。
36 0
基于Python深度学习的【垃圾识别系统】实现~TensorFlow+人工智能+算法网络
|
8天前
|
机器学习/深度学习 人工智能 算法
【手写数字识别】Python+深度学习+机器学习+人工智能+TensorFlow+算法模型
手写数字识别系统,使用Python作为主要开发语言,基于深度学习TensorFlow框架,搭建卷积神经网络算法。并通过对数据集进行训练,最后得到一个识别精度较高的模型。并基于Flask框架,开发网页端操作平台,实现用户上传一张图片识别其名称。
28 0
【手写数字识别】Python+深度学习+机器学习+人工智能+TensorFlow+算法模型
|
8天前
|
机器学习/深度学习 人工智能 算法
基于深度学习的【蔬菜识别】系统实现~Python+人工智能+TensorFlow+算法模型
蔬菜识别系统,本系统使用Python作为主要编程语言,通过收集了8种常见的蔬菜图像数据集('土豆', '大白菜', '大葱', '莲藕', '菠菜', '西红柿', '韭菜', '黄瓜'),然后基于TensorFlow搭建卷积神经网络算法模型,通过多轮迭代训练最后得到一个识别精度较高的模型文件。在使用Django开发web网页端操作界面,实现用户上传一张蔬菜图片识别其名称。
45 0
基于深度学习的【蔬菜识别】系统实现~Python+人工智能+TensorFlow+算法模型
|
8天前
|
机器学习/深度学习 算法 TensorFlow
深度学习在图像识别中的应用
【10月更文挑战第39天】本文将探讨深度学习技术在图像识别领域的应用。通过介绍深度学习的基本原理,我们将了解到其在图像处理中的强大能力。文章还将展示一个简单的代码示例,用于实现一个基本的图像分类模型。最后,我们将讨论深度学习在图像识别中的未来发展趋势和挑战。
13 0
|
11天前
|
机器学习/深度学习 人工智能 测试技术
深度学习在图像识别中的应用与挑战
本文探讨了深度学习技术,尤其是卷积神经网络(CNN)在图像识别任务中的最新进展和面临的主要挑战。通过分析不同的网络架构、训练技巧以及优化策略,文章旨在提供一个全面的概览,帮助研究人员和实践者更好地理解和应用这些技术。
44 9

热门文章

最新文章

下一篇
无影云桌面