Простой ответ – данные. Как это ни поразительно, 90 % существующих в мире данных были созданы за последние пять лет. Каждый день в интернете производится 1 экзабайт (1018
байтов) данных, что приблизительно соответствует объему информации, который можно сохранить на 250 миллионах DVD-дисков. Теперь каждые два дня человечество производит столько же данных, сколько было создано за период с момента зарождения цивилизации до 2003 года.Этот информационный потоп стал главным катализатором новой эпохи машинного обучения. До сих пор просто не существовало достаточных размеров среды, по которой алгоритм мог бы бродить, обучаясь. Его можно было сравнить с младенцем, органы чувств которого не получают сигналов извне. Мы знаем, что у детей, выросших взаперти, не развиваются языковые и другие базовые навыки. Их мозг, возможно, и готов к обучению, но не получает достаточного количества стимулов, достаточного опыта для полноценного развития.
Данные настолько важны для этой новой революции, что многие называют данные новой нефтью. Тот, кто имеет доступ к данным, получает в свое распоряжение нефтяные месторождения XXI века. Именно поэтому в таком выгодном положении оказались компании Facebook, Twitter, Google, Amazon и им подобные – мы бесплатно отдаем им свои запасы. То есть не совсем бесплатно, потому что мы обмениваем данные на предоставляемые ими услуги. Когда я веду машину при помощи навигационного приложения Waze, я соглашаюсь отдать данные о своем местоположении в обмен на оптимальный маршрут к месту назначения. Беда в том, что многие люди не знают о таких сделках и отдают свои ценные данные в обмен на сущую ерунду.
В основе машинного обучения лежит идея о возможности создания алгоритма, способного задавать новые вопросы, если у него что-то не получается. Он учится на собственных ошибках. При этом формулы такого алгоритма корректируются таким образом, что в следующий раз он поступает иначе и не совершает той же ошибки. Поэтому так важен доступ к данным: чем больше у такого умного алгоритма примеров, на которых он может учиться, тем опытнее он становится и тем больше улучшает его каждая следующая поправка. По сути дела, программисты создают метаалгоритм, который создает новые алгоритмы, исходя из встречающихся ему данных.
Действенность этого нового подхода потрясла специалистов по искусственному интеллекту. Отчасти потому, что технология, на которой он основан, не так уж и нова. Эти алгоритмы создаются путем последовательного накопления слоев вопросов, которые помогают прийти к решению. Такие слои иногда называют нейронными сетями, потому что они имитируют работу человеческого мозга. Представьте себе строение мозга: одни нейроны соединяются с другими синапсами. Группа нейронов может активироваться в результате поступления информации от наших органов чувств (например, запаха свежеиспеченного хлеба). Затем, если уровень сигнала превысит определенные пороговые значения, возникает импульс во вторичных нейронах (например, принимается решение съесть хлеб). Скажем, вторичный нейрон может быть активирован, если десять связанных друг с другом нейронов, но не меньше, активируются при поступлении входящей информации. Кроме того, его активация может зависеть от мощности сигнала, поступающего от других нейронов.
Еще в 1950-х годах информатики создали искусственный аналог этого процесса, который назвали перцептроном. Идея состояла в том, что нейрон подобен логическому вентилю, который детектирует входящий сигнал и принимает решение об активации или ее отсутствии в зависимости от результата вычислений.
Представим себе, что на вход перцептрона поступают три числа. Он взвешивает значимость каждого из них. Пусть на нашей схеме число