Support us

Как использовать машинное обучение в производстве, или Для чего аутсорс-компании R&D-отдел

Оставить комментарий
Как использовать машинное обучение в производстве, или Для чего аутсорс-компании R&D-отдел

Как использовать машинное обучение в производстве и для чего аутсорсинговой компании R& D отдел, dev.by спросил у Кирилла Саколина, инженера компании ISsoft.

Читать далее…

Как давно ты работаешь в ИT, какой опыт у тебя за плечами? 

Я закончил БГУ, факультет прикладной математики и информатики. Впервые устроился программистом еще на 3-м курсе универа, в 2005 году. Поработал в аутсорсинге в разных компаниях Минска, попробовал себя в нескольких стартапах, потом какое-то время жил и работал за границей, где попробовал на вкус работу на стороне заказчика, поучаствовал в продуктовых проектах. После, взвесив все «за» и «против», снова вернулся в Минск. Последние годы активно занимался изучением новых технологий. Мой основной язык программирования — Java, однако я не ограничиваю себя экосистемой этого языка и всё больше смотрю по сторонам.

Знаем, что ты работаешь в R& D отделе компании ISsoft. Чем ты там занимаешься?

По возвращении в Минск я снова устроился в компанию ISsoft, где когда-то работал сразу после университета. В R& D отделе мы изучаем самые новейшие технологии, пробуем их, строим концепты, демо решения. Самые удачные из них внедряем в реальные проекты. Наше внимание притягивают наиболее перспективные технологии. Одним словом, стараемся идти в ногу со временем и предлагать клиентам всё самое передовое.

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

Расскажи, пожалуйста, почему ты занялся темой машинного обучения?

Мы в отделе занимаемся изучением новых, перспективных технологий. А машинное обучение — это не просто перспективная, это революционная технология. Искусственный интеллект уже полным ходом внедряется во все сферы нашей жизни: автопилоты, чат-боты, новостные ленты, всевозможные фильтры, классификаторы, банковские транзакции, игры… У вас дома скорее всего ездит пылесос, который также пользуется методами машинного обучения. ИИ уже в состоянии заменить человека на многих постах. Да что там, он уже способен мечтать.

Лично мне эта тема очень интересна. Я любознательный по натуре человек и всегда стараюсь разобраться, как что устроено. И раз уже не за горами времена, когда автомобиль будет возить меня сам, то мне просто жизненно необходимо понимать, как он устроен и как принимает решения, ведь я собираюсь доверить ему свою жизнь. Мне уже довелось опробовать автопилот Tesla в реальном автомобиле на хайвэе. Это очень необычное ощущение. Страшно, когда машина сама набирает скорость, входит в повороты, тормозит. Едешь, нога на тормозе, руль готов схватить в любой момент. Головой понимаешь, что технология работает, но многолетний опыт разработчика не дает расслабиться, ведь где-то может скрываться баг, или датчик может «заглючить» — и всё.

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

А почему именно метод Q-learning, в машинном обучении много других методов?

Откровенно говоря, я не могу назвать себя опытным специалистом в машинном обучении. Из всего, что мне довелось попробовать, этот метод самый простой для понимания. Q-learning — это один из методов так называемого обучения с подкреплением, наградой. Его можно использовать везде, где можно получить обратную связь от окружения. Те же автопилоты, пылесосы, игры. А обратной связью в них могут быть сигналы датчиков, в игре — события, счёт.

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

Кому это может быть интересно, как ты считаешь? Есть ли какие-то ограничения по базовым знаниям, например, языков программирования?

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

Я бы не сказал, что есть много желающих поделиться своими наработками в этом направлении. К такому выводу я пришёл, покопавшись в сети. И это понятно, технология очень востребована, и никто не хочет наживать себе конкурентов. Теоретических выкладок полно. По всем направлениям можно найти тонны книг высшей математики. А практических руководств очень мало. Есть небольшие статьи на популярных ресурсах типа Хабра — и на том спасибо. Есть много библиотек с тощей документацией. Есть и примеры на этих библиотеках, но опять-таки без особых объяснений. И чтобы в них разобраться, надо или читать матчасть, или брать платный курс в онлайн университетах. 

Что касается ограничений… Без высшей математики будет совсем тоскливо. Вот где действительно я был рад, что закончил ФПМ. Что касается языков программирования: исторически сложилось, что большинство библиотек по машинному обучению написаны на Python. Однако и Java, и Scala в обиде не остались. Так что языки проблемой быть не должны.

Когда и где можно послушать твой доклад?

По результатам моей работы, я подготовил доклад для конференции ISsoft Insights. Конференция бесплатная, состоится 2 июня в Минске. Я расскажу про метод Q-learning, про свои подходы в обучении, какие ошибки допускал, с какими трудностями сталкивался и как их преодолевал. Не хочу всё сейчас раскрывать. Будет много демок, даже немного поиграем. Все, кто помогал мне готовить презентацию по докладу, сказали что это «просто огонь».
 

Эта публикация подготовлена в партнёрстве с ISsoft

Что такое партнёрский материал?

Иностранное производственное унитарное предприятие «ИССОФТ СОЛЮШЕНЗ»
УНП 190819327 

Читайте также
Без стендов с эйчарами. Как ISsoft провела свою крупнейшую открытую конференцию
Без стендов с эйчарами. Как ISsoft провела свою крупнейшую открытую конференцию
Без стендов с эйчарами. Как ISsoft провела свою крупнейшую открытую конференцию
Модульная архитектура: как превратить фавелы в уютные коттеджи
Модульная архитектура: как превратить фавелы в уютные коттеджи
Модульная архитектура: как превратить фавелы в уютные коттеджи
«Вначале язык может показаться неудобным». Опыт использования BDD/Gherkin на проектах
«Вначале язык может показаться неудобным». Опыт использования BDD/Gherkin на проектах
«Вначале язык может показаться неудобным». Опыт использования BDD/Gherkin на проектах
ISsoft Sensation White Party
ISsoft Sensation White Party
ISsoft Sensation White Party

Хотите сообщить важную новость? Пишите в Telegram-бот

Главные события и полезные ссылки в нашем Telegram-канале

Обсуждение
Комментируйте без ограничений

Релоцировались? Теперь вы можете комментировать без верификации аккаунта.

Комментариев пока нет.