Дополнительные рекомендации
по проектированию и обучению персептронов
Многие специалисты, занимающиеся
практическим применением нейросетевых
технологий, склонны называть проектирование и
обучение нейронных сетей скорее искусством, чем
наукой. Действительно, несмотря на
фундаментальный характер рассмотренных нами
теорем, несмотря на рекордные количества,
строгость и красоту их доказательств,
программисты в своей работе часто
руководствуются так называемыми эвристическими
правилами, рекомендациями своих коллег,
собственной интуицией и только им одним
известными приемами — таинственными know-how.
Приведем некоторые из них.
Подбор обучающих примеров. От
удачного подбора обучающих примеров во многом
зависит успех создания нейронной сети, адекватно
моделирующей предметную область. Прежде всего
необходимо понимать, что не все входные
параметры предметной области влияют на выходной
вектор Y. Например, знание температуры
тела вряд ли поможет в постановке диагноза
больного, если задача состоит в выявлении у него
одних только психических отклонений.
Те входные параметры, которые не
оказывают влияния на выходной вектор Y,
называют незначимыми для этого выходного
вектора. Естественно, что незначимые параметры
не следует включать в список элементов входного
вектора X.
Однако на практике часто бывает трудно
и даже невозможно установить, какие из входных
параметров предметной области являются значимыми,
а какие нет. Поэтому на первом этапе в вектор
включают как можно больше параметров, исключая
только те, незначимость которых представляется
очевидной.
После первоначального создания и
обучения нейронной сети незначимые параметры
могут быть выявлены следующими способами:
1) с помощью возмущения значений
входных параметров и анализа реакции сети на
эти возмущения. Если обученная нейронная сеть
не реагирует или слабо реагирует на изменения
значения какого-либо входного параметра, то этот
параметр не является значимым;
2) путем поочередного исключения
входных нейронов сети и наблюдения за ошибкой
обобщения сети. Если при исключении
какого-либо входного нейрона ошибка обобщения eT
возрастает, то входной параметр, соответствующий
исключенному нейрону, является значимым. В
противном случае параметр является незначимым и
соответствующий ему входной нейрон следует
удалить.
После выявления и исключения входных
нейронов, соответствующих незначимым
параметрам, качество нейросети улучшается, так
как снижается ее размерность. Однако надо
понимать, что при слишком малом количестве
входных параметров нейросети может не хватить
данных для выявления закономерностей предметной
области.
Порядок представления обучающих
примеров. При обучении сети методом обратного
распространения ошибки или другими методами
обучающие примеры рекомендуется представлять не
в порядке их следования от первого до последнего,
а выбирать случайным образом. По мнению
специалистов, это придает алгоритму обучения
более стохастический характер и в некоторых
случаях позволяет избегать попадания в
локальные минимумы.
Обнаружение посторонних выбросов в
обучающем множестве примеров. В
статистической информации, на которой обучаются
нейронные сети, могут попадаться выбросы данных,
обусловленные случайными факторами, не
характерными для изучаемой предметной области.
Например, при формировании обучающего множества
в одном из примеров забыли поставить ноль, в
результате ошиблись на порядок. Выбросы могут
давать измерительные приборы, с помощью которых
снимаются статистические данные, например, при
случайном отключении электропитания.
Присутствие посторонних выбросов в
статистических данных является весьма
распространенным явлением, отрицательно
влияющим на качество их последующей обработки и
использования. Если в простейших случаях
посторонние выбросы обнаруживаются
сравнительно легко и даже видны невооруженным
глазом, то в более сложных многомерных
зависимостях при больших объемах информации
выявление и исключение посторонних выбросов
представляет собой непростую математическую
проблему.
В некоторых нейропакетах для
обнаружения посторонних выбросов в
статистических данных используется свойство
персептрона плохо обучаться на примерах, имеющих
выбросы, не подчиняющиеся закономерностям
предметных областей. Идея этого алгоритма
состоит в поочередном исключении примеров из
обучающего множества и наблюдении за ошибкой
нейросети, обученной на этих урезанных
множествах. Если пример является посторонним
выбросом и выпадает из закономерности,
характерной для предметной области, то его
удаление из обучающего множества приводит к
резкому падению ошибки обучения сети, тогда как
исключение обычных примеров существенного
влияния на качество сети, как правило, не
оказывает.
Предобработка обучающих примеров и
интерпретация ответов. Параметры, описывающие
предметную область, могут иметь самый
разнообразный характер: это могут быть числа с
различными диапазонами изменений; качественные
характеристики, такие, как цвет волос и глаз
пациента; даты, содержащие число, месяц, год;
графические объекты. Поскольку нейросеть в
состоянии обрабатывать только числа, то вся
нечисловая информация должна быть закодирована
в числовом виде.
Числовую информацию, приготовленную
для нейросетевой обработки, желательно масштабировать,
т.е. выровнять диапазоны изменения величин,
например, ограничив их интервалом [–1, 1]. Сделать
это можно с помощью простейшего линейного
преобразования:
(39)
где , —
значения исходного и масштабированного n-го
параметра предметной области, подаваемого на n-й
входной нейрон нейросети; — реальный диапазон изменения n-го
параметра; [A, B]— приемлемый диапазон изменения
входных сигналов, например, A = -1, B = 1.
Желаемые выходные сигналы персептрона
должны быть также закодированы в приемлемой
форме и масштабированы в приемлемом диапазоне [a,
b]. Это значит, что при формировании вектора D
следует применить формулу масштабирования,
аналогичную (3.52):
(40)
где —
заданное и масштабированное значение m-й
компоненты вектора — реальный диапазон изменения m-го
выходного сигнала.
Обученный на таком множестве примеров
персептрон будет формировать выходной вектор , содержащий
значения курса, приведенные к диапазону [A, B].
Поэтому к ним должно быть применено
преобразование, обратное масштабированию (40):
(41)
Таким образом, персептрон можно
применять для моделирования предметной области,
описываемой числовыми параметрами любого
диапазона. При этом входные и выходные параметры
желательно масштабировать — преобразовать к
приемлемым диапазонам. Естественно, что ответы
персептрона следует демасштабировать
посредством применения преобразования,
обратного масштабированию.
Рассмотрим возможности интерпретации
ответов персептрона при решении задач
классификации. Примеры решения задач
классификации приводились ранее. Это задача
создания нейросетевого детектора лжи и задачи
постановки диагнозов заболеваний человека. Во
всех рассмотренных случаях персептроны
строились таким образом, что каждому классу
(каждому диагнозу) отводился свой выходной
нейрон. Размерность обучающих векторов D
совпадала с количеством выходных нейронов, а его
компонентам dm задавалось значение 1,
если для подготовленного вектора X имел
место диагноз, за который “отвечает” m-й
выходной нейрон, и значение 0, если диагноз был
другим. При появлении на входе персептрона
нового вектора параметров, не встречавшихся в
обучающем множестве, персептрон вычислял вектор Y,
который нужно интерпретировать с целью
получения заключения о классификации нового
входного объекта. Наиболее распространенный
способ интерпретации состоит в том, что
выходному сигналу m-го нейрона присваивается
значение 1, если ym > (B-A)/2, и 0 — в
противном случае. Причем логично полагать, что
чем выше значение ym, тем более
вероятна правильность постановки диагноза m-й
болезни, и чем меньше значение ym,
тем вероятнее отсутствие m-й болезни. В этом
случае говорят, что значение ym можно
расценивать как функцию принадлежности
объекта какому-либо классу или как меру
уверенности ответа персептрона.
Приведем пример интерпретации ответов
нейросетевого детектора лжи, обученного на
множестве примеров, в которых выходной сигнал d
кодировался как единица, если клиент говорил
правду, и ноль, если он лгал.
Если бы при использовании такого
персептрона на выходе образовался сигнал y =
0,9, то это означало бы, что с уверенностью 90%
клиент сказал правду. Если y = 0,75, то
вероятность правдивого ответа мы бы оценили в 75%.
Если y = 1,2, то это означает, что детектор лжи
более чем на 100% уверен в правдивости ответа
клиента. Если y = 0,2, то детектор лжи на 80%
уверен, что его пытаются обмануть.
В заключение отметим, что, помимо
рассмотренных способов подготовки данных и
интерпретации ответов нейросетей, существует
множество других приемов, преследующих
аналогичные цели.
Алгоритм применения метода
нейросетевого математического моделирования
Заканчивая изучение метода
математического моделирования на основе
персептронов, в качестве итога приведем
примерный алгоритм его применения (рис. 37),
сопровождая каждый этап советами и
рекомендациями.
Этап 1. Постановка задачи
На этом этапе определяются цели
моделирования, устанавливаются входные и
выходные параметры модели, устанавливается
структура (состав и длина) входного вектора X
и выходного вектора D.
В качестве компонент входного вектора X
важно выбрать значимые параметры, то есть те,
которые оказывают существенное влияние на
результат. Если есть сомнения в значимости того
или иного входного параметра, то его лучше
включить во входной вектор, рассчитывая, что в
последующем с помощью создаваемой нейросети
можно будет оценить степень его влияния на
результат, и если она окажется слабой, то этот
параметр исключить.
Выходной вектор D формируется
таким, чтобы его компоненты давали возможность
получить ответы на все поставленные вопросы.
Компоненты входного вектора X и
выходного вектора D представляют собой
числа. Это могут быть значения каких-либо
величин, например, температура тела,
артериальное давление, частота пульса и др. Это
могут быть также числа, кодирующие наличие или
отсутствие каких-либо признаков, например,
единица, если пол мужской, и двойка, если пол
женский. В некоторых случаях, если данные
нечеткие и есть сомнение в их правильности,
полезно кодировать оценку их вероятности.
Например, если у врача есть сомнения в
правильности выставляемого диагноза, он может
кодировать не сам диагноз, а его вероятность, или
степень развития болезни, применяя десяти- или
стобалльную систему оценки.
Этап 2. Формирование примеров
На этом этапе формируется содержимое
входных и выходных векторов. В результате
создается множество пар Xq – Dq
(q = 1, ...Q). Каждая такая пара составляет пример,
характеризующий предметную область.
Значения компонент векторов Xq
и Dq формируют различными способами:
путем проведения социологических опросов,
анкетирования, специальных экспериментов над
предметной областью, берут из сети Интернет, из
средств массовой информации, из архивных
материалов организаций и из других источников.
Все множество примеров разбивают на
обучающее L тестирующее T (см. рис.
18). Обычно объем тестирующего множества выбирают
не менее 10% от обучающего. Какой минимальный
объем обучающего множества необходим, зависит от
задачи. Обычно рекомендуется не менее пятидесяти
примеров. Однако в нашей практике встречались
случаи, когда для решения задачи хватало и десяти
обучающих примеров.
В особо ответственных случаях
рекомендуется, помимо обучающего множества L
и тестирующего множества T, формировать
еще и подтверждающее множество P из
примеров, принадлежащих той же самой предметной
области, но не пересекающееся ни с множеством L,
ни с множеством P (см. рис. 18 в № 23/2009).
Этап 3. Проектирование сети
Структура персептрона выбирается из
следующих соображений.
Число входных нейронов Nx
должно быть равно размерности входного вектора X.
Число выходных нейронов Ny
должно быть равно размерности выходного вектора D.
Число скрытых слоев, согласно теореме
Арнольда – Колмогорова – Хехт-Нильсена, должно
быть не менее одного. На последующих этапах число
скрытых слоев может корректироваться, если это
позволит улучшить качество работы сети.
Число нейронов в скрытых слоях
рассчитывается с помощью формул (37), (38). На
последующих этапах число нейронов в скрытых
слоях может корректироваться, если это позволит
улучшить качество работы сети.
Активационные функции скрытых
нейронов, согласно теореме Арнольда –
Колмогорова – Хехт-Нильсена, рекомендуется
задать сигмоидными, однако в дальнейшем их вид
может быть изменен, если это позволит улучшить
качество работы сети.
При корректировке структуры
персептрона следует иметь в виду, что увеличение
скрытых нейронов обычно позволяет добиться
меньшей ошибки обучения, однако чрезмерное их
увеличение приводит к эффекту гиперразмерности
— потере обобщающих свойств сети, выражающемуся
в возрастании ошибки обобщения (см. рис. 19 в №
23/2009).
Этап 4. Обучение сети
Обучение сети — очень важный, но не
окончательный этап создания нейросетевой
математической модели. Цель обучения —
подобрать синаптические веса wij так,
чтобы на каждый входной вектор множества Xq
обучающих примеров сеть выдавала вектор Yq,
минимально отличающийся от заданного выходного
вектора Dq. Эта цель достигается
путем использования алгоритмов обучения
нейронной сети. Обычно пробуется сразу несколько
алгоритмов обучения. Характерная кривая
обучения — зависимость квадратичной и
максимальной ошибок обучения от числа эпох
обучения, приведена на рис. 38а.
а
б
Рис. 38. Характерные кривые
зависимости ошибок обучения от числа эпох в
случае, когда сеть обучается успешно (а), и
когда процесс обучения не дает желаемого
результата (б)
Но может случиться так, что сеть не
захочет обучаться — ошибка обучения с
увеличением числа эпох не будет стремиться к
нулю (см. рис. 38б). Причинами этого
нежелательного явления могут быть следующие.
1-я причина. Недостаточное
количество скрытых слоев и скрытых нейронов.
Рекомендуется увеличить число скрытых
слоев и скрытых нейронов.
2-я причина. Попадание в
локальный минимум. Дело в том, что поверхность,
являющаяся графиком функции ошибки обучения
персептрона , как
правило, имеет сложный вид (см. рис. 3) и
отличается от параболоида наличием локальных
минимумов, в которых может застрять градиентный
алгоритм обучения персептрона.
Рекомендуется “встряхнуть” сеть,
начать обучение с другими начальными значениями
сил синаптических связей или сменить метод
обучения.
3-я причина. Наличие в обучающем
множестве посторонних выбросов, выпадающих из
общих закономерностей предметной области.
Рекомендуется обнаружить посторонние
выбросы, постараться убедиться, что они
действительно являются не характерными для
предметной области, являются следствием ошибок,
неточности измерений и др., и удалить посторонние
выбросы из обучающего множества примеров.
4-я причина. Наличие в обучающем
множестве противоречащих друг другу примеров.
Например, одним и тем же симптомам соответствуют
разные диагнозы заболеваний.
Обнаружить такие примеры в обучающем
множестве можно путем его визуального анализа
либо путем применения тех же методик, которые
используются при обнаружении посторонних
выбросов. Затем следует разобраться в причинах
возникновения противоречащих примеров.
Некоторые из примеров могут просто оказаться
ошибочными, и их нужно удалить.
Другая причина может быть связана с
тем, что в самой структуре входного вектора
отсутствуют какие-то параметры (например,
возраст больного, рост, вес, цвет его глаз и др.),
также оказывающие влияние на результат. В этом
случае рекомендуется пересмотреть постановку
задачи, увеличить размерность входного вектора X,
добавив дополнительные параметры, которые
своими значениями обеспечат непротиворечивость
примеров обучающего множества.
5-я причина. Слишком большая
скорость обучения.
Рекомендуется уменьшить скорость
обучения.
Этап 5. Тестирование и оптимизация
сети
Проверка обобщающих свойств сети
производится на тестирующем множестве примеров,
т.е. на тех примерах, которые не участвовали в
обучении сети. Результаты тестирования полезно
представить графически в виде гистограммы, на
которой значения желаемых выходов персептрона (Dq)
можно сопоставить с прогнозными (Yq),
то есть теми, которые вычислил персептрон. Пример
такой гистограммы приведен на рис. 44 на с. 35.
Если разница между компонентами
желаемого выходного вектора, тестирующего
множества примеров Dq, и прогнозными
значениями Yqокажется
незначительной, то можно переходить к следующему
этапу 6, не выполняя оптимизацию сети. Однако
чтобы лишний раз убедиться в адекватности
разрабатываемой нейросетевой математической
модели, полезно вернуться на этап 2 и те
примеры, которые были тестирующими (либо часть
тестирующих примеров), включить в обучающее
множество, а часть примеров, бывших обучающими,
сделать тестирующими. После этого снова
повторить этапы 3, 4, 5.
Если погрешность обобщения сети
окажется неприемлемо большой, надо попытаться
оптимизировать сеть. Оптимизация сети состоит в
подборе наиболее подходящей для данной задачи
структуры сети — количества скрытых слоев,
количества скрытых нейронов, количества
синаптических связей, вида и параметров
активационных функций нейронов. В некоторых
нейропакетах предусмотрена автоматическая
оптимизация сети. Но иногда бывает полезно
выполнить оптимизацию вручную, построив график
зависимости погрешности обобщения от числа
скрытых нейронов (см. рис. 19) и других
параметров персептрона, и выбрав с помощью этих
графиков структуру сети, обеспечивающую
минимальную погрешность обобщения.
При выборе оптимальной структуры сети
следует помнить, что цель оптимизации сети
состоит в минимизации погрешности обобщения eT, но не погрешности обучения eL. Именно по величине
погрешности обобщения судят о качестве сети, о ее
обобщающих и, следовательно, прогностических
свойствах. Погрешность же обучения — это всего
лишь промежуточный результат. Желательно, чтобы
она была небольшой, но добиваться ее
минимального значения вовсе не обязательно и
даже вредно, поскольку, как это видно из графиков рис.
19, приводит к эффекту переобучения, т.е. росту
погрешности обобщения.
Понятно, что оптимизация нейронной
сети подразумевает многократные возвраты назад
— на этапы 4, 3, 2, 1.
После оптимизации сети ее обобщающие
свойства рекомендуется проверить на примерах
подтверждающего множества P. Дело в том,
что в процессе оптимизации сеть могла
приспособиться к примерам тестирующего
множества. А если эти примеры по каким-либо
причинам не характерны для всей предметной
области, то на других примерах, которых не было ни
в тестирующем, ни в обучающем множествах, она
может дать неожиданно большую ошибку
прогнозирования. Для исключения такого явления и
чтобы окончательно убедиться, что сеть имеет
хорошие обобщающие свойства не только на
тестирующем множестве примеров, вычисляют
ошибку прогноза сети ep на
подтверждающем множестве, т.е. на тех примерах,
которые ни в обучении, ни в тестировании не
участвовали.
Результатом оптимизации и проверки
сети является готовая к использованию
нейросетевая математическая модель предметной
области — интеллектуальная информационная
система.
Этап 6. Исследование модели,
прогнозирование
Путем проведения вычислительных
экспериментов над математической нейросетевой
моделью достигаются цели моделирования,
находятся ответы на все поставленные вопросы.
Например, могут быть решены такие задачи, как
оптимизация моделируемого объекта,
прогнозирование его будущих свойств, выявление
закономерностей предметной области, и др.
Нейросетевая математическая модель,
если она правильно спроектирована и обучена,
впитала в себя закономерности моделируемой
предметной области. Она реагирует на изменение
входных параметров и ведет себя так же, как вела
бы себя сама предметная область.
И надо поставить над моделью как можно
больше экспериментов. Надо постараться извлечь
из этих виртуальных экспериментов как можно
больше полезной информации.
Часто бывает полезно изобразить
графически зависимости выходных параметров
модели от входных. Например, ранее на рис. 16
были построены зависимости рейтингов
политических деятелей от их возраста, а на рис.
17 представлена гистограмма, позволяющая давать
практические рекомендации по повышению
рейтингов. Эти интересные результаты и выводы
были получены в результате исследования
соответствующей нейросетевой математической
модели.
Таким образом, в результате выполнения
приведенного на рис. 37 алгоритма метода
нейросетевого математического моделирования
получается два вида продуктов:
— после выполнения этапа 5
создается готовая к использованию интеллектуальная
информационная система, являющаяся математической
моделью предметной области;
— после выполнения этапа 6
получаются результаты исследования
математической модели, представленные в
виде графиков, номограмм, гистограмм, полезных
рекомендаций и выводов.
В заключение укажем, что алгоритм
создания интеллектуальной информационной
системы (ИИС), приведенный на рис. 37,
апробирован при решении многих практических
задач и представляется вполне эффективным.
Однако в каждом конкретном случае, и в
зависимости от опыта, навыков и предпочтений
разработчика ИИС, от этого алгоритма возможны
отклонения. Например, если у разработчика ИИС
есть основания полагать, что во множестве
примеров предметной области имеются посторонние
выбросы, то он может начать с выявления и
исключения этих выбросов. Если у разработчика
ИИС хорошо развита интуиция или есть свои
собственные алгоритмы для определения
количества нейронов в скрытых слоях, то совсем не
обязательным является использование формулы
Арнольда – Колмогорова – Хехт-Нильсена.
Коротко о главном
Процесс нейросетевого
математического моделирования состоит из
нескольких этапов, включающих постановку задачи,
формирование множества примеров предметной
области, проектирование, обучение, тестирование
и оптимизацию сети, исследование готовой
математической модели, выполнение с помощью нее
прогнозов.
Результатом применения метода
нейросетевого моделирования является
интеллектуальная информационная система,
представляющая собой математическую модель
рассматриваемой предметной области, а также
новые научные и/или практические знания,
полученные путем исследования математической
модели и прогнозирования.
Заключительные замечания
Развитие современной цивилизации
свидетельствует о постоянном повышении роли
компьютерного математического моделирования
как в научных исследованиях для получения новых
знаний, так и во многих областях практической
деятельности человека. Традиционно компьютерные
математические модели строятся на основе
фундаментальных законов природы, зависимостей и
закономерностей, которые представляются в виде
алгебраических формул, алгебраических или
дифференциальных уравнений, обычно решаемых с
помощью компьютера численными методами. Именно
таким способом ведутся многие исследования в
физике, астрономии, экологии, науках о человеке,
природе и обществе, выполняются долгосрочные
прогнозы погоды, предсказываются землетрясения,
цунами, стихийные бедствия, а также
рассчитываются и проектируются самолеты,
автомобили, ракеты, подводные лодки, здания и
сооружения, промышленные и военные объекты.
Всегда считалось, что сам процесс
открытия фундаментальных законов природы,
общества, Вселенной — это прерогатива
исключительно человека. Всегда считалось, что
построение математических моделей и их
компьютерных реализаций — это
высокоинтеллектуальная задача, требующая
совместных усилий математиков, программистов и
специалистов предметных областей, в которых
выполняется моделирование. Однако в результате
изучения нашего предмета мы замечаем, что и этот
традиционный для человека вид его
интеллектуальной деятельности, связанный с
созданием самих математических моделей, в
настоящее время перекладывается на компьютер.
Компьютер теперь может сам открывать
фундаментальные законы природы, выявлять связи и
закономерности предметных областей и
закладывать их в математические компьютерные
модели. Причем во многих случаях компьютер с этим
справляется лучше, чем сам человек. Компьютер
может выявлять и учитывать в создаваемых им
моделях новые законы, закономерности и
внутренние связи предметной области, ранее
неизвестные ученым и специалистам. В результате
модели, создаваемые компьютером, учитывают
большее количество факторов, законов и
закономерностей, влияющих на результат
моделирования. Это, естественно, улучшает
качество компьютерных моделей.
Конечно же здесь речь идет не об
обычных фоннеймановских компьютерах и не об
обычных методах составления компьютерных
программ. Речь идет о низкоуровневой стратегии
искусственного интеллекта. Такие
интеллектуальные операции может выполнять
компьютер, построенный “по образу и подобию”
человеческого мозга, — нейрокомпьютер. Это может
также быть нейронная сеть, имитирующая
нейрокомпьютер на обычном компьютере.
Нейрокомпьютер, как и человеческий
мозг, состоит из множества соединенных между
собой элементарных ячеек — модельных нейронов,
принцип действия которых во многом аналогичен
принципу действия биологических нейронов, из
которых состоит мозг. Как и в мозге, нейроны
нейрокомпьютера соединены между собой
множеством связей, через которые происходит
обмен электрическими сигналами. Как и
биологические нейроны, нейроны нейрокомпьютера
могут переходить в возбужденное состояние,
вырабатывая и посылая электрические сигналы
другим нейронам, причем переход в возбужденное
состояние каждого нейрона тем вероятнее, чем
большее количество сигналов он получил от других
нейронов.
Согласно наиболее распространенным в
настоящее время нейрофизиологическим
представлениям, вся информация, хранящаяся в
мозге, закодирована в виде матрицы сил
синаптических связей — множества величин
электропроводности проводников, соединяющих
биологические нейроны, причем эти величины, по
мере жизнедеятельности мозга, постоянно
меняются, чем обеспечивается накапливание и
корректировка хранящейся в мозге информации.
Этот механизм в нейрокомпьютере имитируется
путем соответствующего изменения синаптических
весовых коэффициентов, выполняющих роль
электропроводности соединяющих нейроны
проводников. Таким образом, в нейрокомпьютере,
как и в мозге, вся информация представляется и
хранится в виде матрицы сил синаптических связей
нейронов.
В отличие от обычного компьютера
нейрокомпьютер не программируется, а, подобно
человеку, обучается. При этом происходит
корректировка сил синаптических связей.
Обучение проводится на обучающих примерах,
содержащих информацию о моделируемой предметной
области. Например, чтобы нейрокомпьютер
“открыл” теорему Пифагора, надо нарисовать
несколько различных прямоугольных
треугольников, измерить длины их гипотенуз и
катетов и передать эту информацию
нейрокомпьютеру. Если измерения выполнены
правильно и треугольников было достаточно много,
то можно не сомневаться, что нейрокомпьютер
повторит подвиг знаменитого геометра древности.
Поступая аналогичным образом, собирая
информацию о соответствующих предметных
областях, можно заново открыть закон Архимеда,
законы Ньютона, все фундаментальные законы
физики, химии, биологии, экономики и всех других
наук.
Таким образом, нейрокомпьютерные и
нейросетевые технологии, по существу, открывают
принципиально новый подход к самой методике
построения компьютерных математических моделей.
Появилась возможность строить математические
модели, которые сами извлекают закономерности
предметной области, позволяют их эффективно
использовать для решения широкого круга
практических задач исходя из одного только
эмпирического опыта — множества обучающих
примеров. При этом не обязательно задумываться
над законами физики, химии, биологии, экономики и
т.д. Компьютер их обнаруживает сам.
Появился новый способ получения
научных знаний. Появился инструмент извлечения
знаний из данных, инструмент, позволяющий
выявлять ранее неизвестные и никогда не
исследованные зависимости и закономерности и
активно использовать их для решения
практических задач.
Работы многих исследователей, а также
наш собственный опыт убеждают в том, что
нейрокомпьютерные и нейросетевые технологии
являются универсальным и весьма эффективным
инструментом для построения компьютерных
математических моделей самых разнообразных
физических, технических, химических,
экономических, социальных и другого рода
объектов, процессов и явлений. Работая с этими
моделями, исследуя их, мы можем решать широкий
круг разнообразных практических задач:
выполнять распознавание образов, оптимизировать
моделируемые объекты и процессы, прогнозировать
ход развития явлений и процессов и управлять ими.
Можно сказать, что человек,
освоивший нейросетевые технологии, поднимается
на качественно новый уровень своего развития.
Можно сказать, что у него
появляется дар предвидения.
Он может предсказывать будущие
события.
И он знает, как повлиять на эти
события.
Он знает, что нужно сделать, чтобы
события развивались в нужном направлении.
Раньше таких людей называли
волшебниками и колдунами.
Поэтому можно почти без
преувеличения сказать, что изучаемый вами
элективный курс учит вас искусству колдовства J.
Изучив этот предмет, вы можете
свободно пользоваться основными нейросетевыми
технологиями и даже применять их для достижения
своих личных целей. Как и каким образом? Это
зависит от вашей собственной фантазии и от того,
насколько глубоко вы поняли идеи и освоили
методы искусственного интеллекта.
ПРИМЕР ВЫПОЛНЕНИЯ КУРСОВОЙ РАБОТЫ
Интеллектуальная система оценки жилой
недвижимости города
Объективная оценка стоимости жилой
недвижимости нужна компаниям-строителям,
риелторам, бизнесменам, вкладывающим денежные
средства в недвижимость, людям, желающим продать
или, наоборот, обеспечить себя постоянным жильем.
Оценка недвижимости необходима при получении
кредита, взносе имущества в уставный капитал, для
судебных целей, при оформлении наследства, в
операциях купли-продажи или сдаче в аренду, при
страховании недвижимости, при разработке и
оценке эффективности инвестиционных проектов,
для расчета суммы налогов на недвижимость.
Стоимость дома или квартиры зависит от
большого числа факторов, таких, как общая
площадь, удаленность от центра, экологическая
обстановка, престижность, тип дома, вид из окна,
близость городского транспорта, наличие
мусоропровода, лоджии, балкона, и т.д. Так как вид
этой зависимости неизвестен, то стандартные
методы анализа здесь неэффективны. Как правило,
задача решается экспертами-оценщиками,
работающими в агентстве по недвижимости.
Недостатком такого подхода является
субъективность оценщика, а также возможные
разногласия между различными экспертами.
Нейросетевое моделирование рынка
жилой недвижимости лишено указанных
недостатков. Приведем пример создания нейронной
сети, предназначенной для оценки стоимости
двухкомнатных квартир г. Перми, ограничившись
учетом пяти параметров:
x1 — удаленность от
центра или категории престижности, которые
закодируем следующим образом:
1 — центр; 2 — прилегающие к центру
районы; 3 — районы средней удаленности; 4 —
окраины центральных районов; 5 — отдаленные
районы.
x2 — этаж: 1 — первый и
последний этажи; 2 — все остальные.
x3 — тип жилья: 1 —
“Хрущевка”; 2 — “Брежневка”; 3 —
“Полногабаритная”; 4 — “Серая панель”; 5 —
“Улучшенная планировка”.
x4 — площадь (м2).
x5 — состояние: 1 — среднее; 2
— хорошее; 3 — отличное.
В табл. 13 приведено обучающее, а в табл.
14 — тестирующее множества примеров оценки
одного квадратного метра стоимости квартир г.
Перми в зависимости от пяти выбранных входных
параметров. Данные стоимости пермских квартир (d)
заимствованы из газеты “Пермские квартиры, дома
& офисы, 2006 г.”.
Таким образом, согласно выбранной
структуре входных и выходных векторов
проектируемый персептрон должен иметь 5 входных
нейронов и один выходной нейрон. Число нейронов
скрытого слоя определим по формулам Арнольда –
Колмогорова – Хехт-Нильсена (37)–(39), подставляя в
них Nx = 5, Ny = 1, Q = 57:
Запустив программу “Нейросимулятор”
(лабораторная работа № 8), в режиме
“Проектирование сети” создаем персептрон с
пятью входами, одним выходом и одним скрытым
слоем с восемью нейронами, как показано на рис.
39.
Рис. 39. Персептрон,
предназначенный для моделирования рынка жилой
недвижимости г. Перми
В режиме “Обучение” вводим множество
обучающих примеров: либо вручную с помощью
многократного нажатия кнопки “Добавить
обучающий пример”, либо путем предварительной
подготовки Excel-файла и считывания его с помощью
кнопки “Загрузить из Excel-файла”. Результат ввода
изображен на рис. 40.
Рис. 40. Нейросимулятор с введенными
обучающими примерами
№ |
Удаленность
от центра |
Этаж |
Тип
жилья |
Общая
площадь
(кв. м) |
Состояние |
Цена
($ / кв. м) |
x1 |
x2 |
x3 |
x4 |
x5 |
d |
1 |
1 |
1 |
5 |
76 |
3 |
3400 |
2 |
5 |
1 |
5 |
55 |
2 |
1650 |
3 |
2 |
2 |
1 |
44,7 |
2 |
1650 |
4 |
2 |
1 |
2 |
45,5 |
2 |
1650 |
5 |
1 |
1 |
1 |
54,2 |
2 |
2550 |
6 |
1 |
2 |
1 |
44 |
2 |
2090 |
7 |
1 |
2 |
1 |
43,3 |
2 |
2100 |
8 |
2 |
2 |
2 |
48,5 |
2 |
1750 |
9 |
3 |
1 |
2 |
44 |
2 |
1650 |
10 |
2 |
2 |
1 |
46,2 |
3 |
2000 |
11 |
5 |
1 |
1 |
43 |
1 |
1350 |
12 |
2 |
2 |
5 |
54,2 |
2 |
2450 |
13 |
5 |
1 |
3 |
54 |
1 |
1360 |
14 |
3 |
2 |
4 |
45 |
1 |
1800 |
15 |
3 |
2 |
4 |
45,6 |
2 |
2000 |
16 |
2 |
2 |
4 |
45,7 |
2 |
1750 |
17 |
1 |
2 |
1 |
41 |
3 |
1650 |
18 |
2 |
1 |
2 |
41,1 |
2 |
1850 |
19 |
2 |
2 |
1 |
45 |
2 |
1800 |
20 |
2 |
1 |
4 |
46 |
2 |
2500 |
21 |
1 |
1 |
3 |
55 |
3 |
4100 |
22 |
1 |
2 |
1 |
44 |
3 |
2450 |
23 |
1 |
2 |
3 |
58 |
2 |
2700 |
24 |
4 |
2 |
5 |
49 |
2 |
1700 |
25 |
5 |
2 |
1 |
43 |
2 |
1500 |
26 |
2 |
2 |
4 |
44 |
2 |
2150 |
27 |
3 |
2 |
1 |
45 |
2 |
1750 |
28 |
2 |
1 |
4 |
46 |
2 |
2500 |
29 |
5 |
1 |
1 |
44 |
2 |
1400 |
30 |
5 |
2 |
1 |
42,6 |
2 |
1400 |
31 |
2 |
1 |
2 |
44 |
2 |
1650 |
32 |
3 |
1 |
2 |
44,3 |
2 |
1800 |
33 |
5 |
2 |
4 |
44 |
2 |
1600 |
34 |
5 |
1 |
1 |
42,6 |
3 |
1550 |
35 |
2 |
2 |
1 |
45,5 |
1 |
1850 |
36 |
2 |
2 |
4 |
45 |
2 |
2000 |
37 |
2 |
2 |
5 |
53,7 |
3 |
2270 |
38 |
2 |
2 |
5 |
45 |
1 |
2150 |
39 |
3 |
2 |
2 |
44,4 |
2 |
1700 |
40 |
1 |
2 |
5 |
52 |
3 |
2600 |
41 |
1 |
2 |
5 |
52 |
2 |
2450 |
42 |
4 |
1 |
4 |
46 |
2 |
1850 |
43 |
4 |
1 |
5 |
53 |
2 |
1700 |
44 |
3 |
2 |
5 |
47 |
2 |
1700 |
45 |
3 |
2 |
1 |
46,2 |
2 |
2000 |
46 |
5 |
1 |
1 |
42,2 |
1 |
1300 |
47 |
3 |
2 |
3 |
59 |
2 |
2100 |
48 |
3 |
2 |
5 |
52,2 |
3 |
2400 |
49 |
5 |
2 |
2 |
45 |
2 |
1350 |
50 |
4 |
2 |
2 |
42 |
2 |
1800 |
51 |
4 |
2 |
1 |
43 |
2 |
1300 |
52 |
3 |
2 |
3 |
43 |
1 |
1580 |
53 |
2 |
2 |
2 |
44 |
2 |
1900 |
54 |
3 |
1 |
3 |
45,6 |
3 |
1750 |
55 |
3 |
2 |
5 |
53 |
2 |
2100 |
56 |
5 |
2 |
1 |
44,5 |
1 |
1220 |
57 |
5 |
2 |
2 |
45,6 |
2 |
1350 |
Изменив число эпох обучения на 2000 и
нажав кнопку “Обучить сеть”, получаем кривую
сходимости процесса обучения персептрона,
изображенную на рис. 41.
Рис. 41. Кривая сходимости процесса
обучения персептрона
Пожалуйста, обратите внимание на то,
что формы этих кривых при каждом новом нажатии
кнопки “Обучить сеть” получаются разными.
Объясняется это тем, что при каждом новом запуске
процесса обучения начальные значения
синаптических весовых коэффициентов задаются
датчиком случайных чисел. Поэтому мы советуем
вам сделать несколько попыток обучения сети и
остановиться на той, которая даст наименьшую
ошибку обучения.
Переведем персептрон в режим
“Проверка” и нажмем кнопку “Скопировать из
обучающих примеров”, а затем — кнопку
“Вычислить”. В столбце d1 (см. рис. 42)
расположились фактические (желаемые) значения
стоимости квартир, а рядом в столбце y1 — то,
что вычислил персептрон. Внизу на рис. 42
выведена максимальная (из всех примеров)
относительная ошибка обучения eL,
которая составила 8,77%.
Рис. 42. Проверка работы персептрона
на обучающем множестве примеров
Нажмем кнопку “Сбросить примеры” и
путем многократного нажатия кнопки “Добавить
тестовый пример” введем примеры из тестирующего
множества, после чего нажмем кнопку
“Вычислить”. Результат показан на рис. 43, из
которого видно, что ошибка обобщения eT
составила 14,32%.
Этот результат полезно представить в
графической форме в виде гистограммы (см. рис.
44), на которой фактические цены квартир и
прогнозные (полученные с помощью вычислений
персептрона) изображены в виде рядом стоящих
столбиков. Гистограмма получена с помощью
редактора “Excel”, которому исходные данные
переданы путем нажатия кнопки “Отправить в
Excel-файл”.
Часто бывает полезным оптимизировать
структуру персептрона путем построения графиков
зависимости ошибки обобщения eT
от числа скрытых нейронов N. Как видно из рис.
45, если число нейронов скрытого слоя задать
равным 12, то погрешность обобщения можно снизить
до 8%, т.е. оптимизация сети позволила примерно в
два раза улучшить ее качество.
Рис. 43. Проверка работы персептрона
на тестирующем множестве примеров
Рис. 44. Проверка работы персептрона
на тестирующем множестве примеров
Рис. 45. Зависимость погрешности
обобщения eT от числа
нейронов скрытого слоя N
Рис. 46. Зависимость цен на квартиры
от удаленности от центра города
Рис. 47. Зависимость цен на квартиры
от состояния: 1 — среднее, 2 — хорошее,
3 — отличное
Теперь, после того как сеть
оптимизирована, обучена и протестирована,
оценена погрешность, с которой она может
прогнозировать стоимость квартир, ее можно
применять как математическую модель рынка,
адекватную моделируемой предметной области.
Нейросимулятор можно смело перевести в режим
“Прогноз” и, вводя параметры интересующих нас
квартир, выполнять оценку их стоимости, помня,
что точность прогнозов будет колебаться в
пределах до 8%.
Кроме того, можно, исследуя модель,
выявлять и изучать закономерности рынка
недвижимости. Например, придавая различные
значения параметру “Удаленность от центра”
(параметр x1), можно получить
зависимость, представленную на рис. 46. Как
видно из этого рисунка, стоимость квартир с
удалением от центра падает, однако скорость
падения для разных типов квартир разная. Так,
квадратный метр одной и той же полногабаритной
квартиры в центре города может стоить на 2500
долларов дороже, чем в отдаленных районах, тогда
как для квартир типа “Серая панель”,
“Хрущевка” и “Брежневка” эта разница не
превышает 1000 долларов.
На рис. 47 приведена зависимость
стоимости квартир от их состояния (параметр x5).
Из этого графика можно сделать вывод, что
проведение ремонта в полногабаритной квартире
может повысить стоимость ее квадратного метра
более чем на 1000 долларов, тогда как ремонт
квартиры в доме типа “Серая панель” или
“Брежневка” заметного увеличения ее стоимости
не вызывает.
Полученные путем математического
моделирования выводы представляют практический
интерес для предпринимателей, занимающихся
куплей-продажей квартир. Однако следует
учитывать, что графики рис. 46 и 47 построены
для конкретных квартир с фиксированными
значениями таких параметров, как этаж, общая
площадь и количество комнат. Поэтому для расчета
экономической целесообразности проведения
ремонта квартир и других бизнес-мероприятий в
каждом конкретном случае следует обращаться к
разработанной нами нейросетевой компьютерной
модели.
В заключение отметим, что для
разработки более адекватной математической
модели рынка городской недвижимости, пригодной
для более полноценного применения в жизни и в
бизнесе, количество входных параметров модели,
по-видимому, должно быть увеличено.
На этом мы заканчиваем популярное
введение в самую популярную, самую
быстроразвивающуюся и самую перспективную (по
мнению авторов :) научную дисциплину
“Искусственный интеллект”.
Напоминаем, что в полном объеме
учебно-методический комплекс “Искусственный
интеллект” готовится к выпуску издательством
“БИНОМ” в самое ближайшее время.