Нейросетевая экспертная система медицинской диагностики
Дипломная работа - Компьютеры, программирование
Другие дипломы по предмету Компьютеры, программирование
казалось, что такие многослойные сети обладают большими возможностями, чем однослойные, и в последние годы были разработаны алгоритмы для их обучения.
Многослойные сети могут образовываться каскадами слоев. Выход одного слоя является входом для последующего слоя. Подобная сеть показана на рис. 5 .
Рисунок 5. Двухслойная нейронная сеть.
Многослойные сети не могут привести к увеличению вычислительной мощности по сравнению с однослойной сетью лишь в том случае, если активационная функция между слоями будет нелинейной. Вычисление выхода слоя заключается в умножении входного вектора на первую весовую матрицу с последующим умножением (если отсутствует нелинейная активационная функция) результирующего вектора на вторую весовую матрицу.
(XW1)W2
Так как умножение матриц ассоциативно, то
(W1W2).
Это показывает, что двухслойная линейная сеть эквивалентна одному слою с весовой матрицей, равной произведению двух весовых матриц. Следовательно, любая многослойная линейная сеть может быть заменена эквивалентной однослойной сетью. Однослойные сети весьма ограниченны по своим вычислительным возможностям. Таким образом, для расширения возможностей сетей по сравнению с однослойной сетью необходима нелинейная активационная функция.
Многослойная нейронная сеть может моделировать функцию практически любой степени сложности, причем число слоев и число элементов в каждом слое определяют сложность функции. Определение числа промежуточных слоев и числа элементов в них является важным вопросом при конструировании.
Среди многослойных нейронных сетей можно выделить четыре наиболее значимых и важных класса нейронных сетей:
сети прямого распространения - все связи направлены строго от входных нейронов к выходным. Такие сети еще называют многослойным персептроном, по аналогии с обычным персептроном Розенблатта, в котором только один скрытый слой;
реккурентные нейронные сети или сети обратного распространения - сигнал в таких сетях с выходных нейронов или нейронов скрытого слоя частично передается обратно на входы нейронов входного слоя;
радиально базисные функции - вид многослойной нейронной сети, имеющий скрытый слой из радиальных элементов и выходной слой из линейных элементов. Сети этого типа довольно компактны и быстро обучаются. Радиально базисная сеть обладает следующими особенностями: один скрытый слой, только нейроны скрытого слоя имеют нелинейную активационную функцию и синаптические веса входного и скрытого слоев равны единицы;
самоорганизующиеся карты или сеть Кохонена. Такой класс многослойных нейронных сетей, как правило, обучается без учителя и успешно применяется в задачах распознавания. Сети такого класса способны выявлять новизну во входных данных: если после обучения сеть встретится с набором данных, непохожим ни на один из известных образцов, то она не сможет классифицировать такой набор и тем самым выявит его новизну. Сеть Кохонена имеет всего два слоя: входной и выходной, составленный из радиальных элементов.
Глава 3. Обучение искусственных нейронных сетей в программе Statistica 7
3.1 Построение модели
За определенную историю наблюдения за больными, накопился массив данных, которые сохранены в таблице системы STATISTICA. Вид соответствующей Таблицы данных представлен на Рисунке 6.
Рисунок 6. Фрагмент таблицы исходных данных
Целью исследования является построение нейросетевой модели, которая по заданному набору исходных данных (данные обследований больного, результаты анализов, лечение до поступления), на основе назначенного в стационаре лечения выдавала бы прогноз его лечения (значений приём в стационаре И-АПФ\АРА, БАБ, БКК, диуретиков, препаратов центрального действия) с достаточной точностью.
Факт нелинейности задачи не вызывает сомнения. Конечно, можно было бы попробовать решить задачу, воспользовавшись модулем STATISTICA Nonlinear Estimation, а именно при помощи предлагаемых данным модулем итеративных процедур "нащупать" вид функции. Однако здесь есть ряд неприятностей, которые значительно растягивают процедуру поиска решения. Важнейшей из них является формулировка гипотезы о явном виде изучаемой зависимости, которая совсем не является очевидной.
Без дополнительных исследований, о явном виде зависимости сказать что-либо сложно. Тем более, следует упомянуть, что мы не учли еще один фактор. В общем, решение подобной задачи методами нелинейного оценивания может растянуться очень надолго, а может так ни к чему и не привести. В таких критических ситуациях, когда известно, что
зависимость между переменными есть;
зависимость определенно нелинейная;
о явном виде зависимости сказать что-либо сложно,
выручают нейросетевые алгоритмы. Рассмотрим способ решения данной задачи в модуле STATISTICA Neural Networks.
К сожалению, универсальных правил, говорящих о том, какой топологии нейронной сети стоит придерживаться для решения той или иной задачи нет. Поэтому, необходима разумная процедура поиска нужной сети.
Модуль Neural Networks системы STATISTICA включает в себя процедуру, организующую поиск нужной конфигурации сети. Эта процедура заключается в построении и тестировании большого количества сетей с разными архитектурами и послудующем выборе из них той сети, которая лучше всего подходит для решения поставленной задачи. Данный инструмент называется Intelligent Problem Solv