Это мой первый пост о глубоком обучении. Он направлен на то, чтобы понять нюансы глубокого обучения, как оно возникло. После чего мы будем обсуждать различные типы.

Этот пост не включает никаких предварительных требований или знаний в области программирования. Это всего лишь краткий обзор одной из новых технологий.

Итак, начнем!

Глубокое обучение можно рассматривать как форму искусственного интеллекта (ИИ), которая обеспечивает механизм для изучения и решения сложных задач, связанных с данными.

Мы можем наблюдать эволюцию ИИ с 1950-х годов до нынешней формы глубокого обучения:

Обзор тем, связанных с глубоким обучением:

  • Искусственный интеллект (ИИ): машины, которые действуют рационально, реагируя на окружающую среду.
  • Машинное обучение (ML): программное обеспечение, которое обучается, обнаруживая закономерности в данных с помощью статистики.

Теперь глубокое обучение — это тип машинного обучения, работающий над концепцией нейронов (аналогично нейронам в мозгу). Эти искусственные нейроны объединяются и взаимодействуют друг с другом, образуя искусственную нейронную сеть (ИНС). В конце концов, глубокие нейронные сети формируются из слоев стека и нейронных сетей, которые могут учиться на данных, доступных в огромном количестве.

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

По сути, Neurons назначает функцию активации, которая определяет результат, который она будет производить, учитывая сумму входных значений. Обычно значение этой функции активации находится в диапазоне от 0 до 1, что помогает определить вероятность/точность. Два основных шага, связанные с искусственной нейронной сетью, — это прямое распространение и обратное распространение.

Структуры данных, которые можно использовать для эффективных вычислений:

  1. Векторы: одномерный массив значений
  2. Матрицы: двумерный массив значений
  3. Тензоры: массив с произвольным количеством измерений

Реализация тензоров также может быть замечена в tensorflow (среде глубокого обучения).

  • Полностью подключенные сети прямого распространения
  • Сверточные сети
  • Рекуррентные сети
  • Генеративно-состязательные сети
  • Глубокое обучение с подкреплением

Кроме того, появляется комбинация различных методов, чтобы обеспечить более продвинутый и эффективный подход.

Полностью подключенные сети прямого распространения

Это самая простая форма нейронной сети, в которой каждый нейрон предыдущего слоя связан с каждым нейроном последующего слоя. Как следует из названия «Feed Forward», в соединении графа нейронов нет циклов или петель.

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

Сетевая архитектура состоит из:

  • Различные и/п
  • Различные о/п
  • Различные скрытые слои
  • Различные нейроны на слой
  • Различные функции активации

Сверточная нейронная сеть (CNN)

Эта нейронная сеть была разработана для конкретных задач, таких как классификация изображений. Его также можно рассматривать как расширение полносвязной нейронной сети с некоторыми присоединенными фазами. Итак, необходимые шаги:

  • Входной слой: двумерные массивы нейронов, представляющие пиксели изображения.
  • Сверточный слой. Используется для извлечения визуальных признаков из изображения небольшими фрагментами.
  • Объединяющий слой: уменьшает количество нейронов в сети, но сохраняет наиболее важную информацию. (уменьшается путем вычисления avg/sum/max).
  • Полностью подключенная нейронная сеть: состоит из скрытых слоев и производит классификацию в выходном слое.
  • Выходной слой: одномерный массив нейронов, по одному нейрону на каждую категорию классифицируемого изображения.

Входной слой и выходной слой являются 2D и 1D соответственно в случае CNN. Поскольку CNN в основном используется для классификации изображений, входными данными являются изображения 2D-пикселей, а выходными данными являются 1D-изображения, где каждый нейрон представляет собой уникальное наблюдение.

В слое свертки мы применяем несколько фильтров. Фильтры могут математически модифицировать ввод свертки для обнаружения признаков. Эти фильтры могут быть:

  1. Неизмененное изображение
  2. Размытие изображения
  3. Повышение резкости изображения
  4. Обнаружение краев

После многократного повторения свертки и объединения мы, наконец, получаем результат, передаваемый на полностью связанные скрытые слои, и, наконец, производим классификацию в выходном слое.

Нейронная сеть деконволюции: выполняет обратную CNN, принимая входное значение и пытаясь создать изображение.

Рекуррентная нейронная сеть (RNN)

Этот особый тип нейронной сети также позволяет учиться на скрытом слое. Он обеспечивает кратковременную память для сети. Здесь скрытый слой действует как вход для следующего случая.

Предоставляя несколько скрытых слоев, мы получаем более эффективное решение, основанное на предыдущих результатах. Рекуррентные нейронные сети полезны в задачах, связанных с:

  • Данные временного ряда
  • Последовательность символов
  • Последовательность слов

RNN в основном бывают двух типов:

  1. Gated RNN: содержит ворота обновления и сброса
  2. Долгосрочная кратковременная память: содержит функции ввода, вывода и забывания.

Генеративно-состязательные сети (GAN)

Этот метод состоит из двух нейронных сетей, конкурирующих друг с другом (таким образом, «состязательных»). В конце концов, чтобы победить другого, мы получаем оптимальное решение.

Например, если мы стремимся создавать поддельные изображения. Задачи двух сетей будут заключаться в следующем:

  • Генератор будет создавать поддельные изображения
  • Дискриминатор сравнивает фальшивые изображения с реальными изображениями и предсказывает, настоящее это или поддельное.

Таким образом, продолжая этот процесс, обучение обеих сетей приведет к тому, что генератор будет генерировать реальные изображения (типа), которые дискриминатору будет трудно проанализировать.

Глубокое обучение с подкреплением

Мы знакомимся с концепцией вознаграждения. То есть за каждое благоприятное мы получаем вознаграждение. Таким образом, агент (нейронная сеть) взаимодействует с окружающей средой.

В качестве примера из реальной жизни мы можем предположить, что автомобиль является агентом, который выполняет действие (движение или остановка) по отношению к окружающей среде. strong>, и происходят две вещи:

  • Состояние автомобиля меняется — движется или стоит.
  • Награда достигнута — расстояние от пункта назначения уменьшается при правильном движении

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

На этом мы подошли к концу этой статьи Погружение в глубокое обучение!

Далее мы будем обсуждать бесконечные приложения глубокого обучения и как, для начала, этап внедрения. Так что следите за обновлениями.

Первоначально опубликовано на processlogs.wordpress.com 8 августа 2018 г.