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

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

Вещи, которые я пробовал:

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

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


person Forrest Trepte    schedule 02.06.2019    source источник


Ответы (1)


Цитата из справочника по экзамену 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 с импульсом, но не другие, такие как Adam или RMSprop. Вы не можете определить рекуррентные или рекурсивные нейронные сети.

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

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

person Alibek Jakupov    schedule 07.06.2019
comment
Спасибо! Это отличная информация о том, как я могу определить структуру нейронной сети для Azure ML. Однако он не отвечает на вопрос, можно ли получить доступ к внутренней информации из обученной модели, такой как изученные веса. Взглянуть на CNTK - хороший совет. - person Forrest Trepte; 08.06.2019
comment
Насколько я понимаю, визуализировать обученную модель в AML Studio невозможно. Итак, ответ - использование CNTK. - person Alibek Jakupov; 09.06.2019