从系列中:深层神经网络
乔·希克林,MathWorks
Experience Manager是一款用于在各种初始条件下培训、微调和解释深度学习网络的应用程序。请参阅如何使用深度学习实验来:
嗨。我叫乔·希克林。我是MathWorks的高级开发人员。我将向您展示如何使用实验管理器使您的深度学习项目产生更好的结果,速度更快,花费更少的工作。
当我想要创造出最好的深度学习解决方案时,我会进行大量实验,看看哪种策略最有效。我会尝试不同的训练数据集或训练数据的不同处理,我会尝试不同的网络架构或网络中的不同参数,我会尝试不同的训练选项,看看哪种策略能产生最好的结果。
所有这些实验是我的项目中最耗时的部分,在实验经理出现之前,我做了一个相当混乱的工作。我将编写这样一个脚本,用于设置训练数据、设置网络、设置训练选项,最后训练网络。
我会运行它,看看网络的运行情况,然后再尝试其他方法。我会编辑脚本,然后再运行一次。我会说,如果我想在这一层尝试更多渠道,或者如果我想要一个不同的学习速度呢?
我会通过各种选择的不同组合来找出哪个网络表现最好。当我全部完成时,我认为我已经覆盖了大部分领域,但我不是很确定。为了验证或恢复之前的结果,我会反复进行一些实验。
“实验管理器”解决了所有这些问题。让我们看看我一直在使用的一个“实验管理器”项目。我将转到“应用程序库”,选择“实验管理器”。当“实验管理器”出现时,我将打开一个预先存在的项目。它就在这里。
这是我的项目。我的项目有三个实验,一个叫做数据集,一个叫做网络,一个叫做训练选项。我们来看看第一个实验的结果,数据集。
在这个实验中,我试图弄清楚我是否使用了足够的数据。所以我做了四个不同的试验。每一个都使用不同数量的数据或有或没有增加。这些试验已经进行了,而且已经结束了。
对于每一个试验,我都能看到它们花费了多长时间,训练的准确性是多少,验证的准确性是多少,以及其他一些东西。对于任何我想要的试验,我都可以看训练图。我们会重现那个场景,这是那次审判的训练场景。这是这次审判的训练场地。
我还可以查看每个试验的混淆矩阵。这是一组——这是一个试验,一组我做的试验。我做了另一个试验。我们将查看这些结果。这是尝试不同的网络。
我尝试了一个基本的网络。我试过MobileNet,两层网络和三层网络。再一次,对于其中的每一个,我可以看看训练网络,我可以看看训练情节等等。
其中一个网络不起作用。我试过MobileNet,但我的机器上没有MobileNet。但这并不能阻止实验经理。它注意到了错误,继续进行并运行了所有四个实验。
在我的第三个实验中,你可以看到我没有任何结果。我还没有运行那个实验。现在就开始吧。如果我双击“训练选项”,我将看到我之前编写的实验描述。
在这个实验中,我将对四个参数进行彻底的扫描。我在这里命名了它们。每个参数都有一组它将要覆盖的值。这意味着它将对这四个参数的每一个值的组合进行试验。
我认为,这将导致48个不同的试验。这太多了,所以我将使用parallel并并行运行这些东西。我现在就开始。
所以我们在这里看到的是,这张表中有所有48个试验,它将在其中运行。它开始了前12个试验,其余的正在等待。如果我们在这里查看,我们可以看到它已经完成了0。12个正在运行。42个正在排队,但还没有崩溃。哦,总共有54个试验。
这12项审判已经开始。我们可以看着他们进步,看着他们离去。当这些试验中的任何一个结束时,它将开始下一个试验。它会慢慢地通过我们需要完成的所有不同的试验。
你可以看到每个试验使用的参数的特定组合。第一个试验使用了两个epics的解算器,即学习率和最小批量。当它完成时,它将运行我要求的所有54种不同排列。
这需要很长时间。所以我们不会坐在这里等它。但当它完成后,我们将能够查看所有这些。所以让我们让时钟走一两分钟。
[时钟滴答作响]
好的。这是完成了。实验经理已经为我们训练了54个神经网络。在现实生活中,我们可能得出去吃午饭,或者晚上回家,第二天再回来。但它已经完成了所有54项。
这些结果是可重复的,因为实验管理器已经保存了运行所有内容的脚本。它保存了每次试验所用的参数。它甚至保存了训练有素的网络,你可以导出到工作空间,以进一步工作。
如果我们想知道什么是最好的,我们可以根据验证精度排序看上面那个用了这个求解器,这么多,这个学习率,诸如此类的东西。你可以比较一下,看看哪种策略效果最好。
这是一个实验管理器可以为您自动进行的实验的例子。在下一个视频中,我将向您展示如何让实验管理器为我完成这项工作。
您还可以从以下列表中选择网站:
选择中国网站(中文或英文)以获得最佳网站性能。其他MathWorks国家站点没有针对您所在位置的访问进行优化。