February 17, 2023

Нейросети. Что это и зачем

Я не специалист по нейросетям, а это такая область, в которой много сложных специфических тем, требующих глубокого погружения. Но я попробую описать, что такое нейросети, не вдаваясь во всякие детали. Если найдёте ошибки, искажающие суть, пишите мне.

Содержание

— Кратко и чуть подробнее о том, как устроены нейросети
— Ключевые моменты
— Вопросы и ответы

Коротко

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

Подробнее

Широкими мазками, нейросеть — не какая-то магия, а нечто вроде Incredible Machine — была такая компьютерная игрушка, где из подручных предметов надо было создать механизм-франкенштейн, выполняющий какие-то простые задачи вроде «проткнуть вон тот воздушный шарик иголкой» (задолго до того, как это стало мейнстримным занятием для военных всего мира). Примеры таких кадавров вы видели в мультике про кота Леопольда, когда немотивированно агрессивные мыши устроили ему высокотехнологичную ловушку: https://m.youtube.com/watch?v=Nn6K_1Npfng (спойлер: боевое применение прошло не как было задумано).

Можно предствить себе «нейроны» нейросети как «ячейки» в эксцеле, каждая со своим числом. Например, в столбце «А» в первой ячейке вы пишете одно число, во второй — другое. Это «входные нейроны», «органы чувств» нейросети. Во втором столбце «B», скажем, десять ячеек, изначально заполненными случайными числами. Это скрытый, «думающий» слой нейронов. В третьем столбце «C» всего одна ячейка — если там «1», значит ваше первое число больше второго. Если «-1», то меньше. Если «0», числа равны. (Пример крайне упрощён, это не практический рецепт, а общая схема для понимания принципов!)

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

Не пытайтесь понять все детали и алгоритмы, их тут нет. Смотрите на общую схему:

1. Компьютер по несложной формуле вычисляет для каждой из ячеек второго столбца «B», будет ли она «активирована». Он берёт два ваших входных числа из столбца «A», берёт число в ячейке второго столбца «B» и считает, получился ли результат больше нуля или меньше (извините, кто в теме, за такой лубок, но для понимания сути не нужно знать ни про пороги, ни про сигма-функцию, ни про backpropagation).

2. По этой же самой схеме активируются нейроны третьего столбца «C», только на вход им попадает содержимое второго столбца «B».

3. Компьютер знает, каким должен быть правильный ответ — вы ему сказали. Если в ячейке столбца «C» ответ неверен, компьютер корректирует числа в ячейках столбца «B». Отчасти случайно, отчасти по принципу: чем ближе исходный результат к правильному, тем больше «поощряются» приведшие к этому числа в столбце «B».

4. «Повторить сто тысяч раз, не взбалтывать». Через множество итераций мы получаем такие числа во втором столбце «B», что когда мы вводим в двух клетках первого столбца «A» любые наши чила, в третьем столбце «C» нас ждёт правильный ответ: больше ли наше первое число, чем второе.

Всё.

Ну не всё, конечно — даже для такой простой задачи нужно будет доделать ещё ряд вспомогательных механизмов, но in essentia, всё будет именно так. Дайте задание своим айтишникам, они всё доделают.

Ещё раз: мы подбираем такие числа в ячейках-«нейронах», чтобы по формуле мы получали нужный нам результат.
— Начинаем с хаоса, со случайных значений.
— Постепенно нащупываем нужное.

И получается та самая Incredible Machine, слепленная методом попыток и ошибок.

(Это ещё не «трансформер», это самая простейшая нейросеть, а о других вариантах — ниже).

Никакой мистики, просто математическая задача по нелинейной оптимизации много циферок и дофига попыток методом тыка.

Как делают кораблики в бутылках? Берут бутылку, пихают туда щепки, нитки, заливают клей, трясут. Получается всякая фигня, иногда кораблики.

(Шутка, конечно — тут отсутствует важнейший «эволюционный» компонент нейросети — обучение на правильных примерах).

Что главное из этого примера мы видим про нейросети?

Им нужно много времени и ресурсов, чтобы обучиться. Много — это МНОГО. Про ChatGPT я читал, что одного электричества на обучение ушло на десятки миллионов долларов. В своём гараже на коленке такое не сделаешь, даже если знаешь все алгоритмы.

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

Нужно, чтобы во время обучения кто-нибудь сравнивал ответы с эталонными. Желательно не в формате «да/нет», а «холодно, теплее, горячо!». Это часто очень непросто, и есть разные решения этой задачи. Например, если вы хоть раз доказывали сайту, что вы человек, ткнув мышкой во все квадратики на фото, где есть светофоры — или если вы вводили текст, неразборчиво написанный на картинке — поздравляю, вы учили нейросеть Гугла распознавать тексты и объекты реального мира. Такой вот Гугл хитрый, сделал «два в одном»: и проверку гуманизма, и краудфандинговое обучение своих сетей.

Обученную нейросеть можно copy-paste. В ваших телефонах есть камеры. В большом числе современных моделей они соединены с чипами, в которых уже заранее обученные нейросети трудятся над улучшением ваших замечательных фотографий, убирая помехи, делая сочнее цвета и резче картинку. Когда-то в лаборатории самсунга, хуавая или эппла мощнейшие компьютеры перелопатили кучу фоток, участь их улучшать. Это было сложно, дорого и долго. Но после того, как они подобрали нужные циферки, их легко запихнули в махонькие процессоры в ваших телефонах. (Иногда даже после этого нейросеть остаётся «тяжёлой». ChatGPT так не запихнёшь, уж очень он огроменный).


Вопросы и ответы

❓ Почему тогда говорят, что «ооооо… никто не знает, как принимает решение нейросеть… ооо, великий шаман…»?

🅰 Ответов два.

Первый, антропологический: люди любят такое эдакое загадочное и посудачить.

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

Вот, посмотрите красивую визуализацию нейросети, которая распознаёт цифры: https://www.youtube.com/watch?v=3JQ3hYko51Y. Две тысячи скрытых нейронов, миллион с гаком синапсов. Здорово, гипнотизирует, как работает — непонятно. А оно нам надо? Мы понимаем, как эта сеть устроена и как обучена, понимаем, какие ответы она скорее всего будет давать — и этого достаточно. Узнать значения параметров в каждом нейроне мы тоже можем, но зачем это нужно?

❓ Несёт ли это нам какую-то угрозу?

🅰 Что считать угрозой. Всё, что мы целиком не контролируем, может быть угрозой per se — даст не ту команду ядерному реактору, включит не тот светофор, напишет студенту-оболтусу такую дипломную, что его выгонят с защиты взашей… Всё, что контролируем не только мы, тоже может быть угрозой. Другой человек может вложить в нейросеть что-то, что нам очень не понравится.

Показателен умильный случай, когда Микрософт отправила свою чатботинку-инженю набираться уму-разуму в комментарии на Reddit. А потом всплёскивала ручками, что девочку испортили, она стала мизантропом-матершинником-расистом-сексистом. А чего вы ждали от таких учителей? Пения псалмов? Это как отправить детишек на воспитание к зэкам-рецидивистам, и удивляться, чего это они даже глядеть на вас стали матом. Виновата ли в таком нейросеть, виновата ли технология? Очевидно, нет.

Давайте зададимся вопросом: является ли угрозой молоток? Чего уж проще. Но нет ведь. Нам придётся уточнять: для кого, в каком случае, какая именно угроза, намеренный вред или случайный, от целевого или нецелевого использования… Всего лишь молоток. А нейросеть — несколько более сложная конструкция. Но именно про нейросеть публика желает знать твёрдо и сразу, нервничает, когда ей пытаются сказать «всё неоднозначно», и торжествует, когда какой-нибудь Маск с высокой трибуны рубит правду-матку: «Нейросети таят в себе скрытые угрозы Человечеству!» (молотки тоже таят, но кого это волнует).

❓ Конкретнее: будет ли восстание машин?

🅰 Конкретнее: если плохие люди их так запрограммируют. Само по себе — вряд ли. Главный враг человека уже сотни тысяч лет — другой человек. В обозримом будущем это не изменится. (См. Big Red Switch https://akry.livejournal.com/1207984.html).

Могу привести три примера, где нейросети могут быть действительно опасны.

Первый: биржевые роботы. Там не обязательно нейросети, но не суть. Роботов может «заклинить», и они ввергнут биржу в пике. Скорость их работы такова, что человек просто не успеет вмешаться. Такие случаи уже были. Люди стараются разработать защиту, но мир сложен, всякое может случиться.

Второй: автоматизированные системы управления стратегическим ядерным оружием. Они тоже могут принять неверное решение, в которе человек не успеет вмешаться. Ценой же этого будет не падение биржи, а уничтожение всего нашего мира. Но снижать скорость работы тоже нельзя, автоматизация для того и делается, чтобы успеть среагировать на угрозу. Потому что все разрабатывают всё более быстрые ракеты и другие способы атаки. Одно дело, когда как встарь ракеты летели час и можно было созвониться с высшим руководством. Другое — когда гиперзвуковая ракета летит с базы в соседней стране, и времени у тебя — минуты.

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

Но, как видите, все эти опасности идут от людей, а не от нейросетей. Значит и чинить нужно «консерваторию».

❓ Какие задачи может решить нейросеть?

🅰 В общем, почти любые — но не все так хорошо, как более подходящие методы. В вышеприведённом примере задачу, очевидно, можно было решить гораздо проще и надёжнее. Как в том анекдоте:

Приходит мужик устраиваться неважно куда на работу.
— Что можете?
— Могу копать.
— А ещё?
— Могу не копать.
— Ну а, например, лестницу можете сделать?
— Могу. Но копать придётся дольше.

Обычно нейросети применяют для задач распознавания, работы с текстами, улучшения изображений и вообще поиска решений для ситуаций, которые не были жёстко запрограммированы.

❓ Почему нейросети лажают?

🅰 А почему мы лажаем? Почему лажают нейросети в наших головах? Спали на лекциях, не сумели достать нужные учебники, просто устали, наши знания неверны… И у нас и у искусственных нейросетей это до конца не вылечить, но можно улучшить результат, если хорошо учиться, хорошо кушать и слушаться маму.

❓ Искусственные нейросети — это как мозг?

🅰 И да, и нет.

Да: и там и там схожие подходы. Множество нейронов, активирующих друг друга, медленное обучение на примерах и так далее.

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

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

❓ Какие профессии нейросети сделают ненужными?

🅰 Технически — все, связанные с думанием. Ага, все. Не сегодня, не завтра, но никаких принципиальных ограничений у нейросетей нет. Сложнее всего нейросетям будет в областях, требующих сложной работы со смыслами. Создание глубоких художественных произведений, качественные литературные переводы, получение нового знания, психотерапия… То есть учёные, психологи, писатели и философы пока выдыхают. И те бизнес-консультанты, которые работают не по методичке, а с живыми людьми. А вот техническим дизайнерам, бухгалтерам, журналистам-новостникам и техписам можно начинать напрягаться.
(Про замену профессий, требующих работы руками-ногами-хвостом, я не скажу, про робототехнику знаю мало. Пока успехи переменные).

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

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

❓ Значит разумные роботы скоро полетят на Марс?

🅰 Вряд ли. Точно не в ближайшее десятилетие. Я уже писал выше про то, что не всякую сеть можно запихнуть в микросхему, размеры и требуемая вычислительная мощность не позволят. Пока нет признаков грядущей революции в создании дешёвых компактных сверхпроизводительных неэнергоёмких вычислительных систем.
Кстати, OpenAI прямо сейчас тратит неслабые деньги на обработку наших часто потешных запросов к ChatGPT, и ещё вопрос, сколько она сможет себе это позволить. В общем, автономных роботов с позитронным мозгом и вшитыми в него Тремя законами робототехники, нам придётся ждать долго. Жалко, конечно.

❓ Нужно ли массово изучать нейросети, раз у них такие перспективы?

🅰 Если вы собираетесь идти скользкой дорожкой IT, то хотя бы минимальный набор знаний и умений в этой области несомненно пригодится. Остальным же полезно понимать в целом, что такое нейросети, чтобы знать, что от них ждать и чего не ждать. И не паниковать понапрасну.

Если вы решились, то вы найдёте невероятное количество курсов, ресурсов, видео, статей и онлайн инструментов по этой мейнстримной теме — как для начинающих, так и для экспертов.

Вот, например, онлайн-нейросеть: https://playground.tensorflow.org/. Вы можете настраивать и запускать её. Но сперва я рекомендую прочитать пояснения внизу.

❓ Можно ли соединить искусственные нейросети с нашими?

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

❓ Могут ли нейросети стать разумными?

🅰 Зависит от вашего предпочитаемого определения «разума». Когда-то говорили, что вот пусть нейросеть научится играть в шахматы. Done. Пусть обыграет лучшего игрока в мире. Done. Шахматы не считаются, они не такие сложные, а вот пусть научится играть в Го. Done. Гм, пусть обыграет чемпиона Го. Done. И так далее.

Есть такой тест Тьюринга: «Человек взаимодействует с одним компьютером и одним человеком. На основании ответов на вопросы он должен определить, с кем он разговаривает: с человеком или компьютерной программой. Задача компьютерной программы — ввести человека в заблуждение, заставив сделать неверный выбор».

Вроде здраво, но критики этого теста немало. Например, ChatGPT по ряду вопросов вполне мог сойти за живого человека. Можно сказать, что чатбот просто манипулирует символами, не понимая смысла беседы — а что тогда такое «смысл беседы»?

Наверное, можно сделать нейросети «разумными» в том смысле, что они мыслят так же как и мы, с теми же глюками, оставшимися нам в наследство от предков — но зачем?

Так что это скорее философский и терминологический вопрос.

❓ Как религии будут реагировать на всё более разумные нейросети?

🅰 Лем в «21 путешествии Ийона Тихого» поразмышлял над тем, что будет с усреднённой авраамистической религией в столкновении с научно-техническим прогрессом. Почитайте, интересный рассказ. Но религий то много, разных. И внутри них разные люди. Каждый будет реагировать как-то по-своему. Кто-то будет отрицать нейросети, полагая их бездушными машинами. А кто-то, возможно, начнёт им проповедовать и требовать законодательно добавлять религиозность в разрабатываемые нейросети. Мечтают ли андроиды об электропастырях?

❓ Кто будет виноват, если нейросеть убьёт человека?

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

❓ Какие есть более сложные конструкции нейросетей?

🅰 Практически любые будут более сложными, у нас тут совсем амёбный пример.
Не будучи специалистом, я не смогу рассказать просто, а сложно вы и сами в Википедии прочитаете. Поэтому скажу то, что мне кажется главным. Нейросети обычно не решают задачу «в лоб» — сразу от входа к выходу в один шаг. Скажем, если это распознавание людей на фото, то вначале нейросеть вообще ищет лица. Потом «разбирает» лицо на составляющие и взаимоотношения между ними. И потом уже сравнивает со своей базой. Если это ответы на вопросы, как у чатбота, то вначале предложение разбивается на ключевые элементы со своими свойствам, выстраивается сетка их взаимоотношений на основе структуры предложения и предыдущих запросов, потом ищутся взаимосвязи со структурами в базе данных нейросети (можно сказать, что это и есть «смыслы»), потом создаётся новая структура ответа, а уже на её основе пишется текст. У ChatGPT он создаётся «пословно» — сеть пишет кусок, потом «перечитывает» его всё тем же сложным путём, и думает, как лучше продолжить, с учётом не только вопроса пользователя, но и того, что нейросеть уже написала. Это, разумеется, опять очень большое упрощение, но я хотел просто показать, насколько неприменим к нейросетям ярлык «граммофона».


Хотите подробнее: https://www.iphones.ru/iNotes/oni-prosto-delali-perevodchik-kak-sverhrazumnyy-bot-chatgpt-rabotaet-ot-pervogo-do-poslednego-slova-01-27-2023

Нейросети используются для создания искусственного интелекта?

Это тоже комплексный вопрос, потому что вариантов «искусственных интеллектов» (AI, artificial intellegence) много.

Можно сказать, что они делятся на две группы.

Первая — «Сильный искусственный интеллект» (Artificial general intelligence, AGI: вместо «сильный» тут «общий», что имхо лучше). Это имитация сознания. Как раз то, с чем можно будет поддерживать непринуждённый разговор. Тут, как мне кажется, без нейросетей не обойтись. Но, как я уже писал выше, вовсе не факт, что нам нужна прямая имитация. Возможно нам потребуется какой-то иной разум. Такой, для которого у нас ещё нет определений.

Вторая — «Слабый искусственный интеллект» (Weak AI, Narrow AI). Это решение каких-то конкретных «разумных» задач. Распознавание образов, движение робопылесоса, вождение автомобиля, создание картинок и текстов…

Здесь слово «интеллект» означает просто «мы делаем что-то, что делает человек» и что на самом деле интеллектом не является. Поэтому методы и реализации могут быть очень разные. Для распознавания образов и создания картинок нейросети видимо подходят лучше. Для поиска оптимального маршрута между множеством локаций для торгпреда прекрасно подходит «муравьиный» алгоритм, безо всяких нейросетей. (В модели между городами запускается миллион муравьёв, и смотрится, у кого из них в итоге будет более короткий путь). Для поиска оптимальной конструкции какой-то детали прекрасно работают «эволюционные» механизмы. (Разные ветви мутируют и конкурируют друг с дружкой, остаётся наиболее приспособленный). Тут нейросети тоже не нужны.

❓ Смогла бы нейросеть написать эту статью?

🅰 Я и сам хотел бы знать. Давайте спросим у ChatGPT?


канал «сплошной неформат»