2

我正在与希望深入了解他们使用 Azure 机器学习工作室/服务中的可视化界面训练的神经网络模型的数据科学家合作。是否可以转储并检查神经网络模型的内部表示?有没有一种方法可以编写代码来访问经过训练的神经网络的节点和权重,以便将网络可视化为图形结构?或者,如果 Azure 机器学习工作室/服务不支持这一点,我将不胜感激有关可能更适合此类分析的不同机器学习框架的建议。

我尝试过的事情:

  • 训练模型输出 ILearnerDotNet (AML Studio) 或模型(AML 服务)。我寻找要拖入工作区的项目,我可以在其中编写自定义代码,例如执行 Python 脚本。他们似乎接受数据集,但不接受 ILearnerDotNet/Model 作为输入。
  • 我无法找到有关 ILearnerDotNet/Model 接口的文档。
  • 选择训练模型输出提供了另存为训练模型的选项。这将创建一个经过训练的模型对象,这将帮助我在其他地方引用经过训练的模型,但我没有找到一种方法来使用它来了解其内部结构。

我是 Azure 机器学习领域的新手,可以使用一些帮助来了解如何开始访问这些数据。

4

1 回答 1

0

引用 Azure ML 考试参考:

默认情况下,神经网络的架构仅限于单个隐藏层,其中 sigmoid 作为激活函数,softmax 在最后一层。您可以在模型的属性中更改此设置,打开隐藏层规范下拉列表,然后选择自定义定义脚本。将出现一个文本框,您可以在其中插入 Net# 脚本。该脚本语言允许您定义神经网络架构。

例如,如果您想创建一个两层网络,您可以输入以下代码。

input Picture [28, 28];
hidden H1 [200] from Picture all;
hidden H2 [200] from H1 all;
output Result [10] softmax from H2 all;

然而,使用 Net#,您将面临某些限制,因为它不接受正则化(L2 和 dropout 都不接受)。此外,由于在反向传播中的优势,深度学习中没有常用的 ReLU 激活。您不能修改随机梯度下降 (SGD) 的批量大小。除此之外,您不能使用其他优化算法。您可以将 SGD 与动量一起使用,但不能使用 Adam 或 RMSprop 等其他方法。您不能定义递归或递归神经网络。

另一个很棒的工具是 CNTK(认知工具包),它允许您定义计算图并创建完全可定制的模型。从文档中引用

它是微软开源的深度学习工具包。与其他深度学习工具一样,CNTK 基于计算图的构建和使用自动微分的优化。该工具包经过高度优化和高效扩展(从 CPU、GPU 到多台机器)。CNTK 也非常便携和灵活;您可以将它与 Python、C# 或 C++ 等编程语言一起使用,但您也可以使用称为 BrainScript 的模型描述语言。

于 2019-06-07T08:31:09.913 回答