Автор: Рахит Кумар Агравал

Теоретическая основа машинного обучения восходит к 1763 году, когда была открыта теорема Байеса. Первая обучающая машина была открыта еще в 1950 году Аланом Тьюрингом. Но это десятилетие действительно десятилетие машинного обучения / искусственного интеллекта. Это происходит исключительно из-за внедрения различных методов машинного обучения для создания интеллектуальных машин (пока что искусственно). Такое внедрение возможно исключительно по трем причинам: 1. Доступен огромный объем данных 2. Достаточная вычислительная мощность 3. Новые методы, такие как Глубокая нейронная сеть, делающие машину лучше человека во многих задачах, таких как классификация изображений, аудио синтез и т. д.

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

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

  1. Кривая обучения: R более функциональный, тогда как Python более объектно-ориентирован. Итак, если вы больше знакомы с объектно-ориентированным программированием, вы можете найти изучение Python проще, чем R, и наоборот, если вы пришли из опыта функционального программирования. Matlab и octave больше похожи на написание математических уравнений, которые, опять же, очень легко понять. Итак, здесь есть связь, основанная на опыте пользователей в программировании.
  2. Скорость: R был построен как статистический язык, и, следовательно, он имеет больше встроенной поддержки статистики / анализа данных, в то время как Python полагается на пакеты. Благодаря этим встроенным пакетам R немного быстрее выполняет задачи, связанные со статистикой.
  3. Поддержка сообщества: Octave менее популярен, чем другие языки, но у него немного меньше поддержки сообщества, чем у R, python и Matlab. В этой метрике октава уступает трем другим языкам.
  4. Рентабельность: Matlab - это проприетарное программное обеспечение, для использования которого требуется лицензия, тогда как другие три являются бесплатными программами с открытым исходным кодом и не требуют затрат на использование. Здесь Matlab немного проигрывает по сравнению с другими тремя языками.
  5. Поддержка структур DNN: Caffe и Tensorflow (возможно, подробнее об этом в другом блоге) - две популярные на сегодняшний день структуры.

а. Caffe поддерживает Python и Matlab.

б. Tesnsorflow поддерживает Python и R.

Кроме того, среди других менее популярных фреймворков DNN (таких как Theano) python - единственный язык, который имеет универсальную поддержку. Это дает питону явное преимущество перед другими языками.

6. Готовность к производству: R больше подходит для статистического анализа. Matlab и octave больше подходят для задач, связанных с компьютерным зрением, но python больше подходит для любых общих задач, таких как предварительная обработка данных, пост-обработка результатов. Кроме того, достаточно универсальный Python делает его более подходящим, если есть необходимость интегрировать ML с другим программным обеспечением.

Принимая во внимание вышеуказанную метрику, если мы дадим 1 балл языку, в котором он имеет преимущество перед другими, сводка будет выглядеть, как в таблице ниже:

Исходя из резюме, очевидно, что Python - лучший выбор по сравнению с другими языками, главным образом потому, что он достаточно универсален, чтобы он не только хорош для задач, связанных со статистикой / машинным обучением, но и для других общих задач, и имеет лучшую поддержку для всех структур DNN, таких как Tensorflow, Кафе. Но R может быть очень удобен для быстрого прототипа, который не требует использования фреймворков DNN. Итак, подведем итог: R - это выбор языка для быстрого прототипа, но в долгосрочной перспективе наиболее предпочтительным языком является python.

Об авторе | Рахит Агравал

Исследователь глубокого обучения по профессии, который любит «тренировать» свой ум, изучая новые вещи, любит смотреть Формулу 1 и заниматься социальной работой в свободное время.

Следите за сообщениями Рахит в Medium, Twitter, LinkedIn и Quora.