Машинное обучение Microsoft Azure x Udacity - примечания к уроку 2

Это началось как простая тема для чтения после работы, но оказалось, что это мое хобби на следующие (как минимум) 2 месяца. Новаторы Уолтера Айзексона - это книга, написанная, чтобы развенчать одинокий волк портрет типичного гения, который делает великие открытия, закрываясь в гараже. В реальном мире наше цифровое общество является результатом серии хакерских клубов, корпоративных встреч, правительственных аналитических центров и постоянных друзей, объединяющих различные идеи, теории и эксперименты.

Исааксон устанавливает отправную точку для нашего нового мира с идеями Ады Лавлейс и пророческим видением функциональности компьютера. В первой половине XIX века она была пионером в области компьютерного программирования и сформулировала то, что Алан Тьюринг назвал «возражением леди Лавлейс»:

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

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

Будущее или научная фантастика?

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

На «Базовом курсе по машинному обучению» от Microsoft Azure и Udacity я нашел прекрасную возможность для дальнейшего изучения алгоритмов и моделей цифрового мира. Как указано в курсе, одним из важных компонентов машинного обучения является то, что мы берем некоторые данные и используем их для прогнозов или выявления важных взаимосвязей . В настоящее время большие данные - это модное слово, фраза, которую мы используем для описания объема необработанных данных, собранных внутри компании. Но необработанные данные могут быть шумными и ненадежными без научной подготовки.

Сбор данных: запросы к базам данных, вызов веб-служб, API-интерфейсов, парсинг веб-страниц.

Подготовка данных: очистите данные и создайте элементы, необходимые для модели.

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

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

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

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

Информатика и статистика

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

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

Настоящее удовольствие приходит, когда ассистент курса ведет меня в лабораторию - рабочее пространство в Microsoft Azure Machine Learning, где я использовал набор данных о такси Нью-Йорка для прогнозирования тарифов на такси в Нью-Йорке. Я обработал, построил, обучил и оценил эту регрессионную модель, используя только конструктор из Azure Studio.

Для дальнейшего обучения мне все еще нужно изучить различные библиотеки и инструменты для машинного обучения, такие как:

Основная структура и инструменты

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

Машинное обучение и глубокое обучение

  • Scikit-Learn - это библиотека Python, разработанная специально для машинного обучения. Он разработан для интеграции с другими научными библиотеками и библиотеками анализа данных, такими как NumPy, SciPy и matplotlib (описано ниже).
  • Apache Spark - это аналитический движок с открытым исходным кодом, который разработан для кластерных вычислений и часто используется для крупномасштабной обработки данных и больших данных.
  • TensorFlow - это бесплатная библиотека программного обеспечения с открытым исходным кодом для машинного обучения, созданная Google Brain.
  • Keras - это библиотека глубокого обучения Python. Он предоставляет интерфейс прикладного программирования (API), который можно использовать для взаимодействия с другими библиотеками, такими как TensorFlow, для программирования нейронных сетей. Keras предназначен для быстрой разработки и экспериментов.
  • PyTorch - это библиотека с открытым исходным кодом для машинного обучения, в значительной степени разработанная Лабораторией исследований искусственного интеллекта Facebook. Он известен тем, что сравнительно прост в использовании, особенно для разработчиков, уже знакомых с Python и стилем кода Pythonic.

Визуализация данных

  • Plotly - это не библиотека, а компания, которая предоставляет ряд различных интерфейсных инструментов для машинного обучения и анализа данных, включая графическую библиотеку с открытым исходным кодом для Python.
  • Matplotlib - библиотека Python, предназначенная для построения 2D-визуализаций. Его можно использовать для создания качественных графиков и других цифр, которые можно использовать в профессиональных публикациях. Вы увидите, что библиотека Matplotlib используется рядом других библиотек и инструментов, таких как SciKit Learn (вверху) и Seaborn (внизу). Вы можете легко импортировать Matplotlib для использования в скрипте Python или для создания визуализаций в Jupyter Notebook.
  • Seaborn - библиотека Python, разработанная специально для визуализации данных. Он основан на matplotlib, но обеспечивает более высокоуровневый интерфейс и имеет дополнительные функции, позволяющие сделать визуализации более привлекательными и информативными.
  • Боке - это интерактивная библиотека визуализации данных. В отличие от библиотеки типа matplotlib, которая генерирует статическое изображение на выходе, Bokeh генерирует визуализации в HTML и JavaScript. Это позволяет создавать веб-визуализации, которые могут иметь интерактивные функции.