Добавил:
Developer Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Кулагин ответы экзамен.docx
Скачиваний:
18
Добавлен:
17.01.2024
Размер:
7.42 Mб
Скачать
  1. Генеративное глубокое обучение. Художественная обработка изображений.

После своего появления алгоритм нейронной передачи стиля претерпел множество усовершенствований, породил множество вариаций и нашел применение во множестве приложений обработки фотографий для смартфонов.

Нейронная передача стиля заключается в применении стиля изображения-образца к целевому изображению при сохранении содержимого этого целевого изображения.

В данном контексте под стилем в основном подразумеваются текстуры, цветовая палитра и визуальные шаблоны в различных пространственных масштабах; а под содержимым — высокоуровневая макроструктура изображения. Например, сине-желтые круговые мазки соответствуют стилю (в качестве образца использована картина Винсента Ван Гога «Звездная ночь»), а здания на фотографии — это содержимое

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

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

Выводы

Передача стиля заключается в создании нового изображения, которое сохраняет содержимое целевого изображения и оформлено в стиле изображения-образца.

Содержимое может сохраняться активациями верхнего слоя сверточной сети.

Стиль может сохраняться внутренними корреляциями активаций разных слоев.

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

Начав с этой простой идеи, можно реализовать множество разнообразных вариантов.

  1. Генетические алгоритмы. Основные понятия.

Генети́ческий алгори́тм (англ. genetic algorithm) — это эвристический алгоритм поиска, используемый для решения задач оптимизации и моделирования путём случайного подбора, комбинирования и вариации искомых параметров с использованием механизмов, аналогичных естественному отбору в природе.

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

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

Как это выглядит в реальной жизни?

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

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

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

В эволюционных (эволюционно-генетических) алгоритмах сопоставление параметров решения (в нашем случае весов нейросети) генам называется кодирование.

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

Само конкретное решение, такое как наш автопилот, называется особью или фенотипом.

Как нам создать автопилот?

Общая схема, по которой работает подавляющее большинство эволюционных алгоритмов, выглядит следующим образом:

1. Задаем схему кодирования решения. Определяем, как гены будут задавать веса нейросети автопилота.

2. Создаем исходную популяцию решений, случайно задав значения генов. Пусть у нас будет 100 автопилотов.

3. Каждую особь-нейросеть популяции тестируем в виртуальном симуляторе автомобиля. После теста при помощи функции приспособленности рассчитываем приспособленность каждой особи.

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

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

6. Теперь у нас есть следующее поколение, для его тестирования переходим к п. 3.

7. Отслеживаем, насколько хорошо решается поставленная задача. Если автопилот уже годы ездит в виртуальном городе, наполненном пешеходами и другими машинами, не нарушая правила и не попадая в аварии, значит, возможно, пора тестировать его в реальных условиях.

Заключение

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

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