深入学习网络研讨会2020,第6部分:医学图像的深度学习概述
从系列:深入学习网络研讨会2020
深度学习一个原则是在人工智能(AI)技术使了不起的进步。虽然你可能意识到主流的应用深度学习,喜欢你的声音遥远,这个公司Siri,或Alexa,如何认识你在医学工程和科学与人工智能应用程序?
MathWorks开发人员应用深度学习在MATLAB函数®工程和科学工作流。深度学习的概述使用MATLAB通过心脏核磁共振成像的透镜的例子。你会看到:
- 深度学习在哪里被应用在医学工程与科学,以及它是如何推动MATLAB的发展
- 如何研究、开发和部署自己的深度学习应用程序
- MathWorks工程师可以做些什么来帮助支持你的成功与深度学习金宝app
您还将看到技术示威活动包括:
- 半自动地面实况图像标记
- 培训和评估磁共振成像的语义分割算法
- 生成优化的本地嵌入代码
今天的议程将进入,基本上,今天的演讲的三个主要章节。我们会有一个快速概述的深度学习在一般工程和科学或作为一个公司,我们一直在做有关图像的深度学习,然后我们会进入一个实际的例子。我们会跟进开发一个实际的深度学习解决方案在MATLAB在结束之前,你可以去找一些在MathWorks深度学习的支持。金宝app
这是一种非常高度概括,深度学习是一个人工智能技术,是真正推动大趋势。自1950年代以来,真的,有一个非常大的人工智能的兴趣。为了定义,我们要人工智能是任何技术,允许一台计算机或一台机器模仿人类智能。这并不一定意味着它需要聪明就其本身而言,它只是需要能够欺骗人类为了相信机器他们相互作用的行为与智力。
它直到80年代当我们开始找出算法和方法实际上导致机器学习任务从数据没有明确被编程来做这些测试。所以,事情开始变得非常激动人心。然后,把我们今天的主题,使用深度学习,使用神经网络学习任务直接从数据,只是这个高级、复杂的执行人工智能机器使用深度学习的方式。
所以,深度学习已经是我们日常生活的一部分。我们看到当我们说我们的设备。我知道我有一个苹果,我不停地告诉它提醒我这或试图做的或设置一个定时器,我总是忘记做自己的事情,人脸检测,和一种特别令人兴奋的方式将商业空间,自动驾驶。
通常,我们往往听到机器学习和深度的上下文中学习一些有趣的项目,有人做,然后发布在网上,很多有趣的,令人兴奋的很多检测对象——一只狗或一只猫或者一只松鼠之类的,然后,当然,延伸到自动驾驶,确定自行车和行人和其他车辆。
但如果你看一下例子所以在右边的图像,我们可以看到应用程序的深度学习在工程和科学。这个例子是看看生产线,我相信这是壳牌工业。和他们的监测机械,确保一切看起来不错。
我见过很多,或者跟很多客户做事情喜欢——我发现,就我个人而言,更可怕的一个例子是监测外科医生在手术过程中,他们会注意到外科医生手术刀,是否使用它,然后确保他们放回托盘,因为显然,偶尔一个人可能会使一个小错误,把一个外国对象内部的一个人。所以这是一个更可怕的应用程序,我听说过,但使用机器学习和人工智能希望缓解这个问题。如此之深学习是真的,真的开始进入今天的世界。
下面是使用MATLAB进行深度学习的另一个例子。我们已经应用在很多方面,实际上,自动缺陷检测。我到处都看到它,很明显也很重要的质量控制,车辆控制和地震探测的其它行业。
我们也非常参与研究,这里有几个例子的链接如果你感兴趣一些这方面的信息。我们会做一个类似的例子在这里左边。我们将看看分段区域内感兴趣的MRI扫描。显然,这是一个组织切片,所以看看做一些这些类型的任务。
这是深度学习的概述和一点点的在MATLAB迄今为止我们一直在做什么。只是一个快速的时间表如何深度学习与MATLAB已经随着时间的推移,老实说,这个时间表已经存在超过2016。我们有神经网络工具箱里的工具多年,直到2017年,当我们决定改变名字从神经网络深度学习以获得与时代的。然后你看到每年我们一直添加越来越多的功能的,真的。
和一些新功能和新工具本身只是深刻的学习工具,建立神经网络,不同类型的层,和体重分享和培训循环和东西,还有,支持的功能代码生成,这样当你最后需要部署深度学习算法成为可能在一个非常简单的方法。金宝app现在,2020年中途,我们已经相当大的列表的新特性。然后进入2020年下半年,我们一定会看到更多,敬请关注。
这里只是几个例子,深度学习的图片和视频,自动驾驶,信号检测,能够识别对象作为你开车经过一个空间,然后一个语义分割的例子,能够逐像素标签内感兴趣的视频对象。这是另一个例子,这次的信号。所以我不会坐在这太久,因为我们的主要兴趣是在图像。
所以我坐在这个非常短暂,但我们确实有一个强化学习工具箱。这里有人知道强化学习的概念吗?是你们熟悉的,不熟悉的,感兴趣的,不感兴趣吗?我们有一个熟悉的人强化学习,有些兴趣,他曾与它。好了,好了。
所以对于那些并不是特别的熟悉,这就像学习一个全新的水平。我想这是你的孩子,只是淡定的环境,告诉它试图做一些和学习。就像自适应学习,如果你愿意,只是不同的模拟,最终学习如何——在右边,走了。在左边,浏览流量。这有点像实时学习。
所以我不会坐太多时间在强化学习。这是另一个话题。让我们看看关注深度学习的图像。
我们已经经历了许多工程科学领域特定的深度学习应用的例子,我们可以支持。金宝app有一些其他原因你可能想认真看看使用MATLAB进行深度学习。我们有多平台部署的解决方案。金宝搏官方网站我们的目标是能够部署你的深度学习算法在任何地方任何环境将是你最后的部署系统。
我们有各种各样的功能和生产力的工具平台,能够使用gpu加速,工作在云上,等等。同时,我们支持很多PyTo金宝apprch与TensorFlow的互操作性。我们知道,世界上没有围绕着我们。有很多球员在这个空间,我们尽力确保我们友好的与其他孩子在操场上玩。
然后这一切的中心是人,对吧?所以我们有那些能支持你。金宝app我们有一个非常丰富的客户基础,提供了大量的社区工具。所以真的所有环绕这些很棒的toolage建筑的人。
这是更多的一个预览的今天我们将会看到什么,一些信息平台的生产力。这里是一些工具,你会来看看如何提高你的生产率。但是还有我们今天不会谈论的东西,但肯定我鼓励你去探索,我们可以连接到额外的资源像AWS, Azure,码头工人,NVIDIA的容器。
所以,系上一个蝴蝶结其余MathWorks的参与深度学习,今年早些时候我们非常高兴被贴上一个领导,根据独立Gartner的魔力象限深度学习和机器学习平台,试图建立尽可能完整的平台支持的所有需要一个典型的深度学习工作流程。金宝app
好吧,现在让我们进入一些肉。所以会话的其余部分将遵循这四个桶,如果你愿意。所以我们要看一看这四个步骤AI-driven系统设计,从数据准备,在实际训练一个人工智能模型,一个小的模拟和测试,最后,讨论部署。
让我们看一看一天的问题。对于今天的示例,我答应一些MRI和我承诺一些句法分割。
对于你们中那些可能或可能不熟悉这个新宁心脏数据集,这是一个公开的数据集,我想,大约45各种心脏病患者和一些expert-labeled轮廓的不同部分的心。所以今天我们的目标将是段,正确,这些心脏图像的左心室。实际上,我们将利用现有的神经网络已经被训练,VGG16神经网络,适应这里适合我们的用例。
所以,就像我承诺的,我们会从数据准备开始。和一些动机呢?这是一个幻灯片TrainAI会上Karpathy先生于2018年提出的。和他做了评论,当他在博士,他花了大量的时间,或许,专注于开发模型和算法,真正关注的科学。很好,因为有很多公开的数据集工作当你在研究。
突然间,当你进入商业空间,这些数据是你的宝藏。这是你的黄金。所以你实际上花了更多的时间,确保你有正确的数据为您的应用程序和你的目标和更少的时间专注于模型和算法。数据准备是非常重要的任务,,如果你已经使用深度学习在这之前,我相信你可能发现在某种程度上,形状或形式。
所以我们要看一些工具来帮助处理数据。特别地,我将尽力突出更多的工具,还有对于医学图像处理,,不是一般的图像处理。让我们进入今天的例子。
我们要做一个真正的快速介绍MATLAB桌面。这是MATLAB的最新版本,MATLAB R2020a。这是我们的桌面。这就是你会看到当你第一次打开MATLAB。
在大多数情况下,这里的主面板,你与命令窗口。所以你可以创建一些变量,这些变量上执行操作,创建可视化等等。在大多数情况下,这是相当简单的。我考虑到命令窗口有点像我的谷歌聊天或Skype之类的,因为它是在与MATLAB的谈话中,偶尔发现一些小小的复活节彩蛋。
当你使用MATLAB,你在那里做的跟踪您的工作区。这是要告诉你什么样的数据可用。现在我知道我有一些不同的东西。我能玩玩变量,如b或x或你。
最后,你有一个命令历史。这正是它听起来像。这是一个你使用的所有命令的历史。如果我想要重复我的任何步骤,很快我可以这么做。
特别是对于新手,甚至对于一些MATLAB的退伍军人,留意这里的工具条。它实际上是一个真正伟大的地方发现新功能在MATLAB把事情做完。通常,你会首先将数据导入到MATLAB,对吧?然后我也非常喜欢故事情节选项卡,因为我非常视觉,然后我们今天要花大量的时间生活在应用程序选项卡。好吧,这是MATLAB的概述,我们跳进表示。
就像我提到的,我们将会看看心脏图像和我们要准备一些数据。我所做的,这是你会看到演示时寄给你,是一个项目有几个文件夹——第1部分、第2部分,第3部分。我认为这是相当不言自明的。当你打开这个项目,你将获得快捷键打开这些部分,它会加载一切为你。
所以我们要开始使用数据集。这是MATLAB住脚本的一个示例。顺便说一下,如果你不熟悉它,一个很好的方式来跳过不同部分是选择您感兴趣的部分,点击运行,运行部分,这将允许你走过的演示。让我们继续开始。
就像我说的,只是想处理数据甚至加载数据有时是有点挑战。这是我最喜欢的方式来做这件事。我喜欢用MATLAB中所有可用的应用程序。现在,我很幸运。我碰巧在MathWorks工作,所以我真的有我们所创建的每一个工具箱。你的应用程序列表可能比我小一点。
今天不过,我们正在与图片,所以我真的只对这部分感兴趣的应用程序选项卡,更具体地说,我们正在与日本,所以我要继续,打开浏览器DICOM拉在我的心脏DICOM图像。选择我的dicom住在的文件夹,我们将在我们的心脏切片的观点。
非常快速和容易。图像是建立在两个时间点?cistally ?]和[?asis ?] [?远侧地。?]我们可以做许多事情。首先,我们可以导入到工作区中。然后我们可以有它可用在MATLAB上执行操作。
我们还可以做更多的想象。我们可以把它的观众。一秒钟,我,我们开始吧。所以我们也有观众量。我个人真的很喜欢这个,特别是当处理医学图像因为许多医学图像在本质上是体积的,对吧?所以我可以探索我的体积。
如果我已经标签,我可以拉,你可以看到标签的覆盖在我的形象。操作的方式查看图片但是我想要的。然后还出口呈现。出口的方式,我想看到我的照片,这样我可以重现这个可视化为一篇论文或报告或演讲。
只是一个快速的介绍开始使用dicom在MATLAB。我们实际上有一个非常富有的集合与dicom函数——一个很丰富的收集与dicom图像处理工具箱。和发现我们会去“读和写图像数据文件”部分,你可以找到完整的列表。这是一个很好的资源利用,看一看。
现在我们已经了解了如何将在dicom MATLAB,让我们来谈谈如何组织数据深度学习做准备。我发现最好的方法到目前为止,我认为,与imageDatastores工作。这真的是一个容器。我指着我的图片在哪里,我说创建指向这个容器。这是我想要的文件扩展名。
然后现在,如果我要看一看这张照片我创建的数据存储,我有105我要处理的图像,与一群信息,他们存在,他们住在什么文件夹,等等,以及如何阅读它们。通过使用一个数据存储,你现在可以解锁更多的功能在图像处理和计算机视觉工具箱。和这样的一个例子是快速加载图像标签他们准备深入学习。所以,很快,我们——图片标志。
我会尽我所能识别感兴趣的区域。就像我提到的,我们已经有专家标签,但如果你没有一个专家给你的照片给你,这是一种方式开始这样做。我们有很多选择,你可以创建一个多边形,并试图抓住你的这种方式,取决于你有多少时间。
但对我来说,我真的喜欢贴标签机我可以开始一个小标签的数据集,但是如果我有一种算法或者half-trained神经网络这种已经很好地找到感兴趣的地区,我可以导入到镜像贴标签机和半自动的过程,然后就用我的人类时间仔细检查标签是多好,在培训前,在你的神经网络。
我们有几个问题。标签是如何处理非常大的数据集?因此,以这种方式,能够完成半自动化的将会是一个很好的能够做的事情。在某些情况下,这是有可能的。在某些情况下,它不是。
有多少标签可以使用一次,保持任务几乎快?这是一个很好的问题,这是一个完全取决于您的应用程序。你可能需要大量的标签或也许你真的只关心几件事。
如果你创建一个无人驾驶汽车,你真的也许只需要担心的事情合理预期,你可能会发现在路上。但你未必需要能够确定,我不知道,一所房子,一座摩天大楼之间的区别,对吧?只是知道他们不是在路上,你只需要呆在路上。这取决于你的问题的性质,确定。最后,一旦你有了足够的数据,你至少可以开始工作,你出口标签,开始与实际培训。
所以这种带给我们的数据准备。好吧,让我们开始谈论培训一个人工智能模型。很棒的是,我们可以从基本上一套完整的算法和预构建的模型,当你试图在MATLAB解决这个问题。这里只是几个例子可用于机器学习的算法——决策树、朴素贝叶斯;cnn在深度学习,这是非常,非常常见的图像处理;甘斯,LSTM等等,这样的例子不胜枚举。
我们也支持导入预金宝app构建的模型,也就是今天的这个例子是利用,以及许多参考例子对于医学图像处理和深度学习和其他特定于行业的例子,您可以参考和构建的。我喜欢很多关于这些引用的例子是,通常,你可以只是交换数据集和得到很多的里程从代码无需真的改变很多,这很好。
好吧,如果你参加了我们的一些系列本周之前,在线研讨会,其中一些看起来很熟悉。但是我们有很多工具,旨在简化创建你的神经网络的过程。对于这个示例,这是深层网络设计师应用程序,所以它只是一个视觉环境创建或导入现有的神经网络,修改他们,改变他们,与他们做新的事情,然后出口进行训练。这是真的,真的很高兴能够用视觉的方式,以及刚刚那个完整列表。有时当你开始一个新的工具箱,你永远不知道什么功能都是可用的,但是有很好的完整列表。
新2020年的能力也进口数据和执行培训在相同的应用程序,所以它实际上是现在更多的工作流应用程序而不是简单地创建网络。这是在你的身边。添加的另一件事,我不相信有这个视频所示,是事实,你可以导出代码——哦,这个视频所示,您可以导出的代码培训。如果你有一个本地数据集,你在弄清楚它是如何工作的,那么你想扩展或扩大培训更大的数据集,你可以通过生成代码,然后运行在云或任何您的数据。
这也是相当新。实际上我开始爱上这个特定的应用程序,所以我肯定鼓励人试试。这是我们实验经理基本上,它只是让你尝试不同的培训与不同的参数设置和看到什么类型的结果。很棒的是它节省了所有不同的东西你试过,你试过所有不同的事情,不同的实验,如果你愿意。这样,你可以再回头看一下如果你需要写一份报告后,你都救了,现在你可以参考你们所有的出版你的作品。应用程序被称为实验管理器。
好吧,让我看看,赶上一些问题。是的,幻灯片讲座后将与观众分享。好吧,继续。
我们也支持硬件加金宝app速。我提到这个,我不能有时间说话太详细,但基本上只是无论你想完成你的训练,扩大缩小,GPU,你,可你玩。然后,如果有问题,我绝对想转移更多的末期,但是如果与其他框架进行——拉TensorFlow PyTorch神经网络为MATLAB或出口PyTorch或TensorFlow,等等,这些东西,都是有可能的,通过我们的支持ONNX框架。金宝app这样我们可以在问答讨论如果有兴趣。
经理,实验[?mron ?)工作只有神经网络。这是深度学习工具箱的一部分。但是我们确实有一些产品更传统的机器学习的东西可以做类似的事情像贝叶斯优化,所以那将是一件值得探索或许在不同的会话中,如果这是感兴趣的。
实验管理器自动链接。所以梅丽莎的问一个很棒的问题,是实验管理器自动链接到项目工作吗?是的,它是。所以其实你MATLAB实验项目经理的项目,这是非常方便,一起烤的。
好吧,让我们看一看真正的快速建模。这是有点漫长,但我们会尽力保持目标。好了,言归正传,左心室分割。这是第2部分,建模的过程。好吧,我们开始吧。
所以在一开始,我们在做同样的事情,我们做了最后一次,我们在数据进MATLAB。我们使用imageDatastore指向数据住在哪里。让我显示输出,我们可以看到这在实时运行。再一次,我们大约有805张图片,我们将会处理。我们已经指定如何希望dicom阅读。
在另一个文件夹中时,我们也有地面实况面具。因此而不是创建一个imageDatastore地面真理的面具,我们要告诉MATLAB,这些像素标签,我们会创建一个pixelLabelDatastore为了这样做。所以现在明白这些文件夹中包含的所有像素标签。他们有两个类,背景和左心室体积,等等,等等,现在定义的。
的好处之一——我爱数据存储。我喜欢数据存储的部分原因是它给我,好,发生了什么在我的高级概述大型数据集的800多个图像。现在我很快可以看到我有一种不平衡的数据集,比我有更多的背景像素的像素,左心室体积,这可能是我以后需要考虑火车或准备训练神经网络。是的,和标签分别存储?mron ?]非常好的问题。
这里,东方自己的图像实际上是什么样子,我刚刚创建自己的函数,将随机选择一个图像,显示轮廓,对心脏图像像素标签。所以我们有片整个心脏。看看我在这里可以得到几个不同的。他们都是现在正待在中间。
好吧,我们开始吧。这是对心脏的顶点。一些人——哦,在心脏的顶端,这进一步的顶点。然后一些人在中间。所以我们有一些差异在我们的图片可以的东西会影响我们的神经网络学习的方式。
所以很快,我知道在幻灯片显示的视频通过应用程序如何执行训练。现在,这个例子将带我们通过如何执行培训编程的代码行。所以关键函数,我希望大家注意是trainNetwork函数。需要在三个输入数据源,所以我们要把我们两个数据存储到一个数据源给火车网络;神经网络本身层图——这就是lgraph代表;以及培训方案,培训hyperparameters。这是三件事下一节将工作放在一起。
这更多的是一个不谈,但是你可以执行数据增加的旋转图像,将图像,扩大或缩小的图像来增强或增加的数据与你共事的人,特别是如果你正在使用一个相当小的数据集。这可能会感兴趣的东西。很容易创建一个数据增量与所有不同类型的增加,你想要,然后把它们放在一起到您的数据源与指定增加这些额外的数据。这就是我们的数据源。现在我们得到了。
现在,有一个小步骤要注意,这是很重要的,尤其是当你试图证明你创建了一个神经网络,可以做这项工作甚至是从未见过的数据。这是分区数据集训练,验证,测试集。我们这样做很短暂。你看到的分布图像。
现在我们要创建神经网络。所以我这样做非常容易。我只是创建一个使用VGG16段层图。如果你好奇,你可以打开文档在这个函数找出更多。
我们看看标签不平衡。我们讨论了如何有更多的背景像素比左心室体积像素。所以你能做的事情之一就是你可以在像素分类层类权重,最后一层神经网络,用它作为一种惩罚的背景像素分类。
另一个不错的新功能,实际上,你能做的就是用骰子作为度量的准确性。实际上,提供可能的内部失衡的语义分割问题。而不是创建的重量,我要使用DicePixelClassificationLayer。基本上,我已经删除了最后一层和添加新层到最后,现在我有一个神经网络,也可以执行语义分割和这内置处理方式有偏见的数据集。
跳过这一节。这只是一个可视化和仔细检查以确保神经网络看起来不错。然后现在我们到最后输入列车网络的功能,也就是建立这些hyperparameters执行培训。现在,我不打算执行培训,因为我最后一次这样做了,它花了10个小时,我们绝对没有时间。,相反,我将向您展示的样子来执行,培训。
所以当我运行这一行代码,它会给我这个很好的情节和告诉我/ x的时间我的准确性有多高。所以我要最后一个。我在我的服务器上运行或者在云上?这是一个很好的问题,我实际使用为契机,突出一些。
在这种情况下,我只是将它设置为自动的,所以只是是否我有自己的平行我的电脑可以检测池或其他资源,它将运行。现在,我们深有什么好的学习工具是我们真正想要包括你如何完成你的训练。所以你可以对你的单CPU或GPU执行培训,恰好是连接到你的电脑,也可以连接到一个平行池,这是你现在可以开始访问云的地方。所以通常当我的火车,我将选择并行集群以发送工作我我上创建我们的云计算中心。
所以我要在这里结束。基本上,一旦神经网络训练有素,我们可以把在我们的测试数据集和执行语义分割,处理图像,然后利用这个漂亮的内置函数来评估我的神经网络的性能测试数据集。这是需要一点时间,所以我不会完成这个示例,但你绝对是欢迎来看看结果当我发送给你最终结果。
好吧,继续,我们有——我想把第二个讨论仿真和测试,特别是在医学成像的上下文,因为我知道很多人,尤其是在医疗设备领域,一直在问的问题——比如,它的意思是将人工智能引入临床吗?什么意思,FDA为了有设备,有人工智能算法吗?所以这是关注,思考,什么样的确认和验证需要执行你的AI。
答案是空泛的。我们真的不知道。FDA仍决定要如何处理的AI系统设备。我知道他们已经批准了一些,但肯定没有一个自治系统,据我所知,没有任何人工干预。如此有趣的留意,保持一个脉冲。但这是一个边注。
我将飞越这有点快,但是我们有办法部署您的最后的神经网络。你看到最后的这个例子,我救了一个神经网络,基本上。这神经网络,我决定这是我最后一次迭代。我怎么把这个放到我最后部署解决方案,无论是嵌入式或某个服务器,无论发生?所以我们有解决方案,我有这样一金宝搏官方网站个解决方案,一个例子,我现在就走,很快。
所以基本上,本例中设置这个医生的例子,所以当你收到代码,你可以打开这个文档的例子。基本上,最重要的部分就是阅读的先决条件,因为需要做一些设置。你想要设置您的语义分割网络在GPU上运行。有一些额外的库和事情的过程。
但在一天结束的时候,重要的是你有一种方法来部署最终网络。这里是一个例子,一个算法,我想要把我最后的设备上,负载,预测,这是我的算法。可爱的是,我们可以,首先,自动地这样做。我们将自动生成的代码,这是一个例子,最终代码的样子。
这是自动生成的MATLAB——很好。我可以看到它是如何分解。你可以看到我所有的代码本身的评论也在最后的结果,我可以有一个很好的概述我的结果是什么。代码已经准备好部署。把它无论它需要去。
你也可以从下面的列表中选择一个网站:
表现最好的网站怎么走吗
选择中国网站(中文或英文)最佳站点的性能。其他MathWorks国家网站不优化的访问你的位置。