История нейросетей
записки параноикаПредисловие
За последние несколько лет, только глухой и слепой не слышал про такую штуку, как “Нейронка” или Нейронная сеть. И не важно кем вы работаете, где живете, какой у вас социальный статус. Только ленивый не говорил о том, какое великое будущее или какое великое разочарование нас ожидает в будущем. Но что же такое нейронная сеть? Для того чтобы разобраться в этом вопросе, как и в любом другом вопросе, требуется начинать с основ. Поэтому я хочу в этой статье начать с самого начала. Кто и что стало основой тех нейросетей, которые нам известны сейчас.
А начнем мы в 1943-м году, с новаторской работы Уоррена Маккалока и Уолтера Питтса, с того, как она заложила основу для нейронных сетей, глубоко повлияв на искусственный интеллект. Их сотрудничество представило пороговую логику, краеугольный камень будущих достижений. Кроме того, посмотрим, как принципы обучения по Хеббу - Дональда Хебба, в 1949 году добавили новые измерения в эту область. По мере того, как вы углубитесь в эти ранние разработки, вы узнаете, как эти основополагающие идеи развивались на протяжении десятилетий, сталкиваясь с многочисленными проблемами и неудачами. Какие ключевые прорывы последовали?
История нейронных сетей началась в 1943 году с работы Уоррена Маккалока и Уолтера Питтса. В своей новаторской работе «Логическое исчисление идей, имманентных нервной деятельности» они показали, как простые электрические цепи могут быть использованы для моделирования поведения биологических нейронов. Биологический нейрон работает через ряд простых электрохимических процессов. Он получает сигналы от других нейронов через свои дендриты. Когда эти входящие сигналы достигают определенного уровня (предопределенного порога), нейрон включается и посылает электрохимический сигнал по своему аксону. Это, в свою очередь, влияет на нейроны, подключенные к его аксональным терминалам. Главное, что следует здесь отметить, это то, что реакция нейрона подобна бинарному переключателю: он либо срабатывает (активируется), либо остается спокойным, без каких-либо промежуточных состояний.
Маккалок и Питтс продемонстрировали, что сети искусственных нейронов могут выполнять логические вычисления. Хотя их работа была базовой, она заложила теоретическую основу для нейронных сетей, которые будут разрабатываться в последующие десятилетия. Она показала, что путем соединения простых элементов в сеть может возникнуть сложное поведение.
Далее, в 1949 году психолог Дональд Хебб опубликовывает книгу под названием «Организация поведения». В ней он, впервые, предложил теорию о том, как обучение происходит в мозге на нейронном уровне.
Основная идея Хебба заключалась в том, что, когда один нейрон многократно заставляет другой активироваться, связь между ними становится сильнее. Эту концепцию, известную как обучение Хебба, можно было бы обобщить как «клетки, которые активируются вместе, связываются вместе». Она давала объяснение тому, как нейронные пути в мозге усиливаются при повторном использовании.
Обучение Хебба вдохновило некоторые из самых ранних алгоритмов обучения нейронных сетей в конце 1950-х и 1960-х годах. Хотя более новые методы обучения с тех пор вытеснили его, работа Хебба была жизненно важна для соединения биологических нейронных сетей с искусственными.
The Perceptron
Следующим важным этапом в развитии нейронных сетей стало изобретение перцептрона психологом Фрэнком Розенблаттом в 1958 году. Персептрон был типом искусственного нейрона, который можно было обучить классифицировать входные данные по одной из двух категорий т.е. 0 или 1, либо по принципу true false.
Розенблатт основываясь на работе Маккалока и Питтса, добавил ключевое новшество: перцептрон мог автоматически выбрать правильный ответ (версию, сигнал) для своих входных сигналов посредством обучения. Демонстрируя примеры перцептрона и подкрепляя правильные классификации, он постепенно корректировал свои внутренние параметры для выполнения желаемой задачи.
Перцептрон вызвал большой ажиотаж, и New York Times сообщила, что это «зародыш электронного компьютера, который, как все ожидают, сможет ходить, говорить, видеть, писать, воспроизводить себя и осознавать свое существование». Хотя он и не оправдал эту шумиху, перцептрон продемонстрировал потенциал самоорганизующихся нейронных сетей и послужил толчком к дальнейшим исследованиям в 1960-х годах.
Ограничения ранних нейронных сетей
Несмотря на ранний энтузиазм, исследования нейронных сетей столкнулись с серьезными препятствиями в конце 1960-х и 1970-х годов. В своей книге 1969 года «Перцептроны» Марвин Мински и Сеймур Паперт показали, что однослойные персептроны неспособны обучаться даже простым функциям, таким как XOR (исключающее ИЛИ).
Ограничения перцептрона возникли из-за его неглубокой архитектуры — имея только входной и выходной слои, он не мог решать нелинейные проблемы. В то время считалось, что добавление большего количества слоев нейронов для создания так называемых многослойных перцептронов позволит преодолеть это. Однако эффективный способ обучения MLP (многослойный перцептрон) еще не был найден.
Из-за проблем с перцептроном и нехватки вычислительной мощности для экспериментов с более крупными сетями исследования нейронных сетей потеряли импульс. Финансирование иссякло, и многие исследователи переключились на другие области ИИ, такие как экспертные системы и символическое рассуждение. Нейронные сети вошли в «зиму ИИ».
Обучение сетей к обучению
Ключом к практическому использованию нейронных сетей был эффективный способ их обучения. Это произошло в 1986 году с появлением алгоритма обратного распространения. Обратное распространение предоставило способ корректировки многослойной сети на основе ошибки между ее предсказаниями и правильными выходами.
С помощью обратного распространения исследователи теперь могли обучать нейронные сети с одним или несколькими скрытыми слоями, что позволяло им изучать сложные нелинейные функции. Одно из первых успешных применений было в 1989 году Яном Лекуном и его коллегами из Bell Labs. Они использовали обратное распространение для обучения нейронной сети распознаванию рукописных цифр, что затем было развернуто Почтовой службой США для автоматического чтения почтовых индексов в почте.
Хотя обратное распространение было фактически открыто годами ранее в 1970-х годах, оно изначально не получило широкого распространения из-за высоких вычислительных требований для обучения. Только с появлением более мощных компьютеров в конце 1980-х годов оно стало практичным.
Рекуррентные нейронные сети
Другим ключевым достижением 1980-х годов стало изобретение рекуррентных архитектур нейронных сетей. В отличие от сетей прямого распространения, где данные передаются только в одном направлении, RNN имеют связи, которые зацикливаются на самих себе. Это позволяет им поддерживать внутреннюю память и обрабатывать последовательные данные, такие как временные ряды или естественный язык.
Ранние RNN боролись с изучением долгосрочных зависимостей в последовательностях из-за проблемы «исчезающего градиента». Эта проблема была решена в 1997 году Юргеном Шмидхубером и Зеппом Хохрайтером с введением блока долгосрочного краткосрочного запоминающего устройства (LSTM - long short-term memory). LSTM использовали специальные механизмы пропускания для управления потоком информации, что позволяло им эффективно фиксировать долгосрочные взаимосвязи.
LSTM и другие варианты RNN, такие как управляемые рекуррентные единицы (GRU - gated recurrent units), с тех пор использовались для различных задач моделирования последовательностей, включая распознавание речи, перевод языка и генерацию текста. Они стали движущей силой многих крупных прорывов в обработке естественного языка за последнее десятилетие.
эра глубокого обучения
Современная эра глубокого обучения началась в 2009 году с созданием набора данных ImageNet профессором компьютерных наук Фей-Фей Ли и ее коллегами. ImageNet состоял из более чем 14 миллионов изображений в 20 000 категориях, что намного больше, чем любой предыдущий набор данных, используемый для обучения моделей компьютерного зрения.
Наличие такого большого, высококачественного набора данных позволило исследователям успешно обучить очень глубокие сверхточные нейронные сети для классификации изображений. В 2012 году Алекс Крижевский, Илья Суцкевер и Джеффри Хинтон приняли участие в ежегодном конкурсе ImageNet с CNN, которая поразила всех конкурентов, достигнув показателя ошибок в топ-5 всего в 15% по сравнению с 26% для модели, занявшей второе место.
Их модель, названная AlexNet, стала поворотным моментом для компьютерного зрения и глубокого обучения в целом. Она показала, что при наличии достаточного количества обучающих данных и вычислительной мощности нейронные сети могут достигать самых современных результатов даже в самых сложных задачах восприятия. Успех AlexNet возродил интерес к нейронным сетям и положил начало новой волне корпоративных инвестиций.
После AlexNet глубокое обучение быстро захватило область машинного обучения. С появлением более мощных графических процессоров от таких компаний, как NVIDIA, обеспечивающих более быстрое обучение, исследователи начали строить все более крупные и глубокие нейронные сети.
Такие методы, как исключение и пакетная нормализация, позволили успешно обучать сети с десятками или даже сотнями слоев, еще больше раздвинув границы возможного. Глубокое обучение одержало эпохальные победы в таких областях, как распознавание речи, где оно превзошло человеческие показатели по некоторым показателям в 2016 году.
В то же время маркированные наборы данных продолжали расти в размерах. В 2018 году исследователи Google представили набор данных JFT-300M с более чем 300 миллионами маркированных изображений, что позволило им обучать огромные модели с миллиардами параметров.
Увеличение масштаба моделей и наборов данных стало одной из определяющих тенденций последних нескольких лет в глубоком обучении. Сегодня крупнейшие языковые модели, такие как GPT-3 от OpenAI, имеют более 100 миллиардов параметров и обучаются на почти триллионе слов онлайн-текста. Эти массивные модели демонстрируют замечательные возможности обобщения, будучи способными выполнять задачи, для которых они явно не обучались.
В следующих статьях будем погружаться в нейронные сети более глубоко и детально