Реализация искусственной нейронной сети

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



1 Необходимость

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

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

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

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

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



2 Теоретическое обоснование

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

Хроматографические пики могут быть как симметричными так и не симметричными и являются искажёнными Гауссовыми функционалами. И если пик описывается некоторой функцией от времени f(t), то на хроматограф поступает суперпозиция пиков, поэтому функция от времени отображаемая на его экране есть как сумма функций всех пиков:



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

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

Метод прогнозирования заключается в следующем:

1.)На входы нейронной сети поступают отчёты, причём желательно нормированные:



-среднее значение выборки временных значений примеров-входов,

-их исправленная дисперсия.

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

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

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

1.) Подать параллельной сети примеры соседнего пика.

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



4 Методика обучения нейросети

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

Ниже представлен методика обучения НС с помощью процедуры обратного распространения строится так:

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

 (1)

где M – число нейронов в слое n-1 с учетом нейрона с постоянным выходным состоянием +1, задающего смещение; yi(n-1)=xij(n) – i-ый вход нейрона j слоя n.

yj(n) = f(sj(n)), где  – сигмоид (2)

yq(0)=Iq, 

где Iq – q-ая компонента вектора входного образа.



2. Рассчитать (N) для выходного слоя по формуле:

 (3)

Рассчитать изменения весов w( N) слоя N по формуле:

 (4)

3. Рассчитать для всех остальных слоев, n=N-1,...1

1)( n) по формуле:

 (5)

2) w( n) по формуле(15)

4. Скорректировать все веса в НС

 (6)

5. Если ошибка сети существенна, перейти на шаг 1. В противном случае конец.



6 Заключение

В ходе настоящей работы была разработана и реализована программно искусственная нейронная сеть. Программа написана в среде Borland Delphi 3. Она представляет собой гибкую систему, в которой задаётся количество скрытых слоёв и количество нейронов в каждом из них. Количество входов и выходов одинаково и равно единице. Над программой был проведён длительный эксперимент, который продолжался около 10-ти часов. За это время нейронная сеть, реализованная в ней, обучалась по переднему фронту пика(см. приложение Г). Нейронная сеть состояла из 4-х слоёв по 50 нейронов, и выходного слоя с одним нейроном. Сеть обучилась до уровня ошибки – 0,0016, за число итераций – 95649.



Приложение А



Пример суперпозиции пиков и их истинностных фронтов

Приложение Г

Результаты обучения

Рис. 1. Результат работы программы







Рис. 2. График зависимости ошибки обучения от номера итерации