ТОМСКИЙ ГОСУДАРСТВЕННЫЙ УНИВЕРСИТЕТ СИСТЕМ
УПРАВЛЕНИЯ И РАДИОЭЛЕКТРОНИКИ (ТУСУР)
Кафедра автоматизации обработки информации (АОИ)
Творческая работа
Программная реализация искусственной нейронной сети для разделения хроматографических пиков.
ОТЧЁТ
|Преподаватель |Студент гр.425-2 |
|________ Н.В. Петров |К.В. Водкин |
|" " июня 1999 г. |" " июня 1999 г. |
1999
1 Необходимость
Одной из актуальных проблем в хроматографии является выделение пиков из их суперпозиции для более точного расчёта площади каждого из них.
Существует множество статистических методов решения этой задачи
(метод наименьших квадратов, метод главных компонент и т. д.). Но в
настоящее время наиболее интересен подход с использованием в этой области
искусственных нейронных сетей (ИНС).
Искусственные нейронные сети перестают быть экзотикой. В последние
годы разработки в этой области представляют большой интерес не только для
учёного света, но и для практичных людей. Областей их применения множество.
Это автоматизация процессов распознавания образов, адаптивное управление,
аппроксимация функционалов, прогнозирование, создание экспертных систем,
организация ассоциативной памяти и многие другие приложения.
При решении задачи выделения хроматографических пиков из их суперпозиции искусственные нейронные сети дают более точные результаты, чем методы статистики. Выделение производится путём прогнозирования фронта пика, скрытого из-за суперпозиции с соседним, на основании открытой части пика.
Целью данной работы является программная реализация искусственной
нейросети, которая обеспечит разделение пиков на хроматограмме.
2 Теоретическое обоснование
Поскольку искусственные нейронные сети позволяют аппроксимировать функции, прогнозировать – их можно прекрасно использовать для решения настоящей проблемы: разделение хроматографических пиков (см. приложение А).
Хроматографические пики могут быть как симметричными так и не симметричными и являются искажёнными Гауссовыми функционалами. И если пик описывается некоторой функцией от времени f(t), то на хроматограф поступает суперпозиция пиков, поэтому функция от времени отображаемая на его экране есть как сумма функций всех пиков:
[pic]
Поэтому образы пиков, которые присутствуют на хроматограмме, могут быть сильно искажены, из-за наложений, а в некоторых случаях скрыты другими.
Открытые части не сильно искажённых пиков позволяют спрогнозировать скрытую, и посчитать площадь под пиком.
Метод прогнозирования заключается в следующем:
1.)На входы нейронной сети поступают отчёты, причём желательно нормированные:
[pic]
[pic]-среднее значение выборки временных значений примеров-входов,
[pic]-их исправленная дисперсия.
2.)На выходы нейронной сети подаются соответствующие значения функции описывающей пик. Их необходимо преобразовать, чтобы они не превосходили 1, для чего нужно делить на максимум выборки.
3.)После обучения сети до не обходимого уровня ошибки необходимо подать на вход значение времени, при котором требуется узнать значение функции. Полученное значение при прямом функционировании и есть прогнозируемая точка. Она же будет добавлена в обучающую выборку. И снова провести выше описанные действия. Прогнозирование производится до тех пор, пока это необходимо.
Целесообразно параллельно проводить прогнозирование смежного пика.
Прогнозируемая точка смежного фронта соседнего пика может быть получена
следующим способом:
1.) Подать параллельной сети примеры соседнего пика.
2.) Подать на дополнительный вход разность между значением суперпозиции в этой точке и полученным значением в этой точке у соседнего пика.
3 Схема алгоритма разделения пиков
4 Методика обучения нейросети
Метод обучения нейросети на основании алгоритма обратного распространения представляет собой - распространение сигналов ошибки от выходов нейросети к ее входам, в направлении, обратном прямому распространению сигналов в обычном режиме работы.
Ниже представлен методика обучения НС с помощью процедуры обратного распространения строится так:
1. Подать на входы сети один из возможных образов и в режиме обычного функционирования НС, когда сигналы распространяются от входов к выходам, рассчитать значения последних. Ниже представлена формула расчёта взвешенной суммы весов:
[pic] (1) где M – число нейронов в слое n-1 с учетом нейрона с постоянным выходным состоянием +1, задающего смещение; yi(n-1)=xij(n) – i-ый вход нейрона j слоя n. yj(n) = f(sj(n)), где [pic] – сигмоид (2) yq(0)=Iq, где Iq – q-ая компонента вектора входного образа.
2. Рассчитать ((N) для выходного слоя по формуле:
[pic] (3)
Рассчитать изменения весов (w( N) слоя N по формуле:
[pic] (4)
3. Рассчитать для всех остальных слоев, n=N-1,...1
1)(( n) по формуле:
[pic] (5)
2) (w( n) по формуле(15)
4. Скорректировать все веса в НС
[pic] (6)
5. Если ошибка сети существенна, перейти на шаг 1. В противном случае конец.
5 Схема алгоритма обучения
6 Заключение
В ходе настоящей работы была разработана и реализована программно
искусственная нейронная сеть. Программа написана в среде Borland Delphi 3.
Она представляет собой гибкую систему, в которой задаётся количество
скрытых слоёв и количество нейронов в каждом из них. Количество входов и
выходов одинаково и равно единице. Над программой был проведён длительный
эксперимент, который продолжался около 10-ти часов. За это время нейронная
сеть, реализованная в ней, обучалась по переднему фронту пика(см.
приложение Г). Нейронная сеть состояла из 4-х слоёв по 50 нейронов, и
выходного слоя с одним нейроном. Сеть обучилась до уровня ошибки – 0,0016,
за число итераций – 95649.
Список использованных источников
1. С.Короткий. Нейронные сети: алгоритм обратного распространения.
М.:Мир-1997.
2. Ф.Блум, А.Лейзерсон, Л.Хофстедтер, Мозг, разум и поведение, М.,
Мир, 1988.
3. Постановка и возможные пути решения задачи обучения нейронных сетей. Сервер: Neural Bench™.
4. А.В. Буцев Локальная аппроксимация на искусственных нейронных сетях. М.:АиТ.-1997-№4-стр.127-136.
5. К.Дж. Анил, Н. Мао. Введение в искусственные нейронные сети.М.:
Откр. сист. –1998-№9-стр.4-15.
6. А. Балахонцев. Азбука нейронных сестей: методы обучения.М.:
Радиолюбитель.-1998.№9-стр.2-9.
Приложение А
Пример суперпозиции пиков и их истинностных фронтов
Приложение Б
Схема сети.
Приложение Г
Результаты обучения
Рис. 1. Результат работы программы
Рис. 2. График зависимости ошибки обучения от номера итерации
-----------------------
S
S
S
S
S
S
Слой1
Слой2
Слой3
S
S
S
S
Слой4
Подать на входы и выходы сети примеры (нормированное время на вход и соответствующие значения пика на выход).
Провести обучение сети.
Ошибка существенна
Да
Нет
Получить у обученной сети значение прогноза искомой точки.
Подать на входы и выходы параллельной сети примеры соседнего пика, смежный фронт которого нужно спрогнозировать.
Подать на дополнительный вход разность между значением суперпозиции в этой точке и полученным значением в этой точке у первого пика.
Провести обучение сети.
Ошибка существенна
Да
Нет
Получить у параллельной сети прогноза искомой точки смежного фронта.
[pic]
Инициализация сети. Присвоить небольшие случайные значения весам.
Подать на входы сети один из возможных образов
Рассчитать значение ошибки
[pic]
Рассчитать взвешенные суммы [pic]для каждого нейрона и выходы [pic](1,2)
Рассчитать изменения весов [pic](4)
Скорректировать все веса в НС
[pic]
Есть ли ещё примеры
Да
Да
Нет
Нет
Ошибка существенна
Сеть обучена
[pic]
?