Станислав Ашманов: «Если есть данные, то найдутся и алгоритмы»

Станислав Ашманов: «Задача машинного обучения — повысить эффективность какого-то процесса, либо снизить его стоимость, либо вообще получить какой-то новый эффект, которого раньше не было»


13:29 14.09.2018   |   5095 |  Дмитрий Гапотченко |  Computerworld Россия

Рубрика Технологии



Перефразируя Наполеона, можно сказать, что для развития нейросетевых технологий нужны три вещи: данные, данные и еще раз данные. А также специалисты, способные с ними работать

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

- Нейросетям не один десяток лет, почему они сейчас «взлетели»? Что мешало раньше?

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

Вторая причина – данные. Пожалуй, важнейшая причина. Нейросетям нужно много данных для обучения, гораздо больше, чем другим методам машинного обучения. И в достаточном количестве они появились только в последние годы.

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

- В каких сферах сейчас в наибольшей степени пользуются нейросетями и кому еще они могли бы быть полезны?

Лидеры – крупнейшие корпорации типа Google, Facebook, Microsoft. Те, у кого огромные пользовательские базы и соответственно огромные массивы данных.

Данные, как я уже говорил, — это главное. Google, например, выкладывает в открытый доступ алгоритмы, но не выкладывает данные, потому что алгоритм ничего не стоит, если нет данных. А если есть данные, то найдутся и алгоритмы. Поэтому в области нейросетей трудно небольшим стартапам — им тяжело найти данные для обучения.

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

- А розница? У нее много пользователей и данных о них...

Ретейлеры – они очень прагматичные. Уговорить их разработать что-то очень тяжело. Они готовы платить за коробочные решения, предназначение и результат внедрения которых понятен, но не готовы платить за исследования и разработки. Они сразу спросят: "Насколько эта разработка увеличит нам продажи?»

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

- То есть «нейронная сеть как сервис» пока еще не востребована?

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

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

- Создать «свою» исследовательскую структуру в области нейросетей — дорогое удовольствие?

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

Машинное обучение требует хорошей математической подготовки и инженерных навыков, а это то, в чем русские хороши. Так что из России тоже людей вытягивают туда, поэтому создавать свой отдел довольно дорого. Как мне кажется, минимально нужно иметь пять исследователей с зарплатами тысяч по 200 в месяц. И это чисто на разработку, без прочих затрат, например на сбор и очистку данных, серверы.

- Точность нейросети можно повышать бесконечно в процессе обучения? Или есть некий предел?

Точность работы нейросети вообще вопрос сложный. Мы, когда беремся за задачу, часто не знаем, сможем ли вообще ее решить. Задача может принципиально быть нерешаема, может данных не хватить или они окажутся «грязными»…

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

Есть эвристические методы для оценки того, поможет ли увеличение количества данных. Предположим, у нас есть 100 тысяч обучающих примеров, скажем, картинок. Тренируем систему на них, потом тренируем ее с нуля на половинном объеме, на 50 тысячах. Если качество распознавания существенно упало, то имеет смысл собрать еще 100 тысяч картинок и посмотреть, станет система работать лучше или нет. Если же уменьшение обучающей выборки вдвое не ухудшило качество работы, то, вполне вероятно, мы по объему выборки достигли насыщения.

- А как оценить экономическую выгоду от внедрения или повышения точности работы нейросети?

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

В третьем случае все понятно. А в двух других надо тщательно все взвешивать.

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

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

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

Нейросети так называются потому, что так их назвали. К работе мозга они не имеют отношения, и вряд ли нейрофизиологи, которые изучают, как мозг устроен, принесут что-то полезное в мир машинного обучения. Были забавные эксперименты — нейрофизиологи попытались исследовать старые простейшие процессоры своими методами, ничего не получилось.

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

- Традиционный вопрос – о чем вы будете рассказывать на конференции и о чем хотите услышать сами?

Я хотел бы поговорить о средствах конструирования и обучения нейросетей, нейросетевых библиотеках. Сейчас на рынке сложился стандарт – TensorFlow от Google и видеокарты от Nvidia. И многим кажется, что лидеры определились надолго. Но я полагаю, что в обеих сферах грядут изменения. Intel с AMD борются с Nvidia, про нейрочипы я уже говорил, да и библиотека Google — вовсе не верх совершенства, она довольно медленная и неудобная. Ну и, конечно, про состояние дел в России расскажу, про нашу собственную библиотеку для нейросетей PuzzleLib.

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


Теги: Нейронные сети Машинное обучение AI2018
На ту же тему: