Маленький творец: может ли ребенок создать искусственный интеллект и зачем это нужно

Искусственный интеллект давно рядом с нами — это беспилотные автомобили, системы распознавания речи и лиц, игровые боты. Считается, что заниматься нейронными сетями очень сложно и долго. Вместе с онлайн-школой Кодабра и преподавателями Николаем Ведерниковым и Павлом Якуповым разбираемся, могут ли дети создавать искусственный интеллект и зачем им вообще этому учиться.
Маленький творец: может ли ребенок создать искусственный интеллект и зачем это нужно
pixabay.com

Что такое искусственный интеллект

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

РЕКЛАМА – ПРОДОЛЖЕНИЕ НИЖЕ

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

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

Нейронные сети решают три типа задач:

  • Классификация. Например, программе показывают миллион картинок, а она должна выбрать из них только собак. По такому же принципу работают сети, распознающие голос, лица и почерк.
  • Кластеризация. Перед тем отдать как миллион картинок для классификации, их нужно разложить по категориям — этим и будут заниматься нейронные сети.
  • Обучение с подкреплением. Для решения этих задач создают то, что чаще всего называют искусственным интеллектом — голосовые помощники вроде Алисы и 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, Яндекс. Если ребенок в будущем сможет создать сеть, например, ту, что понимает номер автомобиля и выдает талон на парковку, он точно будет востребован на рынке труда.

РЕКЛАМА – ПРОДОЛЖЕНИЕ НИЖЕ


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