Недавно меня пригласили в закрытый чат в телеграмме – Нейронные сети (AI Community). В этом чате собрались полторы тысячи специалистов и людей, интересующихся нейронными сетями, машинным обучением и работой с данными. Я попал туда из-за рабочего интереса к теме, но, к своему удивлению, узнал, что многие начали свой путь в познании нейронных сетей недавно. До этого у меня был стереотип, что ИИ занимаются только избранные люди с математическим образованием, но, как в известной пословице, “не боги горшки обжигают”.
Из чата я узнал, как люди изучают построение нейронных сетей с нуля. Я тоже решил заняться самообучением и хочу поделиться своими первыми шагами в этом процессе. Я начал с понимания нейронных сетей и определения того, как они работают с математической точки зрения.
В этом мне помогли следующие два видео:
Для тех кто, не уверен в своем английском, есть возможность подключить субтитры с автопереводом, автор говорит отчетливо, так что система очень точно записывает его слова.
Часть первая. В ней идет постановка проблемы и дается определение нейронной сети на примере распознавания рукописного ввода чисел. Видео требует понимания математики на уровне старшей школы/первых курсов ВУЗа, однако проблема разобрана постепенно и в общем виде ее поймет каждый.
Представьте, что перед вами написанное от руки число. Вне зависимости от особенностей почерка, человек легко отличит 3 от 6 или 1. Как быть компьютеру? Наклон, размер и даже вид различных цифр отличается каждый раз. Чтобы решить такую сложную задачу, нужно разбить ее на несколько меньших частей. Если представить поле, на котором вводятся числа в виде квадрата, состоящего из пикселей, как цифровое изображение, то можно задать числовое значение каждого пикселя, в зависимости от того закрашен он или нет. Таким образом мы перевели рукописный ввод на язык математики, понятный компьютеру.
Теперь у нас имеется поле Х на Х пикселей и столько же нейронов, каждый из которых представлен значением, в зависимости от цвета. Такая запись позволит нам создать первый из нескольких слоев нейронной сети. Первый слой предопределяет другие слои, которые отвечают за описание соединений пикселей между собой. В результате нескольких слоев, многочисленных связей, а также функций, нейронная сеть способна дать результат в виде предсказания записанного числа.
Вторая часть рассказывает как происходит сам процесс обучения нейронной сети, что именно отличает нейронную сеть от обычной длинной математической формулы.
Для обучения нейронной сети из первого примера нужен набор данных, который изначально верно размечен человеком. То есть сеть решает задачу и получает ответ, верно она справилась или нет, как будто заглядывает в конец учебника по математике. С помощью изначального набора данных сеть сможет “тренироваться”, получая результаты. Чем больше сеть угадывает правильный результат, тем крепче становятся связи между нейронами на разных слоях, которые отвечают за успешный результат. После сравнительно большого числа повторений, нейросеть станет давать правильный ответ с определенной, достаточно высокой вероятностью.
Для оценки результатов тренировки создается еще одна функция, которая оценивает отклонение. Такую функцию называют функцией ошибки или функцией потерь (cost function). Задача обучения состоит в нахождении минимума этой функции. Сам процесс обучения т.н. backpropagation (Метод обратного распространения ошибки) будет рассмотрен в следующем видео, которое выйдет скоро.
Я подписался на канал и буду держать вас в курсе новых лекций. Для того, чтобы приближать светлое будущее с технологическим прогрессом, нужно понимать, как он работает и с чем именно он нам поможет. В следующей части я сделаю обзор самых популярных курсов для новичков по ИИ и machine learning.
Один из таких курсов начинается на Coursera с 30 октября 2017 года. “Введение в машинное обучение” - это стартовый курс по машинному обучению от Школы Анализа Данных Яндекса и Высшей Школы Экономики. Я записался на этот курс сейчас, у вас тоже есть возможность присоединиться. Курс бесплатный, если вы не хотите получить сертификат о прохождении по завершению.
Чтобы получить приглашение в чат о нейронных сетях, свяжитесь со мной в telegram @vintego
В тексте представлена моя попытка пересказать то, что я усвоил из двух видео. Если я где-то ошибся в своих описаниях, с удовольствием выслушаю дополнения или критику. Если кто-то из читателей готов помочь нам с простым и грамотным объяснением нейронных сетей для широкой аудитории, мы с удовольствием готовы сотрудничать, свяжитесь со мной.
Автор: Александр Грун
Привет, это редакция канала the Robot. Если тебе понравилась эта статья или тематика нашего канала – нажми лайк и подпишись, чтобы не пропустить новые материалы.
Новости о роботах и ИИ теперь можно читать там, где тебе удобно, присоединяйся!
Наш telegram канал : https://t.me/robotics_channel
Наш сайт: https://the-robot.ru/