ПРИМЕНЕНИЕ НЕЙРОННОЙ СЕТИ В ПРОГНОЗИРОВАНИИ ЗАБОЛЕВАНИЙ ПОЗВОНОЧНИКА - Студенческий научный форум

XI Международная студенческая научная конференция Студенческий научный форум - 2019

ПРИМЕНЕНИЕ НЕЙРОННОЙ СЕТИ В ПРОГНОЗИРОВАНИИ ЗАБОЛЕВАНИЙ ПОЗВОНОЧНИКА

Ван Юе 1, Воронова Л.И. 2
1МТУСИ
2Московский Технический Университет Связи и Информатики
 Комментарии
Текст работы размещён без изображений и формул.
Полная версия работы доступна во вкладке "Файлы работы" в формате PDF

В статье описывается реализация нейронной сети c алгоритмом обратного распространения ошибки, которая предсказывает определенные заболевания позвоночника, основываясь на некоторых биомеханических свойствах пациента. Данная работа выполнена в рамках курсового проекта по дисциплине «Методы интеллектуального анализа данных», научный руководитель – д.ф.-м.н., профессор Воронова Л.И.

Введение

По данным Всемирной организации здравоохранения, более 2 миллионов человек ежегодно умирают из-за того, что они долго сидят без движения, а к 2020 году ожидается, что 70% болезней в мире будут вызваны слишком долгим сидением и отсутствием физических упражнений. По данным Всемирной организации здравоохранения, «более половины людей в мире в настоящее время страдают от различных проблем с болями в спине». Имеется большое количество данных, показывающих, что заболевания позвоночника имеют тенденцию к увеличению из года в год и постепенно становятся моложе. Развитие заболеваний позвоночника происходит очень быстро, и они, по-видимому, станут самой большой и самой важной семьей в спектре заболеваний этой эпохи и станут главным врагом здоровья человека в будущую эпоху[1].

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

Исходные данные

Биомедицинский набор данных, использованный в этом исследовании, был создан доктором Энрике да Мота во время пребывания в резиденции медицинского факультета Департамента ортопедических исследований (GARO) в центре города Лион, Франция:

http://archive.ics.uci.edu/ml/datasets/vertebral+column [2]. Часть данных из этого набора приведена в табл.1.

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

На рис.1, 2 приведена визуализация изменений происходящих в позвоночнике при некоторых видах заболеваний.

Рис. 1. Межпозвонковая грыжа Рис. 2. Спондилолистез

В табл.1 приведено 15 записей из набора данных [2], в котором имеется 310 таких строк.

Частичные исходные данные из набора[2] Таблица 1.

заболевае- мость таза (%)

наклон таза (°)

угол поясничного лордоза (°)

наклон крестца

радиус таза (mm)

степень спондило- листеза

классификация

63.0278

22.5526

39.6091

40.4752

98.6729

-0.2544

Межпозвонковая грыжа

39.057

10.061

25.0154

28.996

114.4054

4.5643

Межпозвонковая грыжа

68.832

22.2185

50.0922

46.6135

105.9851

-3.5303

Межпозвонковая грыжа

69.297

24.6529

44.3112

44.6441

101.8685

11.2115

Межпозвонковая грыжа

49.7129

9.6521

28.3174

40.0608

108.1687

7.9185

Межпозвонковая грыжа

74.3777

32.0531

78.772

42.3246

143.5607

56.1259

Спондилолистез

89.6806

32.7044

83.1307

56.9761

129.9555

92.0273

Спондилолистез

44.5291

9.4332

52

35.0958

134.7118

29.1066

Спондилолистез

77.6906

21.3806

64.4294

56.3099

114.8188

26.9318

Спондилолистез

76.1472

21.9362

82.9615

54.211

123.932

10.432

Спондилолистез

38.5053

16.9643

35.1128

21.541

127.6329

7.9867

Нормальный

54.9209

18.9684

51.6015

35.9524

125.8466

2.0016

Нормальный

44.3625

8.9454

46.9021

35.4171

129.2207

4.9942

Нормальный

48.3189

17.4521

48

30.8668

128.9803

-0.9109

Нормальный

45.7018

10.6599

42.5778

35.0419

130.1783

-3.3889

Нормальный

Предобработка данных

Нейронные сети, как и другие алгоритмы машинного обучения, оперируют только числовыми данными. В результате классификации нужна текстовая информация, которая. предварительно должна быть преобразована в числовой массив как результат классификации. Мы используем [1,0,0], [0,1,0], [0,0,1] для представления трех результатов классификации (грыжа диска, спондилолистез, нормальный).

Рис. 3. Отношения между каждыми двумя свойствами

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

Однако, в используемом наборе данных имеются очень большие различия, например, степень поясничного спондилолистеза значительно отличается от других признаков. Поэтому нужно нормализовать данные. Здесь мы используем min-max нормализацию[3].

(1)

Проектирование и обучение нейронной сети

Для обучения нейронной сети случайным образом выделим из 310 наборов 80% (250), остальные 20% (60) будут использованы для нужд тестирования.

Далее необходимо выбрать архитектуру нейронную сети. Данный процесс осуществляется эмпирическим путем. В этом исследовании мы использовали трехслойную нейронную сеть, а нейронная сеть – прямого распространения (персептрон) с обучением по алгоритму обратного распространения ошибки[4].

Как показал эксперимент наибольшей точностью обладает нейросеть с конфигурацией 6-10-3, где 6 нейронов во входном слое (соответствует 6 признакам), 10 в скрытом слое и 3 в выходном слое(соответствует 3 классификациям).

Рис. 4. Структурная схема нейронной сети

Перед началом обучения нейронной сети необходимо сгенерировать случайным образом значение её весов. Весовая матрица определяется на основе количества нейронов во входном слое(n_x), скрытом слое(n_h) и выходном слое(n_y).

(2)

(3),

где np.random.randn - это функция, которая генерирует несколько выборок, соответствующих нормальному распределению.

Процесс обучения сводится к тому, чтобы минимизировать функцию стоимости. Функция стоимости[4]:

(4),

где m – количество обучающих примеров, a – выходные результаты, y – фактические результаты.

Чтобы минимизировать функцию стоимости, нам нужно отрегулировать размер параметров (весов). Сначала мы рассчитываем выход по прямому распространению. В этом процессе мы используем сигмоидальную функцию активации. Затем используем алгоритм обратного распространения ошибки для настройки параметров сети (весов). При этом, во время обучения происходит уменьшение ошибок между выходным слоем и ожидаемым значением[5].

Для исключения переобучения оптимизируем нейронную сеть, изменяя значение λ – параметра регуляризации[6]. При этом оставим фиксированное значение числа итераций, равное 5000. Для λ мы последовательно использовали значения 0,01, 0,1, 1, чтобы вычислить функцию потерь. Результаты приведены на рис.5.

Рис. 5. Функция потерь для разных значений параметра регуляризации λ

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

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

На рис.6 приведены результаты значений функции стоимости при изменении количества итераций. Как следует их полученных данных значение функции стоимости уже начиная с 3500 итерации изменяется незначительно от 0, 69 к 0,63 для 5000 итераций.

Рис. 6. Изменение функции потерь при увеличении количества итераций

Таким образом, обучение сети проводилось при следующих параметрах:

количество обучающих итераций = 5000,

скорость обучения = 0,2,

параметр регуляризации λ = 0,01.

Результаты тестирования

Для тестирования использовался набор из 20% (60) записей случайным образом выделенный 310 записей [2] На рис.7 приведены результаты тестирования, из которого видно, что точность тестирования 83%. На этом же рисунке можно увидеть и несовпадения предсказанного и тестового результатов. В частности это касается Hernia-Normal.

Рис. 7. Результат теста

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

Выводы

В этой статье рассматривается использование нейронных сетей для определения состояния позвоночника пациента на основе определенных биомеханических признаков пациента, точность тестовой выборки более 80%.

На основе выполненной исследовательской и аналитической работы можно сделать вывод о том, что основная задача аналитика, использующего нейронные сети для решения какой-либо проблемы, - создать наиболее эффективную архитектуру нейронной сети, то есть правильно выбрать вид нейронной сети, алгоритм её обучения, количество нейронов и виды связей между ними[7].

Для оптимизации нейронной сети, следует использовать:

нейронную сеть с более сложной структурой, например сверточную

улучшить обучающий набор, увеличить при надобности

методы по ускорению вычислений

Список источников и литературы

Развитие и развитие заболеваний позвоночника – [Электронный ресурс] – 16 марта 2015 – Режим доступа: https://wenku.baidu.com/view/94c25684700abb68a882fb3c.html

Датасет Энрике да Мота http://archive.ics.uci.edu/ml/datasets/vertebral+column

Нормализация / стандартизация машинного обучения – [Электронный ресурс] – 7 августа 2017 – Режим доступа: https://www.jianshu.com/p/f9bde6a37d75

Л.И. Воронова, В.И. Воронов. MachineLearning: Регрессионные методы интеллектуального анализа данных: учебное пособие – МТУСИ, 2018 – 81 с.

Чао Чао , BP нейронная сеть: от принципа к применению – [Электронный ресурс] – 1 октября 2017 – Режим доступа: https://gitbook.cn/books/59e42d6143757a535fe26a70/index.html

AndrewNgMachineLearning Курс Стенфордского университета 2018г – Режим доступа: https://www.coursera.org/learn/machinelearning

Нейронные сети: варианты использования – [Электронный ресурс] – Режим доступа: http://md-it.ru/articles/html/article19.html

Просмотров работы: 31