Добавил:
Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:

8124

.pdf
Скачиваний:
0
Добавлен:
23.11.2023
Размер:
1.4 Mб
Скачать

Данные. Эта фигура указывает, что данные поступают в процесс или покидают его. Также эта фигура может представлять материалы. Иногда ее называют фигурой "Ввод/Вывод".

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

Ссылка на другую страницу. При размещении этой фигуры на странице открывается диалоговое окно, в котором можно создать набор гиперссылок между двумя страницами блок-схемы или между фигурой "Подпроцесс" и отдельной страницей блок-схемы, на которой показаны этапы этого подпроцесса.

Задание на лабораторную работу.

Нарисуйте блок-схему и диаграмму классов вашего собственного

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

предыдущих лабораторных работ.

41

ЛЛАБОРАТОРНАЯРАБОТА.5ОРГАНИЗАЦИЯ КОЛЛЕКТИВНОЙ РАБОТЫ, УПРАВЛЕНИЯ И КОНТРОЛЯ ТРЕБОВАНИЙ СО СТОРОНЫ ЗАКАЗЧИКА ПРИ РАЗРАБОТКЕ СИСТЕМ ИСКУССТВЕННОГО ИНТЕЛЛЕКТА С ИСПОЛЬЗОВАНИЕМ ОТЕЧЕСТВЕННОГО ПРОГРАММНОГО ОБЕСПЕЧЕНИЯ (YANDEX TRACKER, БИТРИКС 24)

Задания на лабораторную работу:

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

2.Попробуйте использовать бесплатно использовать сервис для совместной работы и организации процессов в компании Yandex Tracker (https://cloud.yandex.ru/services/tracker) в интересах контроля качества вашего проекта со стороны заказчика. В роли заказчика может выступать ваш преподаватель или одногруппник.

3.Попробуйте бесплатно использовать сервис Битрикс24

(https://www.bitrix24.ru/) для организации управления проектом по методике Scrum. Делегируйте, управляйте сроками, назначайте ответственных, создавайте шаблоны задач.

42

ЛАБОРАТОРНАЯ1 РАБОТА № 6 ЛАБОРАТОРНАЯ РАБОТА № 6

Реализация системы классификации

сигналов на базе последовательной

нейронной сети с использованием

Python и его библиотек глубокого обучения, таких как TensorFlow и

PyTorch

Последовательные нейронные сети

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

Данную функцию называют функцией активации или функцией срабатывания,

передаточной функцией. Полученный результат посылается на единственный выход (рисунок 1).

43

2

f (net) f

Рисунок 1 – Структурная схема искусственного нейрона

Линейная комбинация входных сигналов (значение комбинированного входа) определяется выражением:

 

n

i

 

i

net =

x

.

 

i=1

 

(0.1)

где

 

- весовой коэффициент. Полученное значение подвергается

нелинейному преобразованию с помощью функции активации f . В

большинстве случаев она является монотонно возрастающей и имеет область значений [−1, 1] или [0, 1]. Примеры функций активации нейронов:

Линейная передаточная функция

Сигнал на выходе нейрона линейно связан с взвешенной суммой сигналов на его входе:

f (x) = t net,

где

t

- параметр функции.

44

3

Рисунок 2 – Линейная передаточная функция

Пороговая передаточная функция

Другое название — функция Хевисайда. Представляет собой перепад.

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

1

if

net T

 

f (net ) =

 

else

.

0

 

 

45

4

Рисунок 3 – Пороговая функция активации

Сигмоидальная передаточная функция

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

 

 

f (net ) =

 

1

.

 

 

 

+ exp(t net )

 

 

 

1

 

 

Здесь

t

— это параметр функции,

определяющий её крутизну. Когда

t

стремится к бесконечности, функция вырождается в пороговую. При t = 0

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

46

5

Рисунок 4 – Сигмоидальная функция активации

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

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

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

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

которые могут быть решены однослойной сетью (т.е. сетью, имеющей только входные и выходные элементы) [1].

Изображение многослойной нейронной сети представлено на рисунке

5.

47

6

0

 

0, 4

 

0, 5

1 1, 4

 

 

1, 5

 

2, 4

 

2 2, 5

3

 

 

 

 

 

 

 

3, 6

 

 

 

 

 

 

3, 7

 

3, 8

 

4

 

 

 

 

4, 6

 

 

f (net4)

 

 

 

 

 

4, 7

 

4, 8

5

 

 

 

5, 6

 

f (net )

 

5, 7

 

5

 

 

 

5, 8

6

O6

f (net6)

7

O7

f (net7)

8

O8

f (net8)

Рисунок 5 – Многослойная нейронная сеть

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

Нейроны входного слоя нейронной сети никак не модифицируют сигнал, а

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

На рисунке 5 каждый искусственный нейрон имеет свой порядковый номер j = 0...8. В соответствии с такой нумерацией сигнал на выходе j -го нейрона скрытого слоя будет равен

о

 

= f

 

x

 

 

,

j

 

 

 

 

i

i, j

 

 

 

 

 

i

 

 

 

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

функция активации, которая чаще всего является сигмоидной (t = 0),

входной сигнал, который в зависимости от расположения нейрона

f

-

xi

-

 

в

48

7

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

Чаще всего с помощью последовательных нейронных сетей решают три задачи: задачу классификации (распознавания), задачу предсказания и задачу

аппроксимации данных.

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

[0,1] и сумма координат равна 1. Т.е. каждая координата i , полученного вектора, является вероятностью, с которой объект принадлежит к классу с

порядковым номером i.

Функция softmax определяется выражением:

 

(o)i

=

eoi

,

 

K 1

 

 

 

eok

 

 

 

 

k =0

 

где

K - количество нейронов в последнем слое нейронной сети (количество

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

1 Обучение последовательной нейронной сети

Наиболее часто нейронные сети реализуют программно с помощью языков программирования Python и С++. При инициализации нейронной сети указывают количество ее слоев, количество нейронов в каждом слое нейронной сети, функцию активации нейронов. Чаще всего все нейроны имеют одинаковую функцию активации. Весовые коэффициенты нейронов

49

E = Ep .

8

принимают случайные значения в диапазоне [-0,3; 0,3] и корректируются в процессе обучения нейронной сети.

Для обучения нейронных сетей требуются значительные объемы

обучающих данных, содержащие от тысячи до десятков тысяч образцов.

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

обучения нейронной сети.

При обучении нейронной сети каждому вектору X = xl , подаваемому на ее вход, ставится в соответствие целевой вектор T = t j , который должен быть поучен на ее выходе. При этом на выходе нейронной сети получаем вектор O = oj , значения которого отличаются от требуемого вектора T .

Тогда ошибка (потеря) нейронной сети для образца

p

может быть

определена по формуле

 

 

 

Ep =

1

j

(t j oj )2 ,

 

(1.1)

2

 

а полная ошибка будет равна

(1.2)

Алгоритм обратного распространения ошибки корректирует веса нейронной сети каждый раз при подаче на ее вход какого-либо вектора входных отчетов из множества обучающих данных, минимизируя ошибку Ep .

При этом в результате обучения нейронной сети может возникнуть ситуация

50

Соседние файлы в предмете [НЕСОРТИРОВАННОЕ]