Научная статья на тему 'О методике применения машинного обучения в анализе социологических данных'

О методике применения машинного обучения в анализе социологических данных Текст научной статьи по специальности «Математика»

CC BY
291
57
i Надоели баннеры? Вы всегда можете отключить рекламу.
Область наук
Ключевые слова
машинное обучение / применение / социологические исследования / методика. / machine learning / application / sociological research / methods

Аннотация научной статьи по математике, автор научной работы — Н. Н. Леонов

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

i Надоели баннеры? Вы всегда можете отключить рекламу.
iНе можете найти то, что вам нужно? Попробуйте сервис подбора литературы.
i Надоели баннеры? Вы всегда можете отключить рекламу.

ABOUT THE METHOD OF APPLICATION OF MACHINE LEARNING IN THE ANALYSIS OF SOCIOLOGICAL DATA

The article presents an analysis of the application of machine learning to data processing in sociological research. It is shown that the technique of such an application is underdeveloped. The features of sociological research in terms of the use of machine learning are considered. Some recommendations for such use are given. The conclusion about the usefulness of further investigation in this direction is made.

Текст научной работы на тему «О методике применения машинного обучения в анализе социологических данных»

УДК 316:519.876.5

Н. Н. ЛЕОНОВ,

кандидат физико-математических наук, Институт социологии НАНБеларуси, г. Минск, e-mail: nick.leonov@gmail.com

О МЕТОДИКЕ ПРИМЕНЕНИЯ МАШИННОГО ОБУЧЕНИЯ В АНАЛИЗЕ СОЦИОЛОГИЧЕСКИХ ДАННЫХ

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

Ключевые слова: машинное обучение, применение, социологические исследования, методика.

N. N. LEONOV,

Candidate of Physical and Mathematical Sciences, Institute of Sociology of NAS of Belarus, Minsk, e-mail: nick.leonov@gmail.com

ABOUT THE METHOD OF APPLICATION OF MACHINE LEARNING IN THE ANALYSIS OF SOCIOLOGICAL DATA

The article presents an analysis of the application of machine learning to data processing in sociological research. It is shown that the technique of such an application is underdeveloped. The features of sociological research in terms of the use of machine learning are considered. Some recommendations for such use are given. The conclusion about the usefulness of further investigation in this direction is made.

Keywords: machine learning, application, sociological research, methods.

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

хороший пример перехода количественных изменений в качественные. Такое новое качество порождается в первую очередь кардинально возросшими объемами анализируемых данных, что и породило выражение «большие данные» (big data). Если взять в качестве примера обычную таблицу «объект - признак», то речь идет как о числе объектов, так и о числе признаков. Оказалось, что многие из традиционных методов математической статистики и вычислительной математики в этих условиях не способны обеспечить получение результата с необходимой точностью за приемлемое время. Следует заметить, что увеличение мощности вычислительной техники всех проблем не решает. Большие объемы - не единственная особенность данных в современных задачах. Другим существенным отличием от прежней ситуации является большое разнообразие типов данных. Классическая статистика имела дело в основном с числовыми данными. В терминах шкал при этом говорят об абсолютной шкале и шкалах отношений и разностей. Затем стали рассматривать порядковые (ординальные, ранговые) и номинальные шкалы. В настоящее же время приходится обрабатывать тексты, изображения, аудио- и видеофайлы. Есть задачи, решение которых ограничено жесткими временными рамками, и т. д. Развитие теории и практики машинного обучения происходит исключительно интенсивно, о чем свидетельствует огромное количество проводимых мероприятий, большое число книг, научных и практических статей. Поскольку массив статей поистине необозрим, ограничимся кратким обзором книжной литературы. Предварительно заметим, что проблемам машинного обучения часто посвящаются источники, в названиях которых фигурируют термины «большие данные» (big data), «статистическое обучение» (statistical learning), «глубокое обучение» (deep learning) и др. По очевидным причинам в рассматриваемой нами области преобладают книги, написанные на английском языке. Судя по ссылкам, авторитетными среди специалистов считаются [1; 2]. В силу большого интереса к машинному обучению российские издательства довольно оперативно переводят на русский язык наиболее значимые сочинения, такие как [3-5]. Появились также интересные сочинения российских авторов, например [6; 7].

При использовании машинного обучения весьма важным является вопрос выбора и применения программных средств. В популярных интегрированных статистических пакетах, таких как SPSS, STATISTICA, соответствующие методы представлены, но незначительно. Наиболее часто методы машинного обучения применяются с использованием языков программирования и библиотек программ к ним. Языки программирования можно подразделить на общие и специализированные. Из специализированных языков здесь используется в основном R-язык, созданный в первую очередь для статистических вычислений, а из общих - практически все применяемые в настоящее время - C++, Java, Python и др., однако именно Python в сочетании с библиотеками к нему стал к настоящему времени абсолютным лидером в машинном обучении среди всех программных средств. По этой причине машинное обучение часто излагается применительно к использованию этого языка [8-11].

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

Далее в разделах 1-4 анализируются различные аспекты анализа данных при проведении эмпирических социологических исследований и выявляются особенности этого анализа. В заключении делаются выводы и формулируются предложения по развитию теории и практики применения машинного обучения в социологии.

1. Объемы данных. Начнем с самого, по-видимому, до сих пор распространенного способа получения эмпирических данных - с анкетного опроса. Анализируемыми объектами здесь являются люди (респонденты), и их число (далее мы его для краткости будем обозначать п) редко превышает несколько тысяч, что по нынешним меркам немного. Что же касается числа признаков, которое определяется количеством и формой вопросов (обозначим его т), то оно легко достигает нескольких сотен. Это немного по сравнению с объемом данных, возникающих, скажем, в бизнесе, но достаточно для того, чтобы создать определенные проблемы. Заметим, что число признаков, как правило, более критично, нежели число объектов, при этом чем больше число одновременно анализируемых признаков, тем больше должно быть число объектов для этого анализа. В свое время такой крупный специалист, как И. М. Гель-фанд, даже назвал примерное соотношение между этими параметрами для задач автоматической классификации - п должно быть не меньше, чем 15т [12]. По-видимому, главной проблемой при решении задач анализа данных для больших т и сравнительно небольших п является опасность так называемого переобучения (оуе^й^). Сущность этого явления в том, что при слишком чувствительной модели и слишком тщательной подгонке ее параметров к выборке, по которой строится модель (так называемая обучающая выборка), модель начинает описывать не только (а порой даже и не столько) закономерности в данных, но и случайные колебания в них. Понятно, что ценность подобной модели невелика.

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

2. Измерительные шкалы. Традиционно в социологии используются числовые шкалы (абсолютная шкала, шкалы разностей и отношений), порядковые и номинальные шкалы. Для этих типов шкал методы анализа, в общем-то, известны. Здесь следует отметить одно обстоятельство, до сравнительно недавних пор в литературе не обсуждавшееся. Дело в том, что варианты ответов на вопрос социологической анкеты редко образуют порядковую шкалу, и основная причина этого - отказ от ответа («Не знаю», «Затрудняюсь ответить» и так далее). Эти варианты не находятся ни в каком порядковом отношении с «обычными» вариантами. Заметим, что является грубой ошибкой считать эти варианты «нейтральными» - например, находящимися между отрицательными и положительными вариантами. Несколько лет назад автору довелось вместе с Г. М. Евелькиным и Е. М. Бородачевой анализировать данные опроса общественного мнения, где было много отказов ответить на вопрос, в существенной мере определяющий политическую ориентацию респондента. Благодаря остроумному приему, предложенному Е. М. Бородаче -вой, удалось выяснить, что люди, отказавшиеся отвечать, отнюдь не были нейтральны. Шкала такого рода называется шкалой частичного порядка. Кро-ме отказов, есть и другие источники возникновения этих шкал в социологических исследованиях. К сожалению, в наиболее распространенных статистических пакетах нет специальных методов для шкал частичного порядка. Кроме того, недостаточно развита и теория таких методов, и если, скажем, определение и вычисление коэффициентов ранговой корреляции М. Кендалла для признаков, измеренных в шкалах частичного порядка, особой трудности не представляет, то решение проблемы значимости этих коэффициентов автору в литературе не встречалось.

3. Математические структуры на значениях данных. На множествах значений анализируемых признаков (переменных) можно рассматривать не только порядковые, но и другие математические структуры. Таким образом, подход с точки зрения произвольных структур является более широким, чем с точки зрения шкал. Некоторый подход к использованию разнообразных структур развивается в [13]. Среди структур, отличающихся от порядковых, в первую очередь следует отметить структуру метрического пространства, то есть множества, на котором задано достаточно общим образом понимаемое расстояние. Структура метрического пространства хороша тем, что ввести ее можно в гораздо большем числе случаев, чем порядковую. Среди расстояний (метрик) выделяется класс так называемых неархимедовых расстояний (ультраметрик). Они примечательны, в частности, тем, что естественно порождают иерархическую классификацию. Недостатком же является то, что методы анализа данных со значениями в метрических пространствах сравнительно немногочисленны. В первую очередь развивались всевозможные методы классификации, в особенности кластер-анализа [14; 15]. Другим достаточно давно применяемым методом является многомерное шкалирование [16; 17].

4. Методы машинного обучения на различных структурах. Мы будем рассматривать две основные задачи машинного обучения - задачи описания

зависимостей и задачи классификации и, соответственно, наиболее популярные методы решения этих задач, а именно деревья решений и нейронные сети (по поводу общей теории этих методов см. [1-11]). При этом внимание будет уделяться, в частности, такому свойству метода, как интерпретируемость и наглядность решения. На наш взгляд, важность этого свойства является особенностью задач социологического происхождения.

4.1. Деревья решений. Этот метод используется для решения задач классификации и задач предсказания значений некоторой непрерывной переменной. Поскольку переменные с непрерывными значениями для данных социологических исследований не особенно характерны, мы ограничимся задачами классификации. Деревья решений используются в ситуации так называемого обучения с учителем. Это означает следующее. Имеются так называемые обучающая и тестовая выборки, элементы которых по некоторому правилу разделены на классы. Требуется построить алгоритм (классификатор, решающее правило), который по значениям определенных исследователем переменных классифицировал бы элементы генеральной совокупности максимально близко к тому, как это делает исходное правило. Близость оценивается по тестовой выборке. Дерево решений работает следующим образом. Для произвольного элемента генеральной совокупности анализируется значение некоторой первой переменной у . В зависимости от того, каким оно окажется, делается следующий шаг. На этом шаге либо принимается решение о принадлежности элемента к какому-то классу, либо анализируется вторая переменная У2 . Выбор второй переменной, вообще говоря, зависит от значения первой переменной. В зависимости от значения второй переменной опять же либо выносится решение о принадлежности элемента к классу, либо делается выбор очередной переменной. В конце концов выбор переменных всегда заканчивается, и выносится решение о принадлежности к классу. Дерево строится по обучающей выборке, а качество его проверяется по тестовой выборке. Дерево решений очень наглядно, легко понимается и интерпретируется. Мы предлагаем следующую методику использования этого метода. Предварительно отметим, что данные социологических исследований часто вполне успешно классифицируются методами, не требующими обучения - скажем, методами кластеризации или дискриминантного анализа. При этом, однако, мы получаем лишь разбитую на классы совокупность, но не получаем правила классификации -оно выступает по отношению к исследователю в роли «черного ящика». Из-за этого, во-первых, не выявляется никакой логики процесса классификации, а во-вторых, при предъявлении новых элементов генеральной совокупности мы не можем их отнести какому-либо классу - процедуру классификации нужно повторять заново. Исходя из этого, мы предлагаем следующую процедуру применения деревьев решений. Классифицируем имеющуюся выборку каким-либо методом, не требующим обучения. Делим выборку на обучающую и тестовую части. Затем строим дерево решений по обучающей части и проверяем качество модели по тестовой части.

4.2. Нейронные сети. Нейронные сети являются наиболее часто применяемым аппаратом в машинном обучении. Они предназначены в основном для решения задач описания зависимостей и задач классификации, причем по существу задачи классификации решаются путем сведения их к задачам описания зависимостей, на каковых мы по этой причине и сосредоточимся. Наиболее распространенными типами нейронных сетей являются сети радиальных базисных функций (radial base function, RBF) и персептроны (о нейронных сетях см. [1-11]).

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

При описании персептронов ограничимся вначале однослойными персеп-тронами. Основу их образуют так называемые нейроны. Нейрон работает следующим образом. Берутся значения независимых переменных Xj,...,xs (ко-торые в данном контексте называются обычно входными переменными, входными сигналами или просто входами), умножаются на некоторые коэффициенты (веса) Wj,..., ws и суммируются. Затем к этой взвешенной сумме WjXj +... + wsxs применяется некоторая функция одного переменного ф, называемая функцией активации. Ее значение ф^xj +... + wsxs) является выходом нейрона. Функцию f, которая сопоставляет вектору входов значение выхода, назовем функцией выхода нейрона. Таким образом, f (Xj,..., xs) = ф^ Xj +... + wsxs). Одно -слойным персептроном является опять же линейная комбинация нейронов в том смысле, что выход персептрона является взвешенной суммой (линейной комбинацией) выходов нейронов. Таким образом, персептрон - это функция, аргументом которой является вектор входов, а значением - выход. Совокупность нейронов называется слоем. Построение однослойного персептрона заключается в выборе числа нейронов, весов в нейронах, функции активации и весов, образующих выход. Следующим по сложности является многослойный персептрон прямого распространения. Его первый (входной) слой содержит несколько групп нейронов. Нейроны устроены так же, как описано выше, а каждая группа работает так же, как слой однослойного персептрона. Таким

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

Стремление расширить набор структур, на которых можно построить пер-септрон, привело в свое время автора к попытке построить его на метрическом пространстве [13]. Буквальный перенос метода построения здесь невозможен, потому что на произвольном метрическом пространстве не существует операций умножения на числа и сложения. Можно, однако, прибегнуть к некоторой аналогии. Поясним ее вначале на примере функции выхода нейрона, которая использует простейшую функцию активации - так называемую единичную ступеньку. Так называется функция, равная единице при положительных значениях аргумента и нулю - при отрицательных. Соответственно функция выхода вычисляется по формуле

Г1, если т,х,,..., - Ь > 0,

/(х,,..., х,) = \' 11"" Ь < 0 (*)

[0, если т,х,,..., wsxs - Ь < 0,

где Ь - некоторое число. Теперь заметим, что т,х,,..., -Ь = 0 - это уравнение гиперплоскости в 5-мерном пространстве входов (гиперплоскость - это аналог прямой на плоскости и плоскости в обычном трехмерном пространстве), и множества, описываемые неравенствами в правой части формулы (*), суть полупространства по обе стороны этой гиперплоскости. Таким образом, единичная ступенька приводит к следующей функции выхода: задается гиперплоскость, и выход равен единице на одном полупространстве пространства входов и нулю - на другом. Затем в [13] был использован тот простой факт, что гиперплоскость - это множество точек, равноудаленных от некоторых двух заданных точек у и г, и соответственно одно из полупространств образовано точками, которые расположены к точке у ближе, чем к г, а другое -наоборот. Это позволяет строить функцию выхода нейрона в метрическом пространстве следующим образом: задаем в метрическом пространстве входов пару точек у и г, и полагаем выход нейрона равным единице для входов, которые ближе к у, чем к г, и равным нулю в остальных точках. Практика показала, однако, что единичная ступенька и ее модификации, использованные в [13], приводят не к самым эффективным нейронным сетям; гораздо лучше работает так называемый линейный выпрямитель, или полулинейный элемент. Это функция, значение которой при положительных значениях аргумента равно этому значению, а при отрицательных равно нулю. Функцию выхода нейрона на метрическом пространстве входов, аналогичного обычному нейрону

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

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

Поскольку, как было отмечено выше, в задачах социологического происхождения количество единиц анализа (объектов) по отношению к числу признаков может быть невелико, то возникает опасность переобучения. Наиболее общим методом решения этой проблемы является так называемая регуляризация. Показано [18], что регуляризация нейронной сети приводит к конструкции так называемой машины опорных (или несущих) векторов (support vector machines, SVM). Эта конструкция также рассматривается в указанной выше литературе по машинному обучению.

Что касается интерпретируемости и наглядности при использовании нейронных сетей, то достичь их нелегко, поскольку даже из приведенного описания понятно, что нейронная сеть - конструкция достаточно сложная. Поэтому разрабатываются, например, методы вербализации нейронных сетей [19]. Эти методы, естественно, должны быть адаптированы к предметной области, в данном случае - к социологии.

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

1. Применение методов машинного обучения в социологических исследованиях возможно и полезно.

2. Методика такого применения необходима, но к настоящему времени развита недостаточно.

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

Список использованных источников

1. James, G. An Introduction to Statistical Learning with Applications in R / G. James, D. Witten, T. Hastie, R. Tibshirani. - New York ; Heidelberg ; Dordrecht ; London : Springer, 2013 (Corrected at 6th printing 2015). - XIV, 440 p.

2. Abu-Mostafa, Y. S. Learning From Data / Y. S. Abu-Mostafa, M. Magdon-Ismail. - Pasadena : AMLbook.com, 2012. - XII, 204 p.

3. Флах, П. Машинное обучение. Наука и искусство построения алгоритмов, которые извлекают знания из данных / П. Флах. - М. : ДМК Пресс, 2015. - 400 с.

4. Бринк, Х. Машинное обучение / Х. Бринк, Дж. Ричардс, М. Феверолф. - СПб. : Питер, 2017. - 336 с.

5. Гудфеллоу, Я. Глубокое обучение / Я. Гудфеллоу, И. Бенджио, А. Курвилль. - М. : ДМК Пресс, 2017. - 652 с.

6. Николенко, С. Глубокое обучение. Погружение в мир нейронных сетей / С. Николенко, Е. Архангельская, А. Кадурин. - СПб. : Питер, 2018. - 480 с.

7. Груздев, А. В. Прогнозное моделирование в IBM SPSS Statistics, R и Python. Метод деревьев решений и случайный лес / А. В. Груздев. - М. : ДМК Пресс, 2017. - 652 с.

8. Шолле, Ф. Глубокое обучение на Python / Ф. Шолле. - СПб. : Питер, 2018. - 400 с.

9. Мюллер, А. Введение в машинное обучение с помощью Python. Руководство для специалистов по работе с данными / А. Мюллер, С. Гвидо. - СПб. : Алфа-книга, 2017. - 480 с.

10. Рашка, С. Python и глубокое обучение / С. Рашка. - М. : ДМК Пресс, 2017. - 418 с.

11. Плас, Дж. В. Python для сложных задач. Наука о данных и машинное обучение / Дж. В. Плас. - СПб. : Питер, 2018. - 576 с.

12. Гельфанд, И. М. Структурная организация данных в задачах медицинской диагностики и прогнозирования / И. М. Гельфанд, Б. И. Розенфельд, М. А. Шифрин // Вопросы кибернетики. Задачи медицинской диагностики и прогнозирования с точки зрения математика. - М., 1985. - С. 5-64.

13. Леонов, Н. Н. Математическая социология: структурно-аппроксимационный подход / Н. Н. Леонов. - Минск : ФУАинформ, 2002. - 220 с.

14. Жамбю, М. Иерархический кластер-анализ и соответствия / М. Жамбю. - М. : Финансы и статистика, 1988. - 342 с.

15. Методы анализа данных. Подход, основанный на методе динамических сгущений / под рук. Э. Дидэ. - М. : Финансы и статистика, 1985. - 357 с.

16. Толстова, Ю. Н. Основы многомерного шкалирования / Ю. Н. Толстова. - М. : КДУ, 2006. - 160 с.

17. Дэйвисон, М. Многомерное шкалирование: методы наглядного представления данных / М. Дэйвисон. - М. : Финансы и статистика, 1988. - 254 с.

18. Andras, P. The Equivalence of Support Vector Machine and Regularization Neural Networks / P. Andras // Neural Processing Letters. - 2002. - Vol. 15, iss. 2. - P. 97-104.

19. Миркес, Е. М. Логически прозрачные нейронные сети и производство явных знаний из данных / Е. М. Миркес // Нейроинформатика : сб. ст. - Новосибирск : Наука, Сибирское предприятие РАН, 1998. - 296 с.

Поступила 30.10.2018 г.

i Надоели баннеры? Вы всегда можете отключить рекламу.