Ключевые слова: функции активации, нормализация, гиперпараметры.

Чтение

  1. Шривастава, Рупеш Кумар и др. «Понимание локальных конкурентных сетей. препринт arXiv arXiv:1410.1165 (2014).»
    Примечания.
  2. Клеверт, Джорк-Арне, Томас Унтертинер и Зепп Хохрайтер. «Быстрое и точное обучение глубокой сети с помощью экспоненциальных линейных единиц (elus). препринт arXiv arXiv:1511.07289 (2015).»
    Примечания.
  3. Ву, Юсинь и Каймин Хэ. «Групповая нормализация. препринт arXiv arXiv:1803.08494 (2018).»
    Примечания.
  4. Иоффе, Сергей и Кристиан Сегеди. «Пакетная нормализация: ускорение глубокого обучения сети за счет уменьшения внутреннего ковариатного сдвига. препринт arXiv arXiv:1502.03167 (2015).»
    Примечания.
  5. Хинц, Тобиас и др. «Ускорение оптимизации гиперпараметров глубоких сверточных нейронных сетей. International Journal of Computational Intelligence and Applications (2018): 1850008.»
    Примечания.
  6. Син, Чен и др. «Прогулка с SGD. препринт arXiv arXiv:1802.08770 (2018).»
    Примечания.

Кодирование

Никто.

Выводы

Эта неделя была довольно беспокойной на работе, и не так много кода было сделано, связанное с машинным обучением и Tensorflow. Но мне все же удалось просмотреть (хотя и быстро) некоторые интересные документы и обобщить мои выводы из них.

Я начал чтение с нескольких основных вопросов:

  1. Что такое функции активации?
  2. Как мне предварительно обработать данные и настроить гиперпараметры, чтобы получить более быстрые и точные модели?

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

Функции активации довольно широко используются почти во всех моделях глубокого обучения. Однако этот действительно базовый компонент нейронных сетей не получил должного внимания, особенно за пределами научных кругов. По мере того, как порог машинного обучения падает, типичный «инженер машинного обучения» или «энтузиаст машинного обучения» просто воспринимает функции активации как некоторые встроенные модули в используемых ими средах без необходимости полностью их понимать.

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

Другой вопрос, который я задавал, заключается в том, что при построении модели нейронной сети существует так много «магических чисел», которые кто-то другой использовал в своем коде для ускорения обучения или повышения точности своих моделей. Некоторые говорили, что именно здесь имеет значение опыт работы. Я с уважением не согласен. Я хочу найти более систематический и воспроизводимый подход, чтобы действительно разобраться в этих магических числах.

Самый похожий вопрос, который я нашел при поиске статьи: как мне настроить скорость обучения? Действительно, скорость обучения не только контролирует время обучения, но, что более важно, решает, работает ли модель вообще или нет. Для ответа на этот вопрос были предприняты значительные усилия. Что я сделал на прошлой неделе, так это нашел несколько исследовательских работ и попытался их осмыслить. SGD (стохастический градиентный спуск) был основным подходом, когда исследователи стремились оптимизировать свой выбор скорости обучения. Многие алгоритмы поиска скорости обучения, предложенные за последние несколько лет, попадают в категорию SGD. Я нашел [6] весьма полезным для быстрого понимания концепций и передовых достижений в этой области.

Другие разные темы, такие как нормализация групп и нормализация пакетов, связаны с предварительной обработкой данных. Предварительная обработка данных — еще одна огромная исследовательская дисциплина, которую необходимо изучить. [3] и [4] предназначены только для быстрого понимания того, как работает предварительная обработка данных и зачем она нам нужна при построении наших моделей глубокого обучения.