- •Искусственный интеллект. Определения искусственного интеллекта. История развития искусственного интеллекта
- •Предпосылки развития науки искусственного интеллекта
- •Парадигмы искусственного интеллекта. Тест Тьюринга
- •Подходы к созданию интеллектуальных систем.
- •Направления развития искусственного интеллекта
- •Области применения искусственного интеллекта
- •Интеллектуальные системы. Основные понятия и определения. Структура интеллектуальной системы.
- •Модели и методы знаний. Структуры памяти эвм. Информационные структуры для хранения данных.
- •Модели представления данных.
- •Концепция знаний.
- •Модели представления знаний. Логические и сетевые модели.
- •Модели представления знаний. Продукционные и фреймовые модели.
- •Графы сетей Петри Скучная и непонятная теория из лекций
- •Наглядный пример Пример 1
- •Пример 2
- •Сети Петри: дерево достижимых разметок.
- •Оценка свойств сетей Петри на основе матричных уравнений.
- •Алгебра сетей Петри: операции над сетями Петри.
- •Расширения сетей Петри: ингибиторные, приоритетные, временные.
- •Способы описания сетей Петри.
- •Методы анализа сетей Петри. Задачи анализа.
- •Методы анализа сетей Петри. Дерево достижимых разметок.
- •Методы анализа сетей Петри. Анализ на основе матричных методов.
- •Проектирование сложных вычислительных структур. Структурный подход.
- •Матричные структуры. Преимущества матричных структур.
- •Примеры проектирование структур матричных процессоров на основе проекций процессорных элементов.
- •Построение параллельных матричных систем на примере умножения двух матриц.
- •Глубокое обучение. Принцип действия глубокого обучения. Геометрическая интерпретация глубокого обучения.
- •История машинного обучения. Вероятностное моделирование. Метод опорных векторов. Деревья решений.
- •Математические основы нейронных сетей.
- •Нейронные сети. Представление данных.
- •Нейронные сети. Представление данных. Примеры.
- •Нейронные сети. Операции с тензорами. Примеры.
- •Сверточные нейронные сети. Эффект границ. Шаг свертки.
- •Основные задачи в сфере компьютерного зрения.
- •Сверточные нейронные сети. Модульность, иерархия, многократное использование
- •Рекурентные нейронные сети. Класс задач, решаемых рекурентными нейронными сетями.
- •Рекурентные нейронные сети. Обработка естественных языков.
- •Генеративное глубокое обучение. Художественная обработка изображений.
- •Генетические алгоритмы. Основные понятия.
Генеративное глубокое обучение. Художественная обработка изображений.
После своего появления алгоритм нейронной передачи стиля претерпел множество усовершенствований, породил множество вариаций и нашел применение во множестве приложений обработки фотографий для смартфонов.
Нейронная передача стиля заключается в применении стиля изображения-образца к целевому изображению при сохранении содержимого этого целевого изображения.
В данном контексте под стилем в основном подразумеваются текстуры, цветовая палитра и визуальные шаблоны в различных пространственных масштабах; а под содержимым — высокоуровневая макроструктура изображения. Например, сине-желтые круговые мазки соответствуют стилю (в качестве образца использована картина Винсента Ван Гога «Звездная ночь»), а здания на фотографии — это содержимое
Идея передачи стиля, тесно связанная с созданием текстур, давно вынашивалась в сообществе людей, увлеченных обработкой изображений, прежде чем воплотилась в алгоритм нейронной передачи стиля в 2015 году. Однако, как оказалось, реализации передачи стиля, основанные на глубоком обучении, не имеют аналогов среди прежних достижений, использовавших классические методики компьютерного зрения, и потому они породили удивительный бум в сфере художественных приложений компьютерного зрения.
Как известно, активации из нижних слоев в сети содержат локальную информацию об изображении, тогда как активации из верхних слоев содержат все более глобальную, абстрактную информацию. Другими словами, активации разных слоев сверточной сети обеспечивают разложение содержимого изображения в разных пространственных масштабах. Поэтому можно ожидать, что содержимое более глобального и абстрактного изображения будет захватываться представлениями верхних слоев сети. Если допустить, что верхние слои сверточной сети действительно видят содержимое входных изображений, тогда минимизация этой функции может рассматриваться как способ сохранения содержимого изображения. Что и легло в основу алгоритмов генеративного глубокого обучения
Выводы
Передача стиля заключается в создании нового изображения, которое сохраняет содержимое целевого изображения и оформлено в стиле изображения-образца.
Содержимое может сохраняться активациями верхнего слоя сверточной сети.
Стиль может сохраняться внутренними корреляциями активаций разных слоев.
Таким образом, передачу стиля в глубоком обучении можно сформулировать как процесс оптимизации, использующий функцию потерь, которая определяется предварительно обученной сверточной сетью.
Начав с этой простой идеи, можно реализовать множество разнообразных вариантов.
Генетические алгоритмы. Основные понятия.
Генети́ческий алгори́тм (англ. genetic algorithm) — это эвристический алгоритм поиска, используемый для решения задач оптимизации и моделирования путём случайного подбора, комбинирования и вариации искомых параметров с использованием механизмов, аналогичных естественному отбору в природе.
Генетический алгоритм является разновидностью эволюционных вычислений, с помощью которых решаются оптимизационные задачи с использованием методов естественной эволюции, таких как наследование, мутации, отбор.
Отличительной особенностью генетического алгоритма является акцент на использование оператора «скрещивания», который производит операцию рекомбинации решений-кандидатов, роль которой аналогична роли скрещивания в живой природе.
Как это выглядит в реальной жизни?
Представим, что нам необходимо получить алгоритм для автомобильного автопилота. Для этого сначала надо определить критерий успешности решения задачи. Им может быть, например, минимизация времени поездки и суммы штрафов за нарушения правил. Функция, при помощи которой рассчитывается успешность решения задачи в эволюционных алгоритмах, называется функцией приспособленности. При помощи приспособленности определяется «выживаемость» решения.
Затем необходимо выбрать базовый алгоритм управления, который будет использоваться в автопилоте. Например, нейронные сети. То, что делает нейросеть, определяется ее параметрами — весами связей между нейронами. Именно эти параметры надо менять, чтобы изменить поведение автопилота.
Модификация поведения в биологической эволюции происходит под действием мутаций в генах, в нашем случае в качестве гена будет выступать вес каждой связи в нейросети. Гены-веса будут мутировать и автопилоты с разными вариантами нейросетей будут вести машину по-разному.
В эволюционных (эволюционно-генетических) алгоритмах сопоставление параметров решения (в нашем случае весов нейросети) генам называется кодирование.
Набор параметров для конкретного решения определяется совокупностью значений генов и называется генотипом.
Само конкретное решение, такое как наш автопилот, называется особью или фенотипом.
Как нам создать автопилот?
Общая схема, по которой работает подавляющее большинство эволюционных алгоритмов, выглядит следующим образом:
1. Задаем схему кодирования решения. Определяем, как гены будут задавать веса нейросети автопилота.
2. Создаем исходную популяцию решений, случайно задав значения генов. Пусть у нас будет 100 автопилотов.
3. Каждую особь-нейросеть популяции тестируем в виртуальном симуляторе автомобиля. После теста при помощи функции приспособленности рассчитываем приспособленность каждой особи.
4. Формируем следующее поколение решений. Для каждого потомка выбираем двух родителей из предыдущего поколения. Родители выбираются пропорционально приспособленности: чем лучше родитель вел машину, тем выше вероятность того, что он примет участие в размножении. Так реализуется естественный отбор — в следующем поколении окажется больше генов от более приспособленных родителей.
5. При формировании генотипа потомка мы перемешиваем гены родителей и вносим в них небольшие мутации. Ведь нам необходимо найти решение, которое будет отличаться от имеющихся, возможно даже в лучшую сторону.
6. Теперь у нас есть следующее поколение, для его тестирования переходим к п. 3.
7. Отслеживаем, насколько хорошо решается поставленная задача. Если автопилот уже годы ездит в виртуальном городе, наполненном пешеходами и другими машинами, не нарушая правила и не попадая в аварии, значит, возможно, пора тестировать его в реальных условиях.
Заключение
Область генетических алгоритмов сейчас подвергается испытанию, как и нейронные сети в свое время.
Докажет ли эволюционный подход свою полезность в качестве надежного инструмента, покажет время.