Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
n1.doc
Скачиваний:
6
Добавлен:
24.11.2019
Размер:
3.34 Mб
Скачать

Глава 9

Искусственные нейронные сети

Искусственные нейронные сети (ИНС) — один из наиболее современ­ных методов научного исследования, обладающий рядом совершенно уникальных черт. Бурное развитие нейросетевого подхода начинается лишь в 1980-х гг., хотя математические его основы были заложены зна­чительно раньше: отправными точками можно назвать работы У. Мак-каллока и У. Питтса (1943) по математическому моделированию рабо­ты нейрона и книгу американского математика Ф. Розенблатта «Принципы нейродинамики», увидевшую свет в 1962 г.

Прикладные нейросетевые разработки в области политической на­уки появляются лишь в 1990-х гг. Судя по открытой печати, в настоя­щее время с политикой связано не более 5% нейросетевых програм­мных продуктов, тогда как доля программ нейросетевого анализа военно-технических и финансовых проблем превышает 60%, меди­цинских — 10%. Таким образом, сегодня мы можем говорить лишь о первых шагах на пути адаптации богатого арсенала нейронных сетей к решению задач политического прогнозирования и анализа.

Нейросетевые техники основаны на практическом применении некоторых концепций работы человеческого мышления. Несмотря на то что мозг человека значительно отстает от электронных вычисли­тельных машин по способности производить символьные вычисле­ния, многие задачи мы умеем решать гораздо эффективнее самых со­временных компьютеров. Например, мы можем очень быстро и точно узнать человека в толпе по едва промелькнувшим чертам его лица или даже по особенностям походки. Мы можем формулировать вероятно-

1 МсСи11осЬ, РЙ(8, \У. А Ьодюа! Са1си1из оГ Гдеаз Гтттеп( т Мегуоиз Ас(1уКу. Ви11е(т оГ Ма(Ьета(1са1

стные суждения относительно ситуаций, с которыми ранее не сталки­вались, на основе предшествующего опыта. И, что самое главное, мы способны учиться — приобретать и совершенствовать навыки вос­приятия и преобразования внешней информации. Именно уникаль­ная способность человека к обучению стала наиболее серьезным сти­мулом создания математических и программных аналогов работы мозга. Разумеется, на сегодняшний день еще рано говорить об «искус­ственном интеллекте», сопоставимом с познавательными возможнос­тями человека; самая современная нейронная сеть устроена во мно­жество раз проще, чем любой отдельный участок коры головного мозга. Тем не менее сам принцип использования биологических сетей в качестве прообраза искусственной интеллектуальной системы уже доказал свою плодотворность.

9.1. Биологические и искусственные нейронные сети

Кора головного мозга состоит из огромного множества простых элемен­тов — нейронов, число которых приблизительно равняется 10 — коли­честву звезд Млечного Пути. Каждый нейрон связан с несколькими ты­сячами других нейронов с помощью нервных волокон, через которые передаются электрические импульсы. Таким образом, мозг человека со­держит приблизительно 10 взаимосвязей. Чрезвычайно сложная структура связей между относительно простыми элементами как раз и является одним из важнейших «ноу-хау» человеческого мышления.

Каждый нейрон имеет отростки нервных волокон двух типов: денд-риты, по которым в клетку поступают входящие электрические сигна­лы, и единственный аксон, передающий исходящий сигнал другим ней­ронам. Аксон связан с дендритами других нейронов через специальные образования — синапсы, которые способны увеличивать или уменьшать силу передаваемого импульса. Схематично это изображено на рисунке :

Входящие импульсы от аксонов других нейронов проходят через си­напсы на дендриты, изменяя свою силу, и поступают в тело нейрона. Ес­ли суммарный сигнал превышает некоторый критический порог, «зало­женный» в теле нейрона, оно активируется и передает исходящий импульс по аксону к следующим нейронам. Принципиально важно, что «пропускная способность» синапсов — способность усиливать или ос­лаблять сигнал — может меняться со временем, что меняет и поведение нейрона в целом. Именно «настройка» пропускной способности синап­сов является основным механизмом обучения в человеческом мозге.

Указанный механизм можно представить в формализованном виде, перевести на язык математики. Обозначим входящие импульсы, по­ступающие от аксонов других нейронов, символами х1 х2, х3... хп. Си­напсы в таком случае будут играть роль весовых коэффициентов V/1 V/2, V/3 ... V". Проходя через синапсы, входящие сигналы изменяют свою силу и образуют суммарный сигнал х = к1х1 +ц>2х2+ ц>3х3 +... + ц>пхп.

Теперь нейрону следует «решить», превышает ли суммарный входя­щий сигнал определенное пороговое значение. Математически это можно представить как преобразование входящего сигнала в соответст­вии с определенной функцией/(х). Сила исходящего сигнала у =/(х) =

Отдельные искусственные (формальные) нейроны объединяются в искусственную нейронную сеть. Сигнал, получаемый на выходе сети (иногда его называют «ответом сети»), будет определяться не только весами и функциями входящих в нее нейронов, но и тем, как нейро­ны связаны между собой. Структура связей между нейронами называ­ется архитектурой сети.

Существует два основных класса нейросетевых архитектур: 1. Слоистые сети (сети прямого распространения). Как следует из названия данной архитектуры, нейроны в ней расположены в не­сколько слоев. Нейроны первого слоя получают входные сигналы, преобразуют их и передают нейронам второго слоя. Далее срабатыва­ет второй слой и так далее до последнего слоя к, который выдает окончательный «ответ сети» для пользователя. Как правило, каждый нейрон слоя I (предыдущего) соединен с каждым нейроном слоя 1 + 1 (следующего). Число нейронов в каждом слое индивидуально и никак заранее не связано с числом нейронов в других слоях. Наиболее рас­пространены трехслойные сети, состоящие из входного, скрытого и

выходного слоев. Принципиальная схема такой сетевой архитектуры 1

показана на рисунке .

2. Сети полной связи. В такой сетевой архитектуре все нейроны свя­заны между собой: каждый из них передает исходящий сигнал всем нейронам сети, включая самого себя. Ответом сети являются исходя­щие сигналы нескольких или всех нейронов после нескольких тактов функционирования сети.

При практической работе с нейронными сетями на персональном компьютере нет необходимости строить сеть «с нуля». В специальных программах уже имеется стандартный набор архитектур, соответству­ющих разным типам задач. Обычно бывает достаточно выбрать стан­дартную архитектуру и скорректировать ее (как правило, путем удале­ния лишнего) в соответствии с решаемой задачей.

Как уже говорилось, в основу концепции нейронных сетей поло­жен постулат, что вся сложность мозга определяется связями между нейронами, которые можно моделировать с помощью простых авто­матов. Известно, что количество информации, передаваемой между нейронами, является очень незначительным (несколько бит), а ско­рость передачи сигнала в миллионы раз ниже, чем в современных электронных процессорах. Поэтому: 1) мозг решает задачу не путем последовательной серии взаимодействий, а запуская несколько па­раллельных программ; 2) основная информация не передается непо­средственно, а захватывается и распределяется в связях между нейро-

Аналитические технологии для прогнозирования и анализа данных ный учебник // \у\у\у.пеигорго)ес(.ги/(и(опа1.рЬр.

электрон-

См.: \у\у\у.5(а(иоГ(/ги.

нами. С некоторым преувеличением можно сказать, что в нейросете-вом подходе реализован принцип «структура связей — всё, свойства элементов — ничто».

Именно это свойство позволило реализовать на практике способ­ность машины к обучению на примерах. Уникальность нейронных се­тей состоит в том, что они решают различные задачи в соответствии не с изначально заложенными в них программными алгоритмами, а с алгоритмами, которые вырабатывают они сами, обучаясь на множест­ве примеров.

Различия между «классической» электронно-вычислительной ма­шиной (машиной фон Неймана) и биологическими нейронными се­тями, принципы организации которых были взяты на вооружение ИНС, систематизируются в следующей таблице :

ЭВМ

Биологическая нейронная система

Процессор

Сложный

Простой

Высокоскоростной

Низкоскоростной

Один или несколько (малое количество)

Большое количество

Память

Отделена от процессора

Интегрирована в процессор

Локализованная

Распределенная

Вычисления

Централизованные

Распределенные

Последовательные

Параллельные

Хранимые программы

Самообучение

Специализация

Численные и символьные операции ~|

ГТроблемы восприятия

9.2. Обучение сети

Представим себе, что нам требуется получить нейронную сеть, спо­собную распознавать рукописные изображения цифр от 0 до 9. Ин­формация будет вводиться в сеть посредством сканирования рукопис­ного текста с разрешением 20x20 пикселей. Таким образом, мы имеем сеть с 400 входами (20x20) и 10 выходами (по количеству чисел от ну­ля до девяти). Наша цель заключается в том, чтобы при вводе в сеть изображения цифры 0 активизировался выход сети, соответствующий

1 Полную версию таблицы см.: АпИ, К. 7., Лапскапд, М., МокшдсИп, К М АгШ1с1а1 Меига1 Ме1»огк8; А Тигопа! // Сотригег. Уо1. 29. № 3 (МагсП 1996).

цифре 0, при вводе изображения цифры 1 — выход, соответствующий цифре 1, и т.д. Изначально нейронная сеть не обладает никакими на­выками различения чисел; ее, как маленького ребенка, требуется обу­чить этому искусству «с нуля».

Самым распространенным приемом обучения сети является обу­чение «с учителем». В данном случае имеется правильный ответ на каждый входной пример. Всякий раз происходит подстройка весовых коэффициентов сети таким образом, чтобы ее ответы были макси­мально близки к известным правильным ответам. Такая процедура похожа на реальный процесс обучения — ребенку показывают циф­ру 1 и спрашивают: «Какая это цифра?» В случае неверного ответа ре­бенку сообщается тот ответ, который от него ожидается. В мозге и нервной системе происходит усиление соответствующих связей («на­стройка сети»), и шансы на получение правильного ответа в следую­щий раз увеличиваются.

Разумеется, для искусственной нейронной сети недостаточно про­сто указать правильность или неправильность ответа. В реальности имеет место более сложная процедура, первым этапом которой являет­ся вычисление ошибок сети. В нашем примере с распознаванием цифр ожидаемым (правильным) ответом сети является максимальный по ин­тенсивности сигнал на одном из десяти выходов, соответствующих за­прашиваемой цифре, и минимальный сигнал на всех остальных. Ошибкой является разница между ожидаемым и реальным ответом се­ти, т.е. разность между ожидаемой и реальной интенсивностью сигнала на всех выходах. На основе этих данных вычисляется специальная функция ошибок. Далее с помощью особого набора формул, получивше­го название алгоритма обратного распространения ошибки, программа вычисляет требуемые поправки для весов сети, исходя из функции ошибки. Интегральным показателем качества обучения сети является общая ошибка — сумма квадратов ошибок по всем выходам, которая уменьшается по мере увеличения продолжительности «тренировок».

Существует также алгоритм обучения «без учителя», который не требует наличия правильных ответов для каждого обучающего приме­ра. В этом случае раскрывается внутренняя структура данных или корреляции между примерами в системе данных, что позволяет рас­пределить примеры по категориям.

Наконец, в некоторых случаях используется смешанный алгоритм обучения — часть весов настраивается путем использования алгорит­ма («с учителем»), часть — посредством самообучения сети.

Однако во всех случаях имеет место обучение сети на фиксирован­ном наборе примеров, получившем название обучающей выборки. Обь­ем и состав обучающей выборки имеет принципиальное значение. Нельзя забывать о том, что конечная задача сети — распознать не толь­ко рукописные цифры 0, 1, 2, 3... 9 (в нашем примере), имеющиеся в обучающей базе, а любые рукописные цифры. В этом, собственно, и заключается основное достоинство нейронных сетей. Таким образом, если мы тренируем сеть только на двух или трех изображениях одной цифры, вряд ли следует ожидать от нее адекватного распознавания чи­сел вне обучающей выборки. Чем больше примеров содержится в обу­чающей выборке, тем лучше будет качество конструируемой сети.

Кроме количества примеров в обучающей выборке, следует удалять внимание и их качеству. С одной стороны, примеры в совокупности должны полноценно отвечать задачам, для которых сеть строится. Ес­ли сеть создается, к примеру, для прогнозирования политических кри­зисов, а в обучающей базе данные по кризисам представлены в малом объеме или не представлены вообще, сеть окажется бесполезной. С другой стороны, сеть учится тому, чему легче всего научиться. Важ­но следить за тем, чтобы в обучающей выборке не было систематичес­ких ошибок — входных данных, не отражающих реальных свойств объектов. Например, если все цифры 8 в базе примеров будут написа­ны светлым фломастером, а все цифры 9 — черным, то сеть может по­считать интенсивность цвета цифры существенным признаком рас­познавания и не будет нормально выполнять свои задачи вне обучающей выборки.

Следует сделать акцент еще на одном важном моменте: сеть может продолжать учиться и после того, как собственно процедура обучения завершена. Иными словами, нейронные сети способны накапливать опыт в процессе работы над решением реальных задач, для которых они сконструированы.

9.3. Задачи, решаемые ИНС

Решаемые нейронными сетями задачи весьма разнообразны. Неуди­вительно, что этот метод нашел применение в таких сферах, как меди­цина, финансовый менеджмент и политическая наука. В целом мож­но свести основную часть решаемых с помощью ИНС проблем к нескольким категориям задач.

Классификация. Задачей нейронной сети является распределение объектов по нескольким заранее установленным непересекающимся классам. Рассмотренный нами пример с распознаванием рукописных цифр относится именно к этой категории задач: ИНС устанавливает соответствие объекта одному из десяти классов (цифры от 0 до 9). Из­вестны компьютерные программы ИНС, выполняющие функции распознавания текста, речи, отнесения предприятия к классу «пер­спективных» или «убыточных», классификации клеток крови и сиг­налов электрокардиограммы, установления подлинности подписи и многие другие.

В политической науке нейросетевой метод используется для реше­ния задач классификации, в частности в ивент-анализе. Заранее опре­деляется класс конфликтных событийных последовательностей, веду­щих к мирному урегулированию, и класс конфликтных событийных последовательностей, ведущих к военному противостоянию. Сеть обу­чается на базе реальных исторических примеров конфликтного взаи­модействия государств, приведшего к одному или другому исходу. По­лучив на «входе» определенную последовательность событий, соответствующим образом закодированных, обученная сеть должна определить принадлежность данной событийной цепочки к «мирно­му» или «военному» классу. В том случае, если анализируется еще не завершенная цепочка событий, мы имеем характерный пример ис­пользования нейронных сетей для решения задач прогнозирования.

Другой пример использования нейронной сети для классифика­ции объектов можно почерпнуть из сферы оценки политических рис­ков — угроз для инвесторов и бизнесменов, проистекающих из дейст­вий политических акторов. В данном случае сеть распределяет страны и регионы по нескольким категориям политического риска (напри­мер: высокий, низкий, средний).

Из тех статистических методов, которые мы изучали ранее, задачи классификации наиболее близки к дискриминантному анализу, кото­рый также определяет принадлежность объекта к одной из заранее за­данных групп. В то же время ИНС и дискриминантный анализ ведут к достижению этой цели разными путями: дискриминантный анализ строит линейную дискриминантную функцию, тогда как нейронные сети нелинейны по своей природе. Соответственно, они могут «схва­тывать» связи между переменными, не поддающиеся описанию с по­мощью линейных функций.

Нейросетевой подход особенно эффективен при решении задач классификации по той причине, что он сочетает в себе способность компьютера к обработке чисел и способность мозга к обобщению и распознаванию. Вычислительные способности искусственных нейро-сетей позволяют обрабатывать огромное количество факторов, а ней-росетевые свойства распознавания — улавливать чрезвычайно слож­ные связи между ними.

Кластеризация. Как мы уже знаем, кластеризация представляет собой распределение объектов по группам сходства/различия. Основ­ное отличие этой категории задач от классификации состоит в том, что кластеры не задаются заранее. Может возникнуть закономерный во­прос: но ведь в алгоритме кластеризации методом К-средних мы опре­деляем число кластеров еще до всех вычислений? Действительно, чис­ло кластеров задается заранее, но никогда заранее не определяются содержательные их характеристики. В методе К-средних мы даем про­грамме задание разбить политические партии, например, на три груп­пы. Но мы не знаем заранее, какие это будут группы: «левые», «пра­вые», «центр»; или «оппозиция», «лояльные», «нейтральные»; или какие-то еще. Содержательные различия между кластерами выявля­ются уже после и на основе того, как разбиты объекты, при классифи­кации же мы изначально ставим задачу разбить событийные цепи не на два каких-то класса, а на вполне определенные классы «военных» и «мирных» исходов.

Различия между категориями задач классификации и кластериза­ции иллюстративны с точки зрения выбора метода обучения сети. Так, если целью исследования является классификация объектов, аб­солютно логичным является обучение «с учителем». Чтобы сеть «по­няла» правила отнесения объектов к заранее определенным классам, необходимо во всех случаях четко показывать принадлежность объек­та из обучающей выборки к определенному классу. Нет иного спосо­ба научить сеть различать «мирные» и «военные» исходы последова­тельностей событий, кроме как на стадии обучения ввести в нее базу событийных последовательностей, однозначно классифицированных как «мирные» либо «военные».

Задача кластеризации, напротив, предполагает обучение «без учите­ля». Алгоритм ее основан на подобии образов и размещает близкие обра­зы в один кластер. Кластеризация позволяет представить неоднородные данные в более наглядном виде и использовать далее для исследования каждого кластера различные методы. Например, в экономике кластери­зация с помощью ИНС используется для выявления фальсифицирован­ных страховых случаев или недобросовестных предприятий.

В политической науке кластеризация с помощью ИНС направлена на решение тех же задач, что и обычный кластер-анализ: это «разве­дочные» методы, нацеленные на поиск признаков сходства в больших массивах неоднородных данных. Однако возможности ИНС, как пра­вило, превышают возможности обычного кластер-анализа.

Предсказание конкретных числовых значений. В такого рода зада­чах требуется предсказать значение переменной, принимающей не­прерывные числовые значения: исход выборов для определенной партии, курс акций, значение рейтинга политика и т.д.

Р ешение такой задачи может осуществляться методом экстраполя­ции. Термин «экстраполяция» отражает перенос в будущее наблюдае­мых трендов. В более конкретном математическом смысле экстраполя­ция предполагает решение задачи нахождения функции, оптимально описывающей набор данных типа ((х1 у1), (х2, у2)— (Хы, Уы)) или (у((1), у((2) ... у((")). Так, на рисунке ниже показана аппроксимация логисти­ческой кривой (кстати, именно логистическая кривая хорошо описы­вает многие социальные и политические процессы).

Исходные данные

к + * * *

Имея рассчитанную нейронной сетью функцию, мы можем пред­сказывать значения у по новым х или значения у((п+1) в некоторый будущий момент времени

Решение этой задачи напоминает еще об одном уже изучавшемся нами статистическом методе — регрессионном анализе. В регресси­онном анализе мы устанавливаем влияние независимых переменных на зависимую переменную на основе построения линии регрессии, отражающей основную тенденцию связи признаков. Вычислив урав­нение регрессии, мы можем предсказывать значения зависимой пере­менной по значениям независимых переменных. При этом регресси­онный анализ лучше справляется со связями между признаками, которые описываются прямой линией (мы изучали именно линейный регрессионный анализ). Нелинейные по своей природе нейронные сети гораздо лучше справляются с задачами аппроксимации нелиней­ных зависимостей, которые в политической реальности встречаются в изобилии.

Все искусственные нейронные сети являются мощным инстру­ментом обнаружения скрытых связей. В таком качестве они могут ис­пользоваться не только для построения прогностической функции — поиска конкретной меры влияния независимых переменных на зави­симую, — но и для отбора адекватных независимых переменных. Та­кая задача актуальна для разного рода поисковых исследований, ког­да имеют довольно смутное представление о тех факторах, которые реально влияют на интересующую нас переменную. Нейронная сеть может работать с большим множеством переменных, она способна выделить из общей массы факторов действительно значимые.

В качестве примера приведем реальный случай нейросетевого мо­делирования в области политической науки . Была поставлена задача отобрать из большого числа независимых переменных ограниченный набор факторов, оказывающих наибольшее влияние на исход прези­дентских выборов в США. В результате было получено всего пять зна­чимых факторов:

1) уровень конкуренции при выдвижении от правящей партии;

2) наличие существенных социальных волнений во время правле- ния действующего президента;

3) спад или депрессия в год выборов;

4) значительность изменений, совершенных действующим прези- дентом в политике;

5) активность третьей партии в год выборов.

В то же время решение задачи отбора действительно значимых не­зависимых переменных из большого числа потенциально значимых (в какой-то мере она близка задаче редукции данных в факторном анализе) имеет определенные ограничения. Как уже знаем, качество работы сети напрямую зависит от объема обучающей выборки. Объем же обучающей выборки напрямую зависит от числа переменных на «входе» сети. Искушение «запихнуть» в нейронную сеть все мысли­мые и немыслимые факторы может быть очень велико, но для полу­чения приемлемого результата понадобятся многие тысячи обучаю­щих примеров.

Объем обучающей выборки зависит не только от числа перемен­ных, но и от уровня их измерения. Как и большинство методов, ней­ронные сети наиболее успешно работают с интервальными данными. Самый сложный случай — номинальные переменные, которые могут принимать много разных значений. Например, имеется номинальная переменная «электоральные предпочтения россиян на парламентских выборах 2003 г.», приобретающая 24 разных значения в соответствии с количеством строк бюллетеня: «Единая Россия», КПРФ, ЛДПР и т.д. В принципе, мы можем присвоить каждому значению числовой код (например: «Единая Россия» — 1, КПРФ — 2, ЛДПР — 3 и т.д.), однако при работе с нейронной сетью существует риск возникнове­ния ложного упорядочения, т.е. КПРФ окажется где-то между «Еди­ной Россией» и ЛДПР.

Более правильный способ заключается в кодировании 1-из-N, ког­да одна номинальная переменная представляется несколькими чис­ловыми переменными. Количество числовых переменных для каждой номинальной переменной равно количеству всех значений номи­нальной переменной (К). При этом в каждом случае только одна из N переменных принимает ненулевое значение. В реальности кодирова­ние переменных для случая с политическими партиями в бюллетене из 24 позиций будет иметь следующий вид:

«Единая Россия» = (1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0) КПРФ = (0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0) ЛДПР = (0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0) И т.д. (всего 24 переменных)

Очевидно, что такой подход приведет к катастрофическому увели­чению размерности данных и, значит, — к катастрофическому увели­чению объема обучающей выборки. В этой ситуации следует подумать об ином способе представления данных, не предполагающем столь громоздкого кодирования. Например, выделить всего три значения переменной «электоральные предпочтения россиян на парламент­ских выборах 2003 г.»: «партия власти и лояльные» (1,0,0); «левые»

(0,1,0); «правые» (0,0,1)1.

'См.: Горбань, А. Н. Нейроинформатика и ее приложения//Открытые системы. 1998. №4 .

Разумеется, мы не считаем приведенную трехкатегориальную схему оптимальной — это просто учебный пример.

Контрольные вопросы и задания

1. Опишите математическую модель работы биологического нейрона.

  1. Дайте сравнительную характеристику особенностей функционирова­ния нейронных сетей и машины фон Неймана. Какие задачи наиболее эф­фективно решает каждая из систем?

  2. Объясните понятие «архитектура сети». Назовите основные типы архи­тектур и наиболее существенные различия в их функционировании.

  3. Каковы основные алгоритмы обучения искусственной нейронной сети? Каким задачам соответствует тот или иной алгоритм?

5. От каких параметров зависит объем обучающей выборки?

6. Каковы основные задачи, решаемые с помощью нейронных сетей в по литическом прогнозировании и анализе?

Литература

Барский, А. Б. Нейронные сети: распознавание, управление, принятие ре­шений. М., 2004.

Горбань, А. Н. Нейроинформатика и ее приложения // Открытые систе­мы. 1998. № 4.

Дрейфус, У. Чего не могут вычислительные машины: критика искусствен­ного разума. М., 1979.

АпИ, К. Лапспапд, М, МоЫиййт, К. М. Аг(1Г1с1а1 Nеига1 ^(\уогка: А Ти(опа1, Сотри(ег. Уо1. 29. 3 (МагсЬ 1996).

Шагпег, В., Мша, М. Ипдег8(ап(1т§ ^ига1 ^(\уогкз аз 8(а(18(1са1 Тоо1з // ТЬе Атепсап 8(а(18(1с1ап. Уо1. 50. № 4 (Шу. 1996).

Соседние файлы в предмете [НЕСОРТИРОВАННОЕ]