новости  материалы  справочник  форум  гостевая  ссылки Поиск с Яндексом  
Новости
Материалы
  Логические подходы
  Нейронные сети
  Генетические алгоритмы
  Разное
  Публикации
  Алгоритмы
  Применение
Справочник
Форум
Гостевая книга
Ссылки
О сайте
 

Перспективы искусственного интеллекта

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

Рост временной сложности алгоритма по мере увеличения размерности данных называется комбинаторным взрывом. Например, для вычислительной машины, способной просчитать миллион шахматных игровых комбинаций в секунду с отсевом заведомо ложных ветвей, на просчёт 6 ходов вперёд потребуется 1 секунда, на 12 ходов — 11 дней, а на 18 ходов — около 32 000 лет. Или в поле 2 на 2 пикселя, где каждый пиксель может быть только чёрным или белым, может быть 16 вариантов изображений, а в поле 100 на 100 пикселей уже ~ 103000 (3000 знаков в числе). В результате решение перебором вариантов быстро становится невозможным и требуется уточнение условий и алгоритма. Или можно применить метод параллельного распознавания образов нейронной сетью, то есть путь повторения мышления. Задача в этом случае не требует предварительного решения человеком — её будет решать сеть, а от человека потребуется только подобрать нейронную сеть соответствующую задаче. В чём нейронные сети противоположны компьютерам, где написанная человеком программа в явном виде задаёт поведение во всех мыслимых ситуациях.

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

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

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

Наиболее изучены относительно простые нейронные сети прямого распространения сигнала, нейроны в них расположены слоями и имеют однонаправленные связи от входа к выходу сети. Сети прямого распространения являются статическими в том смысле, что на заданный вход они вырабатывают одну совокупность выходных значений. Например, такие сети используются для поиска похожих изображений или обработки речи, они могут иметь более десятка слоёв и сотни тысяч нейронов.

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

В нервной системе червей нематод, имеющих длину менее миллиметра, около 300 нейронов и 7000 соединений между ними. Этот тип первичноротых известен тем, что их коннектом полностью описан. У мух уже около 350 тыс. нейронов и около 850 тыс. у пчёл. Таким образом, по количеству нейронов современные искусственные нейронные сети не уступают насекомым, однако ввиду гораздо большей сложности биологических сетей практически по всем параметрам, такое сравнение очень условное. Дополнить представление о сравнительной сложности биологических сетей поможет следующий пример. В рамках проекта Blue Brain в 2015 году была приближённо реконструирована работа участка соматосенсорной коры мозга мыши размером 0,29 мм3, в котором содержится 31 тыс. нейронов и порядка 8 млн межнейронных связей, состоящих из 37 млн синапсов, что уже потребовало мощных вычислительных ресурсов. В целом же, как подсчитано в работе «Toward large-scale connectome reconstructions» в 2014 году, на современном уровне развития технологий компьютерная реконструкция работы мозга мухи, учитывающая большинство связей между нейронами, займёт 4,7 тыс. лет, мозг мыши потребует 4,5 млн лет, а человека около 14 млрд лет, — при том, что речь идёт о только некоторой статистически похожей модели работы мозга.

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

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

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

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

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

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

Тем не менее способность решать задачи «за» человека и даже лучше человека — это важное достоинство нейронных сетей. Но так ли это необычно, и насколько тогда нейронные сети смогут заменить человека?

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

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

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

Программа же больше подходит для решения задач, где может быть задана строгая и однозначная последовательность действий. «Жёсткость» программы позволяет переносить её на любой подходящий носитель сколько угодно раз — поэтому машины с архитектурой фон Неймана можно использовать для хранения информации, строгая последовательность шагов и однозначность результата позволяет точно и заранее выявлять ошибки или вносить в программу изменения. Наоборот, нейронная сеть — это система с распределённым представлением информации и вычислений, при этом обучаемая, то есть нейронная сеть пластична во времени, следовательно для сохранения знаний нейронная сеть также не подходит. Можно сказать, что назначение нейронной сети — больше производить новые знания, чем сохранять старые.

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

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

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

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

***

Самоорганизующиеся системы — ячейки Бенара ли это или нейронная сеть — физически воплощают в себе интеллект, отличаясь только его сложностью и непосредственной реализацией. Чтобы понять интеллект, необходимо оценить интеллект «со стороны». Но для этого нужно что-то большее, чем интеллект. Поэтому алгоритмизация мышления, перенос сознания в компьютер, создание искусственного интеллекта, приближающегося к человеческому, — всё это невозможно. Тем не менее знание только предполагает и может быть, что в будущем откроются обстоятельства — сейчас не представимые, которые изменят этот вывод.


Предыдущая Оглавление