В своей повседневной работе в области машинного обучения и разработки программного обеспечения полного стека я затрагиваю многие аспекты веб-сервисов Amazon (AWS) и постоянно удивляюсь тому, сколько новых сервисов становится доступным в сфере машинного обучения, а также их интеграцией с другими. больше простых сервисов, включающих вычисления и хранение на обширной платформе AWS. Кроме того, соотношение цены и качества улучшается в геометрической прогрессии.

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

1. Инфраструктура товарного облака в процессе подготовки к машинному обучению

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

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

Предустановленное программное обеспечение

AWS даже предоставляет образы дисков, которые можно использовать для раскрутки виртуальных машин в состоянии этого образа с предустановленными пакетами программного обеспечения, чтобы сэкономить даже на простом действии установки бесплатного программного обеспечения с открытым исходным кодом и всех зависимостей. Чтобы привести машину в пригодное для использования рабочее состояние, уже абстрагируется от многих целых рабочих функций и позволяет начать довольно продвинутый этап цепочки создания стоимости по сравнению с тем, что даже несколько лет назад, когда программисту нужно было настроить Linux, установить Python, установить пакеты и получить все правильное управление версиями и зависимостями. Настоящий кошмар, отвлеченный такими программами, как Anaconda или Pip.

Хранилище данных

Базы данных, размещенные на серверах, необходимо настраивать и поддерживать, добавляя уровень ручного труда. Это можно абстрагировать с помощью различных подач. Я сосредотачиваюсь на канонических решениях SQL и No-SQL.

У Amazon есть RedShift среди других решений SQL, которые можно грубо рассматривать как бесконечно масштабируемую реляционную базу данных. Запросы выполняются невероятно быстро, и вы можете выполнять поиск по десяткам миллионов строк за секунды. У Amazon есть DynamoDB, среди других решений NoSQL, с функциональностью, которую вы можете ожидать от нереляционных баз данных.

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

2. Товароведческое машинное обучение

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

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

Процессы машинного обучения: обучение

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

В идеале этот массовый процесс машинного обучения можно было бы абстрагироваться, чтобы просто рассматривать его как:
1. Обучение
2. Тестирование
3. Прогнозирование (в обучении с подкреплением это должно быть изменено, чтобы скаляр для максимизации вместо некоторой метрики, такой как точность.)

Amazon SageMaker позволяет абстрагироваться от этих процессов, чтобы вы могли просто сосредоточиться на общей проблеме.

Настройка параметров и гиперпараметров

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

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

4. Данные - истинное преимущество

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

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

Это еще более конкурентное преимущество в нишевой области по сравнению со сложностью вашего процесса машинного обучения и вычислительных ресурсов.

Именно здесь люди или компании могут выделиться и получить истинное конкурентное преимущество. ИИ-стартап Blue River Technology был приобретен компанией John Deere, занимающейся производством сельскохозяйственной техники, путем установки камер на тракторах для распознавания растений и сорняков.

По сути, используя Deep Learning, Blue River стала мировым экспертом в определении того, является ли то, что попало на камеру, растением или сорняком. Его опрыскивают удобрением, если это растение, и опрыскивают пестицидом, если это сорняк. Повышая способность идентифицировать эти растения в конкретном контексте, они смогли сократить объем распыляемых химикатов до 90%, чтобы минимизировать химический след в нашей пищевой цепочке. Ключевым преимуществом здесь было наличие данных в виде снимков экрана для глубокого изучения растений и сорняков, а также наличие большего количества этих данных, чем кто-либо в мире. Он смог превзойти Google, Amazon или другие крупные технологические компании, которые легко обладали на порядки большей вычислительной мощностью и гораздо большей рабочей силой.

5. Машинное обучение: модели и алгоритмы.

Если у вас нет данных и / или вычислительных ресурсов для обучения, можно абстрагироваться от процесса обучения, перепрыгнув до конца, чтобы вместо этого получить обученную модель. Действительно, ImageNet с 14 миллионами изображений и 20 000 различных категорий является базовым набором данных для различных моделей сверточной нейронной сети в виде весовых параметров в узлах. Они доступны в виде бесплатных файлов с открытым исходным кодом, которые вы можете импортировать и начать классифицировать. Имея доступ к весам нейронной сети в моделях, обученных сверточной сетью, вы избавляетесь от необходимости доступа к этим исходным данным, огромных вычислительных ресурсов, необходимых для разработки программного обеспечения и необходимой инфраструктуры.

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

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

Интересно, что Amazon Marketplace действительно продает обученные классификаторы. Например, один набор классификаторов от Perception Health можно арендовать для прогнозирования риска различных заболеваний, таких как рак груди, сердечная недостаточность, фибромиалгия, колоректальный рак и нескольких десятков других. В качестве данных, которые должны быть пропущены через классификаторы, это временные метки, процедура ICD-10, коды процедур HCPCS и диагноз, а также несколько других точек данных, доступных из историй болезни пациентов. Эти модели были обученными моделями для миллиардов медицинских заявлений, к которым разработчик машинного обучения не мог бы получить доступ. Даже если бы они это сделали, было бы бесполезно выполнять весь процесс.

6. Истинное преимущество: итерация и переход к проблемной области

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

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

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

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

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