За последние десять лет появилось много причин для бурного роста достижений в сфере машинного обучения. Сейчас мы имеем мощное техническое обеспечение для быстрых вычислений, а накопители как никогда дешево стоят. Данные в наше время – не просто данные, а «большие массивы данных», которые бережно копятся и, более того, являются общедоступными в таких репозиториях, как ImageNet. Это уже само по себе можно считать настоящим подарком. Но благодаря искусственному интеллекту приоткрылась дверь для кое-чего действительно грандиозного – Нейронных Сетей.
Нейронные и что с того?
Нейронные сети. Наверное, вы о них слышали. Они на передовой общего помешательства на машинном обучении и являются двигателем многих наиболее впечатляющих достижений. Какая технология приблизилась к уровню профессионалов в игре Го и популярной компьютерной игре Starcraft? Нейронные сети. Что в основе алгоритмов, которые распознают изображения и лица и которые уже являются причиной нешуточной тревоги из-за нарушения частной жизни? Нейронные сети.
И все же, нейронные сети – не новая технология, порожденная инкубатором гигантской технологической компании. И не гениальная идея студента колледжа, бросившего учебу и основавшего революционную по своей сути техническую фирму. На самом деле нейронные сети – это история прошлых лет. Хотя уже не прошлых.
Концепция нейронной сети (к этому мы вернемся позже) популярна уже много лет. Они появились в 1970-е, а их более простые версии существовали еще в 1940-х. Тогда почему они стали так популярны только сейчас, если существуют уже много лет?
Причина этого кроется в техническом обеспечении и совершенствование данных, упомянутых ранее. Нейронные сети обрабатывают большое количество цифр. Для обучения им необходимо очень много данных. До последних лет обучение включало в себя простые сети, правда, дорогие, но позволяющие экономить время.
Благодаря большим изменениям в сфере технического обеспечения возможность использования более продвинутых Нейронных Сетей стала реальной. Графические процессоры (англ. graphics processing unit, GPU), изначально разработанные для нужд индустрии развлечений и криптомайнеров, способны молниеносно выполнять специфичные математические операции. Такие же виды операций, к счастью, используются и в обучающих нейронных сетях. Технология, изначально разработанная для красивых визуальных эффектов в фильмах и видео-играх, помогает нам обучать сети за долю секунды в отличие от традиционных графических процессоров
Почему они так называются?
Мощь Нейронных Сетей может быть очевидна, но кто-то может удивиться, узнав, что для них является основополагающим. В имени уже есть некоторые ответы. Нейронная Сеть – это не одиночный объект, самостоятельно принимающий решение. Это сеть с более мелкими объектами, которые связаны между собой. Какими объектами? Мы называем их Нейроны. Как те Нейроны, которые в клетках нашего мозга? Да! Хотя не совсем, но что-то в этом роде!
Можно считать, что Нейроны в Нейронной Сети как нейроны в мозге – крошечные, отдельные элементы, которые соединены с другими нейронами в большую структурированную сеть. Соединения позволяют крошечным частичкам данных перемещаться между ними. Подобный процесс в нашем мозге называется электрическим импульсом. В Нейронных Сетях между Нейронами перемещаются цифры. Затем нейроны берут все числа, передаваемые им другими связанными с ними нейронами, и обрабатывают их. Сам процесс совершенно не сложный и на самом деле банально простой. Все же это лишь крошечный элемент – простая клетка в нашем мозге. Но затем нейрон отправляет обработанную информацию другим нейронам, к которым он подключен. Еще одно число. Еще один электрический импульс. И так далее. Крошечные нейроны получают крошечные фрагменты данных, выполняют над ними вычисления и передают их другим Нейронам, которые делают то же самое снова и снова, пока наконец не будет достигнут конечный набор нейронов, который и будет являться финальным результатом.
Вследствие общих усилий большого количества маленьких отдельных элементов, связанных вместе, с идеально выверенным набором весов мы можем достичь огромной вычислительной мощности. Целое имеет большее значение, чем Сумма его частей.
Балансировка