Можно ли получить доступ к внутреннему представлению нейронной сети, обученной в службе машинного обучения Azure или в студии машинного обучения Azure? - PullRequest
2 голосов
/ 02 июня 2019

Я работаю с учеными-данными, которые хотели бы получить представление и понимание моделей нейронных сетей, которые они обучают с использованием визуальных интерфейсов в Azure Machine Learning Studio / Service.Можно ли выкинуть и проверить внутреннее представление модели нейронной сети?Есть ли способ, которым я мог бы написать код, который обращается к узлам и весам обученной нейронной сети, чтобы визуализировать сеть как структуру графа?Или, если Azure Machine Learning Studio / Service не поддерживает это, я был бы признателен за совет относительно другой среды машинного обучения, которая может быть более подходящей для такого рода анализа.

То, что я пробовал:

  • Модель поезда выводит ILearnerDotNet (AML Studio) или Модель (служба AML).Я искал элементы для перетаскивания в рабочую область, где я мог бы написать собственный код, такой как Выполнение скрипта Python.Кажется, они принимают наборы данных, но не ILearnerDotNet / Model в качестве входных данных.
  • Мне не удалось найти документацию об интерфейсах ILearnerDotNet / Model.
  • При выборе вывода Train Train предлагается опцияСохранить как обученную модель.Это создает обученный объект модели, и это помогло бы мне ссылаться на обученную модель в других местах, но я не нашел способа использовать это, чтобы добраться до ее внутренних органов.

Я новичок вландшафта машинного обучения Azure, а также может помочь понять, как получить доступ к этим данным.

1 Ответ

0 голосов
/ 07 июня 2019

Цитата из справочника экзамена Azure ML:

По умолчанию архитектура нейронных сетей ограничена одним скрытый слой с сигмоидом в качестве функции активации и 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, ни выпадение). Также нет активации ReLU, которые обычно используется в глубоком обучении из-за их преимуществ в обратном распространении. Вы не можете изменить размер партии Стохастического градиентного спуска (SGD). Кроме того, вы не можете использовать другие алгоритмы оптимизации. Вы можете использовать SGD с импульсом, но не такие, как Адам или RMSprop. Вы не можете определить рекуррентные или рекурсивные нейронные сети.

Другим замечательным инструментом является CNTK (Cognitive Toolkit), который позволяет вам определять свой вычислительный граф и создавать полностью настраиваемую модель. Цитата из документации

Это набор инструментов глубокого обучения с открытым исходным кодом Microsoft. Как и другие глубокие Средства обучения CNTK основаны на построении вычислительной графики и их оптимизация с использованием автоматического дифференцирования. Инструментарий высоко оптимизирован и эффективно масштабируется (от процессора до графического процессора, на несколько машин). CNTK также очень портативный и гибкий; вы может использовать его с такими языками программирования, как Python, C # или C ++, но вы также можно использовать язык описания модели BrainScript.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...