Маленький творец: может ли ребенок создать искусственный интеллект и зачем это нужно
Что такое искусственный интеллект
Искусственный интеллект — это попытка воссоздать человеческий мозг для решения сложных задач. Сейчас под искусственным интеллектом чаще всего понимают искусственные нейронные сети. В человеческом мозгу нейроны передают друг другу импульсы — так человек воспринимает информацию, запоминает ее, обдумывает и принимает решения.
В нейронных сетях настоящих нейронов нет — это абстракция, описанная с помощью математики. Сети состоят из многих слоев — один нейрон не сможет решить в какой момент беспилотный автомобиль должен повернуть направо, а полтора миллиарда смогут.
Хотя нейронные сети — это модель, для ее работы нужны интерфейсы, которые помогают человеку получать из нее информацию, и аппаратная часть, которая состоит из процессоров или видеокарт. От аппаратной части зависит скорость работы нейронной сети.
Нейронные сети решают три типа задач:
- Классификация. Например, программе показывают миллион картинок, а она должна выбрать из них только собак. По такому же принципу работают сети, распознающие голос, лица и почерк.
- Кластеризация. Перед тем отдать как миллион картинок для классификации, их нужно разложить по категориям — этим и будут заниматься нейронные сети.
- Обучение с подкреплением. Для решения этих задач создают то, что чаще всего называют искусственным интеллектом — голосовые помощники вроде Алисы и Siri, интеллект для беспилотных автомобилей, боты для игры.
В некоторых программах, например интеллекте для беспилотных автомобилей, используется несколько нейронных сетей: одни занимаются классификацией, чтобы понять, где сейчас едет автомобиль, другие — принимают решения на основе стимулов, чтобы автомобиль останавливался, ехал или поворачивал.
Как обучают искусственный интеллект
Сначала сеть создают, то есть описывают с помощью языка программирования ее архитектуру. Чтобы описать архитектуру, нужно указать количество слоев, количество нейронов в каждом слое и связи между нейронами разных слоев. Дальше подготавливают данные для обучения и запускают его. Каждый слой сети решает свои задачи: например, вся сеть определяет почерк и один слой ищет завитки, другой объединяет их.
Обучение проще всего рассмотреть на примере распознавания сигналов светофора. Есть четыре нейрона — первые три распознают цвета. Четвертый нейрон получает информацию о том, какой сигнал светофора зажегся, и передает дальше информацию о том, что нужно делать: останавливаться, подождать или переходить дорогу. Сигнал он получает в виде 0 или 1, а результат может выдать в виде 0, 0,5 и 1. Если сигнал светофора зеленый, то от «зеленого» нейрона приходит 1, обрабатывающий нейрон умножает ее на коэффициент 0 и получает в результате 0, что значит, можно идти.
Вся суть в подборе коэффициентов. Если они подобраны правильно, то нейронная сеть выдает правильный результат. Если они подобраны неправильно, то по определенным алгоритмам коэффициенты подбираются заново. Именно в описании алгоритмов заключается вся сложность.
Что нужно знать, чтобы создать искусственный интеллект
Чтобы работать с нейронными сетями, нужно понимать, как работают алгоритмы и уметь их описать с помощью языка программирования. С языком все просто — нейронные сети часто пишут на одном из самых популярных и простых языков Python. Также для этого используют C#.
С алгоритмами сложнее — чтобы понять, как они работают, нужно разбираться в высшей математике хотя бы на уровне второго курса технического университета. Без этого сложно полноценно работать с нейронными сетями. Но некоторым взрослым разработчикам это не мешает, они рассматривают нейронные сети как черный ящик: не так важно, как они работают, важнее как правильно их обучать.
При этом для языка Python существует множество библиотек, с помощью которых можно «соткать» код как одеяло из лоскутков. Для этого необязательно понимать работу алгоритмов от начала до конца, но нужно знать некоторые основы. Например, что такое градиент и антиградиент, понимать, что такое функции и производные и уметь работать с матрицами. Матрицы проходят в школе уже только в старших классах, но именно они нужны, чтобы считать коэффициенты нейронной сети.
Получается, что даже в шестом или седьмом классе, можно разобраться с основами нейронных сетей, если понимать основы алгебры, изучить матрицы и знать основы программирования на Python. Но главное это желание, если ребенок хочет, он разберется с трудной темой почти в любом возрасте. Просто ему понадобится чуть больше сил и времени.
Может ли ребенок создать нейронные сети
Дети могут создавать простые нейросети, особенно с использованием библиотек. Проще всего детям создать сети для классификации, например, распознающие вид цветка. Также несложно создать бот для игры в прятки, бот, который сам будет играть в простую игру, например, Flappy bird. С более сложными играми дети скорее всего не справятся. Например, чтобы создать бота для шахмат нужно не только разработать и обучить сложную нейронную сеть, но и получить доступ к быстрым видеокартам, на основе которых сеть будет работать.
Детям может недоставать упорства, особенно в седьмом-восьмом классах — в этом возрасте хочется все попробовать, но также велик риск бросить то, что не получается. Но если ими движет любопытство, то все получится.
Петр, 16 лет: Я выбрал курс нейронных сетей, так как изучил Phyton, разрабатывая 2D-игры и решил углубиться в него. Мы уже написали самообучающуюся программу для распознавания рукописных чисел и стали создавать программу для распознавания элементов одежды.
Мне нравится этим заниматься, но сложнее всего найти ошибку или описку в коде. Больше всего в обучении мне помогает любопытство. Мне нравится работать с сетями, ведь они могут использоваться для быстрого обучения и точно помогут работать с роботами. Но я бы хотел создать в будущем что-то попроще, например, интернет-магазин.
Ксения, 17 лет: Я стала изучать нейронные сети, чтобы понять, в какой вуз я буду поступать. Поэтому я хотела понять, как работают нейронные сети и где применяются. На курсе мы создали несколько нейронных сетей: для распознавания рукописных чисел, для классификации ирисов, для предсказания стоимости акций Facebook (Социальная сеть признана экстремистской и запрещена на территории Российской Федерации). Также я работала с алгоритмами, которые советуют пользователю фильмы, основываясь на его предыдущих предпочтениях.
Мне помогает то, что я умею самостоятельно находить нужную информацию и не сдаюсь, даже если что-то не получается. Я не справилась бы без математики и базовых знаний в Python. Сложности заключаются в том, что я пока плохо ориентируюсь в библиотеках для нейронных сетей. Чтобы подобрать оптимальное решение, нужно понимать, что уже было реализовано. А для этого нужно больше практиковаться и читать больше дополнительных материалов.
Одним из детей, которые смогли в раннем возрасте создать искусственный интеллект, стал Танмай Бакши. Он начал изучать программирование в 5 лет и уже в 14 у него есть приложение для игры в викторину наподобие Watson. Сейчас Танмай работает вместе с менторами из IBM.
Зачем ребенку нужно изучать искусственный интеллект
Это приносит удовольствие. Детям нравятся нейронные сети, как забавные игрушки. Это напоминает дрессировку животного и кажется, что ты оживляешь неживое, делаешь его умнее или глупее. Также детям интересно проверять возможности сетей — рисовать получетверку или полупятерку и смотреть, справятся ли алгоритмы.
Пригодится для профессии. Если привить в старших классах интерес к нейронным сетям, то есть шанс, что ребенок вернется к этому в вузе и сделает своей профессией. Нейронные сети востребованы везде — от решения бытовых задач до конструирования военной техники и оружия. Специалисты по нейронным сетям нужны во многих компаниях, в том числе, Tesla, Google, Яндекс. Если ребенок в будущем сможет создать сеть, например, ту, что понимает номер автомобиля и выдает талон на парковку, он точно будет востребован на рынке труда.
Дополнительные знания. Изучая нейронные сети, дети прокачивают и другие навыки, например, усиливают навыки программирования. А алгоритмическое мышление и математика «ум в порядок приводят». К тому же дети могут влюбиться в естественные науки, например, в нейробиологию и сделать карьеру в этой области.
Материал подготовлен совместно с онлайн-школой Кодабра