Персональный подход к машинному обучению 👩🏻‍🚀 👨🏻‍🚀 🚀

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

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

Когда вы начинаете изучать машинное обучение, вы получаете огромное количество информации.

AI, точность, функция активации, обратное распространение, размер пакета, смещение, кластеризация, матрица путаницы, сверточный слой, анализ данных, дерево решений, глубокое обучение, плотный, размеры, оценка, ложноотрицательный, ложноположительный, частота ложных срабатываний, особенность, особенность столбец, перекрестие признаков, проектирование признаков, извлечение признаков, набор функций, спецификация признаков, вектор признаков, нейронная сеть с прямой связью, обучение за несколько шагов, полное softmax, полностью связанный слой, генеративная состязательная сеть (GAN), обобщение, кривая обобщения, обобщенная линейная модель, генеративная модель, генератор, градиент, отсечение градиента, градиентный спуск, график, наземная истина, смещение групповой атрибуции, хеширование, эвристика, скрытый слой, иерархическая кластеризация, потеря шарнира, гиперпараметр, гиперплоскость, распознавание изображений, несбалансированный набор данных, вывод, ввод функция, входной уровень, интерпретируемость, Keras, векторные машины поддержки ядра (KSVM), k-среднее, k-медиана, метка, помеченный пример, слой, скорость обучения, линейное восстановление логическая регрессия, потери, кривая потерь, машинное обучение, матричная факторизация, среднеквадратичная ошибка (MSE), мини-пакет, MNIST, модель, функция модели, обучение модели, мультиклассовая классификация, ловушка NaN, понимание естественного языка, недостаточная выборка отрицательный класс, нейронная сеть, нейрон, N-грамма, узел, нормализация, числовые данные, NumPy, автономный вывод, одноразовое кодирование, однократное обучение, интерактивный вывод, операция, оптимизатор, выбросы, выходной слой, переобучение, передискретизация, панды, параметр, обновление параметра, персептрон, производительность, недоумение, конвейер, объединение, положительный класс, точность, прогнозирование, смещение прогноза, предварительно созданный оценщик, предварительно обученная модель, квантильное ведение, случайный лес, ранг, отзыв, система рекомендаций, повторяющийся нейронный сеть, регрессионная модель, обучение с подкреплением, масштабирование, scikit-learn, полу-контролируемое обучение, сигмовидная функция, softmax, разреженное представление, квадрат потерь, шаг, размер шага, машинное обучение с учителем, Tensor, TensorBoard, Te nsorFlow, TensorFlow Serving, Tensor Processing Unit (TPU), tf. Пример, обучение, переносное обучение, триграмма, истинно отрицательный (TN), истинно положительный (TP), истинно положительный коэффициент (TPR), недостаточное соответствие, пример без метки, неконтролируемое машинное обучение , взвешивание, набор для проверки, вес, ширина

Создайте свою собственную документацию

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

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

Если вы не понимаете тему или чувствуете себя недостаточно уверенно, сделайте заметку.

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

Я знаю, что до сих пор нет четкого ответа на вопрос, как вообще начинать работу, но мы скоро его изменим.

Изучить Python

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

Совет 2: освоите Python для создания моделей машинного обучения с помощью TensorFlow.

Получите свои данные

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

Практически во всех примерах для начала работы в Интернете вы используете один из распространенных наборов данных MNIST, будь то мода (сделанная исследователями из Zalando Research) или набор цифровых данных. И если вы тренируете модель на одном из них, вы можете достичь неплохих результатов, но вы упустите много практики.

Вместо этого создайте свой собственный набор данных, и вы узнаете, как собирать, хранить и обрабатывать большие наборы данных.

Совет 3. Научиться работать со своими данными - важный навык, который требуется в реальных приложениях. Начните с простого примера, соберите текст с соответствующей меткой и сохраните его в CSV. Это может быть текст из StackOverflow с соответствующими тегами. Где вы хотите предсказать язык программирования на основе заданного текста. Есть так много возможностей выбрать один.

Научитесь понимать свои данные

Извлечение информации из набора данных поможет вам понять ваши данные. Это идеальное время, чтобы познакомиться с Пандами и сюжетом на Блокноте Jupyter.

Спросите себя все, что хотите знать о своем наборе данных.

  • Какие данные есть в моем наборе данных?
  • Сколько всего классов?
  • Как сбалансированы данные?
  • и многие другие вопросы, проявите изобретательность

Среда

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

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

Используйте уже существующую технологию

Я хочу, чтобы вы использовали AutoML, прежде чем приступить к созданию пользовательских моделей машинного обучения в TensorFlow. Вы можете спросить «почему AutoML или что такое AutoML», и это хорошие вопросы.

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

Такие как разделение данных (обучение и тестирование), кодирование, встраивание, оценка различных архитектур и настройка гиперпараметров, чтобы упомянуть некоторые из них, и все это автоматизировано для вас. Существуют разные типы продуктов AutoML, для простоты мы сохраняем простоту и остаемся Google AutoML.

Это так просто, как кажется, загрузите данные тренировки, начните тренировку и нажимайте ☕, пока тренировка не будет завершена.

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

Google предлагает различные типы продуктов AutoML: AutoML Natural Language, AutoML Vision, AutoML Translation, AutoML Table, скоро появятся другие
ヽ (• ‿ •) ノ.



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

Совет 4. AutoML или предварительно обученные API-интерфейсы должны быть первым продуктом выбора, если вы хотите решить проблему.

Предварительная обработка

Если Google AutoML или предварительно обученные API не соответствуют вашим потребностям, вы все равно можете использовать пользовательскую модель машинного обучения в TensorFlow или Keras.

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

  • Очистка ваших данных должна быть первым шагом предварительной обработки, чтобы вернуться к нашему примеру StackOverflow.csv, может быть, есть строки без текста? Текст без метки, специальные символы, которые не требуются, и другие типы. Очистка этих данных может улучшить производительность модели.
  • Перестановка ваших данных происходит по разным причинам, обычно наши данные сортируются как наш StackOverflow.csv, который может быть отсортирован в зависимости от языка программирования. Мы хотим перемешать, чтобы убедиться, что наш обучающий и тестовый набор данных представляет собой общее распределение данных. Есть и другие причины, и, как упоминалось в первом совете, я уверен, что со временем вы узнаете их все.
  • Разделите данные на два набора: обучение и тестирование. Как показывает практика, 80% - это тренировочные данные, а 20% - тестовые данные.
  • Встраивание и кодирование - еще одна важная часть, и если вы ее погуглите, это может показаться запутанным. Чтобы дать вам простое понимание встраивания и кодирования, представьте его как метод, преобразующий текст в числа более или менее разумным способом.

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

Создайте свою модель TensorFlow

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

Первый шаг - использовать данные, это зависит от используемой вами структуры. Модули TensorFlow, TensorFlow Hub или Keras. Не беспокойтесь о различных типах, которые вы узнаете по пути.

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

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

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

Оцените свою модель машинного обучения

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

Совет 7. Ознакомьтесь с различными метриками оценки того, как и когда их использовать. Используйте разные метрики, такие как матрица путаницы, оценка F1 и т. Д.

Ввести вашу модель в производство

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

Обучение вашей модели завершено, и результаты выглядят достаточно хорошо, чтобы решить проблему, и что теперь? Пришло время запустить вашу модель в производство. Дайте людям возможность использовать это. Вы можете размещать модели разными способами, такими как TensorFlow ModelServer или Google AI Platform.

Последний совет: будьте последовательны и создайте для всех своих проектов репозиторий GitHub. Это лучший способ создать собственное портфолио. Более того, вы будете повторно использовать много кода в других проектах.

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

Что дальше?

Это еще не все, я поделюсь с вами примерами и другими сообщениями, чтобы дать вам практический опыт. Подпишитесь на меня в Twitter @HeyerSascha, если не хотите его пропустить.

  • Сбор наборов данных
  • Предварительная обработка набора данных
  • Google AutoML
  • Keras Named Entity Extraction обучен и развернут на платформе Google AI.
  • Kubeflow

Спасибо за внимание.

Мы ценим ваши отзывы и вопросы, вы можете найти меня в Twitter @HeyerSascha.

Об авторе

Саша Хейер, основатель Io Annotator, платформы AI-аннотаций
для текста и изображений, которая предоставляет несколько изображений и инструменты для аннотации текста
.