Нейросети: доступно о сложном

На пути к искусственному интеллекту.

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

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

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

Пора разобраться, что же за технология постепенно изменяет мир. Задача для обывателя усложняется тем, что нейронные сети — понятие, которое одновременно обращается к таким категориям и областям науки как нейропсихология, математика, кибернетика и программирование.

Как всё началось

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

Идею искусственной нейронной сети впервые описали математик Уолтер Питтс и нейропсихолог Уоррен Мак-Каллок в 1943 году. Их математическая модель упрощала понимание деятельности мозга до цепи взаимосвязанных элементов, каждый из которых способен обрабатывать информацию, а затем передавать её последующему элементу. Этими взаимосвязанными элементами были нейроны — устройства, способные оперировать двоичными числами.

Фрэнк Розенблатт, создатель одной из первых моделей нейронной сети — перцептрона
Фрэнк Розенблатт, создатель одной из первых моделей нейронной сети — перцептрона

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

О нейроне

Строение биологического нейрона
Строение биологического нейрона

При первом знакомстве со структурой простейшей нейронной сети (входы, выходы, синапс, нейрон, аксон, активационная функция, перцептрон, веса связи и другие поначалу непростые понятия) у неподготовленного человека может возникнуть ряд вопросов, основной из которых — с какой стороны вообще подходить к этому знанию?

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

Формальный нейрон

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

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

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

Как это работает

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

Нейросети: доступно о сложном

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

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

Но они есть.

Свёрточные нейронные сети

Так, свою эффективность в распознавании образов доказали свёрточные нейронные сети.

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

Идею свёрточной нейронной сети можно объяснить биологической аналогией. Как мы определяем, что молоток — это молоток?

Смотрим на лежащий объект — наш мозг вызывает из памяти набор характеристик, которым должен соответствовать молоток. Железная голова, ручка из дерева. Также мозг сопоставляет форму и цвета. Однако, если показать мозгу молоток розового цвета, он все равно будет воспринят молотком, хоть и странным. Если же форму головки изменить на круглую, то мозг усомнится — молоток ли перед нами?

Формальное представление свёрточной нейронной сети

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

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

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

Рекуррентные нейронные сети

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

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

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

Примеры рекуррентных нейронных сетей различной архитектуры
Примеры рекуррентных нейронных сетей различной архитектуры

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

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

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

Здесь помогут рекуррентные сети. Они смогут анализировать как научные тексты, так и тексты с примерами обычного общения и переводить их осмысленно на другой язык. Конечно, в этом случае простого анализа текстов на русском и английском недостаточно, сети нужно предоставить аналогии, примеры осмысленных переводов с одного языка на другой.

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

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

Более полно про рекуррентные нейронные сети можно прочитать здесь.

Обучение нейронной сети

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

Нейронные сети необходимо обучать.

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

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

Метод обратного распространения ошибки
Метод обратного распространения ошибки

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

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

Метод выше требует постоянного вмешательства со стороны «учителя».

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

Матч в Го, 15 марта 2016 год. Чемпион мира Ли Сидол против нейросети AlphaGo от Google
Матч в Го, 15 марта 2016 год. Чемпион мира Ли Сидол против нейросети AlphaGo от Google

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

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

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

Области применения

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

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

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

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

— Классификация: определение класса объекта, в частном случае — определение объекта на фотографии.

— Кластеризация: разбиение данных на группы со схожими признаками для последующего вывода.

— Прогнозирование: выявление зависимости и обобщение данных для последующего вывода, и другие математические задачи.

Это, конечно, не всё. Учитывая, что человеческая деятельность, вне зависимости от отрасли, нередко раскладывается на одинаковые отдельные задачи, можно предположить, что нейронные сети возможно применить практически повсеместно.

Будущее прекрасное

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

Можно представить и не Сири
Можно представить и не Сири

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

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

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

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

Кортана из серии игр Halo как ещё один из примеров возможного будущего технологии
Кортана из серии игр Halo как ещё один из примеров возможного будущего технологии

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

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

Будущее ужасное

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

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

Марк Цукерберг создал самую большую в мире платформу по сбору данных
Марк Цукерберг создал самую большую в мире платформу по сбору данных

В ближайшем будущем все доступные приложениям данные ­– то есть, вообще все данные о наших связях, увлечениях и перемещениях — будут анализироваться с помощью нейронных сетей крупных корпораций и правительственных учреждений. Та самая Big Data, которой ещё недавно болел весь мир.

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

Кадр из сериала «В поле зрения»
Кадр из сериала «В поле зрения»

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

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

И не обязательно быть параноиком – не только государство или гигантские корпорации способны манипулировать человеческими данными для вторжения в человеческие же жизни.

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

Данная популярная точка зрения регулярно подтверждается кинематографом — в конце апреля можно будет посмотреть фильм «Сфера».

Настоящее

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

Другие — учатся решать сложные повседневные задачи, которые сделают жизнь отдельного человека легче (например, оптимизация поиска).

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

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

Забавно, но все эти четыре группы лиц — нередко одни и те же люди.

Фото, обработанное с помощью приложение FaceApp
Фото, обработанное с помощью приложение FaceApp
2323
4 комментария

Если после прочтения статья появилось желание заниматься ИИ и машинным обучением, то советую начать с лекций Эндрю Ына на курсере https://www.coursera.org/learn/machine-learning

4
Ответить

пфф, сегодня Искусственный Интеллект — всёлишь куча if и switch выражений.

1
Ответить

Если это была шутка, то она на троечку.

Ответить

Как же ты ошибаешься, мой друг.

Ответить