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

Заболеваемость раковыми образованиями, в России составляет в общем 330 случаев на сто тысяч населения в год. Лишь по Самарской области показатель уровня заболеваемости злокачественными новообразованиями – составляет около 446,6 новых случая на 100 000 населения и около 18,6% из них именно рак кожи. Смертельный исход происходит в двухстах случаях из трехсот и за последние несколько десятилетий показатели статистики остаются неизменны [7].

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

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

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

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

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

При выполнении бакалаврской работы использовались высокоуровневые языки программирования MATLAB 9.4 (R2018a), Python 3.6, предоставляющие широкий инструментарий для решения задач машинного обучения по данным результатов спектроскопии с помощью алгоритмов машинного обучения производилось обучение нейронных сетей различных архитектур.

11 стр., 5305 слов

Методы обработки экономической информации в анализе

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

Проект разрабатывается при поддержке Самарского национального исследовательского университета имени академика С.П. Королева, материалы для исследования предоставлены ГБУЗ Самарским областным клиническим онкологическим диспансером.

Цель выпускной квалификационной работы: исследование точности дифференциации патологий по результатам АФ и КР спектроскопии с помощью нейросетевого алгоритма.

Объект исследования – процесс дифференциации образцов биоткани по результатам спектроскопии комбинационного рассеивания и флуоресценции.

Предмет исследования – искусственные нейронные сети.

Выпускная квалификационная работа состоит из введения, трех глав и заключения.

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

В первой главе обосновывается актуальность проделанной работы, представляются теоретические сведенья о машинном обучении, в частности нейронные сети.

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

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

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

1 АНАЛИЗ МЕТОДОВ СПЕКТРОСКОПИИ И МАШИННОЕ

ОБУЧЕНИЯ

1.1 Анализ проблемы неинвазивной диагностики кожно-раковых

заболеваний

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

Чаще всего рак кожи развивается у людей, длительное время находящихся на солнце. Частота возникновения этой патологии у людей с белым цветом кожи нарастает по мере приближения к экватору. Отрицательную роль в росте заболеваемости играет истончение озонового слоя. Установлено, что истончение озонового слоя на 1% приводит к увеличению заболеваемости на 3– 4%.

Доказательством канцерогенного эффекта воздействия ионизирующей радиации на кожные покровы являются случаи возникновения раковой опухоли у рентгенологов при отсутствии у них средств защиты [14].

Рак кожи может возникать при иммунодефицитных состояниях. Например, при приеме иммунодепрессантов пациентами, перенесших операцию по пересадке органов.

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

Основными видами рака кожи являются:

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

9 стр., 4176 слов

Обмен веществ и энергии

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

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

Рак кожи возникает чаще всего на открытых участках тела – кожа лица, головы, шеи (до 80%) и преимущественно у пожилых людей (возраст старше 50 лет).

При чем, в 10% случаев могут возникать 2 и более очагов злокачественного роста.

3. Меланома в структуре злокачественных опухолей кожи составляет 6 – 7%, однако ввиду очень агрессивного течения заболевания занимает первое место в структуре смертности. Развивается меланома на неизмененной коже или на месте пигментного невуса. Наиболее часто локализуется на туловище (у мужчин) и на голени (у женщин).

Характеризуется ранним лимфогенным и гематогенным метастазированием [4].

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

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

Удаление каждого пигментированного новообразования неприемлемо для пациента. Сообщалось, что 80% биопсий, полученных с подозрением на злокачественные поражения кожи, были доброкачественными, и поэтому неуместная хирургическое вмешательство является довольно частым случаем.

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

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

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

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

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

Каждый из данных методов обладает рядом преимуществ и недостатков. Так, например, спектроскопия комбинационного рассеяния отличается спектром с ярко выраженными пиками, которые соответствуют наличию определенного вещества в исследуемой среде, но при этом при КР исследовании затрачивается большее количество времени, для накопления сигнала. Это не позволяет использовать КР для массового скрининга и анализа обширных областей кожи. А автофлуоресценция же наоборот может использоваться для быстрого анализа больших областей биотканей, но это сказывается на точности метода. Она ниже, нежели чем у КР. У метода отражательной спектроскопии отличительной особенностью является то, что он позволяет оперировать только с одним измеряемым параметром – коэффициентом диффузного отражения биоткани [14].

47 стр., 23116 слов

Социально-экономическое поведение молодежи (опыт вторичного анализа данных)

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

Спектры комбинационного рассеяния и автофлуоресценции сложны. Традиционное распознавание с помощью визуального осмотра является субъективным методом, отнимающим много времени.

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

1.2 Машинное обучение и общая характеристика искусственных

нейронных сетей

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

Артур Самуэль, первопроходец в области искусственного интеллекта (ИИ) в IBM и Stanford, в 1959 году в своей инновационной работе по компьютерным шашкам, определил машинное обучение следующим образом:

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

Формальное определение машинного обучения дал Том Митчелл – американский ученый, профессор Университета Карнеги-Меллон.

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

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

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

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

Рисунок 1.1 – Классическая топология нейросети, со входным (Input Layer), выходным (Output Layer), принимающим решение о классе, и

43 стр., 21421 слов

«Защита прав соотечественников за рубежом: состояние законодательства ...

... российских регионов». Будучи отражением нового направления миграционной политики, программа привлечения соотечественников получила широчайший ряд откликов, аналитических замечаний, прогнозов и оценок; на ее основании в ... и др. Руководствуясь означенными данными, в качестве объекта исследования нашей работы мы понимаем саму ... общества, без учета мнений самих мигрантов. Руководствуясь этим принципом, мы ...

ассоциативным (Hidden Layer) слоем

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

Сумматор выполняет сложение сигналов, поступающих по синоптическим связям от других нейронов, и внешних входных сигналов. Нелинейный преобразователь реализует нелинейную функцию одного аргумента – выхода сумматора. Эта функция называется функцией активации или передаточной функцией нейрона. Общая структура нейрона продемонстрирована на рисунке 1.2.

Рисунок 1.2 – Структура искусственного нейрона

Нейрон в целом реализует скалярную функцию векторного аргумента. Математическая модель нейрона показана на формуле 1.1:

(1.1)

где – результат суммирования (sum);

  • вес (weight) синапса, ;
  • компонент входного вектора (входной сигнал), ;
  • значение смещения (bias);
  • число входов нейрона;
  • выходной сигнал нейрона;
  • нелинейное преобразование (функция активации) [4].

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

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

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

  • Анализ способов оптической спектроскопии.
  • Проектирование нейросетевых архитектур для решения задач дифференциации патологий по результатам спектроскопии.
  • Препроцессинг входных данных и создание наборов для обучения нейронных сетей.
  • Тестирование разработанных архитектур.

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

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

2 ПРОЕКТИРОВАНИЕ НЕЙРОСЕТЕВЫХ АРХИТЕКТУР

2.1 Используемое программное обеспечения

При выполнении бакалаврской работы использовались высокоуровневые языки программирования MATLAB 9.4 (R2018a), Python 3.6, предоставляющие широкий инструментарий для решения задач машинного обучения.

MATLAB (matrix laboratory) – представляет собой многофункциональную вычислительную среду, работа в которой осуществляется на одноименном запатентованном языке программирования, разработанным в MathWorks. MATLAB позволяет манипулировать матрицами, строить функции и данные, реализовывать алгоритмы, создавать пользовательские интерфейсы и взаимодействовать с программами, написанными на других языках, включая C, C ++, C #, Java, Fortran и Python.

26 стр., 12510 слов

Мотивация и удовлетворенность персонала работой в организации

... мотивации и возможности их применения в организациях Республики Беларусь; провести эмпирическое исследование на конкретном предприятии Объект курсовой работы: персонал предприятия. Предмет: формирование мотивации и удовлетвор ... 4. Приспособление − подразумевает оказание влияния на цели и задачи организации путем частичного приспособления их к целям менеджеров высшего и среднего уровней. Этот вид ...

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

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

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

Все встроенные функции ядра MATLAB разработаны и оптимизированы специалистами и работают быстрее их эквивалентов на C/C++ или Java [17].

Python – это интерпретируемый язык программирования высокого уровня для программирования общего назначения. Созданный Guido van Rossum и впервые выпущенный в 1991 году, Python придерживается философии, которая подчеркивает читаемость кода, выделяя блоки отступами (significant whitespace).

Он предоставляет конструкции, которые обеспечивают четкое программирование как в малых, так и в больших масштабах [18].

Python имеет систему динамической типизации и автоматическое управление памятью. Он поддерживает несколько парадигм программирования, в том числе объектно-ориентированную, императивную, функциональную, процедурную, и имеет большую и всеобъемлющую стандартную библиотеку [18].

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

NumPy – библиотека для работы с однородными данными в виде массивов.

Pandas – библиотека для работы с неоднородными и поименованными данными.

SciPy – библиотека для общих научных вычислительных задач.

Написания Python кода проводились в бесплатной кросплатформенной IDE Spyder, имеющей открытый исходный код. В Spyder интегрированы библиотеки NumPy, SciPy, Matplotlib и IPython.

В данной бакалаврской работе особое внимание уделяется работе с библиотекой Keras, версии 2.1.6. Это – нейросетевая библиотека с открытым исходным кодом, написанная на Python. Она представляет собой надстройку над фреймворками TensorFlow, Microsoft Cognitive Toolkit, Theano [19].

В данный момент по умолчанию Keras использует Tensorflow. С которым мы и будем работать.

Разработанный для быстрой работы с глубокими нейронными сетями, он фокусируется на удобстве, модульности и расширяемости. Библиотекой Keras была разработана в рамках исследовательской работы проекта ONEIROS (Open Neun-Electronic Intelligent Robot Operating Systemи ее основным автором является инженер Франсуа Холле) [19].

43 стр., 21431 слов

Тема работы Развитие торговых розничных сетей в России УДК ( )

... Национальная экономика Кафедра экономики УТВЕРЖДАЮ: Зав. кафедрой Г.А. Барышева ЗАДАНИЕ на выполнение выпускной квалификационной работы В форме: Дипломной работы Студенту: Группа ФИО З-3401 Харламова Юлия Борисовна Тема работы: Развитие торговых розничных сетей ...

Tensorflow – фреймворк для глубокого машинного обучения, разработанная компанией Google для решения задач построения и тренировки нейронной сети с целью автоматического нахождения и классификации образов. Основное API для работы с библиотекой реализовано для Python, также существуют реализации для C++, Haskell, Java и Go. В 2015 году система была переведена в свободный доступ с открытой лицензией Apache 2.0

2.2 Анализ результатов автофлуоресценции для дифференциации

образцов кожи

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

Для анализа выбирался участок 550-750 нм в регистрируемом спектре для синего лазера (457 нм), пример спектов изображен на рисунке 2.1. Нормализация спектра осуществлялась относительно главного экстремума каждого образца. Формы спектров биотканей обуславливаются наличием коллагенов, эластина, фосфолипидов и других компонентов, также в ходе анализа экспериментальных данных был выявлен характерный пик на длине волны 640 нм, обусловленный наличием порфиринов [5].

Рисунок 2.1 – Спектры АФ здоровой кожи, базалиомы и меланомы

Анализ экспериментальных данных позволил выявить основные полосы 580 и 620 нм, характеризующие патологически измененные биоткани. Форма спектра и интенсивность излучения в выбранных полосах позволили провести дифференциацию нормальной и патологически измененной кожи. Для определения наличия злокачественного образования был введен коэффициент равный отношению интенсивностей спектров авто- флуоресценции в выбранных областях. Если значение коэффициента было меньше 0,81, то считалось, что была исследована здоровая кожа, если значение коэффициента было между 0,81 и 0,96, то считалось что мы исследовали базалиому, если значение было больше 0,96, то считалось, что мы промерили меланому. На рисунке 2.2 представлены зависимости положения значения коэффициента . [14]

Рисунок 2.2 – Положение коэффициента I АФ здоровой кожи, базалиомы

и меланомы

В ходе анализа экспериментальных исследований при регистрации спектров были получены данные о положения основных максимумов, они располагались в границах 550 – 575 нм 600 – 625 нм.

На рисунке 2.1 видно, что в АФ спектре здоровой ткани и патологии есть два явных максимума. Положения максимумов меняются не только по интенсивности, но и по длине волны. Это происходит из-за изменения количественного состава компонентов образца. При этом происходит смещение основных максимумов спектра АФ по длине волны. Это можно использовать для более детального анализа дифференциации спектра здоровой кожи и патологий. Для данных спектров характерны два основных максимума. На рисунке 2.3 представлены длины волн, соответствующие положениям максимумов АФ, измеренных образцов в диапазоне 550 – 640 нм.

Рисунок 2.3 – Положения максимумов АФ здоровой кожи, базалиомы и

меланомы в диапазоне 550 – 640 нм

На рисунке 2.4 представлены основные положения максимумов АФ в диапазоне 600 – 690 нм.

25 стр., 12379 слов

Проектирование корпоративных сетей

... проектирование корпоративная сеть сервер Рисунок 1.1 - Схема корпоративной сети Уровень распределения используется для суммирования маршрутов. Суммирование проводится для уменьшения сетевого трафика на верхних уровнях сети и представляет собой объединение нескольких сетей ... Корпоративная сеть отличается от сети, например, интернет-провайдера тем, что правила распределения IP адресов, работы ...

Рисунок 2.4 – Положения максимумов АФ здоровой кожи, базалиомы и

меланомы в диапазоне 600 – 690 нм

Вид зависимости на рисунках 2.3 и 2.4 позволяет сформулировать новую методику дифференциации меланомы от других типов тканей. Критерием дифференциации меланомы от других новообразований является расположение ее максимумов в диапазонах 555 – 575 нм и 600 – 625 нм.

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

  • значение минимума спектра в диапазоне 580-620нм;
  • значение максимума спектра в диапазоне 580-620нм;
  • отношение интенсивности спектров АФ на длинах волн равных 580 и 620нм.
  • расположение максимума спектра в диапазоне 555-575нм;
  • расположение максимума спектра в диапазоне 600-625нм.

Значение признаков уникально для каждого отдельного спектра АФ, а их совокупность позволяет дифференцировать патологию от кожи.

Для поиска максимумов/минимумов из заданных диапазонах спектра, использовался алгоритм нахождения точки при которой значение интенсивности спектров, расположенных по обе стороны от проверяемой, ниже/выше проверяемой на delta(пиковый порог).

[5]

Для реализации данного метода использовалась функция peakdet, листинг которой представлен на рисунке 2.5. Обнаружение пиков в векторе [maxtab, mintab] = peakdet (v, delta) находит локальные максимумы и минимумы («пики») в векторе v. Maxtab и mintab состоит из двух столбцов. Столбец 1 содержит индексы вектора V, а столбец 2 — найденные значения.

С помощью [maxtab, mintab] = peakdet (v, delta, x) индексы в maxtab и MINTAB заменяются соответствующими значениями X. Точка считается максимальным пиком, если она имеет максимальное значение, и ей предшествовало (слева) значение, меньшее значением delta.

function [maxtab, mintab]=peakdet(v, delta, x)

maxtab = [];

  • mintab = [];
  • if nargin < 3

x = (1:length(v))’;

else

x = x(:);

if length(v)~= length(x)

error(‘Входные векторы v и x должны иметь одинаковую длину’);

end

end

if (length(delta(:

  • ))>1

error(‘Входной аргумент DELTA должен быть скаляром’);

end

if delta <= 0

error(‘Входной аргумент DELTA должен быть положительным’);

end

mn = Inf; mx = -Inf;

  • mnpos = NaN;
  • mxpos = NaN;
  • lookformax = 1;

for i=1:length(v)

this = v(i);

  • if this >
  • mx, mx = this;
  • mxpos = x(i);
  • end

if this < mn, mn = this; mnpos = x(i); end

if lookformax

if this < mx-delta

maxtab = [maxtab ; mxpos mx];

  • mn = this;
  • mnpos = x(i);
  • lookformax = 0;

end

else

if this > mn+delta

mintab = [mintab ; mnpos mn];

  • mx = this;
  • mxpos = x(i);
  • lookformax = 1;

end

end

end

Рисунок 2.5 – Листинг функции поиска максимумов/минимумов из заданных

7 стр., 3370 слов

Анализ экономических и социальных сетей

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

диапазонах спектра

Пиковый порог был установлен выше максимального размаха шума спектра. Из множества найденных пиков по всей длине волны в диапазонах 555-575нм, 600-625нм выбирается максимальный/минимальный пик. На рисунке 2.6 продемонстрирован результат работы данного алгоритма. Красным отображается спектр здоровой кожи, бирюзовым патология. Максимумы спектров выделены зеленой звездой, минимумы показынный синей звездой.

Рисунок 2.6 – Нормированные спектры кожи и патологии с выделенными

максимумами и минимумами.

Основной проблемой для вычисления классифицирующих признаков спектра является образцы в которых отсутствуют явные максимумы в диапазонах 555-575нм, 600-625нм.

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

function lambda=Fiend_lambda_MIN(semple,alfa,betta,n)

delta=0.01;

  • id_lambda=[];

while isempty(id_lambda)

[~, min_peaks]=peakdet(semple(2,:

  • , delta, semple(1,:));%пики АФ (паталогия)

if ~isempty(min_peaks)

if min_peaks(1,1)==semple (1,2)||min_peaks(1,1)==semple (1,1)

min_peaks (1,:)=[];

end

end

if ~isempty(min_peaks)

id_lambda=find(min_peaks(:,1)>alfa&min_peaks(:,1)

(паталогия)

end

delta=delta-0.0009;

end [lambda_N1_1,~]=find(min_peaks==max(min_peaks(id_lambda(:

  • ,2)));
  • lambda=min_peaks(lambda_N1_1,n);

end

Рисунок 2.7 – Листинг функции рекурсивное уменьшение значения

пикового порога

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

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

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

Но при данном подходе существует вероятность упустить скрытые зависимости, в результате чего было принято решение перейти к архитектуре, объединяющей в себе поиск классифицирующих признаков и их последующую классификацию – cверточные нейронные сети

2.3 Сверточные нейронные сети

Сверточная нейронная сеть (CNN или ConvNet) представляет собой класс глубоких искусственных нейронных сетей прямого распространения, которые были успешно применены для анализа визуальных образов с высокой степенью инвариантности к масштабированию, смещению, повороту, смене ракурса и прочим пространственным искажениям[4].

Целью CNN является глубокое изучение данных по средствам использования сверток. Они эффективны при распознавании объектов на изображениях, а также успешно выполняют задачи по их классификации. CNN могут распознавать лица, уличные знаки, собак и множество других визуальных данных. Область применения CNN так же затрагивает анализ текста с помощью оптического распознавания символов.

Рисунок 2.8 – Визуализация работы CNN

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

2.4 Обзор архитектуры CNN

CNN преобразуют входные данные поступающие на входной слой, проводя их через все подключенные слои в набор оценок классов, задаваемых выходным слоем. Существует много вариантов архитектур CNN, но все они основаны на архитектуре, представленной на рисунке 2.9. На нем показаны три основные группы слоев:

1. Входной слой (input layer).

2. Признаковый слой (feature-extraction layer).

3. Классификатор (Classification layer).

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

[9]

Рисунок 2.9 – Общая архитектура CNN высокого уровня

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

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

Слой классификации состоит из единого или несколько полносвязных слоев, для дифференцировать карты признаков и вычисления вероятности их принадлежности к заданным классам. Размеры выходных данных слоя равны [1 × 1 × N], где N – количество оцениваемых классов.

Сверточные слои считаются основными строительными блоками

архитектур CNN. Как показано на рисунке 2.10, сверточные слои преобразуют входные данные, используя заплатку из локально связанных нейронов предыдущего слоя. Слой будет вычислять скалярное произведение между областью нейронов во входном слое и весами, с которыми они локально связаны в выходном слое. [9]

Рисунок 2.11 – Слой свертки с входными и выходными томами

Полученный результат обычно имеет одинаковые (или уменьшенные) пространственные размеры, но иногда увеличенное количество элементов третьего измерения, глубины. Рассмотрим концепцию свертки немного подробнее.

Свертка – это математическая операция, описывающая правило для объединения двух наборов информации. Операция свертки, показанная на рисунке 2.12, известна как детектор признаков CNN. На вход свертки могут посылаться как необработанные данные, так и вывод из другой свертки. Она часто интерпретируется как фильтр, в котором ядро фильтрует входные данные для определенных видов информации.

Рисунок 2.12 – Операция свертки

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

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

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

, (2.1)

где двумерное изображение;

  • ядро свертки;
  • искомое свернутое изображение;
  • индексы матриц.

Оператор свертки составляет основу сверточного слоя (convolutional layer) в CNN. Слой состоит из определенного количества ядер (с

аддитивными составляющими смещения для каждого ядра) и вычисляет

свертку выходного изображения предыдущего слоя с помощью каждого из ядер, каждый раз прибавляя составляющую смещения. В конце концов ко всему выходному изображению может быть применена функция активации . Обычно входной поток для сверточного слоя состоит из каналов, например, red/green/blue для входного слоя, и в этом случае ядра тоже расширяют таким образом, чтобы они также состояли из каналов; получается следующая формула для одного канала выходного изображения сверточного слоя, где – ядро, а – составляющая смещения:

  • , (2.2) где – функция активации;
  • ядро свертки;
  • составляющая смещения.

2.5 Слои субдискретизации

Слои субдискретизации – слой подвыборки, пулинговые слои (от англ. downsampling или pooling layer) обычно устанавливаются между последовательными сверточными слоями, с целью постепенного уменьшения пространственных размеров (ширины и высоты) данных. Объединение слоев постепенно уменьшает размерность данных в сети и помогает контролировать переобучение.

Самыми распространёнными операциями субдискретизации являются:

  • операция max pooling;
  • операция average pooling.

Слои субдискретизации использует операцию max() для изменения пространственных характеристик (ширина, высота) входных данных. Эта операция называется max pooling. При размере фильтра 2×2 операция max() принимает значение наибольшего числа попавшего в фильтр. Эта операция не влияет на глубину данных. В пуллинговых слоях используются фильтры для выполнения процесса понижающей дискретизации входных данных. Эти слои выполняют операции уменьшения размерности по пространственному размеру входных данных [9].

Рисунок 2.13 – Визуализация работы слоя субдискретизации

Чаще всего в пуллинговых слоях используется фильтр 2×2 с шагом 2. Данные характеристи позволяют уменьшать каждый фрагмент глубины входных данных в два раза по пространственным размерам (ширина и высота).

2.6 Предобученные сверточные нейронные сети

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

Эффективным решением в области распознавания патологий на Раманавской спектрограмме, может стать использование предобученных нейронных сетей, таких как: Xception, VGG16, VGG19, ResNet50, DenseNet. В частности, применение их сверточных слоев, совместно с кастомным классификатором.

Достаточно похожих, с помощью технологии переноса обучения (transfer learning).

Для этого от предварительно обученной сети “обрезается” классификатор и вместо него добавляется новый, приспособленный для нашей задачи. Например, вместо классификатора, обученного на наборе данных ImageNet с 1000 классов, мы добавляли в нейронную сеть собственный классификатор, в котором всего два класса. Затем этот классификатор обучается на новых данных.

Рисунок 2.14 – Общая архитектура нейронной сети на основе предобученных

классификаторов

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

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

Таблица 2.1 – Список предобученных нейронных сетей доступных в Keras

Минимальный

Top-5 Количество

Модель Размер размер входного

Accuracy параметров

тензора

Xception 88 MB 71х71 0.945 22,910,480

VGG16 528 MB 48х48 0.901 138,357,544

VGG19 549 MB 48х48 0.910 143,667,240

ResNet50 99 MB 197х197 0.929 25,636,712

InceptionV3 92 MB 139х139 0.944 23,851,784 InceptionResNetV2 215 MB 139х139 0.953 55,873,736

MobileNet 17 MB 128х128 0.871 4,253,864

Использование данного метода ставит ограничение на входную матрицу, обязуя использовать предобработку, направленную на увеличения размерности входных данных до требуемых размеров предобученных нейронных сетей. Для тестирования рассматривались сети с наименьшим размером входного тензора: Xception, VGG16, VGG19. Рассмотрим их архитектуры.

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

Полное описание спецификаций сети приведено на рисунке 2.15. Архитектура Xception: данные сначала проходят через поток ввода, затем через средний поток, который повторяется восемь раз, и, наконец, через выходной поток, она имеет 36 сверточных слоев, формирующих базу извлечения объектов сети. 36 сверточных слоев структурированы в 14 модулей, все из которых имеют линейные остаточные соединения вокруг них, за исключением первого и последнего модулей. Иначе говоря, архитектура Xception представляет собой линейный стек разделяемых по глубине слоев свертки с остаточными соединениями [12].

Рисунок 2.15 – архитектура сети Xception

Архитектура сети Xception доступна для загрузки из фреймворка Keras:

keras.applications.Xception.Xception(include_top=True, weights=’imagenet’, input_tensor=None, pooling=None, classes=1000)

Размер входных данных по умолчанию для этой модели – 299×299. Аргументы:

  • include_top: Подключение полносвязных слоев верхнего уровня сети
  • weights: значения весов нейронной сети. ‘None’ (случайная инициализация) или ‘imagenet’ (предобученная на наборе данных ImageNet).

  • input_tensor: optional Keras tensor (i.e.

output of layers.Input()) to use as image input for the model.

– input_shape: optional shape tuple, only to be specified if include_top is False (иначе форма ввода должна быть (299, 299, 3) (с форматом данных ‘channels_last’).

Он должен иметь ровно 3 входных канала, а ширина и высота должны быть не меньше 71. Например. (150, 150, 3) будет одним из допустимых значений.

  • pooling: опциональный аргумент извлечения признаков, когда аргумент include_top — False.
  • None означает, что выходом модели будет 4D тензором на выходе последнего сверточного слоя.
  • avg означает что для сети будет применять операция average pooling
  • max означает что для сети будет применять операция max pooling
  • classes: необязательный аргумент обозначающий количества классов классифицируемых изображений. Указывается если, include_top имеет значение True или если аргумент weights не указан.[16]

Так же рассмотрим архитектура предобученная нейронная сеть VGG16. VGG16 – сеть Visual Geometry Group из университета Оксфорда для распознавания объектов на изображениях, состоит из 16 слоев.

Архитектура сети VGG16 доступна для загрузки из фреймворка Keras:

keras.applications.vgg16.VGG16 (include_top=True, weights=’imagenet’, , input_shape=None, pooling=None, classes=1000)

Размер входных данных по умолчанию для этой модели – 224×224.

Аргументы:

  • include_top: Подключение 3 полно связных слоев верхнего уровня сети
  • weights: значения весов None (случайная инициализация) или ‘imagenet’ (предобученная на наборе данных ImageNet).

  • input_shape: опциональная форма кортежа, указывается только если include_top – False.

– input_shape: optional shape tuple, only to be specified if include_top is False (иначе форма ввода должна быть (224, 224, 3) (с форматом данных ‘channels_last’) или (3, 224, 224) (с форматом данных ‘channels_first’).

Он должен иметь ровно 3 входных канала, а ширина и высота должны быть не меньше 48. Например. (200, 200, 3) будет одним из допустимых значений.

  • pooling: опциональный аргумент извлечения признаков, когда аргумент include_top — False.
  • None означает, что выходом модели будет 4D тензором на выходе последнего сверточного слоя.
  • avg означает что для сети будет применять операция average pooling
  • max означает что для сети будет применять операция max pooling
  • classes: необязательное значение количества классов классифицируемых изображений если, include_top имеет значение True и не если аргумент weights не указан [16].

Модель VGG-19 является улучшенной версией VGG16. Она состоит из 144 миллионов параметров и добавляет в архитектуру, помимо 84 миллионов параметров, еще одну простую идею. Возьмем для примера свертку 5 × 5, это отображение , оно содержит 25 параметров. Если заменить ее стеком из двух слоев со свертками 3 × 3, то мы получим такое же отображение, но количество параметров будет меньше: 3 × 3 + 3 × 3 = 18, а это на 22 % меньше. Если же заменить 11 × 11 на четыре свертки 3 × 3, то это уже на 70 % меньше параметров.

Рисунок 2.16 – Архитектура сети VGG19

Архитектура сети так VGG19 доступна для загрузки из фреймворка Keras:

keras.applications.vgg19.VGG19 (include_top=True, weights=’imagenet’, , input_shape=None, pooling=None, classes=1000)

Размер входных данных по умолчанию для этой модели – 224×224.

Аргументы:

  • include_top: Подключение 3 полно связных слоев верхнего уровня сети
  • weights: значения весов None (случайная инициализация) или ‘imagenet’ (предобученная на наборе данных ImageNet).

  • input_shape: опциональная форма кортежа, указывается только если include_top – False.

– input_shape: optional shape tuple, only to be specified if include_top is False (иначе форма ввода должна быть (224, 224, 3) (с форматом данных ‘channels_last’) или (3, 224, 224) (с форматом данных ‘channels_first’).

Он должен иметь ровно 3 входных канала, а ширина и высота должны быть не меньше 48. Например. (200, 200, 3) будет одним из допустимых значений.

  • pooling: опциональный аргумент извлечения признаков, когда аргумент include_top — False.
  • None означает, что выходом модели будет 4D тензором на выходе последнего сверточного слоя.
  • avg означает что для сети будет применять операция average pooling
  • max означает что для сети будет применять операция max pooling
  • classes: необязательное значение количества классов классифицируемых изображений если, include_top имеет значение True и не если аргумент weights не указан. [16]

2.7 Препроцессинг и создание различных наборов данных на основе

спектров комбинационного рассеивания

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

780.64 83.67

Raman spectroscopy 780.87 101.33

781.11 80.33

5000

781.34 118.67

4000 781.58 92.33

781,81 111

3000

782,05 90 Интенсивность

2000 782,28 98

1000

1001,71 129

0 1001,91 235

1002.10 229.33

799

843

878

919

952

983

808

835

869

903

928

959

990

  • 1000 1002.29 228.00
  • 2000 1002.48 216.67

1002.68 217.67

  • 3000 1002.87 193.33

Длина волны (нм)

1003.06 69.67

Рисунок 2.17 – Пример сырых данных и их визуализация

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

В таблице 2.1 показано что минимальными размерами входных тензоров сверточных сетей являются, 48х48 для VGG16, 48х48 для VGG19 и 71х71 для Xception.

Изменение размера входных данных приведет к появлению шума и артефактов, влияющих на точность нейронной сети. Если коэффициент масштабирования для сетей VGG составляет всего 1.19, то для архитектуры Xception необходимо увеличить входные данные примерно в 2.6038 раз.

Для увеличения размера входных данных представленной в виде квадратной матрицы использовался метод двумерной сплайн-аппроксимации по прямоугольной сетке (bivariate spline approximation over a rectangular mesh).

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

Рисунок 2.18 – Визуализация работы алгоритма интерполяции.

Альтернативой этому методу является интерполяция спектра перед его представлением в матричной форме. Для этого использовался метод линейной интерполяции.

На основе этой методики будет создано два набора данных для обучения нейронных сетей с предобученными сверточными слоями VGG16/19 и Xception.

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

Рисунок 2.19 – Визуализация дублируемого участка спектра

Спектроскопия комбинационного рассеяния отличается спектром с ярко выраженными пиками, которые соответствуют наличию определенного вещества в исследуемой среде. В качестве дублируемого участка спектра возьмем область с длиной волны 781 до 923 нм. На ней зарегистрировано 648 значений интенсивности. В совокупности со значениями длин волн входные данные можно представить в виде квадратной матрицы размерностью 36х36. Для использования в сверточной сети Xception продублируем матрицу 4 раза.

Так же воспользуемся подходом дублирования информативных участков спектра для создания набора данных для сети VGG16/19. Длинна волны дублируемого участка составляет 781 до 909 нм с зарегистрировано 576 значениями интенсивности. Для использования в сверточных сетях VGG16/19 достаточно продублировать матрицу 2 раза.

Набор данных представляет собой список списков nympy массивов определенного формата. Индексы списка соответствую данному списку

Спектроскопия меланомы 0, спектроскопия образца кожи – 1, спектроскопия базалиомы – 2, спектроскопия образца кожи – 3, спектроскопия невуса – 4, спектроскопия образца кожи – 5, Спектроскопия кератомы – 6, спектроскопия образца кожи – 7, Спектроскопия других паталогий – 8, спектроскопия образца кожи – 9, спектроскопия образцов, не имеющих диагноза — 10.

Рисунок 2.20 – Общий вид наборы данных

Всего было создано 5 наборов данных:

  • VGG16/19_dataSet_48x48_968x2;
  • VGG16/19_dataSet_48x48(24x48x2)_2х576х2;
  • VGG16/19_dataSet_48x48_1152х2;
  • Xception _dataSet_72x72(32x32x4)_1x1024;
  • Xception_dataSet_72x72(36x36x4)_2x648.

Название содержит краткую информацию о содержащихся в наборе данных. Информация по всем созданным наборам представлена в таблице 2.2.

Таблица 2.2 Наборы данных, основанные на спектрах комбинационного рассеивания.

Интерполяция Коэффициент Квадратное Входные данные Размерность Сеть

данные масштабирования представление интенсивность +

2х968 48×48 1.19 48×48 VGG16/19 длина волны интенсивность+

2х1024 1152×2 1.125 48×48 VGG16/19 длина волны интенсивность+ без

2х576х2 1 24х48х2 VGG16/19 длина волны интерполяции интенсивность+ без

2х648 1 36x36x4 Xception длина волны интерполяции интенсивность 1х1024 1296 1.27 36х36х4 Xception

Созданные наборы данных сохранены с помощь модуля pickle, в формате pickle. Pickle – это модуль реализующий двоичные протоколы для сериализации и десериализации объекта Python. «Pickling» — это процесс, в соответствии с которым иерархия объектов Python преобразуется в поток байтов, а «unpickling» — это обратная операция, в результате которой поток байтов (из двоичного файла или байтоподобного объекта ) преобразуется обратно в объекты языка Python. Каждый из наборов данных доступен для загрузки в программу, с помощью функции open.

Листинг кода создания набора данных предоставленн в приложении Б.

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

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

3 ТЕСТИРОВАНИЕ НЕЙРОСЕТЕВЫХ АРХИТЕКТУР

3.1 Дифференциация результатов автофлуоресценции.

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

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

При обучении нейронной сеть использовался алгоритм ЛевенбергаМаркварта при котором обучающая выборка делится в случайном порядке на три набора: 60% используются для обучения (Training), 20% для проверки достоверности полученных результатов и избежание переобучения (Validation), 20% используются для независимого испытания сети(Test).

Процесс обучения нейронной сети прекратился при достижении среднеквадратичной ошибки значения в 0.19 процесс изображен на Рисуноке 3.1. Это произошло на 13 эпохе обучения нейронной сети. На последующих эпохах значение ошибки лишь увеличивалось.

Рисунок 3.1 – График обучения нейронной сети

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

Несмотря на эффективную работу нейронной сети на обучающей выборке(R=0.97) ее работа с тестовой выборкой оказалась неудовлетворительной [5].

Рисунок 3.2 – Регрессионная модель нейронной сети

Это является следствием использования малой размерности обучающей выборки. Для подтверждения, сеть, была обучена повторно на неусреднённых данных спектров АФ. 126 образцов из которых 63 образца кожи и 63 образца патологии.

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

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

В частности, нас интересуют такие характеристики как чувствительность и специфичность.

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

, (3.1)

где – количество истинно отрицательных результатов;

  • количество ложноположительных результатов.

Специфичность (Sp) – это способность диагностического метода не давать при отсутствии заболевания ложноположительных результатов, который определяется как доля истинно отрицательных результатов среди здоровых лиц в группе исследуемых. Данный показатель определяется по формулам:

, (3.2)

где – количество истинно отрицательных результатов

  • количество ложноположительных результатов

В нашем случае значения чувствительности обученной нейронной сети равно 80%, в то время как специфичность всего 40%.

Рисунок 3.3 – Регрессионная модель нейронной сети

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

3.2 Тестирование сверточных архитектур

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

1. Меланома/базалиома (м/б).

2. Меланома/невуc (м/н).

3. Базалиома/невус (б/н).

4. Доброкачественные/злокачественные опухоли (д/з).

Из подгруженных наборов данных извлекались выборки необходимые для обучения нейронной сети. В соответствии с задачей бинарной классификации им присваивались метки класса 0, 1, представленные в виде массива. Для чистоты эксперимента данные перемешивались по функции представленной на рисунке 3.4, а за тем делились на 2 группы Test и Training в соотношении 25%, 75% соответственно. Листинг кода обучения нейронной сети предоставлен в приложении А.

outputData=np.asarray(

[[«1″,»0»]for _ in

range(len(data_new[0])+len(data_new[2]))]+

[[«0″,»1»]for _ in range(len(data_new[4]))]

outputData=outputData.astype(‘float32’)

inputData=np.vstack((

np.asarray(data_new[0]),

np.asarray(data_new[2]),

np.asarray(data_new[4]),

randomize = np.arange(len(outputData))

np.random.shuffle(randomize)

inputData = inputData[randomize]

outputData = outputData[randomize]

X_train,X_test = np . array_split ( inputData , 2 )

buff,X_test = np . array_split ( X_test , 2 )

X_train=np.vstack((X_train,buff))

Y_train,Y_test = np . array_split (outputData , 2 )

buff,Y_test = np . array_split ( Y_test , 2 )

Y_train=np.vstack((Y_train,buff))

Рисунок 3.4 – Листинг кода формирования выборки

Результаты тестирования предобученных нейронных сетей представлены в таблицах 3.1, 3.2, 3.3. Таблица 3.1 – Результаты тестирования VGG16

Метод Точность Точность

Набор данных Задача Количество

масштабирования Test, % Training, %

dataSet_48x48_968x2 м/б Интерпаляция 86/60 63 57

dataSet_48x48_968x2 м/н Интерпаляция 86/110 55 58

dataSet_48x48_968x2 н/б Интерпаляция 110/60 60 67

dataSet_48x48_968x2 д/ з Интерпаляция 86+60/110 54 57

Интерпаляция dataSet_48x48(24x48x2)_2х576х2 м/б +Дублирование 86/60 58,33 59,09

спектра

Интерпаляция dataSet_48x48(24x48x2)_2х576х2 м/н +Дублирование 86/110 52 59

спектра

Интерпаляция dataSet_48x48(24x48x2)_2х576х2 н/б +Дублирование 110/60 67 69

спектра

Интерпаляция dataSet_48x48(24x48x2)_2х576х2 д/ з +Дублирование 86+60/110 46 54

спектра

Дублирование dataSet_48x48_1152х2e м/б 86/60 61 58

спектра

Дублирование dataSet_48x48_1152х2 м/н 86/110 54 56

спектра

Дублирование dataSet_48x48_1152х2 н/б 110/60 62 65

спектра

Дублирование dataSet_48x48_1152х2 д/ з 86+60/110 49 50

спектра

Рисунок 3.5 – Сравнительная гистограмма результатов обучения сети

Xception на разных тестовых выборках Таблица 3.2 – Результаты тестирования VGG19

Метод Точность Точность

Набор данных Задача Количество

масштабирования Test, % Training, %

dataSet_48x48_968x2 м/б Интерполяция 86/60 64 60

dataSet_48x48_968x2 м/н Интерполяция 86/110 61.22 53.48

dataSet_48x48_968x2 н/б Интерполяция 110/60 69 69

dataSet_48x48_968x2 д/з Интерполяция 86+60/110 58 57

Интерп.+ dataSet_48x48(24x48x2)_2х576х2 м/б 86/60 52,78 61,82

Дублирование

Интерп.+ dataSet_48x48(24x48x2)_2х576х2 м/н Дублирование 86/110 55,10 56,12

Интерп.+ dataSet_48x48(24x48x2)_2х576х2 н/б 110/60 59 66

Дублирование

Интерп.+ dataSet_48x48(24x48x2)_2х576х2 д/ з 86+60/110 51 56

Дублирование dataSet_48x48_1152х2 м/б Дублирование 86/60 58 62 dataSet_48x48_1152х2 м/н Дублирование 86/110 60 55 dataSet_48x48_1152х2 н/б Дублирование 110/60 64 65 dataSet_48x48_1152х2 д/з Дублирование 86+60/110 53,46 55,77

Рисунок 3.6 – Сравнительная гистограмма результатов обучения сети

Xception на разных тестовых выборках

Таблица 3.3 – Результаты тестирования Xception

Метод Размер Точность Точность

Набор данных Задача

масштабирования выборки Test, % Training, %

Дублирование dataSet_72x72(36x36x4)_2x648 м/б 86/60 54 61

спектра

Дублирование dataSet_72x72(36x36x4)_2x648 м/н 86/110 54 60

спектра

Дублирование dataSet_72x72(36x36x4)_2x648 н/б 110/60 63 69

спектра Продолжение таблицы 3.3

Метод Размер Точность Точность

Набор данных Задача

масштабирования выборки Test, % Training, %

Дублирование dataSet_72x72(36x36x4)_2x648 Д/ з 86+60/110 63 65

спектра

Интерпаляция dataSet_72x72(32x32x4)_1x1024 м/б +Дублирование 86/60 55.56% 60.45%

спектра

Интерпаляция dataSet_72x72(32x32x4)_1x1024 н/б +Дублирование 110/60 71,41 72

спектра

Интерпаляция dataSet_72x72(32x32x4)_1x1024 Д/ з +Дублирование 86+60/110 69,53 65.10

спектра

Рисунок 3.7 – Сравнительная гистограмма результатов обучения сети

Xception на разных тестовых выборках

В среднем наибольшую точность показала модель нейронной сети основанная на сверточных слоях сети Xception и обученная на наборе данных формата 72×72(32x32x4)_1x1024.

Используя модель основывающуюся на сети Xception, веса полученные при ее обучении на наборе данных 72×72(32x32x4)_1x1024, проведем тонкую настрой для каждой задачи бинарной классификации.

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

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

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

Алгоритм тонкой настройки включает в себя следующие действия:

1. Добавьте свою собственный классификатор поверх уже обученной базовой сети.

2. Блокировка обучения базовой сеть.