Инициализация нейронной сети
После формирования обучающей выборки производится инициализация нейронной сети (сетей), для которой определяются стартовые параметры. Данный раздел посвящен выбору стартовых параметров нейросети в зависимости от обучающей выборки и цели обучения.
Разработанная нами методика создания нейросетевых экспертных систем включает фиксированный набор стартовых параметров, выбор которых может осуществляться предметным специалистом. Однако даже этот небольшой набор может быть минимизирован путем автоматизации установки достаточно очевидных параметров.
Список стартовых параметров включает следующие пункты (параметры, выбор которых может быть автоматизирован, помечены звездочками):
- * Выбор типа нейронной сети;
- * Имя файла нейронной сети;
- Схема подачи обучающих данных, которая определяет количество входных сигналов и соответствующих им входных синапсов, а также ответ;
- * Включение или выключение нормирования входных сигналов;
- * Количество нейронов;
- * Параметр плотности (количество нейронов, на которые подается один входной сигнал);
- * Время отклика нейросети (число тактов функционирования нейросети при прохождении одного примера с момента подачи входных сигналов до выдачи ответа);
- * Величина характеристики нейронов.
Как видно, в минимизированном варианте списка параметров специалист-пользователь должен всего лишь поставить задачу, не задумываясь о выборе остальных параметров.
Рассмотрим методику задания каждого параметра, а также вариант, который принимается при автоматической установке.
Следует заметить, что в рамках принятой нами идеологии создание нейросетей должно осуществляться при наличии стартовой обучающей выборки, находящейся в базе данных, что значительно облегчает выбор параметров пользователем и дает возможность автоматизации выбора параметров.
- Выбор типа нейронной сети. Определяется типом задачи (классификация, предикция, векторная предикция). Перед выбором необходимо убедиться в соответствии обучающей выборки типу нейросети. При автоматическом выборе программа, после определения пользователем набора обучающих параметров и выбора поля базы данных, в котором содержится ответ, осуществляет анализ этого поля.
Если данные в нем представлены целыми числами небольшой размерности или фиксированным набором чисел с "плавающей точкой", устанавливается классификационный тип нейронной сети. Если же данные представлены числами с "плавающей точкой" с достаточно широким варьированием, устанавливается предикционный тип нейросети. - Имя файла нейронной сети. При автоматической установке имя файла связывается с установленной задачей.
- Схема подачи обучающих данных и ответа не может быть автоматизирована, так как изначальный набор обучающих параметров и параметры, содержащие ответ, могут быть заданы только самим специалистом. При наличии базы данных пользователь указывает, какие поля базы рассматриваются как обучающие, и в каких полях содержатся ответы. Каждая запись базы является примером, если ячейка в поле, содержащем ответ, не пуста, и если пользователь специально не указал, что данная запись не должна участвовать в обучении. Каждый входной (обучающий) параметр можно при обучении и тестировании подавать на один (стандартно) или несколько (при необходимости) входных синапсов нейросети. Второй вариант можно использовать в тех случаях, если пользователь заранее считает, что какой-либо параметр должен играть особое значение для получение ответа и его влияние необходимо усилить. Для примера рассмотрим две схемы. Первая (таблица 5.1) задается программой по умолчанию (стандартно) и не меняется, если создателю нейросети нет необходимости переопределять форму подачи данных. Вторая схема (таблица 5.2) является результатом направленных действий создателя нейросети.
Таблица 5.1. Схема подачи обучающих параметров и определение ответа, устанавливаемые стандартно
В первой схеме база данных содержит 6 полей, содержащих данные об обследуемых.Поля базы данныхКоличество входных синапсов, на которые подается обучающий параметрНомера входных синапсов, на которые подается обучающий параметр 1. Диагноз 1 - (Ответ) 2. Возраст 1 1 3. Пол 1 2 4. Количество эритроцитов 1 3 5. Количество лейкоцитов 1 4 6. Гемоглобин 1 5
Первое поле содержит ответ (диагноз), остальные поля являются обучающими. Если поле, содержащее ответ, первое в базе данных, не требуется переопределять ответ. В приведенном примере 5 обучающих полей, данные каждого из них будут подаваться на один соответствующий входной синапс.
Во втором примере поле, содержащее ответ, стоит последним; кроме того, имеются поля, содержащие код обследуемого и его фамилию. В этой ситуации пользователь должен указать, что ответом является именно поле "Диагноз".
Подавать на вход нейросети код обследуемого не имеет никакого смысла, поэтому данное поле выключается из схемы подачи входных сигналов, несмотря на то, что оно может иметь числовой тип. Поле, содержащее фамилию обследуемого, также выключается из схемы, т.к. оно является не числовым, а символьным. Поля, содержащее данные о количестве эритроцитов и гемоглобине, подаются соответственно на 2 и 3 входных синапса создаваемой нейросети, что будет определять их относительно большее влияние на выдачу ответа у обученной сети. Таким образом, несмотря на то, что число обучающих параметров равно по прежнему 5, число входных синапсов будет увеличено до 8.Таблица 5.2. Схема подачи обучающих параметров и определение ответа, заданные создателем нейросети
Поля базы данныхКоличество входных синапсов, на которые подается обучающий параметрНомера входных синапсов, на которые подается обучающий параметр 1. Код пациента - - 2. Ф.И.О. пациента - - 3. Возраст 1 1 4. Пол 1 2 5. Количество эритроцитов 2 3, 4 6. Количество лейкоцитов 1 5 7. Гемоглобин 3 6, 7, 8 8. Диагноз - - (Ответ)
Подачу некоторых входных параметров на несколько входных синапсов можно рекомендовать и в случаях, когда общее число обучающих параметров мало (единицы). - Включение или выключение нормирования входных сигналов. Нормирование входных сигналов представляет собой один из видов предобработки и является исключительно важным в методологии создания нейросетевых экспертных систем. При нормировании на входной синапс подается не величина параметра (для данного примера), а ее эквивалент, полученный путем пересчета по определенной схеме.
Мы применяем нормирование входных сигналов на диапазон [-1...1]. Система нормирования имеет два аспекта - методологический и технологический. Первый состоит в том, что нормирование позволяет унифицировать представление информации внутри "черного ящика" нейросетевой экспертной системы и поэтому отменяет необходимость создателю и/или пользователю экспертной системы контролировать диапазоны числовых значений медико-биологических данных. Технологический аспект заключается в следующем. Разработанная технология обучения нейронных сетей предусматривает универсальную структуру и алгоритмы обучения для медико-биологических данных любого характера. Однако в результате проводимых нами многочисленных экспериментов было установлено, что наиболее универсальная и быстрообучающаяся архитектура полносвязной сигмоидной (имеющей характеристическую функцию нейронов) нейросети оптимально работает при нахождении входных сигналов в диапазоне приблизительно [-1...1]. При расширении этого диапазона происходит сначала практически незаметное, плавное, а затем быстро нарастающее снижение качества обучения, особенно ярко проявляющееся при сильно различающихся диапазонах у разных входных сигналах.
Еще в большей степени нормирование влияет на экстраполяционные возможности нейросети. Исследования показали, что процент правильно распознанных примеров, не входящих в обучающую выборку, максимален также при нормировании входных данных на диапазон [-1...1].
Учитывая результаты экспериментов, разработанная методология предусматривает нормирование всех входных параметров на диапазон [-1...1]. Каждый входной сигнал перед подачей на синапс пересчитывается по формуле
Yi= 2 * (xi - mini) / (maxi - mini) - 1 (3),
где x - исходный сигнал, Yi - получаемый нормированный сигнал, min и max - соответственно минимальное и максимальное значения интервала входных параметров в поле, подаваемом на синапс i.
Диапазон входных параметров рассчитывается для каждого поля, подаваемого на синапсы нейросети. Расчет происходит при создании нейросети.
После создания нейросеть хранит минимум и максимум диапазона в своем файле. Расчет диапазонов происходит автоматически исходя из значений, заданных в примерах обучающей выборки. Поэтому желательно, чтобы обучающая выборка содержала примеры с возможными крайними значениями всех обучающих параметров. Если впоследствии, например при дообучении или тестировании, какое-либо значение будет находится вне промежутка min..max, пересчитанное значение будет соответственно лежать за пределами диапазона [-1...1]. Если "выпадение" из интервала будет небольшим (десятые доли), это практически не повлияет на качество дообучения и тестирование.
Тем не менее, рекомендуется после создания нейросети (до начала всякого обучения!) внимательно просмотреть диапазоны значений, соответствующие каждому входному синапсу, и если в будущем предполагается подача значений вне данного диапазона, вручную изменить его. Ни в коем случае нельзя менять диапазоны после обучения нейросети, т.к. это приведет к последующей некорректной обработке входных сигналов, сбою при дообучении и некорректному тестированию. При автоматическом задании параметров сети всегда устанавливается нормирование, автоматический подсчет диапазонов значений и расширение их на заданную относительную величину. Отмена нормирования предусматривается в основном для проведения экспериментов и исследований, как возможность дополнительной настройки.
Кроме нормирования входных сигналов, устанавливается нормирование значений ответов у нейросетей-предикторов. Проведенные эксперименты показали безусловное преимущество такого подхода. Нормирование значений ответов проводится по схеме, аналогичной нормированию входных сигналов. - Количество нейронов. Этот параметр определяет суммарное количество синаптических связей нейронной сети. Для полносвязной нейросети оно равно квадрату числа нейронов. Если сеть использует адаптивную матрицу входных сигналов (в нашей методике это делается всегда), общее число подстраиваемых связей равно квадрату числа нейронов плюс произведение числа входных синапсов и плотности подачи входных сигналов (на сколько нейронов подается каждый входной сигнал).
Оптимальное количество нейронов во многом зависит от решаемой задачи. Большее число нейронов повышает гарантию успешного обучения, но увеличивает размер нейросети, а значит, время ее срабатывания при тесте и время ее загрузки с диска компьютера в память. В общем случае, число нейронов может быть равно числу обучающих параметров. В классификаторах без адаптивной матрицы входных сигналов количество нейронов устанавливается автоматически и равно сумме числа обучающих параметров и количества классов в задаче. Если набор входных параметров избыточен (предполагается, что для обучения можно обойтись лишь частью этого набора) можно задавать число нейронов меньшим.
Не представляется возможным корректно исследовать зависимость качества обучения от числа нейронов, т.к. невозможно создать сети с одинаковыми стартовыми картами и разным числом нейронов. При сравнении сетей с различными картами на качество будет влиять (хотя и не сильно) индивидуальность сети, определяемая случайными стартовыми значениями синаптических весов.
При автоматическом задании числа нейронов предлагается следующая технология. Инициализируется и обучается нейросеть с небольшим количеством нейронов (например, 2). При невозможности обучения, в зависимости от суммарной оценки и количества входных синапсов рассчитывается новое, увеличенное количество нейронов. Инициализируется и обучается новая сеть, повторяющая параметры предыдущей, но имеющая заново установленное большее число нейронов. Процесс повторяется до тех пор, пока какая-либо из сетей не обучится полностью. Недостатком метода является увеличение времени, затрачиваемого на обучение. Преимущества - создателю экспертной системы нет необходимости экспериментировать с различным количеством нейронов, на что в конечном итоге может потребоваться гораздо больше времени. Кроме того, предлагаемый способ позволяет избежать создания заранее слишком избыточной сети, которая может быстро и хорошо обучиться на обучающей выборке, однако будет обладать низкой экстраполяционной способностью.
- Параметр плотности. Плотность подачи входных сигналов определяет, на сколько нейронов будет одновременно подаваться сигнал с каждого входного синапса (не путать подачу некоторых, определяемых создателем сети, сигналов на несколько входных синапсов). При числе нейронов, равном количеству входных параметров, и плотности, равной единице, каждый входной сигнал подается на один соответствующий нейрон. Если в этом же случае плотность будет равна числу нейронов, то каждый входной сигнал будет подаваться на все нейроны. Такое "размазывание" сигналов по нейронам обеспечивает адаптивная матрица входов. В общем случае, это всегда приводит к улучшению качества обучения, хотя и замедляет срабатывание сети и незначительно увеличивает ее размер. При автоматическом задании плотности она устанавливается равной числу нейронов.
- Время отклика. Определяет число тактов функционирования сети с момента подачи входных сигналов до момента снятия выходных сигналов. Эксперименты показали, что в подавляющем числе медико-биологических задач следует задавать этот параметр равным 2 (редко 3). Это связано с относительно тесными взаимосвязями (часто приближающимися к линейным), присутствующими в медицинских данных. Большие значения времени отклика, как правило, приводят к замедлению обучения и снижению прогностической способности нейросети. Несколько большие значения времени отклика можно порекомендовать для сетей-предикторов.
Эксперименты показали, что увеличение времени отклика приводит также к увеличению общего числа тактов функционирования, необходимого для полного обучения сетей практически на всех медицинских задачах, обсуждаемых ниже. Кроме того, увеличение реального времени, требуемого на один такт работы нейросети при большом времени отклика, увеличивает еще и машинное время, требуемое для обучения. Поэтому при автоматическом задании времени отклика оно принимается равным 2. - Величина характеристики нейронов. Как уже говорилось, при прохождении сигнала через нейроны он пересчитывается по функции нейрона, имеющей заданный параметр характеристики.
В результате величина сигнала всегда уменьшается, причем чем больше характеристика нейрона, тем существеннее уменьшение одного и того же сигнала (рисунок 5.6).
Кроме того, разность двух поданных сигналов (уже нормированных) после их преобразования по характеристической функции будет различной в зависимости от характеристики и зон, в которых находятся поданные сигналы. Функция с малой характеристикой обеспечивает относительно большую разность между преобразованными сигналами, которые до преобразования находились или на значительном расстоянии друг от друга, или группировались в зоне наиболее крутого участка функции (около нуля). Наоборот, функция с большой характеристикой лучше разделяет сигналы, попадающие в крайние зоны и находящиеся на небольшом расстоянии друг от друга. Так как довольно значительная часть медико-биологических параметров подчиняется закону нормального распределения или же носят дискретный характер, нейронные сети с малой характеристикой нейрона обучаются на этих данных гораздо быстрее, особенно, если в задаче, например, классификации, классы достаточно легко разделимы в пространстве входных параметров. Однако сети с большей характеристикой обладают значительно лучшими экстраполяционными способностями, хотя и хуже обучаются.
Рис. 5.6. Схема изменения сигнала при прохождении через нейрон в зависимости от величины характеристики
Если характеристика устанавливается пользователем, рекомендуется вначале обучать сеть с небольшой характеристикой, а при успешном обучении генерировать и обучать новые сети, увеличивая этот параметр. Нельзя менять характеристику у обучающейся или обученной сети, т.к. это приведет к некорректной обработке входных сигналов. Мы рекомендуем диапазон значений характеристики от 0,1 до 0,8.
При автоматическом задании этого параметра характеристика вначале устанавливается небольшой, а затем, в случае успешного обучения нейросети, постепенно повышается.