Автор: Рахит Кумар Агравал
Теоретическая основа машинного обучения восходит к 1763 году, когда была открыта теорема Байеса. Первая обучающая машина была открыта еще в 1950 году Аланом Тьюрингом. Но это десятилетие действительно десятилетие машинного обучения / искусственного интеллекта. Это происходит исключительно из-за внедрения различных методов машинного обучения для создания интеллектуальных машин (пока что искусственно). Такое внедрение возможно исключительно по трем причинам: 1. Доступен огромный объем данных 2. Достаточная вычислительная мощность 3. Новые методы, такие как Глубокая нейронная сеть, делающие машину лучше человека во многих задачах, таких как классификация изображений, аудио синтез и т. д.
Поскольку машинное обучение становится все более и более приемлемым, почти каждый популярный язык добавляет свою поддержку, чтобы упростить задачи машинного обучения. Это четыре популярных языка, которые приходят мне на ум, когда я думаю о машинном обучении.
Для выбора правильного языка программирования среди вышеперечисленных может быть несколько показателей. Это:
- Кривая обучения: R более функциональный, тогда как Python более объектно-ориентирован. Итак, если вы больше знакомы с объектно-ориентированным программированием, вы можете найти изучение Python проще, чем R, и наоборот, если вы пришли из опыта функционального программирования. Matlab и octave больше похожи на написание математических уравнений, которые, опять же, очень легко понять. Итак, здесь есть связь, основанная на опыте пользователей в программировании.
- Скорость: R был построен как статистический язык, и, следовательно, он имеет больше встроенной поддержки статистики / анализа данных, в то время как Python полагается на пакеты. Благодаря этим встроенным пакетам R немного быстрее выполняет задачи, связанные со статистикой.
- Поддержка сообщества: Octave менее популярен, чем другие языки, но у него немного меньше поддержки сообщества, чем у R, python и Matlab. В этой метрике октава уступает трем другим языкам.
- Рентабельность: Matlab - это проприетарное программное обеспечение, для использования которого требуется лицензия, тогда как другие три являются бесплатными программами с открытым исходным кодом и не требуют затрат на использование. Здесь Matlab немного проигрывает по сравнению с другими тремя языками.
- Поддержка структур 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.