Добавил:
СПбГУТ * ИКСС * Программная инженерия Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:

Отчет по практике / Отчет по практике

.pdf
Скачиваний:
46
Добавлен:
11.06.2022
Размер:
1.93 Mб
Скачать

МИНИСТЕРСТВО ЦИФРОВОГО РАЗВИТИЯ, СВЯЗИ И МАССОВЫХ КОММУНИКАЦИЙ РОССИЙСКОЙ ФЕДЕРАЦИИ

ФЕДЕРАЛЬНОЕ ГОСУДАРСТВЕННОЕ БЮДЖЕТНОЕ ОБРАЗОВАТЕЛЬНОЕ УЧРЕЖДЕНИЕ ВЫСШЕГО ОБРАЗОВАНИЯ

«САНКТ-ПЕТЕРБУРГСКИЙ ГОСУДАРСТВЕННЫЙ УНИВЕРСИТЕТ ТЕЛЕКОММУНИКАЦИЙ ИМ. ПРОФ. М.А. БОНЧ-БРУЕВИЧА» (СПбГУТ)

________________________________________

Факультет Инфокоммуникационных сетей и систем Кафедра Программной инженерии и вычислительной техники

Отчет по преддипломной практике

Предприятие: ГУТ

Период прохождения практики: 23.04.22 – 06.06.22

Выполнил Коваленко Леонид Александрович, ИКПИ-84

(Ф.И.О., № группы)

Подпись студента_____________________

Руководитель практики от базы практики:

_____________________________________

(Ф.И.О., Подпись)

Оценка ______________________________

Руководитель практики от кафедры:

_____________________________________

(кафедра, Ф.И.О.)

_____________________________________

(Подпись)

Санкт-Петербург

2022

СОДЕРЖАНИЕ

Введение

.........................................................................................................

3

1 Обзор ..........предметной области и анализ существующих решений

5

1.1

Обзор ...........................................................предметной области

5

1.1.1 ..............................................Введение в предметную область

5

1.1.2 ...................................................

Классификация изображений

6

1.1.3 ...............................................................

Классификация текста

7

1.2

Анализ ..................................................существующих решений

8

1.2.1 .............................................MATLAB Deep Learning Toolbox

8

1.2.2 ..........................Графические приложения на основе IPython

9

1.2.3 ............................................Neural Network Console WinAPP

13

1.2.4 ..................................................................................

Net Maker

14

1.2.5 .....................................................................................

Simbrain

15

1.3

Обзор ......состояния науки о данных и машинного обучения

16

1.4

Выводы..........................................................................................

17

Заключение ..................................................................................................

18

Список использованных ........................................................источников

18

2

Введение

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

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

Нейронные сети используются для решения бизнес-задач различного уровня сложности. Каждая задача характеризуется набором последовательных шагов, так называемым конвейером машинного обучения (англ. «machine learning pipeline»). Конвейер включает в себя предобработку данных, создание модели нейронной сети, ее обучение, валидацию, тестирование и экспорт для последующего использования. Некоторые части не изменяются от эксперимента к эксперименту, поэтому их можно выделить в группы и использовать повторно.

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

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

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

3

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

Для достижения целей работы необходимо выполнить следующие задачи:

1.Обзор предметной области и анализ существующих решений;

2.Написание формализованных требований;

3.Создание настольного приложения;

4.Визуализация тестирования моделей машинного обучения в пределах установленных задач.

4

1Обзор предметной области и анализ существующих решений

1.1Обзор предметной области

1.1.1 Введение в предметную область

Искусственный интеллект — свойство интеллектуальных систем выполнять творческие функции, которые традиционно считаются прерогативой человека [1].

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

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

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

вспособности к обобщению [2].

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

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

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

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

5

Рисунок 1.1 — Обобщенный конвейер машинного обучения

Некоторые шаги конвейера (выбор параметров обучения и валидации,

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

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

1.1.2 Классификация изображений

Задача классификации является одной из самых популярных. Об этом свидетельствует портал «Machine Learning» (PapersWithCode): 3772 научных документов — самое большое среди всех методологий, представленных на портале [3].

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

Классификация изображений является многоклассовой классификацией; входными данными являются изображения, а выходными — метки классов.

Конвейер машинного обучения может выглядеть следующим образом:

1.Обработка входного изображения (изменение размера,

преобразование цветового пространства и др.);

2.Искажение изображения (англ. «augmentation») для более качественного обучения модели;

6

3.Построение модели;

4.Настройка параметров обучения;

5.Запуск обучения.

6.Визуализация (графики точности и функции потерь, визуализация промежуточных результатов модели);

7.Экспорт моделей.

1.1.3 Классификация текста

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

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

Анализ тональности текста — задача, заключающаяся в определении эмоциональной окраски (тональности) текста. Является бинарной классификацией; входными данными являются тексты, а выходными — группы «positive» и «negative». Применяется для анализа настроений пользователей, их отношений к чему-либо.

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

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

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

«периметр — Периметр» (комплекс автоматического управления ответным ядерным ударом).

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

7

1.2 Анализ существующих решений

1.2.1 MATLAB Deep Learning Toolbox

MATLAB Deep Learning Toolbox предоставляет платформу для проектирования и реализации глубоких нейронных сетей с алгоритмами,

предварительно обученными моделями и приложениями [4]. Можно выполнять классификацию и регрессию изображений, временных рядов и текстовых данных. Можно создавать сетевые архитектуры, такие как генеративные состязательные сети (GAN) и сиамские сети (Siamese Network),

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

Приложение Deep Network Designer позволяет проектировать,

анализировать и обучать сети в графическом виде.

Приложение Experiment Manager позволяет управлять несколькими экспериментами глубокого обучения, отслеживать параметры обучения,

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

Можно импортировать/экспортировать модели из/в формат ONNX (рис.

1.2). Инструментарий поддерживает трансферное обучение (метод, в котором используются предварительно обученные модели) с DarkNet-53, ResNet-50, NASNet, SqueezeNet и многими другими.

Рисунок 1.2 — Возможности импорта и экспорта в MATLAB Deep Learning Toolbox

8

Скриншот MATLAB Deep Learning Toolbox приведен на рисунке 1.3.

Рисунок 1.3 — MATLAB Deep Learning Toolbox

1.2.2 Графические приложения на основе IPython

IPython — интерактивная оболочка, первоначально разработанная для языка программирования Python, которая предлагает визуализацию данных,

поддержку некоторых инструментариев GUI, командный синтаксис,

подсветку кода, автоматическое дополнение, параллельные вычисления.

К графическим приложениям на основе IPython относятся:

JupyterLab и Jupyter-Notebook (Desktop) (рис. 1.4) [5];

Visual Studio Code Jupyter-Notebooks Extension (Desktop) (рис. 1.5) [6];

Google Colaboratory (Web) (рис. 1.6) [7];

Kaggle Notebooks (Web) (рис. 1.7) [8];

Paperspace Gradient (Web) (рис. 1.8) [9];

Amazon SageMaker Studio Lab (Web) (рис. 1.9) [10];

Microsoft Azure Notebooks (Web) (рис. 1.10) [11].

Отличия во внешнем виде и некоторых дополнительных функциях.

9

Рисунок 1.4 — JupyterLab

Рисунок 1.5 — Visual Studio Code, Jupyter-Notebooks Extension

10

Соседние файлы в папке Отчет по практике