Игорь Шнуренко – Демон внутри. Анатомия искусственного интеллекта (страница 32)
Руководство IG Farben игнорировало факты, не укладывающиеся в его концепции, выдающие желаемое за действительное. Перспектива нехватки нефти, запасы которой в 1920-е годы действительно кончались, привели к открытию новых месторождений — в Венесуэле, Калифорнии, Оклахоме и в Пермском нефтегазоносном бассейне. То есть «коллективный разум» нефтяников работал в противоположном направлении —но этот момент не учитывался.
«Обратная связь» в структуре принятия решений в самом концерне IG Farben также отсутствовала. Руководству концерна хотелось оправдать вложения в постройку завода по производству синтетического топлива, и путем сложной интриги им удалось убедить фюрера поддержать проект. После этого возражений со стороны чиновников уже быть не могло.
В итоге заводы были построены, концерн на этом заработал — но цены на нефть упали, и вложения себя не оправдали. Нефти рейху все равно не хватило, и Гитлер решил ее просто захватить военной силой, но это уже совершенно другая история.
НЕЙРОСЕТИ И РЫНОК ДУШ
КОШКА В МАТРИЦЕ
После того как Минский в 1969 году опубликовал доказательство ограниченности перцептрона, и выяснилось, что однослойные нейросети не способны решать задачи с «исключающим или», интерес к машинному обучению ослабел. Барьером для ученых явились также явно неадекватные для работы со сложными алгоритмами нейросетей вычислительные мощности.
Не сумев добиться от ученых внятного прогресса в решении задач распознавания образов или предсказания погоды, чиновники и администраторы крупных компаний прекратили финансирование подобных проектов. Попутно выяснилось, что мозг куда сложнее, чем о нем думали, и многих эта сложность ошеломила настолько, что задача создания машины, умом не уступающей человеку, стала казаться недостижимой в принципе.
Неудача японского проекта ICOT показала, что даже полная поддержка государства и предоставление в распоряжение ученых всех возможных ресурсов никуда не ведет, если нет теоретического прорыва и философского осмысления проблем. С другой стороны, наука настолько усложнилась, что теоретический прорыв был возможет лишь в результате крупных вложений. От науки вообще нельзя требовать немедленной отдачи, это не торговля пирожками на площади, а к власти в западных странах один за другим стали приходить сторонники неолиберальной модели экономики, которые стремились резко снизить государственные расходы.
Получался замкнутый круг, и очень скоро создание искусственного интеллекта стали ставить в ряд нерешаемых задач, наподобие запуска вечного двигателя. Впоследствии некоторые авторы даже будут писать, что «зима искусственного интеллекта» продлилась с 1970 по 1990 годы, хотя, конечно, это не совсем так.
И в 1970-е, и в 1980-е годы в этой области были сделаны важные открытия, подготовившие почву для следующего рывка.
Во-первых, даже критики принятых тогда методов, тот же Марвин Минский, указывали на возможности в смежных областях когнитивного моделирования. Критическому переосмыслению подверглись многие принятые в научной среде догмы и подходы, появились новые имена. Это было время господства символических моделей более высокого уровня, чем однослойные нейросети, и экспертных систем, которые, впрочем, было гораздо сложнее программировать.
Во-вторых, ученые продолжали работать над теорией нейросетей с тем, чтобы устранить ограничения, на которые указал Минский и другие. Финн Теуво Кохонен, американец Стефен Гроссберг, русский Александр Галушкин обосновали теорию многослойных нейросетей, которой было суждено привести к новому рывку.
КАК ВЫЯВИТЬ НЕРАДИВЫХ СТУДЕНТОВ
Александр Иванович Галушкин был преподавателем МФТИ. В 1970 году он выпустил пионерскую работу «Многослойные системы распознавания образов», а в 1974 защитил докторскую диссертацию, в которой предложил способ обойти ограничения, сформулированные Минским. Его революционный метод вычисления градиента, который используется при обновлении весов многослойной нейросети, применяется и сегодня. В одно время с ним ту же проблему алгоритма обратного распространения ошибки для обучения перцептронов решили американец Пол Вербос, и канадский когнитивный психолог (так он предпочитает себя называть) Джефф Хинтон.
Александр Галушкин — очень крутой ученый, его вполне можно сравнивать с Джеффом Хинтоном. Но у них, к сожалению, сложились разные жизни. Хинтон, работы которого мы еще не раз упомянем, продолжал работать над нейросетями во время «зимы искусственного интеллекта», когда это направление было совсем не модным. Его наработки тех лет вовсю используются и сегодня, но когда-то на них никто не обращал внимания. С началом новой «весны» в машинном обучении он возглавил целое направление в компании Google, которая воспользовалась его наработками, чтобы сначала создать, а потом и закрепить свое мировое лидерство в разработке ИИ.
Россия по причинам, о которых здесь рассказывать нет возможности, начиная с 1990-х стала резко сдавать как в научных разработках ИИ, так и в их практическом внедрении. В итоге лидерство было потеряно, и такие ученые, как Александр Галушкин, не смогли реализовать себя и свои идеи.
Теуво Кохонен, сделавший весьма серьезный вклад в машинное обучение и тем самым в преодоление «зимы искусственного интеллекта», стал в итоге самым цитируемым финским ученым за все времена, а после наступления в начале 1990-х новой «весны искусственного интеллекта» его избрали первым президентом Европейского общества нейронных сетей.
Финский ученый предложил новый класс многослойных нейронных сетей, где выходные сигналы обрабатываются по правилу «победитель получает всё»: наибольший сигнал превращается в единичный, остальные обращаются в ноль.
Развивая свою идею, в 1984 году он предложил самоорганизующуюся карту Кохонена — нейронную сеть с обучением без учителя. Принципы этой сети оказались настолько простыми, что она и сейчас применяется во множестве задач: для моделирования, прогнозирования, поиска закономерностей в больших массивах данных, в разработке компьютерных игр, квантизации цветов при печати на принтере, для архиваторов, видео-кодеков, и так далее.
При работе с учителем сопоставляются входные и выходные сигналы — их математическую запись называют «векторами». Вектора образуют обучающую пару. После завершения каждой «эпохи» происходит коррекция, то есть выходной вектор меняется до тех пор, пока его отклонение от цели не уложится в заданные пределы. Но в сетях Кохонена выходные сигналы для этой цели не используются, поэтому и говорится, что обучение происходит без учителя.
Жизненный цикл нейросетей Кохонена состоит из трех стадий: обучения, кластерного анализа и практического использования. Для поступившего входного сигнала ищется соответствие, то есть узел сети, вектор веса которого меньше всего отличается от данных наблюдения. Если таких узлов несколько, один из них выбирается случайным образом. Эти узлы называются «победителями», и их веса меняются по заранее составленной аналитиком формуле. Так и происходит самообучение системы.
На практике это работает так. Допустим, у нас есть данные о студентах и оценках, которые они получили на зачетах, и мы хотим составить табличку с четырьмя «кластерами». В первый кластер войдут удовлетворительно успевающие студенты-девушки, не имеющие одного или нескольких зачетов и не получающие стипендию, а во второй —хорошо успевающие студенты-девушки, имеющие все зачеты и в большинстве своем получающие стипендию. В третьем и четвертом кластере будут данные, соответственно, для парней со стипендией и без.
Наша задача — создать нейросеть и обучить ее так, что при вводе данных студента она будет сама относить его к той или иной категории.
Как это работает? Вначале заполняется таблица исходной выборки данных по каждому студенту, с указанием его или ее пола, сдала ли она все зачеты, какие оценки зачетов имеются по каждому предмету (допустим, их пять) и получает ли он или она стипендию. Допустим, у нас есть данные по группе из 20 студентов. Всего получается 8 переменных, из которых одна —наличие стипендии — не важна для обучения сети, но будет учтена при кластерном анализе. Таким образом, структурно сеть будет состоять из единственного слоя нейронов, имеющего 7 входов и 4 выхода.
Сначала исходная таблица нормализуется, то есть приводится в соответствие с пределами значений показателей. При этом входам нейронов присваивается то или иное случайное значение. Размер нормализованной таблицы будет 20 на 7 — в каждой ячейке лежит показатель для данного студента или студентки по всем 7 переменным. Затем составляется таблица значений весовых коэффициентов для каждого узла сети. Веса выражают то, что мы, собственно, хотим добиться — то есть чтобы в первый кластер (первую строку таблицы весов) попали девушки, не сдавшие все зачеты, с оценками «удовлетворительно» по сданным предметам, во второй — уже девушки, сдавшие все зачеты и имеющие «хорошо» или «отлично» и так далее.
Затем настраивается алгоритм самообучения. Для этого выбирается коэффициент скорости обучения, число «эпох» обучения и сколько корректировок весов нейронов будет произведено в каждой эпохе. Допустим, мы выбрали 6 эпох обучения с различным коэффициентом скорости, на каждой из которых будет 20 корректировок весов одного из нейронов — ведь у нас в таблице 20 студентов и студенток.