啥也不会的代码小白(python)打算通过一个项目来学习。
《DC2Anet: Generating Lumbar Spine MR Images from CT Scan Data based on Semi-Supervised Learning》
这是一个CT图转MR图的项目
改论文使用的网络为双周期一致对抗网络DC2A-net。目标函数包括六个损失项。
什么叫目标函数:就是所关心目标与相关因素的函数关系、按照一定的思路把这些已知条件利用起来,去求解未知量的函数关系式。
损失函数:是用来评估模型的预测值f(x)与真实值Y的差距。
损失函数由损失项(loss term)和正则项(regularization term)组成
链接: link.
他提出了一种基于卷积神经网络(CNNs)结合对抗性训练从CT扫描数据构建腰椎MR图像的合成方法。
**前言:**什么是卷积神经网络:卷积神经网络是一类包含卷积计算且具有深度结构的前馈神经网络。
结构:输入层、隐含层、输出层
输入层:可以处理多维数据,在输入特征时需要进行标准化处理,输入特征的标准化有利于提升卷积神经网络的学习效率和表现。
隐含层:卷积神经网络的隐含层包含卷积层、池化层和全连接层3类常见构筑。
卷积层:对输入数据进行特征提取。
池化层:在卷积层进行特征提取后,输出的特征图会被传递至池化层进行特征选择和信息过滤。
链接: link.
该文目标函数是损失项的组合,它映射一个实数,直观地表示与预定义网络在某种状态下的性能相关的“成本”。优化过程通过更新可训练变量来确定最优网络,以最小化此成本。在研究中,提出了一个新的目标函数,平衡两个定量损失项和三个定性损失项,从CT图像构建腰椎MR图像。在半监督学习中,为了寻找最优网络的全局最小值,在监督学习和非监督学习之间进行交替优化,也包含了双周期一致损耗。
损失项:对抗、双周期一致、体素、梯度差异、感知和结构相似性损失。
利用GAN的鉴别器网络来区分图像是实数还是合成图像,同时训练生成器网络以减少对抗损失。
对抗损失循环一致性GAN (cyclecgan),其中损失项导致了使用CT图像合成MR图像时网络的稳定优化。
体素损失函数测量了合成图像和参考图像之间的差异
实现的方法:
-
将监督学习转换为半监督学习
半监督学习是一种利用少量对齐数据和大量未对齐数据的机器学习形式。
对于成对的CT图像和MR图像:利用CT和MR图像中的椎体轮廓来估计仿射变换的参数,从而实现两幅图像的配准。
监督学习从给定的训练数据集中学习出一个函数(模型参数),当新的数据到来时,可以根据这个函数预测结果、监督学习的目标往往是让计算机去学习我们已经创建好的分类系统(模型)。
无监督学习:输入数据没有被标记,也没有确定的结果。样本数据类别未知,需要根据样本间的相似性对样本集进行分类(聚类,clustering)试图使类内差距最小化,类间差距最大化。通俗点将就是实际应用中,不少情况下无法预先知道样本的标签,也就是说没有训练样本对应的类别,因而只能从原先没有样本标签的样本集开始学习分类器设计。非监督学习目标不是告诉计算机怎么做,而是让它(计算机)自己去学习怎样做事情。
半监督学习是将监督学习与对齐数据和无监督学习与非对齐数据相结合进行的。这种方法的优点是,有监督学习使用所有似然输出的平均值来减少域平移的偏差,而无监督学习关注两个图像域的结构模式,减少模型估计过程的方差。此外,半监督学习可以更有效地利用有限数量的配对数据
链接: link. -
Dual Cycle-Consistent Adversarial Network(双周期一致对抗网络)
说白了就是GAN的进化版,GAN它由两个不同的网络组成,同时进行训练,其中生成网络侧重于图像生成,识别器网络用于区分真实样本和合成图像。周期一致结构可以实现无监督学习,将两个生成器网络从头到脚拼接在一起,以便合成图像可以转换为一个前向周期。除了前向循环外,双周期gan还有一个后向循环来稳定训练过程,防止模式崩溃。前向循环强制从CT域到MR域的平移,而后向循环从MR域移动到CT域。
为了采用半监督学习,该网络采用双周期一致结构:一个周期一致结构用于数据对齐的监督学习,另一个周期一致结构用于数据未对齐的非监督学习。 -
基于半监督学习的DC2Anet优化
1、联合优化:对于每次训练迭代,综合网络和鉴别网络都使用监督学习和非监督学习对目标函数进行更新。从数据集中采样一对对齐的数据点和一对未对齐的数据点,并提供给DC2Anet更新网络。2、交替优化:对于每次训练迭代,目标函数的监督学习和非监督学习交替进行,在这种情况下,只有与合成网络和鉴别器的特定层对应的权值被更新。这种形式的训练保持了优化的更稳定的收敛性,并且很容易平衡具有Jensen-Shannon散度的合成和鉴别网络。然而,在训练阶段,交替优化所需的计算量几乎是联合优化的两倍。 -
网络结构
该网络包含两个跨步一卷积的开始和结束,两个跨步二卷积,9个残差块和两个步幅为0.5的小数跨步卷积。每个残差块包含两个卷积,256个滤波器的大小为3×3,步幅为1。实例归一化和一个整流线性单元(ReLU)激活函数跟随每个卷积,除了在最后的卷积层。双曲正切(Tanh)激活函数跟随最终卷积,以保证输出在[−1,1]范围内。 -
数据
论文里使用的是腰椎数据。我们没有,他们也不给。
我自己找了盆骨的数据。 -
结果挺好的
-
剩下的还有代码。下次再学。
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)