Применения элементов искусственного интеллекта на транспорте и в логистике
Вадим Николаевич Шмаль
Дмитрий Владимирович Абрамов
Александр Владимирович Корпуков

© Вадим Николаевич Шмаль, 2021

© Дмитрий Владимирович Абрамов, 2021

© Александр Владимирович Корпуков, 2021

ISBN 978-5-0055-6707-9

Создано в интеллектуальной издательской системе Ridero

Зарождение науки об Искусственном интеллекте

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

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

Искусственный интеллект (ИИ) зародился в 1950-х годах, когда ученые полагали, что машина не может демонстрировать разумное поведение, которое невозможно воспроизвести человеческим мозгом. В 1962 году команда Университета Карнеги-Меллона под руководством Терри Винограда начала работу над универсальным вычислительным интеллектом. В 1963 году в рамках проекта MAC Карнеги-Меллон создал программу под названием Eliza, которая стала первой машиной, продемонстрировавшей способность рассуждать и принимать решения по-человечески.

В 1964 году исследователь IBM JCR Licklider начал исследования в области информатики и когнитивных наук с целью разработки интеллектуальных машин. В 1965 году Ликлайдер предложил термин «искусственный интеллект» для описания всего спектра когнитивных технологий, которые он изучал.

Ученый Марвин Мински представил концепцию искусственного интеллекта в книге «Общество разума» и предвидел, что область развития науки проходит три стадии: личный, интерактивный и практический. Персональный ИИ, который он считал наиболее многообещающим, приведет к появлению интеллекта человеческого уровня, разумной сущности, способной реализовывать свои собственные цели и мотивы. Интерактивный ИИ разовьет способность взаимодействовать с внешним миром. Практический ИИ, который, как он считал, наиболее вероятен, разовьет способность выполнять практические задачи.

Термин искусственный интеллект начал появляться в конце 1960-х годов, когда ученые начали делать успехи в этой области. Некоторые ученые полагали, что в будущем компьютеры возьмут на себя задачи, которые были слишком сложны для человеческого мозга, таким образом достигнув интеллекта. В 1965 году ученых увлекла задача искусственного интеллекта, известная как проблема Стэнфорда, в которой компьютеру предлагалось найти кратчайший путь на карте между двумя городами за заданное время. Несмотря на множество успешных попыток, компьютеру удавалось выполнять задачу только в 63% случаев. В 1966 году профессор Гарвардского университета Джон Маккарти заявил, что эта задача «настолько близка, насколько мы можем в компьютерах, к проблеме анализа мозга, по крайней мере, на теоретической основе».

В 1966 году исследователи из IBM, Дартмутского колледжа, Университета Висконсин-Мэдисон и Карнеги-Меллона завершили работу над Whirlwind I, первым в мире компьютером, созданным специально для исследования искусственного интеллекта. В рамках проекта «Геном человека» компьютеры использовались для предсказания генетической структуры человека. В 1968 году исследователи из школы электротехники Мура опубликовали алгоритм для искусственных нейронных сетей, который потенциально мог быть намного мощнее электронного мозга.

В 1969 году аспиранты Стэнфорда Сеймур Паперт и Герберт А. Саймон создали язык для детей Logo. Logo была одной из первых программ, в которых использовались как числа, так и символы, а также простая грамматика. В 1969 году Паперт и Саймон основали Центр интерактивного обучения, который привел к разработке логотипа и дальнейшим исследованиям в области искусственного интеллекта.

В 1970-х годах ряд ученых начали экспериментировать с самосознающими системами. В 1972 году профессор Йельского университета Джордж Збиб представил концепцию «искусственного социального интеллекта» и предположил, что эти системы однажды смогут понимать человеческие эмоции, в 1972 году он ввел термин «эмоциональный интеллект» и предположил, что однажды системы смогут понимать человеческие эмоции. В 1973 году Збиб стал соавтором статьи под названием «Естественные аспекты эмоционального взаимодействия человека», в которой он утверждал, что можно было бы объединить искусственный интеллект с технологией распознавания эмоций для создания систем, способных понимать человеческие эмоции. В 1974 году Збиб основал Interaction Sciences Corporation, чтобы развивать и коммерциализировать свои исследования.

К концу 1960-х несколько групп работали над искусственным интеллектом. Некоторые из самых успешных исследователей в этой области были из лаборатории искусственного интеллекта Массачусетского технологического института, основанной Марвином Мински и Гербертом А. Саймоном. Успех Массачусетского технологического института можно объяснить разнообразием отдельных исследователей, их преданностью делу и успехом группы в поиске новых решений важных проблем. К концу 1960-х годов большинство систем искусственного интеллекта не обладали такими возможностями, как люди.

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

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

Система Мински и Саймона была невероятно мощной, поскольку давала программисту лишь несколько вариантов объяснений. От исследователя не требовалось проходить какие-либо процедуры, кроме написания и ввода требований программы. Это позволило Мински и Саймону создать больше правил и, что более важно, учиться на своих ошибках. В 1979 году система была успешно продемонстрирована на экзамене SAT. Несмотря на то, что в системе было два недостатка, из-за которых она не могла ответить на два из трех вопросов SAT, она набрала 82 процента на вопросы 2 и 3 группы и 75 процентов на вопросы 4 и 5 группы. Система не справлялась со сложными вопросами, которые не укладывались в установленные правила. Обработка больших объемов данных также была медленной, поэтому любые дополнительные детали были отброшены, чтобы ускорить работу системы.

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

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

Для Мински и Саймона главным ограничением их системы была ее способность точно рассчитывать результаты системы. Это ограничение не было связано с какими-либо недостатками в их системе; система работала, но была медленной и дорогой. По этой причине они считали, что могут обойти это, запрограммировав результаты, используя так называемое «функциональное программирование» (FP). FP было представлено британским ученым-компьютерщиком JCR Licklider в 1950-х годах. Оно относится к стилю программирования, в котором основное внимание уделяется основным функциям и поведению программ, а не выполнению программы. Используя FP, система могла бы вычислить результаты, но затем объяснить причину проблемы, используя человеческий язык.

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

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

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

В 1972 году Мински и Саймон основали Центр поведенческой нейробиологии в Анн-Арборе, штат Мичиган. Здесь они разработали и провели серию экспериментов, которые привели их к следующим выводам: «Было что-то отличное от ума, что-то, что отличало его от любых других организаций»; «Данные показали, что наши представления о действии и мозге были разными»; «Наш мозг работал иначе, чем другие части тела»; «Существует вероятность того, что на организацию ума может влиять активность мозга»; «В основе работы разума лежат основные физические принципы».

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

Мински пояснил:

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

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

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

Джон Б. Барг, профессор психологии Йельского университета, также сыграл важную роль в развитии исследований Мински и Саймона. Барг помог основать Центр поведенческой нейробиологии в Мичиганском университете в 1972 году, где Мински и Саймон продолжали экспериментировать с поведением людей и животных.

Область исследований искусственного интеллекта зародилась на семинаре в Дартмутском колледже в 1956 году, где впервые был придуман термин «искусственный интеллект». В следующем году, в 1957 году, Массачусетский технологический институт совместно с его аспирантами-исследователями создал новую организацию исследователей ИИ под названием «Комитет SIGINT-A (Интеллект и научные вычисления)». После создания многих основ искусственного интеллекта члены этой группы провели некоторое исследование аналогичной программы в Стэнфордском университете. Группа приняла решение сохранить название SIGINT-A и разработать новую программу исследований и разработок в области искусственного интеллекта. SIGINT-A стала группой исследований и разработок, которая в конечном итоге стала всемирно известной лабораторией искусственного интеллекта, которая теперь носит его имя. SIGINT-A – легендарная исследовательская организация. В ее истории много известных имен в этой области. Многие известные имена в области ИИ были взяты из SIGINT-A. В лаборатории было реализовано множество проектов. Чтобы удовлетворить инженерные потребности или выполнить новую миссию в новую эру искусственного интеллекта, SIGINT-A никогда не боялся пробовать что-то новое. И многие из ее идей и направлений были приняты в общепринятой области. Многие из того, что мы сейчас считаем ведущими инструментами ИИ, такими как нейронные сети и вспомогательные векторные машины, были созданы или адаптированы в эпоху SIGINT-A.

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

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

Исследователи и предприниматели в области искусственного интеллекта используют термин «искусственный интеллект» для определения программного обеспечения и алгоритмов, которые демонстрируют человеческий интеллект. Академическая область с тех пор расширилась, чтобы охватить связанные темы, такие как обработка естественного языка и системы. Большая часть работы в этой области происходит в университетах, исследовательских институтах и компаниях, с инвестициями таких компаний, как Microsoft и Google.

Искусственный интеллект также применяется в других отраслях, например, для автоматического управления кораблями, и обычно используется при разработке робототехники. Примеры приложений ИИ включают распознавание речи, распознавание изображений, языковую обработку, компьютерное зрение, принятие решений, робототехнику и коммерческие продукты, включая механизмы языкового перевода и рекомендаций. Искусственный интеллект находится в центре внимания национальной и международной государственной политики, такой как Национальный научный фонд. Исследования и разработки в области искусственного интеллекта управляются независимыми организациями, которые получают гранты от государственных и частных агентств. Другие организации, такие как The Institute for the Future, имеют обширную информацию по темам ИИ и другим новым технологиям, и профессиям дизайна, а также о талантах, необходимых для работы с этими технологиями.

Определение искусственного интеллекта эволюционировало с момента разработки концепции, и в настоящее время это не черно-белое определение, а, скорее, континуум. С 1950-х по 1970-е годы исследования ИИ были сосредоточены на автоматизации механических функций. Такие исследователи, как Джон Маккарти и Марвин Мински, исследовали проблемы универсальных вычислений, общего искусственного интеллекта, рассуждений и памяти.

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

В конце 1970-х – начале 1980-х сфера деятельности сменилась с классической ориентации на компьютеры на создание искусственных нейронных сетей. Исследователи начали искать способы научить компьютеры учиться, а не просто выполнять определенные задачи. Эта область быстро развивалась в течение 1970-х годов и в конечном итоге перешла от вычислительной к более научно ориентированной, а ее область применения расширилась от вычислений до человеческого восприятия и действий.

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

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

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

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

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

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

Компании уже используют искусственный интеллект для улучшения услуг, повышения качества продукции, снижения затрат, улучшения обслуживания клиентов и экономии денег на центрах обработки данных. Например, с помощью программного обеспечения для роботов Southwest Airlines и Amadeus могут лучше отвечать на вопросы клиентов и использовать отчеты, созданные клиентами, для повышения своей производительности. В целом в ближайшие десятилетия ИИ затронет почти каждую отрасль. В среднем около 90% рабочих мест в США будут затронуты ИИ к 2030 году, но точный процент зависит от отрасли.

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

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

Ранние исследования искусственного интеллекта были сосредоточены на изучении обучающихся машин, которые использовали базу знаний для изменения своего поведения. В 1970 году Марвин Мински опубликовал концептуальный документ о машинах LISP. В 1973 году Тьюринг предложил похожий язык, названный ML, который, в отличие от LISP, распознал подмножество конечных и формальных множеств для включения.

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

В 1978 году Эндрю Нг и Эндрю Хси написали влиятельную обзорную статью в журнале «Nature», содержащую более 2000 статей по ИИ и роботизированным системам. В документе были рассмотрены многие аспекты этой области, такие как моделирование, обучение с подкреплением, деревья решений и социальные сети.

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

В начале 2000-х большое внимание уделялось внедрению машинного обучения. Алгоритмы обучения – это математические системы, которые обучаются в процессе наблюдений.

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

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

В 2006 году Юдофски, Штайн и Такер опубликовали статью о глубоком обучении, в которой предложили архитектуру масштабируемых глубоких нейронных сетей.

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

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

В 2008 году Макс Ядерберг и Шай Халеви опубликовали «Глубокую речь». В ней представлена технология «Deep Speech», которая позволяет системе определять фонемы разговорного языка. Система вводила четыре предложения и могла выводить предложения, которые были почти грамматически правильными, но имели неправильное произношение нескольких согласных. Deep Speech была одной из первых программ, которая научилась говорить и оказала большое влияние на исследования в области обработки естественного языка.

В 2010 году Джеффри Хинтон описывает взаимосвязь между дизайном, ориентированным на человека, и областью обработки естественного языка. Книга была широко цитирована, потому что она представила область исследований искусственного интеллекта, ориентированного на человека.

Примерно в то же время Клиффорд Насс и Герберт А. Саймон подчеркнули важность дизайна, ориентированного на человека, при создании систем искусственного интеллекта и изложили ряд принципов проектирования.

В 2014 году Хинтон и Томас Клювер описывают нейронные сети и используют их для построения системы, способной транскрибировать речь человека с заячьей губой. Система транскрибирования показала значительное улучшение точности распознавания речи.

В 2015 году Нил Якобштейн и Арун Росс описывают фреймворк TensorFlow, который сейчас является одним из самых популярных фреймворков машинного обучения, ориентированного на данные.

В 2017 году Фей-Фей Ли подчеркивает важность глубокого обучения в науках о данных и описывает некоторые исследования, которые были выполнены в этой области.

Искусственные нейронные сети и генетические алгоритмы

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

Рост вычислительной мощности открыл новый мир вычислений благодаря разработке сверточных нейронных сетей (CNN) в начале 1970-х годов. В начале 1980-х Станислав Улам разработал функцию символического расстояния, которая стала основой для будущих алгоритмов сетевого обучения.

К концу 1970-х годов в ImageNet развернуто несколько CNN. В начале 2000-х годов графические процессоры, основанные на обработке данных с плавающей запятой, обеспечивали экспоненциальную производительность и низкое энергопотребление для обработки данных. Появление алгоритмов глубокого обучения является следствием применения более общих вычислительных архитектур и новых методов обучения нейронных сетей.

Благодаря последним достижениям в области многоядерных процессоров и графических процессоров обучение нейронных сетей с несколькими графическими процессорами (ГП) возможно за небольшую часть стоимости обычного обучения. Один из самых популярных примеров – глубокое обучение на графических процессорах. Обучение глубоких нейронных сетей на графических процессорах происходит быстро, масштабируемо, а также требует возможностей низкоуровневого программирования для реализации современных архитектур глубокого обучения.

Оптимизация генетических алгоритмов может быть эффективным методом поиска перспективных решений проблем информатики.

Методы генетического алгоритма обычно реализуются в среде моделирования, и многие общие проблемы оптимизации могут быть решены с помощью стандартного программного обеспечения библиотеки, такого как PowerMorph или Q-Learning.

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

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

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

Обратной стороной генетических алгоритмов является их зависимость от распределенного управления памятью. Хотя обширные методы оптимизации могут использоваться для обработки больших наборов входных данных и работы с несколькими конфигурациями процессоров / ядер, сложность этой операции может сделать решения на основе генетических алгоритмов уязвимыми для ограничений ресурсов, которые препятствуют прогрессу. Даже при наличии кода генетического алгоритма теоретически программы на основе генетических алгоритмов могут находить решения проблем только при запуске на соответствующей компьютерной архитектуре. Примеры проблем, связанных с генетическим алгоритмом, работающим на более ограниченной архитектуре, включают ограничения размера памяти для хранения представлений генетического алгоритма, ограничения памяти, налагаемые базовой операционной системой или набором инструкций, и ограничения памяти, налагаемые программистом, такие как ограничения на объем вычислительной мощности, выделяемой для генетического алгоритма и / или требований к памяти.

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

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

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

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

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

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

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

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

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

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

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

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

Вдохновленные общей техникой, Харальд Хельфготт и Альберто О. Динеи разработали алгоритм под названием MUSICA, который генерирует музыку из последовательностей первого, второго и третьего байтов песни. Их алгоритм генерирует музыку из композиции расширенного аккорда из шести частей. Их алгоритм производит последовательность байтовых значений для каждого элемента расширенного аккорда, и начальное значение может быть либо первым байтом, либо вторым байтом.

В апреле 2012 года исследователи из Гарвардского университета опубликовали исследование «Эффективный дизайн музыкального генома с гарантированным качеством», в котором описывается подход с использованием генетического алгоритма для создания музыкальных произведений.

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

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

В 1993 году два ученых из Университета Миннесоты разработали программный пакет под названием Choir Designer, чтобы помочь исследователям разрабатывать партитуры для электронных музыкальных инструментов. С помощью этого пакета пользователь создает полностью детальные дизайнерские планы возможных электронных музыкальных инструментов. Программное обеспечение позволяет пользователю вводить набор музыкальных параметров в документ в виде папки, называемый шаблоном дизайна, а затем использовать музыкальную программу для создания полных, подробных, трехмерных дизайнов для инструмента и его частей. Данные для шаблонов дизайна создаются программным обеспечением Choir Designer в биологической манере с использованием генетических алгоритмов. Один шаблон может содержать данные из программы для написания музыки Propellerheads Reason, цифрового звукового редактора Audacity, а также обычные компьютерные данные. В одном шаблоне, например, параметр уровня звукового давления (SPL) может быть изменен для создания второго, другого звука. На сегодняшний день ни один электронный инструмент не был создан с использованием шаблона дизайна, хотя теоретически они могли бы быть такими.

Генетическое программирование

В искусственном интеллекте генетическое программирование (GP) – это метод развития программ путем модификации их с помощью ДНК и модификации с помощью различных белков и молекул. GP был разработан Джоном Л. Хеннесси в Университете Карнеги-Меллона в 1989 году и выпущен как программное обеспечение с открытым исходным кодом в 1995 году. Самая популярная реализация – CUDA, созданная Эндрю Карпом и Беном Шоу из Массачусетского технологического института.

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

Конец ознакомительного фрагмента.

Текст предоставлен ООО «Литрес».

Прочитайте эту книгу целиком, купив полную легальную версию на Литрес.

Безопасно оплатить книгу можно банковской картой Visa, MasterCard, Maestro, со счета мобильного телефона, с платежного терминала, в салоне МТС или Связной, через PayPal, WebMoney, Яндекс.Деньги, QIWI Кошелек, бонусными картами или другим удобным Вам способом.