пятница, 3 сентября 2010 г.

General Purpose AI

Как-то в моем кругу общения сложилось шутливое правило:
"Упоминания General Purpose AI в приличном обществе считаются неприличными."
Попробую объяснить, откуда взялась это шутка, и почему упоминания о AI и, в частности, о Нейронных Сетях меня вгоняют в тоску или хихиканье (в зависимости от изначального настроения).

По большому счету, все уже описано до нас (как обычно). Готов подписаться под каждой буквой замечательной статьи Александра Вежневеца "Нейронные Сети. Мифы и реальность". Как минимум, под теми буквами, которые описывают эволюцию отношения к магическому термину "Нейронная Сеть" (произносится с благоговейным придыханием). Про альтернативы судить не берусь – не настолько хорошо подкован в теории. Да-да, я довольно прилично прогуливал математические курсы, которые читались нам в университете.

И все же, вставлю свои пять копеек в эту не новую тему.

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

Однако, шло время, и постепенно стало выясняться, что подобрать конфигурацию не так-то просто, а качественно обучить ее – еще более сложно. Стали закрадываться сомнения в существовании "серебряной пули". Сомнения укрепились и перешли на качественно новый уровень в тот момент, когда для решения очередной задачи выяснилось, что разобрать входную выборку на набор признаков гораздо сложнее да и интереснее, чем непосредственная кластеризация данных с помощью нейросетевых алгоритмов. А ведь что там скучная алгоритмическая задача по сравнению с Интеллектом?

Тогда-то и кристаллизировалось понимание, что нейронные сети и прочий AI – всего лишь инструмент. Стандартный скучный инструмент. Что-то вроде очередного языка программирования. Причем, языка довольно неудобного. Единожды описав решение с помощью нейронной сети изменить описание уже не возможно. Ибо что там за числа в ней хранятся – не знает никто, даже сама нейронная сеть J

Ценность такого решения катастрофически мала. Хотя скорость разработки (подчеркиваю: именно разработки) довольно высока. Ведь вместо анализа задачи, разработки алгоритма, его кодирования и отладки достаточно взять готовую реализацию нейросетевого алгоритма и более-менее достоверно его обучить. Поддерживать такое решение, правда, сложно. Но это ведь уже другая проблема, не так ли?

В общем-то, получается, что нейронные сети – всего лишь один из инструментов для решения задачи кластеризации данных или их аппроксимации. Причем, далеко не лучший инструмент, обладающий множеством "болезней". А все остальное – не более чем ореол магии и таинственности, успешно подогреваемый СМИ и околонаучными тусовками. Эдакая технологическая секта: стоит один раз использовать нейронную сеть в программе – и Вы в клубе! Использование неудачное – значит Вы что-то неправильно сделали (обучающая выборка, исходный алгоритм или его реализация). Ведь 200 миллионов леммингов не могут ошибаться! А если использование было приемлемо удачным – то вы уже Адепт, Несущий Светоч Тайны в массы.

Но ведь большинство задач, для которых модно применять нейронные сети, вполне решаются стандартными алгоритмическими методами. Или применением других, более эффективных методов кластеризации. Да и в случае применения нейросетей - основная нагрузка ложится не на них, а на этап подготовки входных данных. Просто об этом не принято говорить. Да и к чему – скучно это и непонятно. А упоминание нейросетей и AI – сразу окружает обсуждаемое решение ореолом Тайны и Сопричастности Большой Науке.

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

Так что, истинные джентльмены не упоминают General Purpose AI. По крайней мере – в приличном обществе.

2 комментария:

  1. Чтобы не мучаться с тем, что за числа хранятся в ней, можно пользоваться деревом решений - там понятнее. В остальном, да, всё так.

    ОтветитьУдалить
  2. На счет decision tree - соглашусь. Наглядность и анализируемость решения там на высоте. Собственно, деревья - это то, что читается на курсах "экспертных систем". По крайней мере - читалось в "мое время".

    Однако, существует мнение, что они (цитирую): "реализуют наивный принцип последовательного просмотра признаков и “цепляют” фактически осколки настоящих закономерностей, создавая лишь иллюзию логического вывода."

    Вопрос, как обычно, сводится к правильной постановке задачи, и применимости конкретного метода для ее решения.

    ОтветитьУдалить