Введение

Библиотека модульная и динамическая, дизайн навеян Torch и Chainer.

Общая схема

Есть набор переменных-тензоров, они подключены к модулям-нодам, которые умеют на основе этих переменных и входных данных вычислять некоторый выход. Модули можно объединять в маленькие контейнеры-графы - параллельно или последовательно. Такое ограничение вызвано определенными ограничениями с одной стороны в знаниях, какие архитектуры эффективны и достаточны. Вторая сторона - обеспечение полного контроля обучения в случаях работы с экзотическими архитектурами, в частности в схемах обучения без учителя, с участием нескольких сетей.

Обучение модели

Для обучения модели требуется следующее:

1. Данные (входные и ожидаемые выходные)
2. Модель-сеть
3. Критерий обучения

При наличии этих элементов далее выбирается некоторый оптимизатор, который в сущности всегда реализует градиентный спуск, различие только в том, сколько можно ему позволить использовать дополнительную память-информацию для корректирования градиента. Эта информация основывается, например, на статистике градиента, так как методы оптимизации высших порядков в Deep Learning не очень практичны с точки зрения того, что ничего фундаментально нового они не несут, не дружелюбны для аппаратного ускорения, а также их можно заменять мощными модулями-практиками регуляризации для ускорения обучения.