Вы находитесь на странице: 1из 47

Нейронные

сети
ПОШАГОВОЕ СОЗДАНИЕ С
ПРАКТИЧЕСКИМИ
ПРИМЕРАМИ

01
Нейронные сети
Что это такое
• Это последовательность нейронов,
Нейронные сети соединенных между собой синапсами.
Структура нейронной сети пришла в мир
• математическая модель, а также её
программирования прямиком из
программное или аппаратное
биологии. Благодаря такой структуре,
воплощение, построенная по принципу
машина обретает способность
организации и функционирования
анализировать и даже запоминать
биологических нейронных сетей — сетей
различную информацию.
нервных клеток живого организма.
• Нейронные сети также способны не
только анализировать входящую
информацию, но и воспроизводить ее из
02 своей памяти.
КЛАССИФИКАЦИЯ

Для чего нужны нейронные Распределение данных по параметрам. Например, на


сети? вход дается набор людей и нужно решить, кому из них
давать кредит, а кому нет. Эту работу может сделать
нейронная сеть, анализируя такую информацию как:
возраст, платежеспособность, кредитная история и тд.

ПРЕДСКАЗАНИЕ
Возможность предсказывать следующий шаг.
Например, рост или падение акций, основываясь на
ситуации на фондовом рынке.

РАСПОЗНАВАНИЕ
В настоящее время, самое широкое применение
нейронных сетей. Используется в Google, когда вы
ищете фото или в камерах телефонов, когда оно
определяет положение вашего лица и выделяет его и
03
многое другое.
Нейронные сети
ИДЕЯ ОБЧУЕНИЯ

Нейронные сети не программируются в привычном смысле этого слова, они


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

Это значит, что в случае успешного обучения сеть сможет вернуть верный
результат на основании данных, которые отсутствовали в обучающей
04 выборке, а также неполных и/или «зашумленных», частично искажённых
данных.
TensorFlow
Что это

• Открытая программная библиотека для


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

05
TensorFlow
ПРИМЕНЕНИЕ

Применяется как для исследований, так и для разработки собственных


продуктов Google. Основной API для работы с библиотекой реализован для
Python, также существуют реализации для R, C Sharp, C++, Haskell, Java, Go и
Swift.

TensorFlow хорошо подходит для автоматизированной аннотации


изображений в таких системах как DeepDream. Также с 26 октября 2015 года
Google использует систему RankBrain для увеличения релевантности
06 ранжировки поисковой выдачи Google. RankBrain основан на TensorFlow.
Шаг 0
КАК УСТРОЕНЫ НЕЙРОННЫЕ
СЕТИ
TEACHABLE MACHINE
• Образовательный проект Google,
направленный на познание основ
нейронных сетей.
• Демонстрирует 3 основных компонента
ИИ: сбор информации (входной слой),
обучение модели (скрытые слои), выдача
результата (выходной слой)

07
ВХОДНЫЕ ДАННЫЕ
Сеть собирает информацию информацию из источника
(например, фото с вебкамеры)

ОБУЧЕНИЕ СЕТИ
Сеть собирает датасеты, чтобы установить
закономерность на собранных снимках и обрабатывает
данные
РЕАКЦИЯ
Устанавливается реакция ИИ при получении данных,
схожих с собранным датасетом
ВЫВОД РЕЗУЛЬТАТА
При получении данных система выдает результат в
соответствии с "тренировкой"
08 ПРИНЦИП РАБОТЫ
НА БАЗЕ БИБЛИОТЕКИ

Шаг 1 PYTHON TENSORFLOW

ПОДГОТОВКА К РАБОТЕ

Для работы нам понадобится Python и TensorFlow, открытая библиотека Google


для создания и тренировки нейронных сетей

10
Настройка
Windows для работы с TensorFlow

• Установка Python с оф. сайта


• Установка виртуального
окружения
• Используем cmd.exe и вводим
команды.
• Это позволит установить
инструмент для запуска программ
в виртуальном окружении. Мы
сможем запускать все библиотеки
и приложения внутри 1 папки
11
TensorFlow
Установка библиотеки ИИ с API на 1.
Python

2.
• Вводим команду
• Проверим работоспособность
библиотеки, последовательно
вводя команды. При успешной
работе на экране будет фраза
"Hello, TensorFlow"

12
НА БАЗЕ БИБЛИОТЕКИ

Шаг 2 PYTHON TENSORFLOW

ДОБАВЛЯЕМ КЛАССИФИКАТОР

Классификатор - инструмент, который позволяет методам машинного


обучения понимать, к чему относится неизвестный объект.

Для примера, научим сеть распознавать, что за цветок расположен на


картинке.

13
TensorFlow
Классификатор

• Открываем страницу "TensorFlow


for poets" на Github, скачиваем
классификатор
(https://github.com/googlecodelabs/t
ensorflow-for-poets-2)
• Распаковываем архив в папку,
созданную на шаге 1

14
НА БАЗЕ БИБЛИОТЕКИ

Шаг 3 PYTHON TENSORFLOW

ДОБАВЛЯЕМ НАБОР ДАННЫХ (ДАТАСЕТ)

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

15
TensorFlow
Датасет

• Скачиваем набор данных (датасет)


Google с цветами
(http://download.tensorflow.org/exa
mple_images/flower_photos.tgz). На
основе этих данных научим
понимать сеть, что расположено
на картинке
• Распаковываем архив в папку
/tf_files классификатора

16
НА БАЗЕ БИБЛИОТЕКИ

Шаг 4 PYTHON TENSORFLOW

ПЕРЕОБУЧАЕМ МОДЕЛЬ

Теперь нужно запустить обучение нейронной сети, чтобы она


проанализировала картинки из датасета и поняла при помощи
классификатора, как и какой тип цветка выглядит.

17
1.
TensorFlow
Обучение модели

• Переходим в папку с
классификатором. Можно
воспользоваться командой
терминала.
• Запускаем процесс обучения

python scripts/retrain.py --output_graph=tf_files/retrained_graph.pb --output_labels=tf_files/retrained_labels.txt --image_dir=tf_files/flower_photos

18
Что в команде:
RETRAIN.PY
название Python-скрипта, который отвечает за
запуск процесса обучения нейронной сети.

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

OUTPUT_LABELS
создание нового файла с метками. В нашем
примере это ромашки, подсолнухи, одуванчики,
тюльпаны или розы.

IMAGE_DIR
19
путь к папке, в которой находятся изображения с
цветами.
TensorFlow
Программа начнет создавать фалйы
bottleneck - текстовые файлы с
информацией об изображении.

Они помогут классификатору


быстрее определить подходящую
картинку.

После завершения анализа нейросеть


сможет распознавать на любой
картинке ромашки, подсолнухи,
одуванчики, тюльпаны и розы.
TensorFlow
Перед тестированием нейросети
нужно открыть файл label_image.py,
находящийся в папке scripts в любом
текстовом редакторе и заменить
значения в строках:
НА БАЗЕ БИБЛИОТЕКИ

Шаг 4 PYTHON TENSORFLOW

ТЕСТИРОВАНИЕ

Теперь нужно проверить работу нашей системы

22
TensorFlow
• Выберите любое изображение
цветка, которое нужно
проанализировать, и поместите
его в папку с нейронной сетью.
• Назовите файл image.jpg.
• Для запуска анализа нужно ввести
команду
• Нейросеть проверит картинку на
соответствие одному из лейблов и
выдаст результат с оценкой

С вероятностью 72% - роза


НА БАЗЕ БИБЛИОТЕКИ

Шаг 6 PYTHON TENSORFLOW

УЧИМ НЕЙРОННУЮ СЕТЬ РАСПОЗНАВАТЬ


ПРЕДПРИНИМАТЕЛЕЙ

Теперь можно расширить возможности нейронной сети — научим её


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

24
TensorFlow
Для создания датасета с фотографиями
предпринимателей можно
воспользоваться расширением для
Chrome, которое сохраняет все картинки
на странице.

Папку с изображениями Элона Маска


нужно поместить
в \tf_files\flower_photos\musk\.
Аналогично все изображения с
основателем Facebook — в
папку \tf_files\flower_photos\zuckerberg\.
Чем больше фотографий будет в папках,
тем точнее нейронная сеть распознает
на ней предпринимателя.
TensorFlow
Переобучаем и проверяем

Используем команды из шага 3 и 4 для переобучения нейронной сети

python scripts/retrain.py --output_graph=tf_files/retrained_graph.pb --output_labels=tf_files/retrained_labels.txt


--image_dir=tf_files/flower_photos

python scripts/label_image.py --image image.jpg


НА БАЗЕ БИБЛИОТЕКИ

Шаг 7 PYTHON TENSORFLOW

«РАЗГОНЯЕМ» НЕЙРОННУЮ СЕТЬ

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


лучше всего запускать на сервере с GPU — он спроектирован специально для
таких задач. Примером может служить selectel.ru.
Процесс запуска и обучения нейронной сети на сервере похож на
аналогичный процесс на компьютере.

27
Создание сервера с
Ubuntu
Нам понадобится сервер с операционной системой Ubuntu. Её
можно установить самостоятельно, либо — если арендован 28
сервер — через техподдержку компании.
На сервере
1.
• Установка Python
• Установка TensorFlow
• Скачиваем классификатор и
2.
набор данных как в шагах 1 и 2
на сервер.
python3 scripts/retrain.py --output_graph=tf_files/retrained_graph.pb
• Переобучаем модель
3. --output_labels=tf_files/retrained_labels.txt --image_dir=tf_files/flower_photos
• Тестируем нейросеть

4.
Ваша нейросеть
готова

30
BRAIN.JS

Практическое
применение
нейронной сети
Brain.JS

31
Что сделаем?

ПОЗНАКОМИМСЯ НАУЧИМСЯ УВИДИМ РЕЗУЛЬТАТ


Узнаём что такое Brain.JS Научимся использовать Рассмотрим вариант готовой
Brain.JS нейросети
Brain.JS
Библиотека brain.js является работой
энтузиастов, которые не стали
равнодушны к закрытию
проекта brain и создали собственную
библиотеку, которая и по сей день
очень активно развивается.

BRAIN.JS 33
Brain.JS
ОСОБЕННОСТЬ

CPU

Сложные вычисления, прогнозирование,


анализ

GPU

34 Работа с графикой, распознавание BRAIN.JS


ПОДКЛЮЧАЕМ
<script src="//unpkg.com/brain.js"></script>

СОЗДАЁМ
'название нейросети' = new brain.NeuralNetwork();

Начинаем?
ЗАПОЛНЯЕМ
Создаём массив вида: [вход, выход]

ТРЕНИРУЕМ
net.train ('массив данных', {'настройки тренировки'});

ИСПОЛЬЗУЕМ
result = brain.likely('входные данные', 'нейросеть');
35 BRAIN.JS
net.run(input);
Пример массива данных для
тренировки нейросети

BRAIN.JS 36
Тренируем

CREATIVE PORTFOLIO 37
Распознование
рукописного
ввода

BRAIN.JS 38
Как видит
компьютер?
Где у него глаза? И как он их
использует?

BRAIN.JS 39
Сферы
использования
ИСКУСТВЕННЫЙ ИНТЕЛЛЕКТ
Главный элемент моделирования ИИ с
помощью вычислений

МАТЕМАТИКА
Решение сложных задач с огромным
количеством параметром и
переменных

ПРИКЛАДНЫЕ ЗАДАЧИ
Распознавание изображения, текста, CREATIVE PORTFOLIO 45
прогнозирование, анализ и т.п.
В чем главный плюс?
Огромная вычислительная мощь, возможность автоматизации
иных процессов и огромнейший потенциал 46
Спасибо за
внимание
"Я думаю, что наш разум — это программа,
в то время как мозг — аналог компьютера. "
Стивен Хокинг

47

Вам также может понравиться