От глубокого обучения до нашего собственного критического мышления интеллект связан с взаимодействием с миром и построением ментальных моделей. Затем эти модели служат для расширения возможностей пользователя и ведут его к принятию обоснованных решений.
Я хочу представить пару моих собственных ментальных моделей, которые я собрал во время своих глубоких погружений в мир машинного обучения. Я был вдохновлен этой статьей о руководстве для венчурного капитала по ML и решил, что представлю свою точку зрения инженера-программиста, который в конечном итоге хочет создать продукт на базе ML. Независимо от того, начинаете ли вы свою карьеру или успешно работаете в своей профессии и хотите создать стартап, я надеюсь, что смогу дать некоторое представление о том, что такое машинное обучение, что оно может сделать для вас и как вы можете начать!
ML как новое «Программное обеспечение»
Марк Андриссен однажды сказал: Программное обеспечение пожирает мир. Достижения в области машинного обучения откроют огромную ценность во множестве отраслей. Они варьируются от обнаружения мошенничества и рисков до предсказания структуры клеточного белка.
Машинное обучение даже меняет наше представление о программировании. Традиционно мы пишем программное обеспечение, которое решает необходимую работу. Машинное обучение переворачивает это с ног на голову. Как мы можем установить набор правил, чтобы машина могла следовать этим правилам и принимать обоснованные решения? Как эти обоснованные решения могут привести нас к решению задачи, которую нельзя было бы решить с помощью одного только программного обеспечения?
Выводы:
- ML/AI произведет революцию в грядущем десятилетии, поэтому инвестируйте в свое понимание!
ML как интеллектуальное представление
Понимание правильного представления похоже на понимание правил игры. Вы не сможете работать эффективно, если не знаете правил! Это актуально во всех сферах жизни. Коперник продвинул наше понимание Солнечной системы своей улучшенной гелиоцентрической моделью. Мария Кюри расширила наши знания об атомной теории, показав нам, что атом на самом деле делим и состоит из субатомных частиц. Чарли Мангер научил нас лучшим методам инвестирования благодаря своей концепции использования решетки ментальных моделей для принятия разумных решений.
Точно так же и в машинном обучении мы можем лучше понять наши проблемы и улучшить наши алгоритмы, если мы разумно выберем способ представления наших данных. Хорошее представление облегчает обучение наших алгоритмов. Одним из хороших примеров является представление текста в текстовом документе. Простым подходом было бы представить его в виде набора слов, где мы подсчитываем появление каждого слова. Недостаток этого подхода в том, что мы не фиксируем отношения между словами и не рассматриваем взвешивание слов на основе того, как часто они встречаются в других документах. Введите TF-IDF и word2vec. Эти новые методы представления значительно повысили эффективность наших моделей машинного обучения.
Выводы:
- всегда стремиться понять и подвергнуть сомнению наши ментальные модели как проблемы, так и решения
машинное обучение как данные
Без данных машинное обучение невозможно. Без жизненного опыта не может быть мудрости. Компьютерным алгоритмам и людям нужны данные для обучения! Таким образом, приступая к проекту машинного обучения, будьте готовы искать данные. Это может повлечь за собой поиск существующих наборов данных в Google, Kaggle или другом репозитории наборов данных. Это также может повлечь за собой создание собственного набора данных в дикой природе. Для одного из моих проектов по созданию надежного классификатора спама я загрузил и сохранил настоящие фишинговые электронные письма из моего собственного почтового ящика Gmail для последующего использования. Для обучения GPT-3 OpenAI полагался на корпус Common Crawl, который содержит петабайты реальных веб-данных, извлеченных и заархивированных.
По мере того, как вы будете глубже погружаться в мир больших данных, появятся другие инструменты, которые помогут вам собирать, хранить и запрашивать ваши данные. Обязательно ознакомьтесь с такими технологиями, как Apache Spark, Flink и Airflow. Они помогут вам настроить обработку данных в масштабе.
Выводы:
- Начиная любой проект машинного обучения, подумайте, где и как вы будете получать данные.
- Продемонстрируйте свои навыки программирования — от написания скриптов для очистки данных до настройки конвейера ETL/ELT для подготовки данных.
- Если вы планируете стать основателем продукта машинного обучения, ознакомьтесь с новейшими инструментами отрасли.
ML как система
Системы машинного обучения ничем не отличаются от программных систем. И тем, и другим нужны метрики и мониторинг, некоторая база данных или озеро данных, а также серверы для развертывания кода и моделей. К сожалению, некоторые из тех же грехов традиционного программного обеспечения также мешают системам машинного обучения, например, технический долг и монолитные кодовые базы.
Мой совет: подумайте целостно о том, как вы собираетесь создавать свой продукт. Что такое все движущиеся части? Как человек, который хочет когда-нибудь создать продукт на основе машинного обучения, я пытаюсь рассмотреть, что потребуется для производства модели машинного обучения. Например, как сделать программу, которая может классифицировать что-то как хот-дог, а не хот-дог, пригодной для использования конечным пользователем? Будете ли вы хранить все данные в корзине AWS S3? Будут ли серверы, обслуживающие модель машинного обучения для прогнозирования хот-догов?
Выводы:
- При разработке продукта машинного обучения подумайте о том, как реализовать алгоритм и базовую системную архитектуру — это похоже на проектирование традиционных программных систем!
Машинное обучение как еще один набор навыков для изучения
Наконец, я хотел бы оставить вас с общим руководством по частым экспериментам! Машинное обучение проводится с помощью различных вычислительных инструментов. Изучение тонкостей Tensorflow очень похоже на опробование нового фреймворка. Python может показаться вам знакомым, если вы уже являетесь экспертом по Ruby или JS.
Мир машинного обучения может показаться пугающим, но верьте. Запачкайте руки учебниками, постоянно делайте заметки и создавайте диаграммы, подобные этой, для понимания!
Уровень технических способностей, которые вам нужно продемонстрировать, не снижается, он даже выше, если у вас нет образования, но это вполне возможно.
— Дарио Амодей, исследователь OpenAI, о выходе на поле без докторской степени в области машинного обучения
Выводы:
- Машинное обучение очень похоже на программирование; вы становитесь лучше, реализуя проекты машинного обучения снова и снова.
- Мы все хотим работать над самыми важными проблемами в нашей области. Если вы решите, что изучение машинного обучения является ключом к решению некоторых из этих проблем, убедитесь, что вы сосредоточены на следующих шагах, сохраняя при этом свое долгосрочное видение. Сначала я хочу узнать о логистической регрессии. Дальше я хочу… и так далее. Не забывайте делать заметки!
Раздел ресурсов
Я надеюсь, что эта статья и следующие ресурсы помогут вам начать работу!
Отличные книги для начала
Онлайн-курсы
Ааааааааааааааааааааааааааааааааааааааааааааааааааааааааааааааааааааааааааааааааааааааааааааа также кучаконцептов ML как животных gif. Также вот более технический обзор ML в двух словах, который я написал некоторое время назад. Удачи вам в вашем путешествии по ML и спасибо за чтение!