ВВЕДЕНИЕ 4
1 ТЕОРЕТИЧЕСКИЕ ОСНОВЫ НЕЙРОСЕТЕВОГО МОДЕЛИРОВАНИЯ.... 8
1.1 Основные понятия и определения 8
1.2 Принципы работы искусственного нейрона 10
1.2.1 Биологический нейрон 10
1.2.2 Искусственный нейрон 12
1.3 Основные типы архитектур нейронных сетей 16
1.3.1 Однослойный и многослойный персептрон 16
1.3.2 Рекуррентные нейронные сети 18
1.3.3 Свёрточные нейронные сети 20
1.4 Обучение нейронных сетей 24
1.4.1 Парадигмы обучения 24
1.4.2 Алгоритм обратного распространения ошибки 25
1.4.3 Метод градиентного спуска 26
1.4.4 Метод коррекции ошибки 27
1.5 Обзор программных средств для разработки искусственных нейронных сетей 27
1.5.1 STATISTICA Automated Neural Networks 27
1.5.2 Neural Network Toolbox 29
1.5.3 TensorFlow 32
2 РАЗРАБОТКА СВЁРТОЧНОЙ НЕЙРОННОЙ СЕТИ 34
2.1 Методы, используемые при обучении нейронной сети 34
2.1.1 Dropout 34
2.1.2 L2-regularization 35
2.1.3 Weight Initialization 35
2.1.4 Batch Normalization 37
2.1.5 Data Augmentation 37
2.1.6 Ранняя остановка обучения 39
2.2 Оценка эффективности методов, используемых при обучении нейронных
сетей для повышения точности 39
2.2.1 CIFAR-10 40
2.2.2 Базовые модели 41
2.2.3 Модификация 1. Применение Dropout, L2-regularization и Weight
Initialization 44
2.2.4 Модификация 2. Применение Weight Initialization и Batch Normalization 46
2.2.5 Модификация 3. Применение Dropout, L2-regularization, Weight
Initialization и Batch Normalization 48
2.2.6 Применение Data Augmentation к базовым моделям и модификациям 50
2.3 Анализ набора данных 52
2.4 Описание, используемой нейронной сети 55
3 РАЗРАБОТКА ИНТЕРФЕЙСА ДЛЯ ВЗАИМОДЕЙСТВИЯ СО
СВЁРТОЧНОЙ НЕЙРОННОЙ СЕТЬЮ 62
4 ЭКОНОМИЧЕСКОЕ ОБОСНОВАНИЕ РАЗРАБОТАННОЙ НЕЙРОННОЙ СЕТИ 65
ЗАКЛЮЧЕНИЕ 72
ГЛОССАРИЙ 76
СПИСОК ИСПОЛЬЗОВАННЫХ ИСТОЧНИКОВ 79
ПРИЛОЖЕНИЕ А 83
ПРИЛОЖЕНИЕ Б 88
ПРИЛОЖЕНИЕ В
На данный момент искусственные нейронные сети являются популярной темой, интерес к которой растёт с каждым днём. Искусственные нейронные сети многими рассматривается как шаг к созданию искусственного интеллекта. Данная тема развивается благодаря созданным предпосылкам таким как: научно-техническое развитие технологий и интернет. Изначально развитие данной темы началось ещё в двадцатом веке, но больших результатов она не достигла. Данная тема пережила много периодов подъёма и спада. Всегда было несколько основных проблем: через чур большие ожидания, недостаток вычислительных мощностей и данных для обучения. В текущий момент данная тема на подъёме. Ведётся множество разработок, как от крупных университетов (устраиваются соревнований на лучшую искусственную нейронную сеть, проводятся конференции и т.д.), так и от крупных корпораций (например, Google Inc.). Создаются новые сложные архитектуры, которые способны решать уже поставленные задачи на достаточно высоком уровне.
Всё изложение строится на основе теоретического и практического материала, представленного в различных источниках, начиная с книг заканчивая электронными энциклопедиями и интернет ресурсами.
Объектом исследования является процесс распознавания образов нейронными сетями.
Предмет исследования - распознавание медицинских изображений грудной клетки при помощи нейронной сети.
Свёрточные нейронные сети используются для решения многих задач машинного обучения. Для эффективного использования данных нейронных сетей исследователям приходится решать ряд проблем, которые связаны с переобучением моделей. Для решения проблем с переобучением используются следующие подходы: усложнение архитектуры модели, увеличение количества обучающих данных и применение регуляризаторов.
Применение искусственных нейронных сетей в медицинской сфере является одним из самых перспективных и полезных направлений на сегодняшний день. Крупные организации (например, Google, IBM, Nvdia и т.д.) в содействии с западными медицинскими учреждениями активно работают во многих областях медицины, в которых может помочь машинное обучение. Одним из таких направлений является анализ рентген снимков пациентов. Врачам-рентгенологам приходится анализировать множество снимков и по ним ставить различные диагнозы. Иногда это может требовать больших человеческих ресурсов (большие затраты времени), а также требовать должной квалификации. Для решения данной проблемы применяются нейронные сети, которые способны хорошо справляться с задачей классификации.
В данной работе рассматривается применение свёрточных нейронных сетей для решения задачи классификации изображений грудной клетки. Данная задача включает в себя 15 различных классов (14 классов-болезней и 1 класс с отсутствием заболеваний).
Объём работы составляет 100 страниц. В работе использовано 35 рисунков, 23 таблицы. Список использованных источников состоит из 40 источников.
Выпускная квалификационная работа состоит из четырёх разделов.
Первый раздел состоит из пяти подразделов: основные понятия и определения, принципы работы нейрона, основные типы архитектур искусственных нейронных сетей, обучение искусственных нейронных сетей, обзор программных продуктов для реализации нейросетевых технологий.
В первом подразделе рассматриваются основные понятия, связанные с искусственными нейронными сетями. Ключевым понятием там выступает само понятие искусственных нейронных сетей, которое рассмотрено с различных точек зрения (искусственный интеллект, машинное обучение, математика, кибернетика и программирование).
Во втором подразделе рассматриваются биологический нейрон и искусственный. Данный подраздел состоит из двух подразделов. Рассмотрена структура биологического нейрона и выявлены его основные составные части, такие как: синапс, аксон и дендрит. После проведения параллелей между биологическим и искусственным нейроном была рассмотрена типовая архитектура искусственного нейрона, которая включает в себя: набор входных сигналов, сумматора и функции активации.
В третьем подразделе рассматриваются три основных типа архитектур искусственных нейронных сетей. Данный раздел состоит из трёх подразделов. Рассмотрены сети прямого распространения: однослойный и многослойный персептрон, свёрточные нейронные сети. Рассмотрены основные недостатки и преимущества данных архитектур. А также рассмотрена архитектура рекуррентной нейронной сети.
В четвёртом подразделе рассматривается обучение нейронных сетей. Данный раздел состоит из четырёх подразделов, в которых рассматриваются основные парадигмы обучения, а также алгоритмы, которые используются при обучении. Рассмотрены следующие парадигмы обучения: обучение с учителем, обучение без учителя и смешанное обучение. Представлен прямой и обратной проход по сети во время обучения.
В пятом подразделе рассматриваются три программных продукта для построения и проектирования искусственных нейронных сетей. Данный раздел состоит из трёх частей. Рассматриваемые продукты: STATISTICA Automated Neural Networks, Neural Network Toolbox и TensorFlow.
Во втором разделе рассматриваются методы, которые используются при обучении свёрточных нейронных сетей. Раздел состоит из шести подразделов: Dropout, L2-regularization, Weight Initialization, Batch Normalization, Data Augmentation и ранняя остановка обучения.
Третий раздел посвящён оценке эффективности методов, которые были изложены во втором разделе. Оценка производится на различных архитектурах и с использованием различных модификаций на наборе данных CIFAR-10. Данный раздел состоит из следующих подразделов: CIFAR-10, базовые модели, модификация 1 (Dropout, L2-regularization и Weight Initialization), модификация
2 (Weight Initialization и Batch Normalization), модификация 3 (Dropout, L2-regularization, Weight Initialization и Batch Normalization) и применение Data Augmentation к базовым моделям и модификациям.
В первом разделе рассматривается набор данных NIH Chest X-rays, используемый при обучении нейронных сетей.
Во втором разделе рассмотрена архитектура свёрточной нейронной сети, которая используется для решения данной задачи, рассмотрена точность работы и стадии обучения.
В третьей главе рассмотрено создание графического интерфейса для взаимодействия со свёрточной нейронной сетью.
Рассмотрев теоретические основы нейросетевого моделирования, я сделала следующие выводы:
В 1943 году У. Маккалок и У. Питтс положили начало такому понятию как искусственные нейронные сети. Благодаря их трудам были заложены первые основы и была создана модель искусственного нейрона. Хотя их некоторые доводы были ошибочны, но они внесли огромный вклад в развитие нейронных сетей. На сегодняшний день понятие искусственных нейронных сетей используется в таких областях как: искусственный интеллект, вычислительная техника и программирование, кибернетика, математика и машинное обучение. Таким образом, понятие искусственных нейронных сетей многогранно и зависит от применяемой области, но под искусственной нейронной сетью можно понимать математическую модель, реализующую принципы биологических нейронных сетей.
Понятие искусственных нейронных сетей появилось из попыток учёных воссоздать работу мозга. Как и биологическая нейронная сеть искусственная состоит из нейронов, только в данном случае из искусственных. Искусственный нейрон по устройству напоминает биологический нейрон. Искусственный нейрон состоит из трёх основных элементов: входные сигналы и их веса, сумматор и функция активации. Сумматор складывает входные сигналы, умноженные на соответствующие веса и передаёт полученный параметр на функцию активации, затем функция активации придаёт выходному сигналу приемлемое значение, которое будет подходить под конкретный диапазон. Различные виды функций активации могут преобразовывать сигнал в различные значения.
Исходя из архитектуры искусственных нейронных сетей их можно разделить на: сети прямого распространения, рекуррентные сети и свёрточные сети. Примерами сетей прямого распространения служат однослойный и
многослойный персептрон. В нейронных сетях прямого распространения информация идёт от входа к выходу напрямую. Многослойный персептрон является самым распространённым видом нейронных сетей. В рекуррентных нейронных сетях имеется циклическая связь, то есть скрытый слой передаёт свои собственные значения на себя же во время следующей итерации. Свёрточные нейронные сети состоят из нескольких слоёв: свёрточные слои, слои субдискретизации и полносвязные слои.
Способность к обучению является неотъемлемым свойством нейронных сетей. Существует три подхода к обучению искусственных нейронных сетей: обучение с учителем, обучение без учителя и смешанное обучение. При обучении с учителем нейронной сети передаются значения входных и желательных выходных сигналов, и сеть по некому внутреннему алгоритму регулирует свои синаптические веса. При обучении без учителя нейронная сеть формирует выходы самостоятельно, а веса меняются по алгоритму, учитывающему только входные и производные от них сигналы. Смешанное обучение представляет собой совмещение обучения с учителем и без учителя.
На сегодняшний день имеется множество продуктов, используемых для создания и проектировки нейронных сетей. В большей степени используют такие программные продукты как STATISTICA Automated Neural Networks, Neural Network Toolbox и TensorFlow.
Выполнив анализ некоторых методов, используемых при обучении свёрточных нейронных сетей для повышения точности работы сети, я пришла к следующим выводам:
Чтобы эффективно использовать свёрточные нейронные сети для решения задачи классификации недостаточно просто полагаться на архитектуру сети.
Основной проблемой при обучении сети является проблема переобучения. Переобучение означает, что сеть приспособилась к конкретному набору данных и потеряла возможность к обобщению, то есть модель хорошо работает только на обучающей выборке, а на данных, которые не участвовали в процессе обучения, она показывает плохой результат. Для того, чтобы отсрочить переобучение свёрточной нейронной сети, а также для достижения большей точности при работе сети применяются специальные методы: Dropout, L2-regularization, Weight Initialization, Batch Normalization, Data Augmentation и ранняя остановка обучения.
Применение данных методов в различных комбинациях на трёх разных архитектурах показало следующие результаты:
Наименьшую точность среди базовых моделей и трёх модификаций имеют базовые модели. Наилучшая точность показана в модификации 3 с применением методов: Dropout, L2-regularization, Weight Initialization и Batch Normalization. Следующим по показателям среди модификаций является модификация 1 с применением методов: Dropout, L2-regularization и Weight Initialization. Худшей среди модификаций является вторая с применением методов: Weight Initialization и Batch Normalization.
При применении Data Augmentation к базовым моделям и модификациям необходимо в первую очередь обращать внимание на выбор параметров модификаций и количество применяемых регуляризаторов в модели. При слишком больших параметрах модификаций точность сети начинает заметно снижаться. Также при использовании Data Augmentation с другими регуляризаторами чаще всего приводит к ухудшению результатов.
Для решения основной задачи используется набор данных NIH Chest X- Rays. Набор данных NIH Chest X-rays на данный момент является крупнейшим общедоступным набором данных, который включает в себя 112120 изображений грудной клетки от 30805 уникальных пациентов. Данный набор подготовлен National Institutes of Health.
В работе используется свёрточная нейронная сеть, которая состоит из 234 обучаемых слоёв. Данная сеть обучалась в течение 100 эпох, что составило 15 дней. Средняя точность сети составляет 90,01%.
Для взаимодействия со свёрточной нейронной сетью был создан интерфейс. Данный интерфейс написан при помощи языка программирования Python с использованием фреймворка PyQt5. Интерфейс позволяет загружать снимки грудной клетки в список. При нажатии на элемент списка данное изображение будет отображено в соответствующем блоке, а также будет выведено представление изображения в нейронной сети.
Процесс разработки проекта можно разделить на 3 этапа:
1) Подготовка набора данных;
2) Разработка нейронной сети;
3) Разработка интерфейса взаимодействия с нейронной сетью. Длительность процесса разработки проекта составляет 46 дней.
Стоимость разработки составляет 92375,54.
1) Интернет ресурс machinelearning.ru:
http: //www.machmelearmng.m/wiki/mdex.php?title=Модель_МакКаллока-Питтса (Дата обращения 10.02.2018)
2) Электронная энциклопедия Wikipedia:
https://ш.wikipedia.org/wiki/Искусственная_нейронная_сеть (Дата обращения
10.02.2018)
3) Нейронные сети: полный курс, 2-е издание / С. Хайкин: Пер. с англ. - М.: Издательский дом “Вильямс”, 2006. - 1104 с.: ил. - Парал. тит. англ.
4) Интернет ресурс neuralnet.info: http://neuralnet.mfo/chapter/основы-инс/# Функция-активации (Дата обращения 01.03.2018)
5) Интернет ресурс tproger.ru: https://tproger.ru/translations/neural-network- zoo-1/ (Дата обращения 07.03.2018)
6) Нейронные сети: основные модели. Учебное пособие к курсу “Нейронные сети” для студентов 5 курса магистратуры к. электроники физического ф-та Воронежского Государственного университета / И. В. Заенцев. М:
Воронежский Государственный университет, 1999. - 76 с.
7) Интернет ресурс habrahabr.ru: https://habrahabr.ru/company/oleg- bunin/blog/340184/ (Дата обращения 07.03.2018)
8) Интернет ресурс basegroup.ru:
https://basegroup.ru/community/glossary/hopfield-net (Дата обращения 09.03.2018)
9) Интернет ресурс neuralnet.info: https://neuralnet.mfo/chapter/основы- инс/#Виды-ИНС (Дата обращения 21.03.2018)
10) Интернет ресурс basegroup.ru:
https: //basegroup .ru/community/glossary/backpropagation (Дата обращения
21.03.2018)
11) Интернет ресурс aiportal.ru: http://www.aiportal.ru/articles/neural- networks/back-propagation.html (Дата обращения 22.03.2018)
12) Интернет ресурс mechanoid.kiev.ua: http://mechanoid.kiev.ua/neural-net- backprop2.html#mjx-eqn-eqermin (Дата обращения 22.03.2018)
13) Интернет ресурс intellect.ml: https://intellect.ml/obuchenie-s-uchitelem- metod-korrektsii-oshibki-metod-obratnogo-rasprostraneniya-oshibki-117 (Дата обращения 23.03.2018)
14) Интернет ресурс studbooks.net:
http: //studbooks .net/2180559/informatika/obzor_suschestvuyuschih_programmnyh_p roduktov (Дата обращения 5.04.2018)
15) Интернет ресурс readera.ru: https://readera.ru/obzor-informacionnyh-sistem- realizujushhih-nejrosetevye-tehnologii-140220177 (Дата обращения 5.04.2018)
16) Интернет ресурс statsoft.ru:
http://statsoft.m/products/STATISTICA_Neural_Networks/#tab-review-link (Дата обращения 7.04.2018.)
17) Интернет ресурс matlab.ru: https://matlab.ru/products/neural-network-toolbox (Дата обращения 7.04.2018)
18) Электронная энциклопедия Wikipedia:
https://ru.wikipedia.org/wiki/TensorFlow (Дата обращения 12.04.2018)
19) Википедия - свободная энциклопедия [Электронный ресурс]. - https: //en.wikipedia. org/wiki/Convolutional_neural_network. Дата обращения:
20.09.2018.
20) Habrahabr [Электронный ресурс]. - Режим доступа: https://habr.com/company/wunderfund/blog/314872/. Дата обращения: 27.09.2018.
21) Habrahabr [Электронный ресурс]. - Режим доступа: https://habr.com/post/348000/. Дата обращения: 01.10.2018.
22) Habrahabr [Электронный ресурс]. - Режим доступа: https://habr.com/post/309508/. Дата обращения: 08.10.2018.
23) Habrahabr [Электронный ресурс]. - Режим доступа: https://habr.com/company/oleg-bunin/blog/340184/. Дата обращения: 15.10.2018.
24) Habrahabr [Электронный ресурс]. - Режим доступа:
https://habr.com/company/wunderfund/blog/315476/. Дата обращения: 22.10.2018.
80
25) Habrahabr [Электронный ресурс]. - Режим доступа: https://habr.com/company/wunderfund/blog/330814/. Дата обращения: 29.10.2018.
26) Cornell University Library [Электронный ресурс]. - Режим доступа: https://arxiv.org/abs/1207.0580. Дата обращения: 01.11.2018.
27) Medium [Электронный ресурс]. - Режим доступа: https://towardsdatascience.com/l1-and-l2-regularization-methods-ce25e7fc831c.
Дата обращения: 05.11.2018.
28) Cornell University Library [Электронный ресурс]. - Режим доступа: https://arxiv.org/abs/1710.10570. Дата обращения: 13.11.2018.
29) MachineLearning [Электронный ресурс]. -
http: //www.machineleaming.ru/wiki/index.php?title=Модель_МакКаллока-Питтса. Дата обращения: 27.04.2019
30) Википедия - свободная энциклопедия [Электронный ресурс]. - https://ru.wikipedia.org/wiki/Искусственная_нейронная_сеть. Дата обращения:
30.04.2019
31) Нейронные сети: полный курс, 2-е издание / С. Хайкин: Пер. с англ. - М.: Издательский дом “Вильямс”, 2006. - 1104 с.: ил. - Парал. тит. англ.
32) Нейронные сети [Электронный ресурс]. -
http://neuralnetmfo/chapter/основы-инс/# Функция-активации. Дата обращения:03.05.2019
33) Tproger [Электронный ресурс]. - https://tproger.ru/translations/neural- network-zoo-1/. Дата обращения: 04.05.2019
34) Нейронные сети: основные модели. Учебное пособие к курсу “Нейронные сети” для студентов 5 курса магистратуры к. электроники физического ф-та Воронежского Государственного университета / И. В. Заенцев. М:
Воронежский Государственный университет, 1999. - 76 с.
35) Habrahabr [Электронный ресурс]. - https://habrahabr.ru/company/oleg- bunin/blog/340184/. Дата обращения: 08.05.2019
36) Cornell University Library [Электронный ресурс]. - Режим доступа:
https://arxiv.org/abs/1705.02315. Дата обращения: 09.01.2019.
37) Cornell University Library [Электронный ресурс]. - Режим доступа: https://arxiv.org/abs/1711.05225. Дата обращения: 12.01.2019.
38) Cornell University Library [Электронный ресурс]. - Режим доступа: https://arxiv.org/abs/1803.04565. Дата обращения: 14.01.2019.
39) Cornell University Library [Электронный ресурс]. - Режим доступа: https://arxiv.org/abs/1803.07703. Дата обращения: 16.01.2019.
40) Habrahabr [Электронный ресурс]. - https://habrahabr.ru/company/oleg- bunin/blog/340184/. Дата обращения: 10.05.2019