Машинное обучение стало доступно для неспециалистов

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

Джош Шварц — глава отдела разработки ПО и анализа данных в компании Chartbeat, занимающейся веб-аналитикой. Он считает, что научные достижения в области информационных технологий — не единственная причина растущего спроса на глубинное обучение. За последние пять лет оно стало гораздо более доступным для широкого круга людей, не являющихся экспертами. Во-первых, возросло количество новейших библиотек для разработки ПО с обучением пользователей разных уровней: scikit-learn для языка Python, Tensorflow от Google и CNTK от Microsoft. А во-вторых, в течение последних двух лет крупнейшие в мире провайдеры облачных сервисов — Amazon Web Services и Google Cloud Services — стали предлагать услуги, связанные с машинным обучением.

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

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

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

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

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

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

Источник