Нейронные сети: что это такое, где используются, как устроены и какую функцию выполняют?
В последние годы технологический прогресс настолько ускорился, что перестал нас особенно удивлять. Мы практически свыклись с мыслью, что в ближайшие годы дороги заполонят автомобили с автопилотом, а персональный компьютер как собеседник будет поинтереснее большинства людей. Такой скачок в технологиях обеспечен прорывом в новой области знания – нейронные сети. Что это такое, стоит знать даже тем, кто никогда не интересовался миром IT.
Краткое описание феномена
Нейросетевыми называются такие вычислительные системы, которые обладают способностью к самообучению и постепенному повышению производительности. Они используются при решении таких задач, которые не поддаются логическому программированию:
- Машинное обучение – разновидность искусственного интеллекта. Особенность его заключается в постепенном обучении на примере миллионов однотипных задач;
- В робототехнике система используется в выработке многочисленных алгоритмов для железных «мозгов» автоматических систем;
- Архитекторы компьютерных систем находят в нейросетях одно из решений проблемы параллельных вычислений;
- Также имеются многие другие варианты имплементации: разрешение сугубо математических проблем, моделирование естественного интеллекта на основе ЭВМ и др.
Основными элементами такой сети являются:
- Искусственные нейроны – элементарные, связанные между собой единицы;
- Синапс – соединение, которое служит для отправки-получения данных между нейронами;
- Сигнал – информация, подлежащая передаче.
Сверточные нейронные сети
Одной из самых популярных разновидностей нейросетей является так называемая сверточная, которая доказала свою эффективность в распознавании визуальных образов (изображения и видео), рекомендательных системах и обработке естественного языка:
- Они прекрасно масштабируются и могут применяться для распознавания образов сколь угодно большого разрешения;
- В них применяются объемные (трехмерные) нейроны. Нейроны внутри слоя связаны только небольшими областями, которые называются рецептивным полем;
- Нейроны соседних слоев подключаются по механизму пространственной локализации. Укладка множества таких слоев обеспечивает появление нелинейных фильтров, которые начинают реагировать на все большее число пикселей;
- Каждый фильтр расширяется на все поле зрения. Данные единицы тиражируются, делятся имеющимися параметрами и формируют карту. Тем самым все нейроны определенного сверточного слоя начинают реагировать на один и тот же объект (в пределах конкретной области ответа).
Экскурс в историю
Практическая реализация теории машинного обучения стала возможна только сегодня, благодаря появлению относительно дешевого и в то же время мощного «железа». Однако теоретические изыскания на эту тему насчитывают не один десяток лет:
- Первая вычислительная модель пороговой логики на основе математики и алгоритмов была построена Уорреном Маккалоком и Уолтером Питттсом в 1943 году;
- В конце 1940-х годов Дональд Хебб разработал механизм нейронной пластичности и тем самым заложил правила обучения автоматов;
- 1954 годом датируется первое применение теоретических открытий в работе ЭВМ. Элисон Кларк использовал для этих целей обычный калькулятор;
- Фрэнк Розенблатт в 1958 году разработал алгоритм распознавания образов и математическую нотацию к нему;
- В конце 1960-х научный интерес к проблематике заметно угас ввиду невозможности его применения на аппаратных мощностях того времени;
- Кибернетики вернулись к нейронным сетям лишь в начале 1980-х: появилась система с механизмом обратной связи, разработаны алгоритмы самообучения и заложены основы дисциплины data mining;
- К 2000-м вычислительная мощность ЭВМ выросла настолько, что позволила реализовать самые смелые чаяния кабинетных ученых. Широкое распространение получили программы распознавания голоса, компьютерного зрения и т. д.
Нейронная сеть Хопфилда
В 1982 году американский ученый Джон Хопфилд описал новый вид вычислительной системы, которая теперь носит его имя. Среди ее характерных особенностей:
- Блоки в сети могут принимать только два значения для описания их состояния: 1 и -1. Каждая пара единиц значения говорит о возможности или невозможности подключения узлов графа;
- Обновление одного узла в графе моделирования искусственных нейронов выполняется асинхронно или синхронно. В первом случае обновляется только один блок, который может быть выбран случайным образом. Во втором случае все блоки обновляются одновременно;
- Сеть характеризуется состоянием, которое называется «энергией». Обновления сетей всегда происходят при максимальных значениях энергии;
- Правила обучения сети аналогичны механизмам человеческого интеллекта. Возможно подключение новых данных как с использованием старых данных (локальное правило), так и без обращения к старым образцам (добавочное правило).
Основные ограничения и проблемы
Список основных претензий к современным методам интеллектуального анализа данных сводятся к следующему:
- Требуются значительные затраты времени на сбор подходящей информации и последующее обучение машины. В первую очередь касается робототехники;
- Ни одна из существующих ныне систем не способна решить фундаментальные математические проблемы (задача коммивояжера и факторизация больших чисел);
- Высокая сложность создания, настройки и обслуживания систем. Для этого требуются специалисты с очень высокой квалификацией, оплачивать услуги которых могут позволить себе только очень крупные корпорации;
- Для эффективной работы необходимо наличие высокопроизводительных ферм ЭВМ и программного обеспечения. Проблема постепенно решается благодаря увеличению аппаратной мощности графических процессоров: с 1991 по 2015 годы она возросла в миллион раз.
Несмотря на многочисленные проблемы, нейронные сети являются лучшим, что имеет ныне человечество на пути к искусственному интеллекту. Они применяются практически повсеместно: автопилоты в самолетах и автомобилях, программы для обнаружения мошенничества с кредитным картами, освоение игры в го (логическая настольная игра) и т. д.
Рекуррентные нейронные сети
Если соединения между блоками образуют ориентированный цикл (начинаются и заканчиваются на одной и той же вершине графа), то речь идет о рекуррентной нейронной сети:
- Каждое соединение имеет определенный вес (приоритет);
- Узлы делятся на два типа: вводные, узлы вывода и скрытые;
- Информация может передаваться не только по прямой (слой за слоем), но и между нейронами. Так отдельные элементы могут получать данные о предыдущем положении системы;
- Отличительной чертой является так называемая концепция внимания: машине можно указать на определенные фрагменты данных, требующих углубленной обработки.
Благодаря особенностям конструкции сеть используется для решения широкого круга задач:
- Распознавание вербальных и текстовых данных;
- В то же время, понимание смысла текста затруднено: машина «видит» лишь визуальную картинку без привязки к качественным характеристикам;
- РНН в настоящее время используется в системах автоматизированного перевода текста (например, Яндекс.Переводчик).
Если в XX веке умнейшие люди планеты занимались проектированием ракет, то ныне объектом приложения их интеллектуального потенциала являются нейронные сети. Что это, сложно сегодня не знать, ведь о достижении в этой области трубят ведущие СМИ на каждом шагу. Самые известные примеры: голосовой помощник Apple Siri, онлайн-переводчик Google Translate, поисковый движок Яндекса «Палех». И это только начало на пути к полноценному искусственному интеллекту.
Видео про устройство нейронных сетей
В данном ролике Олег Волошин расскажет простым языком, как работают современные нейронные сети, на чем основан их функционал: