Ключевые слова: NAS, активация, Tensorflow, Keras.
Чтение
- Эльскен, Томас, Ян Хендрик Метцен и Фрэнк Хаттер. «Поиск нейронной архитектуры: обзор. препринт arXiv arXiv: 1808.05377 (2018). »
Примечание. - Лю, Ханьсяо, Карен Симонян и Имин Ян. «DARTS: поиск дифференцируемой архитектуры. препринт arXiv arXiv: 1806.09055 (2018). »
Примечание. - Бейкер, Боуэн и др. «Ускорение поиска нейронной архитектуры с помощью прогнозирования производительности. препринт arXiv arXiv: 1705.10823 (2017). »
Примечание. - Бендер, Габриэль и др. «Понимание и упрощение одноразового поиска архитектуры. Международная конференция по машинному обучению. 2018. »
Примечание. - Брок, Эндрю и др. «SMASH: поиск архитектуры однократной модели в гиперсетях. препринт arXiv arXiv: 1708.05344 (2017). »
Примечание. - Цай, Хан и др. «Эффективный поиск архитектуры путем преобразования сети. AAAI, 2018. »
Примечание. - Шривастава, Рупеш Кумар и др. «Понимание локально конкурентных сетей. препринт arXiv arXiv: 1410.1165 (2014). »
Примечание.
Кодирование
- Учебники по Tensorflow
- Tensorflow Keras API - Активации
- Учебники по Tensorflow - нетерпеливое выполнение
- Учебники по Tensorflow - автоматическая дифференциация и градиентная лента
Выводы
Чтение части
На этой неделе я был в основном сосредоточен на поиске в NAS (пространстве сетевой архитектуры). Это было потрясающее путешествие с того дня, как я впервые узнал об этой теме. Начав с [1], новейшего обзора, который я нашел, я стоял на относительно высоком месте и смог увидеть более широкую картину в этой теме.
Вот краткое изложение того, что я узнал о поиске в NAS.
В этом разделе мы в основном сосредоточены на трех подтемах - Пространство поиска, Стратегия поиска и Оценка эффективности.
Пространство сетевой архитектуры - это «собрание» всех возможных архитектур нейронных сетей. Было бы несложно представить, насколько велико это пространство. Некоторые общие категории в этом пространстве включают:
- Сети с цепочкой
- Мультифилиальные сети
- Сотовые / блочные сети.
Таким образом, Стратегия поиска - это подходы, которые мы можем применить для поиска в этом огромном пространстве и определения наилучшей архитектуры для конкретной задачи и набора данных. Очевидно, здесь предполагается, что для одной конкретной задачи классификации / регрессии с одним заданным набором данных должно быть только несколько оптимальных сетевых архитектур, которые работают лучше всего. Всегда ли это предположение твердо? Честно говоря, в газетах на этой неделе я еще не нашел ответа. Но давайте пока примем это как должное. В объеме литературы, рассмотренной на этой неделе, есть несколько общих подходов, которые исследователи используют для поиска в NAS:
- Случайный поиск
- Байесовская оптимизация
- Эволюционные методы
- Обучение с подкреплением (RL)
- Градиентные методы.
- Иерахический поиск
Более подробное примечание можно найти в примечании или самом документе.
Оценка производительности - это набор подходов, которые мы можем использовать для измерения того, насколько хорошо сетевая архитектура выполняет заданную задачу и набор данных. Но как бы мы ни определяли «производительность» нейронных сетей, возникнет проблема: обучение одной нейронной сети уже может стоить больших вычислительных ресурсов, а теперь мы хотим обучить тысячи? Есть ли способ снизить эту стоимость?
У нас есть некоторые решения, которые еще можно улучшить:
- Более низкая точность фактического исполнения
- Экстраполяция кривой обучения
- Сетевые морфизмы
- Быстрый поиск архитектуры
Кодирование Часть
На этой неделе я работал над базовыми операциями и API-интерфейсами Tensorflow, следуя Руководству по Tensorflow. Первый элемент на их странице - это Keras API. Этот API представляет собой внедрение Keras, популярного фреймворка для машинного обучения с открытым исходным кодом, с помощью Tensorflow.
Я использовал Keras в качестве основной среды программирования на протяжении почти всего своего 100-дневного испытания I. Я действительно чувствую то же самое, когда начинаю использовать версию Keras от Tensorflow.
В качестве нисходящего подхода я определенно предпочитаю Keras. Но для настройки сетевых уровней, архитектур или даже определения процедур обучения Keras, похоже, не подходит для всех операций, которые мне нужны для исследования. Итак, на этой неделе я также работал над активными исполнениями Tensorflow и некоторыми более подробными (иногда даже тривиальными) операциями, просто для быстрого понимания.