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

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

1. Нампи

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

NumPy использует специальный тип массива и привносит вычислительную мощь таких языков, как C и Fortran, в Python. Таким образом, он может выполнять различные вычисления, такие как линейная алгебра, преобразование Фурье и возможности случайных чисел, за миллисекунды.

Он также лежит в основе и составляет основу многих библиотек по науке о данных. Так, например, у нас есть библиотеки визуализации, такие как Matplotlib, Seaborn, Plotly, Altair и Bokeh; библиотеки машинного обучения, такие как Scikit-learn и SciPy; и библиотеки массивов, такие как Dash, PyTorch, TensorFlow, MXNet и даже Pandas.

Сильные стороны:

  • Массивы Numpy занимают меньше места для хранения и памяти, поэтому они имеют лучшую скорость выполнения по сравнению с традиционными массивами Python.
  • Его интеграция с кодом C, C++ и Fortran.
  • Он поддерживает векторизованные операции.
  • Его способность обрабатывать преобразования Фурье, такие как линейная алгебра и случайные числа.
  • Поддержка сообщества, тем более что это основа нескольких библиотек.

Слабые стороны:

  • Требуется непрерывное выделение памяти.

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

2. Панды

Вы не можете сказать, что не слышали о Pandas как об ученом данных. Pandas — это быстрая и гибкая библиотека для анализа и обработки данных, разработанная Wes McKinney. Pandas технически не является библиотекой машинного обучения, в отличие от других библиотек в этом списке. Однако он необходим для обработки табличных данных, преобразования данных и выполнения EDA (Exploratory Data Analysis).

Эта библиотека использует структуры данных высокого уровня (Series и DataFrame) и имеет несколько встроенных методов очистки и анализа данных. Методы Panda сокращают сложные вычисления Python до нескольких строк кода. Вы можете в значительной степени назвать это Microsoft Excel Python. Помимо обработки данных, Pandas очень удобен для визуализации данных.

Чтобы почувствовать Pandas в действии, ознакомьтесь с разделами Разработка функций для категориальных данных, Создание системы рекомендаций по статьям с использованием Python и Аналитика данных с Pandas 🐼.

Сильные стороны:

  • Эффективная обработка огромных наборов данных для EDA.
  • Его код и структуры данных просты, быстры и гибки.
  • Он легко интегрируется с другими библиотеками в экосистеме машинного обучения.
  • Он имеет обширный набор встроенных команд.

Слабые стороны:

  • Плохая совместимость с 3D матрицей.

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

3. Научный

Научный Python, также известный как SciPy, используется для проведения научного анализа и технических вычислений на больших наборах данных. SciPy был разработан Travis Oliphant, Pearu Peterson и Eric Jones. Оптимизация массива, линейная алгебра, интеграция, интерполяция, специальные функции, решатели ОДУ, БПФ и обработка сигналов и изображений входят в число модулей этой библиотеки на основе Numpy.

Сильные стороны:

  • Его легко использовать и быстро выполнять.
  • Сложные числовые операции
  • Он имеет высокоуровневые команды с обширным функционалом.

Слабые стороны:

  • Несмотря на то, что он построен на NumPy, Scipy имеет более низкую скорость вычислений.

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

4. Научное обучение

Scikit-learn является домом для многих алгоритмов машинного обучения, выбора моделей и функций предварительной обработки. Scikit-learn был написан на C и Python и построен на основе NumPy и SciPy. Он был разработан David Cournapeau как проект Google Summer of Code. В настоящее время это одна из наиболее широко используемых библиотек машинного обучения для разработки алгоритмов машинного обучения.

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

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

Сильные стороны:

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

Слабые стороны:

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

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

5. Тензорный поток

Tensor — это библиотека для создания, обучения и запуска моделей глубокого обучения и нейронных сетей. Эта библиотека разработана командой Google Brain. Его архитектура и структура также гибки; следовательно, он может работать на различных вычислительных платформах, таких как ЦП, ГП и ТПУ.

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

Прочтите Регуляризация отсева с помощью Tensorflow Keras, чтобы увидеть Tensorflow в действии.

Сильные стороны:

  • Его архитектура TPU позволяет ему превосходить GPU и CPU по скорости вычислений.
  • Он имеет первоклассную поддержку визуализации вычислительного графа.
  • Он совместим с Keras и различными языками, такими как C++, JavaScript, Python, C#, Ruby и Swift.

Слабые стороны:

  • Его архитектура TPU позволяет только выполнять модель, а не обучать ее.
  • Он поддерживает только NVIDIA и Python для GPU.

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

6. Керас

Keras, часто называемая библиотекой глубокого обучения Python, используется для разработки и оценки нейронных сетей в рамках моделей глубокого обучения и машинного обучения. Керас был построен Франсуа Шолле. Он поддерживает несколько бэкэндов: Tensorflow, Theano и CNTK. Из-за этого обучение нейронных сетей проще и может быть выполнено с меньшим количеством кода и конфигураций.

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

Интересуетесь, как работает Keras? Прочтите Оскорбления Трампа в Твиттере и Создайте свою первую сверточную нейронную сеть для классификации кошек и собак.

Сильные стороны:

  • Keras упрощает разработку стандартных моделей глубокого обучения.
  • Он без проблем работает с различными средами глубокого обучения и поддерживает различные серверные части, такие как Tensorflow, Theano и CNTK.

Слабые стороны:

  • Высокие требования к ресурсам.
  • Поскольку он не может выполнять низкоуровневые вычисления, его часто используют с TensorFlow, Theano и Microsoft CNTK.
  • Keras работает на высоком уровне абстракции; пользователи не могут полностью реализовать свой собственный основной алгоритм.

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

Большие команды полагаются на большие идеи. Узнайте, как специалисты Uber, WorkFusion и The RealReal используют Comet, чтобы масштабировать свои модели машинного обучения и обеспечить прозрачность и совместную работу в масштабах всей компании.

7. ПиТорч

PyTorch — это библиотека, которая используется для глубокого обучения. Библиотека была разработана Adam Paszke, Sam Gross, Soumith Chintala и Gregory Chanan. Он предлагает различные инструменты для машинного обучения, компьютерного зрения и обработки естественного языка (NLP). PyTorch также может генерировать вычислительные графы и выполнять тензорные вычисления с использованием ускорения графического процессора.

В настоящее время PyTorch управляется Meta AI, ранее называвшейся FAIR (Исследовательская лаборатория искусственного интеллекта Facebook).

Сильные стороны:

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

Слабые стороны:

  • В нем отсутствует интерфейс для мониторинга и визуализации.

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

8. Инструментарий естественного языка (NLTK)

NLTK — это библиотека Python для выполнения задач обработки естественного языка (NLP). Библиотека была разработана Steven Bird, Edward Loper и Ewan Klein. Следует иметь в виду, что NLTK представляет собой набор подпакетов и модулей, а не единую библиотеку ML. Эти модули позволяют выполнять ряд задач. Например, сегментация предложений, удаление стоп-слов, токенизация слов, распознавание сущностей (NER), анализ зависимостей, анализ тональности и классификация текста.

Ознакомьтесь с разделом Извлечение ключевых слов с помощью Python, чтобы начать работу с NLTK.

Сильные стороны:

  • Он поддерживает множество языков по сравнению с другими библиотеками обработки естественного языка (NLP).
  • Архитектура NLTK является модульной, с несколькими подпакетами, которые можно применять к различным задачам NLP.

Слабые стороны:

  • У него нет моделей нейронных сетей.
  • NLTK не использует семантический анализ для токенизации предложений.

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

9. Данфо.JS

Danfo.js — это библиотека JavaScript для манипулирования и обработки структурированных данных. Он предоставляет высокопроизводительные, интуитивно понятные и простые в использовании структуры данных. Библиотека основана на TensorFlow.js и во многом вдохновлена ​​Pandas. Эта библиотека была разработана Rising Odegua и Stephen Oni.

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

Сильные стороны:

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

Слабые стороны:

  • Он обладает низкоуровневыми арифметическими операциями.

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

10. Когнитивный инструментарий Майкрософт (CNTK)

Microsoft CNTK — это модель глубокого обучения и набор инструментов для обучения алгоритмам. Его можно использовать как отдельный инструмент машинного обучения, как Brainscript или в проектах Python и C++. CNTK упрощает использование стандартных моделей, включая DNN с прямой связью, сверточные нейронные сети (CNN) и рекуррентные нейронные сети (RNN/LSTM) для обучения речи, распознавания рукописного текста и проектов распознавания изображений.

Сильные стороны:

  • Он имеет встроенные компоненты, оптимизированные для многомерных плотных или разреженных данных.
  • Его архитектура поддерживает GAN, RNN и CNN.
  • Он обеспечивает автоматическую настройку гиперпараметров.

Слабые стороны:

  • Не хватает доски визуализации.

Посетите docs.microsoft.com/cognitive-toolkit, чтобы узнать больше об этой библиотеке, и отправьте вклад с открытым исходным кодом сегодня!

Последние мысли

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

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

Спасибо за прочтение!

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

Независимая от редакции, Heartbeat спонсируется и публикуется Comet, платформой MLOps, которая позволяет специалистам по данным и командам машинного обучения отслеживать, сравнивать, объяснять и оптимизировать свои эксперименты. Мы платим нашим авторам и не продаем рекламу.

Если вы хотите внести свой вклад, перейдите к нашему призыву к участию. Вы также можете подписаться на получение наших еженедельных информационных бюллетеней (Еженедельник глубокого обучения и Информационный бюллетень Comet), присоединиться к нам в Slack и следить за Comet в Twitter и LinkedIn, чтобы получать ресурсы, события и многое другое, что поможет вам быстрее создавать лучшие модели машинного обучения.