От редакции TexTerra Daily: наш ведущий аналитик Саша Белов при работе с аналитикой на клиентских проектах пользуется нейросетью. Мы заставили его на пальцах объяснить, что это, как работает и зачем бизнесу: модная ли это фишечка или же реальная возможность увеличить прибыль.
Суть нейронных сетей
Что такое нейронная сеть? Вот на пальцах – это огромный сервер? Программа? Или что?
Нейронная сеть – это не какая-то физическая программа, скорее, метод машинного обучения на тех или иных данных.
Коротко говоря, существуют простые схемы: калькулятор складывает один и один, получается два, но и все. А есть более сложные, когда машина сама учится действовать так, чтобы имитировать деятельность нейронных связей в мозгу человека. Это и есть нейросеть.
Как и настоящая нейронная сеть в мозгу человека, она тоже состоит из нейронов, – только представленных математическими функциями, а не живыми клетками.
То есть это такой Excel, но со способностью сопоставлять данные и выявлять закономерности?
Excel – это в некотором роде тоже «калькулятор», просто все его функции зашиты в строчках, которые так и называются – функции или формулы. Сам по себе он ничего не анализирует, только выполняет чисто математические действия.
От обычной программы – даже очень крутой – нейросетка отличается тем, что у нее в базе постоянно появляются новые данные, на которых вы ее обучаете. От этого зависит то, насколько хорошо она работает. Даете вы ей тысячу готовых решений, она обучается, и на новую задачу выдает вам решение, точное на условные 50 %. А даете миллион – и она дает ответ, точный на условные 99 %.
Допустим, есть у вас программа, которая распознает текст на фото. Заливаете фото и получаете результат: в целом, нормальный, но чуть-чуть кривой. Где-то что-то не совпадает, например, иногда «ы» распознается как «ь!». А вот если у вас нейросеть, которая не только действует по заданному алгоритму, но и постоянно обучает свои нейронные связи, увеличивает базу, регулярно пересобирает собственную конфигурацию, чтобы повысить точность работы, то уже через полгода эта точность повысится до условных 99 %.
Если нужен какой-то простой и понятный пример, то это, скорее, Photoshop. Вы нажимаете кнопочку улучшения, и он, исходя из данных, на которых когда-то обучался редактированию фотографий, «принимает решение» о том, как поправить цвета, контрастность и так далее. Поэтому Excel – не нейросеть, а вот некоторые возможности новых версий Photoshop строятся на машинном обучении; иногда – с использованием нейросетей.
Значит, сам вопрос о том, где локализуется нейросеть, некорректный?
Верно, некорректный. Она вообще не может нигде локализоваться, потому что это метод. Точно так же нигде не может «локализоваться», скажем, методика коррекции дислексии или способ запекать мясо.
Какие есть нейросети вообще – или это все одна сущность
Нейронная сеть и искусственный интеллект – это одно и то же?
Нейронка – это один из способов реализации искусственного интеллекта. Когда мы говорим про ИИ, то имеем в виду вообще все машинные вычисления. Включая те, которые действуют по строго заданным параметрам, и, напротив, те, которые сами анализируют ситуацию. Вот нейронная сеть относится ко второму типу – она сама формирует новые данные на основе входящих.
Кто придумал нейросети?
Четкой границы между «вот нейронки не было» и «а вот ее взяли и создали», нет. То есть кто-то сначала написал условный калькулятор, потом кто-то другой написал генератор фраз, потом еще кто-то дошел до мысли «почему бы не добавить возможность связывать их в осмысленный текст»… таким образом человеческая мысль добралась до создания нейронных сетей, аналогичных нейронным связям в мозге.
Не в последнюю очередь здесь оказали влияние поисковые системы: главные нейросети, с которыми сейчас работает человек, связаны именно с поисковиками. В частности, основную нейронку по распознаванию и интерпретации текста создали в Google.
А вообще на серьезный уровень такие разработки выходят, как правило, когда в них появляется потребность у госструктур.
В новостях часто мелькает: вот некая компания создала свою нейронку – и она рисует котов, или новая нейросеть умеет определять инсульт по походке, а еще одна генерит рецепты… Их так много? У них есть какая-то общая база, от которой они отталкиваются?
Базы как таковой нет, но есть несколько схем нейронных сетей и общий принцип их обучения. Отличаются нейросети, по сути, только количеством связей. При этом то, что в одной связей больше, чем в другой, вообще не говорит о том, что первая работает лучше.
Окей, качество работы «делается» количеством данных, а не связей (и тем, как эти данные используют при обучении). А связи тогда – это что? И на что они влияют?
Связи – это в прямом смысле нейронные связи. Можно обучить нейронку распознавать киви как картошку, а можно на самом деле обучить ее распознавать киви как киви. Поэтому и существуют разные методы обучения, которые нужно правильно использовать. И когда реально есть большие данные, нейронная сеть может сама производить анализ. В какой-то момент она поймет, что киви – это все-таки не картошка.
Как учится нейронная сеть
Как вообще обучается нейросеть – простыми словами?
Как ребенок. Условно, ей показывают тысячу фотографий кота и говорят – это кот. И ничего больше не объясняют про «усы, лапы и хвост» – она про них сама «догадается». И на тысяче первой фотографии она должна понять, что это кот.
«Понять» в отношении нейросети – это, конечно, «перевод» на человеческий язык. Но привычное по отношению к программам выражение «вычислить результат» здесь тоже уместно. Просто традиционная программа делает это на основе четко заданных алгоритмов (2 + 2 = 4), а нейронка – на основе алгоритмов постоянного самообучения на данных.
Кстати, если среди тысячи картинок не найдется фото кота без шерсти, – а такие ведь существуют – то какого-нибудь лысого канадского сфинкса она может и не опознать как кота. Человек, увидев такого в первый раз, просто удивляется, но все же делает вывод, что это кот. Нейросеть может догадаться – а может и не догадаться. Поэтому очень важно с умом подбирать данные для ее обучения.
Коты, сгенерированные нейросетью Russian DALL-E (она же помогла нарисовать обложку этой статьи). Не придерешься: и усы, и лапы, и хвост – все на месте
Конкретно такой метод называется обучением «без учителя». То есть отдаются некие данные, запускается работа нейронки – и через некоторое время получается результат. Да, как на этих картинках… это представление нейронки о том, как должен выглядеть кот, и даже вполне близкое к человеческому. Но даже при такой модели необходимо задать так называемые «векторы», по которым будет происходить обучение.
А есть второй метод – обучение «с учителем», он встречается чаще, поскольку там нет «экспериментов». Берется снимок кота и делается разметка: это – лапы, это – хвост, это – нос… и снова нейронке отдается массив данных. Она строит связи – и потом уже на основе этих более сложных данных делает более сложные выводы – вот это кот… а вот это уже пес.
Есть ли у разных нейросетей какая-то общая база, которую они могли бы дополнять, обучаясь параллельно – и пользоваться этими результатами? Или в этом нет смысла, потому что у каждой очень узкая специализация?
Объясню на примере Tesla. Почему этот бренд «взлетел»? У него лучшая система автопилотирования. Ты почти ничего не делаешь: авто само управляет всей работой, следит за дорогой и так далее.
Вот как этого добились.
Представители компании попросили пользователей присылать фото и видео с дорог, чтобы получать входящие данные – но поняли, что их мало, чтобы быстро обучить нейронную сеть. Тогда они начали в огромных количествах закупать стоковые видео, чтобы «скармливать» их нейросети и пытаться обучить в различных ситуациях на дорогах. Это работает так: берется стоковый элемент и размечается – где бордюры, где знаки, где пешеходы, где другие машины; потом все это отдается нейронке.
Но для приемлемого результата данных оказалось все равно мало. Когда Tesla обучила машину на всех имеющихся стоках, она создала еще одну нейросетку, которая эмулировала разные ситуации на дороге: аварии, столкновения, стандартное и нестандартное поведение пешеходов. Все эти ситуации тоже начали скармливать основной нейросети – так база для обучения выросла в разы. Это и позволило Tesla значительно опередить конкурентов.
То есть одна нейронка может общаться с другой?
Да, если их – опять же! – обучить этому. И это может здорово помочь автоматизировать процессы, вот как в примере с Tesla.
От чего зависит качество работы нейросети?
Во-первых, от количества данных: выше я приводил пример, где тысяча данных позволяет сделать предсказание точное на 50 %, а миллион данных повышают эту цифру до 99 %.
Во-вторых, от компетенций того, кто обучает нейросеть. Если он плохо знает методы обучения машины, то просто будет менее эффективен: например, вот тут и тут можно применить проверенное решение, тут использовать готовый модуль, а не изобретать велосипед. А еще тот, кто занимается обучением, должен сам уметь интерпретировать и отсеивать данные, которые к нему попадают до того, как их получит машина. Утрированный пример: вот я скормил ей тысячу строк, из которых у половины слетела кодировка, и вместо букв – непонятные кракозябры. Она обучится – но криво и косо, и решения дальше будет выдавать такие же.
В общем, тут вспоминаем того самого сфинкса, про которого неизвестно, опознает ли его нейронка как кота, – не потому, что она глупая, а просто ей до сих пор показывали только пушистых котов.
Так что принцип работы «какое ТЗ – такое и ХЗ» на нейронных сетях работает безупречно.
Нейросети для бизнеса: кто может их себе позволить
Есть свежее исследование: только 5 % российских компаний используют искусственный интеллект. Почему так мало?
Первая причина: не у всех компаний есть big data, а ни одна нейронная сеть не сможет сделать корректные выводы на основе слишком маленького количества данных.
Вторая причина: мало у кого есть возможность и желание инвестировать в аналитические группы. Представьте, вот сидит целый этаж сотрудников, которые что-то сидят, анализируют, проверяют гипотезы. От чего-то отказываются, что-то внедряют… из внедренного часть не работает… а тем временем сотрудникам надо платить, и немало.
У каждой большой компании своя нейронка? Это один и тот же исходник, допиленный каждой компанией?
Кто-то пользуется одинаковыми нейронками, кто-то пишет свои. Допустим, вы хотите отслеживать, какое количество сотрудников в заданное время приходит на работу или уходит с нее. Вот такие нейронки есть уже в виде готовых решений – достаточно повесить камеру на входе, и сеть будет сама анализировать данные.
Под более узкие задачи нейросети, конечно, создаются индивидуально. Например, если вам нужно создать сетку, которая будет рисовать яблоки, это будет сложнее – как минимум потому, что здесь дело касается компьютерного зрения, данные которого нужно связать программой, обучить ею пользоваться и т. д. И, конечно, это уже гораздо дороже.
Вот компания изучила проблему и понимает – у нее большие данные, которые нельзя эффективно проанализировать ни визуально, ни с помощью Excel, и ей нужна нейронка. Кого она должна отправить на обучение, человека с какими скиллами?
А это и вообще не обязательно: почти всегда проще и дешевле нанять специалиста по данным (он называется data scientist). Отправлять учиться человека с нулевыми навыками всегда дорого – очевидно, это касается не только big data.
Новичок в программировании, даже если старательно пройдет весь курс, выйдет с него новичком в нейросетях, и не будет строить идеальную машину с первого же дня работы. Потому что нужно наработать некий опыт (опять же, это общий момент для любой сферы).
Фишка нейросетей в том, что у каждой из них есть свои особенности: например, обучающему нейросеть человеку важно выделять так называемые feature importance – это характеристика важности признаков. Специалист должен понимать: вот это важные данные для работы нейросети, репрезентативные, – или не очень? А это все приходит с опытом.
Готовы инвестировать в новичка – замечательно. Но чаще компании не готовы.
Чем нейросети могут быть полезны для бизнеса
Приведи простой и понятный пример, что может нейросеть. Давай прямо на клиентском проекте. Вот у тебя есть список страниц услуг и есть всякие данные из «Яндекс.Метрики»: посетители, визиты, длительность. Отранжировать, какие страницы больше всего посещают, можно прямо в «Яндекс.Метрике». Если нужно что-то посложнее, есть Excel. Что ты делаешь на проектах с помощью нейронки?
Используете Excel – пожалуйста, используйте… и тратьте свое время, а еще делайте не самые корректные выводы:) Ну а если серьезно, то нейронка пишется под задачу один раз, сама анализирует происходящее на сайте и сигналит – зайдите срочно на эту страницу: тут резко просел трафик, или вот тут отвалился модуль заказа.
То есть сравнение нейросети с той же «Метрикой» вообще некорректное, – правильнее будет сравнить ее с самим аналитиком. «Метрику» нейронная сеть не заменит, а работу мозга – частично да, причем управится быстрее и точнее.
Это используется не только в маркетинге, разумеется. На производстве это хотя и не массовая история, но уже и не единичная. Например, есть программа, которая управляет станком по вырезанию деталей кузова, а есть нейронка, которая работает с этой программой. Она оценивает работу станка, и если в ней есть дефекты, сигналит человеку – что-то не так.
Нейронную сеть можно научить саму собирать данные, или на данный момент специалист делает это руками? То есть можно ли, например, подключить ее напрямую к какому-нибудь сервису типа «Яндекс.Метрики»?
Можно подключаться к той же «Метрике» через API и выгружать данные – а нейросеть научить регулярно обращаться к этим данным, переобучаться и выдавать все более точные показатели.
Нейросетка может уже сейчас заменить аналитика или какого-то другого специалиста?
Не может – гипотезы все равно выдвигает специалист, и он же делает окончательные выводы по аналитике. Даже у «Яндекса» и Google машина хотя и много чего делает, человек за ней все же следит и корректирует периодически ее выводы, помогая ей обучаться.
Какому бизнесу нужны нейросети
В каких отраслях использование нейронки оправдано? Или все зависит исключительно от объема данных, которым оперирует компания?
От количества данных зависит только возможность обучить нейросеть. А вот ее применение оправдано в любой сфере. Чем больше я в это погружаюсь, тем больше убеждаюсь в этом. Рано или поздно все к этому придут, в любых нишах, профессиях, в любых сферах и с любыми работами.
Нейросеть работает с данными быстрее и качественнее мозга – это ключевое. Вот практически всем, чем вообще занимается человеческий мозг, нейронка и будет заниматься. На сегодняшний день это вопрос недостатка данных, и только.
Что тормозит развитие нейросетей?
Раньше, например, машинам банально не хватало мощностей. А сейчас нейросеть тянет любой компьютер, только данные подкидывай.
Сейчас, пожалуй, главное препятствие – в головах. Большинство людей просто не задумывается, что с их задачами справится нейронная сеть, и сделает все быстрее и проще. У кого это понимание есть – тому нужны только большие данные, и все. Ну и data scientist, который напишет нейронку с заданными целями.
Причем чем дальше заходит работа с нейронкой в любой сфере – тем неизбежно результаты будут лучше. И специалист обучается скармливать машине действительно важные данные, и у самой машины они накапливаются. Нейросеть пишется один раз (под задачу средней сложности это занимает примерно недели две), а дальше ей нужно только подкидывать правильные данные, по возможности побольше – и она будет сама переобучаться и пересобирать свою конфигурацию. Ну и выдавать более точные данные, соответственно.
На бытовом уровне, правда, некоторые задачи все же решаются онлайн-сервисами, и вот до этого народ уже дошел: условно, проще сгенерить картинку нейросетью, чем рисовать самому. С другими задачами, все более сложными, скоро будет точно так же.
То есть любая задача, которая завязана на больших данных, решается нейронкой?
В целом, да. Вопрос того, что полезного можно сделать, задействуя нейронку, зависит от задачи и количества данных, которые доступны для машинного обучения.
Ну, например, можно написать сетку для работ по SERM и проанализировать миллионы комментариев за какие-то пять минут: сколько негативных отзывов, отзывов с нецензурной лексикой. А потом создать еще одну нейросеть, которая будет отслеживать комментарии и сигнализировать об изменениях или каких-то аномалиях – и сама принимать решение, что с ними делать.
А на производстве нейросеть может как-то помочь? Или там нужны не «мозги», а «руки»?
Везде может помочь – лишь бы, повторяю, были данные и компетенции обращаться с ними.
Например, на обучении работе с нейросетями финальный проект у меня был как раз «производственным». Стояла задача: оптимизировать производственные расходы металлургического комбината за счет уменьшения потребления энергии на этапе обработки стали (это, кстати, реальное производство с реальными большими данными!).
Нужно было погрузиться в технологические процессы, провести анализ и построить машину, которая заранее предскажет, в какой момент какие примеси нужно добавить в систему по расплавке стали, чтобы достичь температуры плавления сразу же – и тем самым снизить расходы на электроэнергию.
Как создать нейронную сеть – и насколько это сложно
Как учатся работе с нейросетями?
Сначала всегда идет работа с анализом: data scientist должен понимать, как вообще работать с данными и как их анализировать – причем и используя, и не используя машинное обучение.
Например, нужно проанализировать архив объявлений о продаже квартир в Санкт-Петербурге и определение рыночной стоимости объектов недвижимости. Для этого обучающийся строит роботизированную систему, которая отслеживала бы «аномальные» (по цене, по истории объявления и так далее) квартиры, мошенническую деятельность и другие факторы. И ему здесь тоже надо не просто кнопки нажимать, а крепко подумать, какие данные действительно важны для выводов и какие, соответственно, ему надо скормить машине.
Еще пример: работа с компьютерным зрением. Задача – определить возраст клиентов на кассе при покупке определенных групп товаров. Построенная нейросеть должна, во-первых, оценивать добросовестность кассиров, во-вторых, делать выводы о товарах, которые могут заинтересовать покупателей того или иного возраста.
Для обучения ты пользуешься какой-то готовой программой, или такая программа пишется с нуля кодом и ты просто знаешь, как такой код написать?
Готовые продукты есть. Но все-таки это не Paint, куда можно зайти, что-то нарисовать, скинуть другу – и он поймет, что там нарисовано. Понимание того, как обучить модель и помогать ли ей в процессе, должно быть у специалиста. То есть можно как дорабатывать существующую программу, так и писать с нуля – все зависит от задач.
На каком языке пишутся нейронки? Можно ли написать нейросеть дома?
Я пишу на Python. Да, сделать это может любой, кто знает основы машинного обучения, глубокого обучения и смысл построения нейронных сетей.
Насколько сложные нейросети ты пишешь при работе с аналитикой – и насколько практически применимые выводы она выдает?
Очень даже применимые. Вот когда человек вручную анализирует данные или даже дает прогнозы с помощью стандартных программ, которые действуют по заданному алгоритму, результат все равно в какой-то степени «вилами по воде писан». Например, мы пытаемся дать прогноз по продажам в будущем году. Обычно берутся показатели прошлых лет, выстраивается корреляция с нынешней динамикой трафика, учитывается еще десяток факторов… Результат, конечно, может быть очень хорошим. Если постараться. Но он точно не будет настолько хорошим, как машинный.
А задействуя нейросеть, мы анализируем не десять факторов, а сотни – буквально все, что есть на проекте, включая, например, то, в каких категориях были продажи, выросла ли сама эта категория, как в ней изменились цены, какой на нее тренд... Все это невозможно учесть вручную.
Я делал такой прогноз по продажам для нашего клиента, компании «Ароматный мир»: предсказанный процент роста отличался от реального всего на 7 % – в нынешней экономически нестабильной ситуации это хороший результат.
Бонус: подборка российских нейросетей для развлечения
-
Шедеврум создаст картинку или текст по вашему описанию.
-
Порфирьевич закончит за вас мысль, используя отрывки из книг.
-
Russian DALL-E от «Сбера» — он же Kandinsky 3.0 — нарисует любую картинку по вашему запросу, каким бы фантастическим он ни был.
Читайте также:
Создаем стикерпак за 4 минуты – помогает нейросеть
Лучшая нейросеть на русском для изображений
Как мы навсегда (!) увеличили трафик из поиска: кейс «Ароматного мира»