Введение¶
Библиотека модульная и динамическая, дизайн навеян Torch и Chainer.
Общая схема¶
Есть набор переменных-тензоров, они подключены к модулям-нодам, которые умеют на основе этих переменных и входных данных вычислять некоторый выход. Модули можно объединять в маленькие контейнеры-графы - параллельно или последовательно. Такое ограничение вызвано определенными ограничениями с одной стороны в знаниях, какие архитектуры эффективны и достаточны. Вторая сторона - обеспечение полного контроля обучения в случаях работы с экзотическими архитектурами, в частности в схемах обучения без учителя, с участием нескольких сетей.
Обучение модели¶
Для обучения модели требуется следующее:
1. Данные (входные и ожидаемые выходные)
2. Модель-сеть
3. Критерий обучения
При наличии этих элементов далее выбирается некоторый оптимизатор, который в сущности всегда реализует градиентный спуск, различие только в том, сколько можно ему позволить использовать дополнительную память-информацию для корректирования градиента. Эта информация основывается, например, на статистике градиента, так как методы оптимизации высших порядков в Deep Learning не очень практичны с точки зрения того, что ничего фундаментально нового они не несут, не дружелюбны для аппаратного ускорения, а также их можно заменять мощными модулями-практиками регуляризации для ускорения обучения.