Ключевые слова: NAS, активация, Tensorflow, Keras.

Чтение

  1. Эльскен, Томас, Ян Хендрик Метцен и Фрэнк Хаттер. «Поиск нейронной архитектуры: обзор. препринт arXiv arXiv: 1808.05377 (2018). »
    Примечание.
  2. Лю, Ханьсяо, Карен Симонян и Имин Ян. «DARTS: поиск дифференцируемой архитектуры. препринт arXiv arXiv: 1806.09055 (2018). »
    Примечание.
  3. Бейкер, Боуэн и др. «Ускорение поиска нейронной архитектуры с помощью прогнозирования производительности. препринт arXiv arXiv: 1705.10823 (2017). »
    Примечание.
  4. Бендер, Габриэль и др. «Понимание и упрощение одноразового поиска архитектуры. Международная конференция по машинному обучению. 2018. »
    Примечание.
  5. Брок, Эндрю и др. «SMASH: поиск архитектуры однократной модели в гиперсетях. препринт arXiv arXiv: 1708.05344 (2017). »
    Примечание.
  6. Цай, Хан и др. «Эффективный поиск архитектуры путем преобразования сети. AAAI, 2018. »
    Примечание.
  7. Шривастава, Рупеш Кумар и др. «Понимание локально конкурентных сетей. препринт arXiv arXiv: 1410.1165 (2014). »
    Примечание.

Кодирование

  1. Учебники по Tensorflow
  2. Tensorflow Keras API - Активации
  3. Учебники по Tensorflow - нетерпеливое выполнение
  4. Учебники по Tensorflow - автоматическая дифференциация и градиентная лента

Тестовый код

Выводы

Чтение части

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

Вот краткое изложение того, что я узнал о поиске в NAS.

В этом разделе мы в основном сосредоточены на трех подтемах - Пространство поиска, Стратегия поиска и Оценка эффективности.

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

  1. Сети с цепочкой
  2. Мультифилиальные сети
  3. Сотовые / блочные сети.

Таким образом, Стратегия поиска - это подходы, которые мы можем применить для поиска в этом огромном пространстве и определения наилучшей архитектуры для конкретной задачи и набора данных. Очевидно, здесь предполагается, что для одной конкретной задачи классификации / регрессии с одним заданным набором данных должно быть только несколько оптимальных сетевых архитектур, которые работают лучше всего. Всегда ли это предположение твердо? Честно говоря, в газетах на этой неделе я еще не нашел ответа. Но давайте пока примем это как должное. В объеме литературы, рассмотренной на этой неделе, есть несколько общих подходов, которые исследователи используют для поиска в NAS:

  1. Случайный поиск
  2. Байесовская оптимизация
  3. Эволюционные методы
  4. Обучение с подкреплением (RL)
  5. Градиентные методы.
  6. Иерахический поиск

Более подробное примечание можно найти в примечании или самом документе.

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

У нас есть некоторые решения, которые еще можно улучшить:

  1. Более низкая точность фактического исполнения
  2. Экстраполяция кривой обучения
  3. Сетевые морфизмы
  4. Быстрый поиск архитектуры

Кодирование Часть

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

Я использовал Keras в качестве основной среды программирования на протяжении почти всего своего 100-дневного испытания I. Я действительно чувствую то же самое, когда начинаю использовать версию Keras от Tensorflow.

В качестве нисходящего подхода я определенно предпочитаю Keras. Но для настройки сетевых уровней, архитектур или даже определения процедур обучения Keras, похоже, не подходит для всех операций, которые мне нужны для исследования. Итак, на этой неделе я также работал над активными исполнениями Tensorflow и некоторыми более подробными (иногда даже тривиальными) операциями, просто для быстрого понимания.