лица 5
Результаты тестирования консилиумов сетей, обученных по полной выборке.
|
№ эксперта
|
Hвыб
|
|
1
|
3,02
|
|
2
|
2,56
|
|
3
|
2,88
|
|
4
|
3,04
|
|
5
|
2,94
|
|
6
|
2,88
|
|
7
|
2,74
|
|
8
|
2,46
|
|
9
|
2,59
|
|
10
|
3,12
|
|
Весь консилиум
|
2,32
|
|
|
Видно, что, как и в предыдущей серии экспериментов, погрешность каждого из экспертов (и, как минимум, математическое ожидание погрешности) выше, чем погрешность консилиума, то есть математическое ожидание оценок по консилиуму сетей всегда (или, вернее, в большинстве случаев) ближе к верному ответу, чем оценки отдельных экспертов.
Кроме того легко заметить, что предсказание статуса исследуемых в группе улучшается с накоплением выборки - оценка погрешности предсказания, сделанного нейросетями, обученными по объединенной выборке лучше, чем в любых других экспериментах.
Иначе говоря, нейросети обладают возможностью аккумулировать опыт предсказания социометрического статуса исследуемых в группе, причем этот опыт не локален - навык, полученный на исследуемых одной группы значим и для оценки исследуемых, принадлежащих к другим группам.
Этот результат подтверждает тезис, приведенный в [98], о том, что оценки равных в группе устойчивы и, видимо, на них не влияет изменение состава группы.
Причина этого феномена, предположительно, в том, что при предсказании статуса испытуемых информация о них существенно ограничена - отсутствуют данные анамнестического плана, данные об их социальном положении.
Этим практически исключается из состава используемых в прогнозе данных информация о внешнем облике, принадлежности к социокультурной или национальной группе - то есть вся социальная история личности и коллектива в целом, хотя известно, что эти факторы могут вызвать существенное различие в поведении людей со схожим типом личности.
Информация же о константных психологических качествах испытуемых относительно однородна от группы к группе, что позволяет нейросети накапливать опыт, основанный на ней.
3.5 Нейросетевое исследование структуры опросника
Следующим этапом работ по прогнозу статуса испытуемых в группах было определение значимости вопросов опросника и исключение из него наименее значимых вопросов.
Согласно результатам главы 2 это может привести к улучшению качества прогноза, выдаваемого нейросетью. Для решения данной задачи была использована возможность вычисления значимости параметров, заложенная в MultiNeuron.
Были обучены пять нейронных сетей по задачнику, включающему все три группы исследуемых, затем, средствами MultiNeuron, определены числовые значения значимости сигналов, соответствующих вопросам опросника.
После этого список вопросов был отсортирован по среднему значению величины значимости. В результате была получена следующая картина (вопросы размещены по убыванию значимости):
1_6. Вы обычно говорите без запинок?
1_23. Вы обычно предпочитаете делать несложные дела, не требующие от Вас большой энергии?
1_7. Легко ли Вы можете найти другие варианты решения известной задачи?
3_24. Самое трудное для Вас - это справиться с собой.
3_28. Вы склонны принимать все слишком близко к сердцу.
3_22. Вам нетрудно внести оживление в довольно скучную компанию.
1_2. Легко ли Вам выполнять работу, требующую длительного внимания и большой сосредоточенности?
1_1. Легко ли Вы генерируете идеи, связанные с работой?
3_10. Вы не раз замечали, что незнакомые люди смотрят на Вас критически.
3_8. Иногда у Вас пропадает или изменяется голос, даже если Вы не простужены.
2_3. Окружающим известно, что у меня много разных идей, и я почти всегда могу предложить какое-то решение проблемы.
1_19. Обычно Вы предпочитаете легкую работу?
1_27. Дрожат ли у Вас иногда руки во время ссоры?
3_20. Некоторые так любят командовать, что Вам все хочется делать наперекор, хотя Вы знаете, что они правы.
2_25. Бывает, что я говорю незнакомым людям о вещах, которые кажутся мне важными, независимо оттого, спрашивают меня, или нет.
2_19. Если начальство или члены семьи меня в чем-то упрекают, то, как правило, только за дело
3_3. Дурные предчувствия всегда оправдываются
2_24. Обычно я спокойно переношу самодовольных людей, даже когда они хвастаются или другим образом показывают, что они высокого мнения о себе.
2_11. Устаревший закон должен быть изменен
3_29. Вы любите готовить (пищу)
3_35. Вы вели дневник.
1_8. Вы когда-нибудь опаздываете на свидание или работу?
2_5. Ко дню рождения, к праздникам (я люблю делать подарки / затрудняюсь ответить / считаю, что покупка подарков несколько неприятная обязанность)
1_9. Часто ли Вам не спится из-за того, что вы поспорили с друзьями?
2_21. При равной продолжительности дня мне было бы интереснее работать(столяром или поваром / не знаю, что выбрать / официантом в хорошем ресторане)
1_3. Испытываете ли Вы чувство беспокойства, что Вас неправильно поняли в разговоре?
1_5. Быстры ли у Вас движения рук?
3_4. Вы очень часто не в курсе дел и интересов тех людей, которые Вас окружают.
1_28. Испытываете ли Вы тягу к напряженной ответственной деятельности?
3_7. Нравятся ли Вам “первоапрельские” шутки?
1_17. Трудно ли Вам говорить очень быстро?
1_15. Всегда ли Вы платили бы за провоз багажа на транспорте, если бы не опасались проверки?
3_25. Временами Вам так нравится ловкость какого-нибудь преступника, что Вы надеетесь, что его не поймают.
1_10. Нравится ли Вам быстро бегать?
3_33. Ваши родители и другие члены семьи часто придираются к Вам
2_2. У меня бывают такие волнующие сны, что я просыпаюсь
3_18. Вы совершаете много поступков о которых потом жалеете (больше и чаще чем другие)
2_10. Думаю, что обо мне правильнее сказать, что я (вежливый и спокойный / верно нечто среднее / энергичный и напористый)
3_34. Временами, когда Вы плохо себя чувствуете, Вы бываете раздражительными.
3_12. Держитесь ли Вы обычно “в тени” на вечеринках или в компаниях?
1_20. Медленны ли Ваши движения, когда Вы что-то мастерите?
3_2. Иногда Вам очень хотелось навсегда уйти из дома
3_31. Вы стараетесь избегать конфликтов и затруднительных положений.
3_16. Иногда по несколько дней Вы не можете отделаться от какой-нибудь пустяковой мысли.
3_11. Вы знаете, кто виноват в большинстве Ваших неприятностей.
1_21. Вы обычно предпочитаете выполнять только одну операцию?
1_18. Дрожат ли у Вас иногда руки во время ссоры?
1_14. Все ли Ваши привычки хороши и желательны?
3_14. Не все Ваши знакомые Вам нравятся.
3_15. Предпочитаете ли Вы иметь поменьше приятелей, но зато особенно близких Вам.
3_13. Иногда Вы не уступаете людям не потому, что дело действительно важное, а просто из принципа.
3_26. Если Вам не грозит штраф, то Вы переходите улицу там, где Вам удобно, а не там, где положено.
2_7. Мне нравится работа разнообразная, связанная с частыми переменами и поездками, даже если она немного опасна
1_29. Нравится ли Вам быстро говорить?
3_9. Вам неловко входить в комнату, где уже собрались и разговаривают люди
2_20. Бывает, что я говорю незнакомым людям о вещах, которые кажутся мне важными, независимо оттого, спрашивают меня, или нет.
3_21. Вы предпочитаете не заговаривать с людьми, пока они сами к Вам не обратятся.
3_23. Когда Вы узнаете об успехах близкого знакомого, у Вас появляется чувство, что Вы неудачник.
1_24. Сосет ли у Вас под ложечкой перед ответственным разговором?
2_14. Мне доставляет удовольствие совершать рискованные поступки только ради забавы
3_6. Временами в голову приходят такие мысли, что лучше о них никому не рассказывать
2_13. Иногда какая-нибудь навязчивая мысль не дает мне заснуть
2_8. Я предпочел бы иметь дачу (в оживленном дачном поселке / предпочел бы нечто среднее / уединенную, в лесу)
2_1. Я предпочитаю несложную классическую музыку современным популярным мелодиям?
2_22. Когда мною пытаются командовать, я нарочно делаю все наоборот
3_17. Вы часто беспокоитесь о чем-нибудь.
1_22. Бывает ли так, что Вы говорите о вещах, в которых не разбираетесь?
1_16. . Обычно Вам трудно переключать внимание с одного дела на другое?
2_4. У меня бывают такие волнующие сны, что я просыпаюсь
1_11. Испытываете ли Вы постоянную жажду деятельности?
3_19. В гостях Вы держитесь за столом лучше, чем дома.
3_36. Вы легко смущаетесь.
3_30. Вы не осуждаете того, кто стремится взять от жизни все, что может.
2_16. Если бы я работал в хозяйственной сфере, мне было бы интереснее
1_25. Считаете ли Вы свои движения медленными и неторопливыми?
3_32. Справляетесь ли Вы с делом лучше, обдумывая его самостоятельно, а не обсуждая с другими.
2_12. Если кто-то разозлился на меня (Я постарался бы его успокоить / я не знаю, что бы я предпринял / это вызвало бы у меня раздражение)
1_12. Быстро ли Вы читаете вслух?
3_5. Иногда Вы так настаиваете на чем-нибудь, что люди начинают терять терпение
2_18. Обычно я могу сосредоточенно работать, не обращая внимания на то, что люди вокруг меня очень шумят
1_26. Ваша речь обычно медленна и нетороплива?
2_17. Вечер, проведенный за любимым занятием, привлекает меня больше, чем оживленная вечеринка
2_15. Я делаю людям резкие критические замечания, если мне кажется, что они того заслуживают
1_4. Любите ли Вы игры в быстром темпе?
1_13. Если Вы обещали что-то сделать, всегда ли Вы выполняете свое обещание независимо от того, удобно это Вам или нет?
2_9. Я провожу много свободного времени, беседуя с друзьями о тех прежних событиях, которые мы вместе пережили когда-то.
2_6. Иногда у меня бывали огорчения из-за того, что люди говорили обо мне дурно за глаза без всяких на то оснований.
3_27. Вы часто испытываете тягу к новым впечатлениям, к тому, чтобы встряхнуться, испытать возбуждение.
2_23. Люди относятся ко мне менее благожелательно, чем я того заслуживаю своим добрым к ним отношением.
3_1. Часто ли Вы переходите на другую сторону улицы, чтобы не встречаться с кем нибудь из знакомых?
Для определения значимости субтестов теста было произведено вычисление средней значимости по вопросам каждого из них. Субтесты распределились в следующем порядке: наиболее значимый - 1-й, далее - 3-й и наименее значимый - 2-й. Данное распределение можно проиллюстрировать гистограммой (рис. 1). Для построения этой гистограммы все вопросы, отсортированные в порядке убывания значимости, были разбиты на девять десяток, а затем для каждой из них было подсчитано число вхождений вопросов, принадлежащих первому, второму и третьему субтесту.
Рис. 1. Диаграмма распределения вопросов теста по их значимости для предсказания статуса испытуемых.
Для вопросов первого субтеста виден эксцесс распределения в сторону большей значимости, второго - в сторону меньшей, а вопросы третьего - относительно равномерно распределены по всему интервалу.
Была произведена серия экспериментов с целью выяснить достаточный для нейросети объем опросника. На каждом этапе исключалась половина из имеющихся вопросов опросника.
При исключении половины вопросов скользящий контроль консилиума сетей, обученных на выборке по всем группам, дал среднюю погрешность в 24%, при исключении трех четвертей вопросов - в 28% и, наконец, при исключении семи восьмых нейросети обучиться не смогли.
Таким образом, примерно половина вопросов и без того изначально минимизированного теста оказалась для нейросети избыточной, даже приводящей к ухудшению оценки качества предсказания. Оптимальным можно признать опросник из половины вопросов, максимальных по своей значимости для нейронной сети, поскольку результаты тестирования для него лучше чем для всех остальных вариантов, включая и полный набор вопросов.
3.6 Оценка оптимизации задачника нейросетью с позиций теории информации
Разницу между первоначальным (заданным психологом) и требуемым нейросети для успешного решения задачи объемом опросника можно оценить с позиций теории информации [95].
Начальное количество информации, содержащейся в тесте можно оценить исходя из того, что вопросы первого и третьего тестов бинарны (варианты ответов «Да» и «Нет», вероятность наступления каждого из них - 0.5), а ответы на вопросы второго - могут с равной вероятностью соответствовать наступлению одного из трех событий, которые будем считать равновероятными (варианты ответов «А», «Б» и «В», p=0.333). Тогда, исходя из формулы Шеннона
и учитывая, что количество вопросов в первом субтесте - 29, во втором - 25 и в третьем - 36 можем вычислить суммарное количество информации, содержащееся в ответах на вопрос теста:
.
После исключения половины вопросов из-за их малой значимости для нейронной сети в оптимизированном опроснике осталось 16 вопросов первого субтеста, 9 - второго и 20 - третьего. Количество информации, оставшееся после оптимизации:
,
то есть количество информации при оптимизации сократилось несколько более чем вдвое.
3.7 Эксперименты по предсказанию парных взаимоотношений
В этой серии экспериментов предполагалось установить, способны ли нейросети воспроизвести взаимоотношения пары испытуемых.
Обучающие выборки имели следующую структуру: № - номер примера, ID_From - номер оценивающего, ID_From - имя оценивающего, ID_To - номер оцениваемого, Name_To - имя оценивающего, w1_1_From - w3_36_From - ответы на вопросы опросника А.Г. Копытова, данные оценивающим, w1_1_To - w3_36_To - ответы на вопросы опросника А.Г. Копытова, данные оцениваемым, Ocen - данная оценка.
В задачник включались строки, соответствующие всем клеткам социометрической матрицы кроме диагональных, отвечающих за самооценку испытуемых.
Был сформирован задачник по группе 5-го курса. В него вошли 132 примера, по которым было произведено обучение соответствующего числа сетей по методике скользящего контроля.
В силу большой трудоемкости задачи обучения по выбооркам такого объема и размерности (обучение одной сети занимает около 40 мин.) обучения консилиумов не проводилось.
Результат скользящего контроля следующий: средняя относительная ошибка предсказания парных взаимоотношений в группе составила 33,1%.
Затем было вычислено среднее расстояние между случайными оценками и , вычисляемое, как и в п.3.4, по формуле
,
где N - количество примеров обучающей выборки.
Данная величина составила 6.612 (или, относительно шкалы измерения признака, 66.12%), то есть отличие предсказания сети от случайного почти двукратное.
Таким образом, можно говорить, что нейронные сети могут предсказывать не только усредненный статус члена группы, но и взаимоотношения между двумя произвольно взятыми личностями.
Выводы главы 3
Нейронная сеть способна на основе только психологических свойств исследуемых, без привлечения фактов социальной истории исследуемых личностей, интуитивно порождать прогноз результатов социометрического эксперимента на базе, со средней ошибкой 23-30%.
Данный прогноз общезначим для всех исследуемых с равным социальным статусом и устойчив относительно состава группы.
Аппарат нейронных сетей позволяет оптимизировать психодиагностические тестовые методики по объему точнее, чем это доступно даже опытному психологу.
Глава 4. Полутораслойный предиктор с произвольными преобразователями
4.1 Постановка проблемы
Функция F на R задана набором своих значений в случайных точках пространства . Построим ее аппроксимацию при помощи комбинаций - функций из набора , гладких и непрерывно дифференцируемых. Тогда
- ошибка аппроксимации F функцией ;
- ошибка предыдущего шага аппроксимации
Аппроксимация может вестись не только подбором коэффициентов, но и выбором на каждом шаге функций из . Таким образом может быть получено разложение функции F в сходящийся ряд вида:
Решение задачи аппроксимации может быть получено путем минимизации функционала качества, соответствующего квадрату отклонения:
,
Задача состоит в приближении функции F, заданной исходной выборкой точек, при помощи нейросети-предиктора с неизвестным заранее количеством нейронов и видом функции, используемой в преобразователе каждого из нейронов.
Решение может быть представлено как итерационный процесс, состоящий из следующих шагов:
- Подключение нового нейрона;
- Оптимизация ошибки предсказания значений в заданных точек для текущего нейрона путем подбора функции преобразователя, ее параметров и весов синапсов;
Если заданная точность достигнута, то процесс можно остановить, в противном случае - процесс повторяется сначала, причем параметры уже обученных нейронов фиксируются, так что каждый новый нейрон обучается вычислять погрешность, оставшуюся от предыдущих.
Количество итераций процесса исчерпания ошибки может быть также ограничено из условия превышения нижней оценки константы Липшица для конструируемой нейронной сети над верхней оценкой выборочной константы Липшица.
4.2 Аналитическое решение
Пусть - приближаемое очередным слоем значение. Тогда - само значение приближаемой функции в точках экспериментальной выборки, а и последующие - погрешности вычисления на соответствующем шаге.
Обучение ведется оптимизацией параметров сети каким либо из градиентных методов по всему задачнику.
Тогда при обучении k-го нейрона
,
соответственно H (функция ошибки) для всего задачника будет иметь вид
,
то есть в качестве критерия близости аппроксимируемой и аппроксимирующей функций выбрана сумма квадрата ошибки по всей обучающей выборке.
Для обучения каждого очередного нейрона используются частные производные функции по весам синапсов первого слоя :
,
параметру нейрона
и весу синапса второго (выходного) слоя соответствующему данному нейрону
,
где - число примеров обучающей выборки.
Однако, если вычисление функции H связано с затратами процессорного времени порядка TH, то вычисление ее градиента традиционным способом потребует времени порядка
TgradH=nTH,
где n - число переменных функции H. Учитывая, что в задачах, для которых традиционно применяются нейросети, величина n может достигать нескольких тысяч, аналитическое решение для вычисления градиента функции ошибки следует признать неприемлемым.
Однако при описании решающей функции F в виде сети автоматов вычисление градиента функции ошибки H может быть представлено как функционирование системы, двойственной исходной. При таком подходе
,
где C - константа, не зависящая от размерности n и в большинстве случаев примерно равная 3.
Таким образом, мы приходим к записи решения исходной задачи в идеологии нейронных сетей.
4.3 Запись решения в идеологии нейросетей
Как уже было сказано, выше, ряд вида может быть представлен как нейронная сеть, имеющая структуру, показанную на рис.1.
Тогда вычисление градиента функции ошибки H можно производить, используя схему, двойственную данной. При этом решение задачи может быть существенно упрощено применением следующего приема. Поскольку обучение следующего слоя начинается тогда, когда предыдущие уже обучены, а их связи зафиксированы, то, фактически, каждый нейрон обучается отдельно от других, а в качестве значения, вычисляемого k-м нейроном берется погрешность вычисления функции предыдущими k-1 - нейронами, или Fi.
Процесс обучения всей сети сводится этим ее разбиением к ряду последовательных процессов обучения структур вида, представленного на рис. 2.
Здесь x1 - xN - входные сигналы сети, Wij(1) - синапсы первого слоя от i-го входа к j-му сумматору первого слоя, Wj1(2) - синапсы второго слоя от j-го преобразователя к выходному сумматору, fj - j-й преобразователь, символом ? обозначаются тривиальные сумматоры.
Далее в тексте такая структура будет именоваться «потоком сети» или просто «потоком».
Вычисление производных H (функции ошибки) для сети, представляющего собой один «поток», можно вести на основе аппарата двойственных функций и алгоритма обратного распространения ошибки. Схема прохождения сигналов при обратном функционировании показана на рис. 3.
Здесь - двойственный сигнал от функции оценки, передаваемый без изменения через тривиальный сумматор второго слоя, - двойственный сигнал от соответствующего синапса второго слоя, - двойственный сигнал от преобразователя j-го «потока», передающийся сумматору для раздачи на синапсы, - двойственные сигналы соответствующих синапсов первого слоя.
4.4 Алгоритмическая часть
Обучение сети, состоящей из «потоков» производится в соответствии с алгоритмом, представленным на рис. 4.
Здесь H - значение оценки сети, накопленное по всему задачнику, ? - константа малости ошибки.
Для обучения каждого из потоков используется алгоритм, показанный на рис.5. Здесь Nф - общее число функций, по которому идет обучение, ?o - карта параметров сети, h0 - шаг оптимизации в начале цикла, s - градиент функции оценки H по обучаемым параметрам.
Используемое в алгоритме условие остановки формируется из двух подусловий, скомбинированных через «или»:
Число шагов оптимизации, во время которых превысило заранее заданную величину (при обучении использовалось значение Nsh=15), то есть сеть в данной конфигурации уже не может улучшить оценку;
Достигнуто заданное значение функции оценки , то есть сеть уже обучена.
При обучении одного потока используются процедуры подбора шага оптимизации - Increase (поиск шага в сторону возрастания, блок-схему см. на рис. 6), Decrease (поиск шага в сторону убывания, блок-схему см. на рис. 7) и Parabola (поиск оптимального шага по формулам параболического поиска блок-схему см. на рис. 8).
В процедурах используются следующие обозначения:
H(...) - функция оценки сети, накопленная по всему задачнику;
h1, h2, h3 - различные значения величины шага оптимизации, используемые при ее подборе;
W - величина шага в вершину параболы, проходящей через точки (h1, H1), (h2, p), ( h3, H3). Вычисляется по формуле:
H1, p, H3 - значения функции ошибки, соответствующие смещению обучаемых параметров по направлению градиента на величину шага h1, h2 и h3.
Условие выпуклости комбинации h1,2,3, H1,2,3 определяется формулой
Если выражение истинно, то условие выпуклости выполнено.
Теперь, рассмотрев алгоритмы обучения сети, перейдем к описанию компонентов, структуры и функционирования сети.
4.5 Оценка информационной емкости нейронной сети при помощи выборочной константы Липшица
Условие остановки процесса пошагового исчерпания ошибки может основываться также на оценке полноты функции, заданной нейронной сетью. В случае, если число элементов сети задано (для каждого шага наращивания «поточной» это так) и значения ее параметров ограничены на определенном интервале (это условие выполняется наложением ограничений на параметры сети), данное условие можно сформулировать с использованием константы Липшица. Константа Липшица вектор-функции в области D определяется как . Верхняя грань может быть вычислена по области определения D. В качестве оценки расстояния используется евклидова норма.
Для суперпозиции вектор-функций .
Для линейной комбинации функций оценка константы Липшица .
Константа Липшица для адаптивного сумматора, работающего по формуле имеет вид .
Тогда для стандартной комбинации, состоящей из матрицы входных синапсов, сумматора и преобразователя - нейрона с гладкой функцией активации .
Для прямой суммы вектор-функций константа Липшица может быть оценена как .
Таким образом, для слоя нейронов с подбираемыми преобразователями , где - вектор весов синапсов, приходящих на входной сумматор i-го нейрона, а - функция i-го преобразователя.
Если заменить всю область определения функций D на конечное множество (задачник), то условие, определяющее требуемый объем нейронной сети можно получить, сравнивая с оценкой константы Липшица для обучающей выборки .
является нижней оценкой константы Липшица аппроксимируемой функции. Нейросеть может реализовать данную функцию только в том случае, когда .
Исходя из данного условия, можно сформулировать алгоритм обучения сети с поэтапным исчерпанием ошибки так, как это показано в блок-схеме на рис. 9
4.6 Соглашение о терминологии
Изложение вопросов, связанных со структурой и функционированием сети, тесно связано с программной реализацией задачи. Поэтому по тексту будут встречаться ссылки на реальные структуры программы.
Для описания компонентов сети был использован аппарат объектно-ориентированного программирования [28], реализованный в среде разработки программ Borland Delphi Developer v.3.0. (см. [44], [45], [58], [63], [75], [76])
Базовым понятием в языке программирования Object Pascal, встроенном в Delphi, является класс - особый вид записи, включающий поля и методы.
Экземпляр класса называется объектом.
Понятие поле для объекта аналогично понятию поля для записи.
Метод - процедура или функция, описанная внутри класса и предназначенная для операции над его полями.
4.7 Компоненты сети
Традиционный состав элементов сети (см. главу 1) включает в себя следующие элементы: нейрон, синапс, сумматор. Кроме того, в число типовых включены входной и выходной элементы.
На рис. 9 показаны схематические изображения элементов сети, которые далее будут использованы в схемах, описывающих структуру и функционирование программной модели.
4.8 Общий элемент сети
Базовым типом элементов, используемых для описания нейронной сети, является общий элемент сети - класс, инкапсулирующий основные свойства и методы, характерные для всех компонентов сети. Название этого класса в программной реализации - TNetPiece.
Объекты данного класса включают в себя следующие поля:
NextPiece - указатель на следующий элемент сети;
PriorPiece - указатель на предыдущий элемент сети;
ForwOut - значение сигнала, передающегося элементом вперед при прямом функционировании;
BackOut - значение сигнала, передающегося элементом назад при обратном функционировании.
Набор методов включает в себя:
Create - описание создания объекта;
Destroy - действия при разрушении (удалении) объекта;
ForwardTact - действия элемента во время такта прямого функционирования;
BackwardTact - действия элемента во время такта обратного функционирования;
При описании методов ForwardTact и BackwardTact они были оставлены пустыми, так как функционирование конкретных элементов сети существенно различно.
Однако введение этих методов имеет достаточно глубокий смысл, поскольку класс TNetPiece является предком всех прочих классов, описывающих элементы сети, и наличие типовых процедур прямого и обратного функционирования позволяет использовать такие свойства модели объектно-ориентированного программирования как наследование свойств и методов и полиморфизм. Подробнее этот тезис будет раскрыт ниже.
4.9 Вход сети
Для связи сети с задачником и передачи используются объекты класса TNetInput - входной элемент сети.
Данный класс является потомком TNetPiece, и поэтому наследует его набор полей и методов этого класса, а кроме того добавлено поле SourceSignal, которое содержит номер поля задачника, с которого данный вход сети забирает значение.
Методы ForwardTact и BackwardTact перекрыты, то есть их код заменен на тот, который соответствует назначению входного элемента.
Метод ForwardTact выполняет передачу значения из соответствующего данному элементу поля задачника на выходной сигнал элемента, поле ForwOut.
Метод BackwardTact передает двойственный сигнал следующего элемента на свой двойственный сигнал (поле BackOut).
4.10 Выход сети
Выходной элемент сети описывает класс TNetOutput, также являющийся потомком TNetPiece.
В методах ForwardTact и BackwardTact заложены действия элемента при прямом и обратном тактах функционирования.
Метод ForwardTact выполняет передачу сигнала от выхода предыдущего на выход данного элемента, кроме того в поле H заносится значение ошибки сети при вычислении функции Y.
Метод BackwardTact передает на обратный выход элемента (поле BackOut) значение двойственного сигнала. Двойственный сигнал ?H представляет собой производную функции ошибки по выходному сигналу сети:
,
где - аппроксимированное значение функции, выдаваемое сетью, - значение аппроксимируемой функции в данном примере.
4.11 Синапс сети
Для описания синапсов сети используются объекты класса TNetSynapse. Как наследник класса TNetPiece он наследует все его поля и методы. Помимо этого в список полей включены Alpha - параметр, представляющий собой вес синапса, и MuAlpha - сигнал, двойственный весу синапса.
На такте прямого функционирования метод ForwardTact снимает выходной сигнал предыдущего элемента, умножает его на вес синапса и передает на выходной сигнал данного объекта (поле ForwOut).
На такте обратного функционирования метод BackwardTact передает в поле BackOut двойственный сигнал синапса, который может быть вычислен по следующей формуле:
,
где - двойственный сигнал, передаваемый синапсом, W - функция преобразования в синапсе, - сигнал, поступающий в синапс от предыдущего элемента на такте прямого функционирования, - входной двойственный сигнал, поступающий в синапс от следующего элемента на такте обратного функционирования, - вес синапса.
Кроме того на обратном такте вычисляется сигнал, двойственный и представляющий собой значение частной производной функции ошибки по этому параметру:
,
где - сигнал, двойственный .
Для значений , в классе TNetSynapse предусмотрены поля Alpha и MuAlpha.
4.12 Тривиальный сумматор
Программной моделью тривиального сумматора является класс TSummator.
Помимо полей, унаследованных от класса - предка TNetPiece, TSummator имеет в своей структуре PriorPieces, которое, в отличии от стандартного поля PriorPiece является не указателем на предыдущий элемент, а списком указателей на набор таких элементов.
Метод ForwardTact осуществляет суммирование выходных сигналов элементов из списка PriorPieces и помещает полученный результат в поле ForwOut.
На такте обратного функционирования происходит передача двойственного сигнала следующего элемента на двойственный сигнал сумматора BackOut.
4.13 Нейрон
В данной работе под термином «нейрон» подразумевается нелинейный преобразователь вида
,
где у - выходной сигнал преобразователя, - входной сигнал, - параметр преобразователя, - так называемый «параметр спонтанной активности».
Нейрон описывается в программной модели классом TNeuron, выходной сигнал на такте прямого функционирования заносится в поле ForwOut.
Обучаемыми в нейроне являются оба параметра - и , поэтому в классе TNeuron помимо полей Alpha и AlphaS, в которых хранятся значения соответствующих параметров, предусмотрены MuAlpha и MuAlphaS, в которых помещаются значения двойственных им сигналов.
Помимо этого в поле BackOut заносится сигнал, двойственный входному. Кроме того, объект класса TNeuron характеризуется еще и полем FunctionType, представляющим собой номер используемой функции преобразователя в списке функций, используемых при оптимизации.
Вычисление двойственных сигналов в нейронах производится в общем случае по формулам:
,
где ?? - параметр, для которого вычисляется двойственный сигнал, - сам двойственный сигнал.
Список выражений для применяемого в данной работе набора стандартных функций с их производными по основным параметрам приведен в таблице 1.
Таблица 1
Набор функций нелинейного преобразователя
4.14 Поток сети
Фрагмент сети, состоящий из слоя входных синапсов, сумматора, нейрона и выходного синапса и названный «потоком» представлен в программной модели классом TNetStream.
Помимо обычных для потомка класса TNetPiece полей NextPiece, PriorPiece, ForwOut и BackOut данный класс включает в себя FirstLayer - список синапсов первого слоя, Summator - объект класса TSummator, реализующего тривиальный сумматор, Neuron - объект класса TNeuron, реализующего нелинейный преобразователь - нейрон, SecondLayer - объект класса TSynapse, описывающий выходной синапс потока.
Прямой такт потока, описанный методом ForwardTact, происходит следующим образом:
Перебираются элементы списка FirstLayer, для каждого из которых вызывается его собственный метод ForwardTact, затем происходит «срабатывание» (вызов этого же метода) для объектов Summator, Neuron и SecondLayer. Затем выходной сигнал объекта заносится в поле ForwOut - выходной сигнал всего потока.
Такт обратного функционирования потока, который описан в методе BackwardTact, включает в себя следующие действия:
Последовательный вызов собственного метода BackwardTact для объектов SecondLayer, Neuron и Summator, затем перебор элементов списка FirstLayer и вызов метода BackwardTact для каждого синапса, входящего в него.
Структура связей между элементами потока представлена на рис 10.
4.15 Скомпонованная полутораслойная поточная сеть
Целая сеть представлена классом TNet. Данный класс также является потомком класса TNetPiece - общего элемента сети, что позволяет, используя свойство полиморфизма объектов, достаточно легко компоновать из отдельных фрагментов нейросети более сложной структуры.
Кроме полей, унаследованных от TNetPiece, сеть характеризуется также полями Inputs - список входных элементов, Streams - список потоков сети, SecondLayer - сумматор входного слоя, Answer - выходной элемент сети.
Для описания такта прямого функционирования сети используется, так же как в других элементах сети, метод ForwardTact. Методом выполняются следующие действия:
Перебор списка входных элементов и вызов метода ForwardTact для каждого из них, перебор и прямое функционирование каждого из элементов списка потоков, и затем - для объектов SecondLayer и Answer.
Метод BackwardTact, описывающий обратное функционирование сети, задается следующей последовательностью действий:
Обратное функционирование элементов Answer, SecondLayer, затем перебор и выполнение методов BackwardTact для элементов списков Streams и Inputs.
Структура связей между стандартными элементами полностью скомпонованной поточной нейросети показана на рис. 11.
Схема, приведенная на рис. 11, хорошо иллюстрирует преимущества применения объектно-ориентированного подхода к моделированию нейронных сетей.
Свойство полиморфизма объектов позволяет составлять список предыдущих элементов, например, сумматора, как из простых синапсов, так и из более сложных структур - потоков. Для этого требуется лишь аккуратное выполнение иерархии объектов, описывающих элементы сети.
В перспективе, с появлением параллельных трансляторов, объектно-ориентированный подход за счет свойства инкапсуляции объектов позволит легко перейти к моделированию нейросетей в параллельных системах.
Выводы по главе 4.
Созданный программный имитатор полутораслойной нейронной сети представляет собой механизм, позволяющий реализовать систему преобразователей, восстанавливающих зависимость, заданную в виде обучающей выборки.
Использование в программе алгоритма попоточного исчерпания ошибки позволяет ей создавать нейронные сети неизбыточной структуры.
Дополнение алгоритма попоточного исчерпания ошибки проверкой на сравнение константы Липшица нейронной сети с выборочной константой Липшица дает возможность использовать в работе пользовательского программного обеспечения более строгие требования к требуемому для восстановления функции по данной выборке объему нейронной сети.
Применение принципов объектно-ориентированного программирования при создании программного имитатора полутораслойной нейронной сети позволило создать программу с прозрачной, легко расширяемой и сопровождаемой структурой.
ВЫВОДЫ
Показано, что для решения классической задачи компьютерной психодиагностики с вероятностью правильного ответа около 95% может быть применена искусственная нейронная сеть из 2 нейронов с параметром преобразователя равным 0,4. При этом такая экспертная система способна перенимать опыт специалиста непосредственно, без участия математика или программиста.
У полносвязной искусственной нейронной сети с числом нейронов 16 и параметром преобразователя 0.1 возможно выработать психологическую интуицию, позволяющую выдавать предсказание взаимоотношений, формализованных в виде результатов социометрического эксперимента, с погрешностью 25-30%.
Задача предсказания взаимоотношений может решаться интуитивно - без построения описанной реальности и без сбора информации о социальной истории исследуемых.
Созданная программа, представляющая собой нейронную сеть полутораслойной структуры, способна решать задачу восстановления зависимости по обучающей выборке при помощи алгоритма поэтапного исчерпания ошибки наращиванием объема сети.
Применение при создании программы выборочной константы Липшица в алгоритме наращивания сети позволило реализовать способ ограничения избыточности числа нейронов и объема сети.
Применение концепции объектно-ориентированного программирования позволило разработать гибкий, открытый и легко сопровождаемый нейроимитатор.
Основное содержание диссертации изложено в следующих работах:
Dorrer M.G. Neural networks instead of psychological measurements // Abstracts of the 3rd International conference «Mathematics, computer, education». Dubna, 1996.
Dorrer M.G., Gorban A.N., Kopytov A.G. Simulation of psychological intuition by means of neural networks // New Concepts to Uncover Higher Brain Functions. The 5th Tohwa university International Symposium. Fukuoka, Japan: Tohwa University, 1995. - p.153.
Dorrer M.G., Gorban A.N., Kopytov A.G. Zenkin V.I. Psychological intuition of neural networks // Proceedings of the WCNN95 (World Congress on Neural Networks95, Washington DC, Juli 1995) - pp. 193-196
Dorrer M.G., Gorban A.N., Zenkin V.I. Neural networks in psychology: classical explicit diagnoses // Neuroinformatics and neurocomputers, Proceedings of the 2nd RNNS-IEEE Symposium, Rostov-on-Don, September 1995 - pp 281-284
Gorban A.N., Rossiev D.A., Butakova E.V., Gilev S.E., Golovenkin S.E., Dogadin S.A., Dorrer M.G., Kochenov D.A., Kopytov A.G., Maslennikova E.V., Matyushin G.V., Mirkes Ye.M., Nazarov B.V., Nozdrachev K.G., Savchenko A.A., Smirnova S.V., Shulman V.A., Zenkin V.I. Medical, psychological and physiological applications of MultiNeuron neural simulator // Neuroinformatics and neurocomputers, Proceedings of the 2nd RNNS-IEEE Symposium, Rostov-on-Don, September 1995 - pp 7-14
Gorban A.N., Rossiev D.A., Gilev S.E., Dorrer M.G., Kochenov D.A., Mirkes Ye.M., Golovenkin S.E., Dogadin S.A., Nozdrachev K.G., Matyushin G.V., Shulman V.A., Savchenko A.A. Medical and physiological applications of MultiNeuron neural simulator // Proceedings of the WCNN95 (World Congress on Neural Networks95, Washington DC, Juli 1995) - paper № 050
Gorban A.N., Rossiev D.A., Gilev S.E., Dorrer M.G., Kochenov D.A., Mirkes Ye.M., Golovenkin S.E., Dogadin S.A., Nozdrachev K.G., Matyushin G.V., Shulman V.A., Savchenko A.A. «NeuroComp» group: neural network software and its application // Russian Academy of Sciences, Krasnoyarsk Computing Center, Preprint №8. - Krasnoyarsk, 1995 - 38p.
Доррер М.Г. Обработка психологической информации при помощи нейронных сетей. // Проблемы информатизации региона: Материалы второй межрегиональной конференции. Красноярск: КГТУ, 1997. - с.33-43.
Доррер М.Г. Полутораслойный предиктор с произвольными преобразователями. // Проблемы информатизации региона: Труды Третьей Всероссийской конференции (Красноярск, 25-27 ноября 1997 г.). - Красноярск: АО «Диалог-Сибирь», 1997г. -с.143.
Доррер М.Г. Попытка применения нейронных сетей для прогнозирования психологической совместимости в группе. // Нейроинформатика и ее приложения: Программа и тезисы докладов II всероссийского рабочего семинара. - Красноярск: КГТУ, 1994. - с.13.
Доррер М.Г., Горбань А.Н., Копытов А.Г., Зенкин В.И. Психологическая интуиция нейронных сетей // Нейроинформатика и ее приложения: Материалы III всероссийского рабочего семинара. - Красноярск: КГТУ, 1995. - с.114-127.
ЛИТЕРАТУРА
Amari S. - I. The Brain and Computer // Proceedings of 1993 International Joint Conference on Neural Networks, Nagoya, Japan, October 25-29, 1993. - Nagoya, 1993. - v.1. - p.7-8.
Asary K.V., Eswaran C.A. Self-organizing Neural Network for Multidimensional Mapping and Classification of Multiple Valued Data // Proceedings of 1993 International Joint Conference on Neural Networks, Nagoya, Japan, October 25-29, 1993. - Nagoya, 1993. - v.2. - p.2488-2491.
Atamanchuk Z.M., Petrov A.A. Some problems of building and learning of neural networks while creating users expert systems diagnoses // The RNNS-IEEE Symposium on Neuroinformatics and Neurocomputers, Rostov-on-Don, September 1992 - v.2. - pp 1133-1135.
Baxt W.G. Complexity, chaos and human physiology: the justification for non-linear neural computational analysis // Cancer Lett. - 1994. - v.77, №2-3. - p.85-93.
Becraft W.R. Diagnostic applications of artificial neural networks // Proceedings of 1993 International Joint Conference on Neural Networks, Nagoya, Japan, October 25-29, 1993. - Nagoya, 1993. - v.2. - p.2807-2810.
Bedenbaugh P., Gerstein G.L. Rectification of correlation by a sigmoid non-linearity // Biol. Cybern. - 1994. - v.70, №3. - p.219-225.
Berrios G.E., Chen E.Y. Recognizing psychiatric symptoms. Relevance to the diagnostic process // Br. J. Psychiatry. - 1993. V.163. - p.308-314.
Cohen I.L., Sudhalter V., Landon-Jimenez D. et al. A neural network approach to the classification of autism // J. Autism Dev. Disord. - 1993. - v.23, №3. - p.443-466.
Forrest D.V., Flory M.J., Anderson S. Neural network programming // N.Y.State J. Med. - 1991. - v.91, №12. - p.553.
Fu H.C., Shann J.J. A fuzzy neural n ...........
Страницы: 1 | 2 | [3] | 4 |
|