Как работает нейросеть? Рассказывает журнал «Лучик»

Часто кажется, что технический прогресс, изменяющий жизнь людей, замедлился – «все велосипеды уже изобрели». Что ж, в самом деле, велосипед современного типа – так называемый «ровер», он же «безопасный велосипед» – появился на свет ещё в XIX веке:

Как работает нейросеть? Рассказывает журнал «Лучик» Арты нейросетей, Компьютерная графика, Искусственный интеллект, Научпоп, Детская литература, Образование, Воспитание детей, Культура, Будущее, Инновации, Развитие, Технологии, Наука, Изобретения, Творческие люди, Обучение, Видео, YouTube, Длиннопост

Велосипед Ровер 1885 года

А прогресс готовится совершить очередной огромный шаг в неизведанное. Речь о компьютерных нейронных сетях. Они уже умеют вполне прилично распознавать лица людей, писать и переводить тексты рисовать картины. Сочинять музыку – причём не только простенькую попсу, но и вполне себе «серьёзную», вот послушайте:

Если первые опубликованные результаты работы нейронных сетей, вызывали смех ввиду своей откровенной нелепости, то сейчас – напротив! – нередко вызывают у людей неподдельное восхищение и удивление: как?! Вот это сделал тупой компьютер?!

Как работает нейросеть? Рассказывает журнал «Лучик» Арты нейросетей, Компьютерная графика, Искусственный интеллект, Научпоп, Детская литература, Образование, Воспитание детей, Культура, Будущее, Инновации, Развитие, Технологии, Наука, Изобретения, Творческие люди, Обучение, Видео, YouTube, Длиннопост

Иллюстрация к художественному рассказу, выполненная нейросетью

Это удивляет, радует – но одновременно вызывает кучу вопросов.

Раньше считалось, что компьютеры лишены таких человеческих качеств, как творческое воображение, вкус, инициатива... И вдруг оказывается, что они вполне способны на творческую работу! Причём делают её (в отличие от людей) быстро, дёшево, безропотно, не устают, не болеют. Что же это тогда получается?

Нейронные сети оставят без работы переводчиков и копирайтеров, журналистов и художников, композиторов, поэтов и писателей, а кто будет следующим? Экономисты, врачи, юристы, политики, архитекторы, учителя – все они тоже будут постепенно вытеснены компьютерными программами? А что останется людям?

Однако оставим этические вопросы. Давайте разберёмся, как эти нейросети устроены, как они работают?

Как устроена, из чего собрана нейронная сеть? Само название подсказывает нам, что она состоит из нейронов. Вот тут нас ждёт первый сюрприз! На самом деле нейроном называют нервную клетку человека или любого другого существа, у которого есть нервная ткань. Нервы – это «система управления» живым организмом, те самые «провода», по которым передаются самые разные команды: от относительно простых, типа «сжать пальцы / разжать пальцы», до невероятно сложных («вспомнить теорему Паппа-Гульдина»). По представлениям современных учёных, каждый нейрон может быть в двух основных состояниях – невозбуждённом и возбуждённом.

Внутри компьютера «всё не так». Компьютерный нейрон – это просто... число! Обыкновенное число – скажем, от нуля до единицы. Текст, звук, изображение, музыка – абсолютно любая информация внутри компьютера преобразуется в числовую таблицу – насколько большую, зависит от того, насколько сложная у нас информация. Скажем, для того чтобы «оцифровать» чёрно-белую фотографию квадратной формы, мы можем взять «решётку», «матрицу» размером восемь на восемь точек (всего 64 «нейрона»), а можем – 256 на 256 точек (то есть свыше 65 тысяч «нейронов»). При этом единица будет соответствовать белому цвету, ноль – чёрному, а остальные числа – различным оттенкам серого.

Как работает нейросеть? Рассказывает журнал «Лучик» Арты нейросетей, Компьютерная графика, Искусственный интеллект, Научпоп, Детская литература, Образование, Воспитание детей, Культура, Будущее, Инновации, Развитие, Технологии, Наука, Изобретения, Творческие люди, Обучение, Видео, YouTube, Длиннопост

Изображение разбито на разное число датчиков-нейронов для анализа

Числа-нейроны внутри компьютера организованы в «слои», и эти слои связаны между собой многочисленными связями – будто невидимыми ниточками. При этом каждая связь – это ещё и математическая формула, простая, но очень важная. И у этой формулы есть свои параметры, свои «рычаги управления». Как педали «газ» и «тормоз» на автомобиле. Зачем они? Сейчас объясним.

Как работает нейросеть? Рассказывает журнал «Лучик» Арты нейросетей, Компьютерная графика, Искусственный интеллект, Научпоп, Детская литература, Образование, Воспитание детей, Культура, Будущее, Инновации, Развитие, Технологии, Наука, Изобретения, Творческие люди, Обучение, Видео, YouTube, Длиннопост

Здесь взаимодействуют два компьютерных нейрона (выделены жёлтым)

Изначально нейронная сеть абсолютно глупа, она ничего не умеет и не знает. И все связи между нейронами одинаковы. Но вот начинается самое интересное – обучение нейросети! Да-да, компьютерная нейросеть, прежде чем заработать, должна пройти (иногда очень долгий и трудный) процесс обучения. Который в чём-то очень похож на обучение детей в школе.

Допустим, мы хотим научить нейросеть отличать нарисованный круг от нарисованного треугольника. С помощью специальной программы мы «показываем» нейронам первого слоя («сенсорам», «датчикам») самые разные круги и треугольники. Десятки, сотни, тысячи! Да что там тысячи – скажем, обучающий набор данных («датасет») Digi-Face 1M содержитсвыше миллиона фотографий человеческих лиц! И каждый раз мы как будто нажимаем на кнопку «это треугольник» или «это круг» – то есть как бы «говорим» сети, что именно изображено, «объясняем» ей. При этом сама нейросеть тоже пытается «угадать», что именно изображено – и все её нейроны как бы «голосуют», каждый за свой вариант.

Как работает нейросеть? Рассказывает журнал «Лучик» Арты нейросетей, Компьютерная графика, Искусственный интеллект, Научпоп, Детская литература, Образование, Воспитание детей, Культура, Будущее, Инновации, Развитие, Технологии, Наука, Изобретения, Творческие люди, Обучение, Видео, YouTube, Длиннопост

Устройство более сложной многослойной нейросети

Помните, мы говорили о том, что каждая связь в нейронной сети – это формула с «рычагами управления»? И вот тут начинает работать известный людям (особенно школьникам) с давних времён «метод поощрения и наказания». Те нейроны, которые ошиблись, «проголосовали» за неправильный вариант ответа, «наказываются» – им не ставят двоек, но вот связи между ними ослабляются, и в следующий раз голос «двоечника» будет учитываться меньше. Те нейроны, которые «голосуют» правильно, напротив, «поощряются» – только вместо пятёрок их связи усиливаются (математически), при следующем «голосовании» их голоса будут слышны «громче» остальных. Наконец, после достаточного количества «уроков» (и если сама нейронная сеть построена правильно, то есть верно выбраны число нейронов и их слоёв), мы получаем готовую к работе обученную сеть. Уррра, заработала!

«Но как с помощью каких-то чисел можно узнавать предметы?!» – спросите вы. Это вполне возможно! Рассмотрим самый простой пример. Представьте себе плоскость, лист бумаги, в одной части которого нарисованы самые разные кошки, а в другой части – самые разные собаки. Процесс «угадывания» компьютерной нейросетью похож на выбор какой-нибудь точки на этом листе бумаги – если мы попали в область с кошками, то отвечаем «кошка». А если попали в область с собаками, отвечаем «собака». Но погодите! Ведь мы же можем взять линейку и просто провести через лист линию, которая отделит область с собаками от области с кошками! А любая прямая линия в математике записывается очень простым уравнением:

y = ax + b

Такое уравнение называется «линейным». У него всего лишь два параметра, два «рычага управления» – это числа a и b. Это означает, что абсолютно любую прямую линию на плоскости мы можем построить, зная всего лишь два числа! Когда мы только начинаем обучение нейросети, значения этих чисел «какие-то», взятые с потолка и совершенно неправильные. Но когда нейросеть в процессе обучения «тыкает и угадывает», она как бы немножечко изменяет эти числа, «сдвигает» так, чтобы в результате наша прямая точно отделила всех собак от всех кошек! И – вуаля! – наша задача решена, нейросеть умеет распознавать кошек и собак!

Как работает нейросеть? Рассказывает журнал «Лучик» Арты нейросетей, Компьютерная графика, Искусственный интеллект, Научпоп, Детская литература, Образование, Воспитание детей, Культура, Будущее, Инновации, Развитие, Технологии, Наука, Изобретения, Творческие люди, Обучение, Видео, YouTube, Длиннопост

Подбирая положение линии, мы можем научиться отличать собак от кошек на листе бумаги

«А если собаки и кошки раскиданы вперемешку, а?» – спросите вы. Ну что ж, тогда нам может потребоваться не одна линия. И возможно не две и не три, а целый десяток или даже сотня. Важно понять, что рано или поздно мы сможем с помощью обыкновенных чисел и прямых «поделить» наш лист так, чтобы нейросеть уже знала наверняка – что именно она «видит», кошку или собаку, в чью именно область она «ткнула пальцем». Теперь понятно?

«Ну ладно, в отличить кошку от собаки с помощью математики это ещё можно поверить – скажете вы – но как быть с теми же самыми рисунками? С рисованием? С написанием музыки?». Будете смеяться – но снова «всё почти как в школе». Скажем, рисование. Сперва многослойную нейросеть снова обучают на уже существующих многочисленных картинах, фотографиях, образах. Учат её определять «контент» – то есть форму предметов, цветовую гамму, контуры, линии, углы... А затем подают «на вход» уже обученной системы что-нибудь «другое». Какую-нибудь каляку-маляку или «цветовой шум», хотя это может быть и вполне себе «нормальное» изображение – просто другое, «постороннее». И тогда система – её же научили этому! – начинает как бы находить внутри постороннего знакомое и усиливать. Примерно как мы, люди, глядя на облака, узнаём контуры знакомых животных – то верблюда, то льва, то собаки... В точности так же нейросеть может «применить» заученный «стиль» – то есть некую совокупность цветов, линий, форм и так далее – к заданной картинке. И получить, скажем, картину «Утро стрелецкой казни», написанную Ван Гогом. Или Эдвардом Мюнчем. Учёные, которые любят мудрёные слова, называют это «инцепционизм» (язык сломаешь, но тут мы не виноваты).

Как работает нейросеть? Рассказывает журнал «Лучик» Арты нейросетей, Компьютерная графика, Искусственный интеллект, Научпоп, Детская литература, Образование, Воспитание детей, Культура, Будущее, Инновации, Развитие, Технологии, Наука, Изобретения, Творческие люди, Обучение, Видео, YouTube, Длиннопост

Применение стиля к изображению

С музыкой всё даже проще, чем с изображением – это красок может быть сотни и даже тысячи, а нот всего семь (точнее, двенадцать, но это тоже немного). Сперва мы обучаем нейросеть – то есть учим её распознавать ритмический рисунок, мелодию, движение нот – вверх, вниз, скачками или плавно. А затем берём обычный шумовой сигнал, «белый шум», применяем к нему нашу нейросеть – и вдруг получаем нечто музыкальное на выходе! Само собой – это «нечто» будет именно в том стиле, на который нашу нейросеть «натаскивали». Если нейросеть «учили» на рок-музыке – будет рок. Если на рэпе – то непременно будет рэп. Но уже какой-то «свой», не точная «копия», а нечто среднее, где будут те или иные элементы от каждого «урока». Не так ли работают и живые композиторы, кстати?

Как работает нейросеть? Рассказывает журнал «Лучик» Арты нейросетей, Компьютерная графика, Искусственный интеллект, Научпоп, Детская литература, Образование, Воспитание детей, Культура, Будущее, Инновации, Развитие, Технологии, Наука, Изобретения, Творческие люди, Обучение, Видео, YouTube, Длиннопост

Применение стиля к изображению нейросетью

...Или поэты с писателями? Ведь что такое, например, литературная пародия? Когда к одному тексту применяют «стиль» определённого автора? Скажем, как в книге «Парнас дыбом» – где известное всем детское стихотворение «Жил-был у бабушки серенький козлик» как будто «писали» разные авторы. То Иван Андреевич Крылов:

У старой женщины, бездетной и убогой,
Жил козлик серенькой, и сей четвероногой
В большом фаворе у старушки был...

То Александр Сергеевич Пушкин:

Одна в глуши лесов сосновых
Старушка дряхлая жила,
И другом дней своих суровых
Имела серого козла...

То Алексей Константинович Толстой

А уж кто бы нам песню-былину завёл,
Чтоб забыть и печаль и нелады.
Как живали старуха и серый козёл.
Ой, ладо, ой, ладушко ладо!

Вот и нейронная сеть: её обучают на определённом материале (скажем, на текстах Пушкина). И она как бы заучивает его характерные обороты, подбор слов, длину фраз – в общем, «стиль». А затем обученную сеть запускают на совершенно другом материале – да хоть на репортаже с футбольного матча! Неожиданно интересная штука может получиться, не так ли?

«Что же тогда – спросите вы – нейронные сети вообще могут всё?». Ну, не знаю, огорчим мы вас или обрадуем, но... нет, не всё. Чего то нейросети не умеют «пока», и возможно в дальнейшем они этому научатся. А что-то для них недоступно в принципе. Итак, где же у нейросетей проблемы?

Проблема номер один – для обучения нейросети нужно очень много информации. Чтобы научить нейросеть отличать кошку от собаки, ей нужно показать тысячи (лучше миллионы) самых разных кошек и собак. Воспитанник детского садика в возрасте трёх лет кошку с собакой не спутает, даже если видел их всего лишь пару раз в жизни...

Проблема номер два: нейросети совершенно не умеют анализировать собственные творения, объяснять, «что здесь нарисовано и почему», в частности, они не умеют считать! Из-за этого компьютерные изображения постоянно рисуют людей то с шестью, то с восемью пальцами. Или кошек то с тремя, то с пятью лапами.

Как работает нейросеть? Рассказывает журнал «Лучик» Арты нейросетей, Компьютерная графика, Искусственный интеллект, Научпоп, Детская литература, Образование, Воспитание детей, Культура, Будущее, Инновации, Развитие, Технологии, Наука, Изобретения, Творческие люди, Обучение, Видео, YouTube, Длиннопост

Кошки с неправильным количеством лап – это обычное дело для нейросетей

Проблема номер три: для работы нейросеть должна быть обучена, у неё отсутствует фантазия. Я уже упоминал про свой рассказ «Велозавр и велотавры», для которого нейронная сеть нарисовала очень хорошую иллюстрацию с мальчиком на велосипеде. Но вот когда я «попросил» систему нарисовать того самого велозавра или велотавра, она... она просто не понимала, о чём идёт речь! И упорно рисовала мне обыкновенного велосипедиста на дороге. Догадаться «скрестить» велосипед с динозавром или велосипед с кентавром? Это было вне её понимания! В общем, нарисовать бегемота нейросеть сумеет. А вот бармаглота из сказки про Алису – нет.

Проблема номер четыре: нейросеть не умеет работать при нехватке информации, «достраивать недостающее». Скажем, человеческий детёныш, даже малыш, увидев кошачий хвост, торчащий из-под дивана, тут же уверенно «распознает» спрятавшегося котёнка и побежит ловить его! Нейросеть такое «неполное» изображение понять не в состоянии. Человек, исказивший внешность (скажем, надевший маску или загримированный) для современной нейросети опять же становится неузнаваемым.

Проблема номер пять: нейросеть совершенно не понимает законов нашего мира – скажем, тех же законов оптики. Она никогда не сможет различить на картине человека – и его отражение в зеркале (для живого человека – задачка пустяковая). Она никогда не сможет различить человека или его лицо в кривом зеркале (как это делаем мы на аттракционе «Комната смеха» в городском парке, или когда разглядываем самих себя в новогодние шарики).

Проблема номер шесть: нейросети чрезвычайно чувствительны к разного рода помехам, дефектам, «шуму». Скажем, если на старой фотографии часть изображения залита грязью, чернилами, испорчена пятнами или царапинами, сильно выцвела, если карточка разорвана или разрезана напополам – уверенное узнавание тут же становится неуверенным и вообще ошибочным. Для человека сломанная на части кукла – всё равно кукла; для нейросети – это уже совершенно другой, неизвестный объект.

Проблема номер семь: нейросети на текущий момент ужасающе «однопрограммны». Если нейросеть настроена на распознавание лиц – она будет уметь только распознавать лица. Переучить её на написание текстов или музыки будет чрезвычайно сложно, часто вообще проще написать и обучить совершенно новую сеть. Если она умеет отличать квадраты от треугольников – даже не пробуйте попросить её отличить кошку от собаки или самолёт от парусной лодки...

Проблема номер восемь: связи между компьютерными нейронами случайны, поэтому нейросети лишены запоминания созданных образов. На приказ «нарисуй мне дерево» нейросеть охотно откликнется и будет рисовать деревья снова и снова, но... каждый раз это будет «другое дерево». И если вы напишете команду «нарисуй мне такое же дерево, как в прошлый раз, только на берегу реки», нейронная сеть не поймёт вас. Она опять нарисует «новое случайное дерево».

Как работает нейросеть? Рассказывает журнал «Лучик» Арты нейросетей, Компьютерная графика, Искусственный интеллект, Научпоп, Детская литература, Образование, Воспитание детей, Культура, Будущее, Инновации, Развитие, Технологии, Наука, Изобретения, Творческие люди, Обучение, Видео, YouTube, Длиннопост

У нейросети неплохо получаются пейзажи, а вот в парусах она разбирается "приблизительно"...

Однако вернёмся к началу нашего разговора. Задайтесь вопросом – а способна ли нейросеть, например, придумывать законы? И ответ здесь будет скорее «да», чем «нет». Существует огромное количество законов, юридических документов – если «пропустить» их все через достаточно сложную нейросеть, она вполне будет в состоянии «заговорить» тягомотным и малопонятным юридическим языком, начать «штамповать» циркуляры и распоряжения... Но захотите ли вы жить по законам, которые штампует компьютер?

Способна ли нейросеть ставить диагноз больному в поликлинике и назначать лечение? Снова «да» – но врач-человек несёт ответственность за принятое решение. У нейросети никакой ответственности (а уж тем более ни совести, ни сострадания) быть не может – если она вдруг ошиблась, то... ничего. Ну, ошиблась и ошиблась, это же компьютер, а что человек пострадает при этом – а кого это волнует? Захотите ли вы лечиться у таких врачей?

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

Как работает нейросеть? Рассказывает журнал «Лучик» Арты нейросетей, Компьютерная графика, Искусственный интеллект, Научпоп, Детская литература, Образование, Воспитание детей, Культура, Будущее, Инновации, Развитие, Технологии, Наука, Изобретения, Творческие люди, Обучение, Видео, YouTube, Длиннопост

В журнале «Лучик» мы рассказываем:

  • Почему Земля вращается? Как устроена бесконечность? Как измеряют расстояние до звёзд? Что такое энтропия, и грозит ли вселенной тепловая смерть? Что такое гравитация и гиперпространство, и почему время нам только кажется?

Как работает нейросеть? Рассказывает журнал «Лучик» Арты нейросетей, Компьютерная графика, Искусственный интеллект, Научпоп, Детская литература, Образование, Воспитание детей, Культура, Будущее, Инновации, Развитие, Технологии, Наука, Изобретения, Творческие люди, Обучение, Видео, YouTube, Длиннопост