Является ли TensorFlow полной библиотекой машинного обучения?


11

Я новичок в TensorFlow, и мне нужно понять возможности и недостатки TensorFlow, прежде чем я смогу его использовать. Я знаю, что это основа глубокого обучения, но помимо той, которую другие алгоритмы машинного обучения мы можем использовать с тензорным потоком. Например, можем ли мы использовать SVM или случайные леса, используя TensorFlow? (Я знаю, это звучит безумно)

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


1
В TensorFlow реализована машина опорных векторов: github.com/AidanGG/tensorflow_tmva/wiki/Support-Vector-Machine
Нил Слейтер,

3
Просто чтобы убедиться: TensorFlow не является библиотекой глубокого изучения. Keras (который может использовать TensorFlow в качестве Backend) является такой библиотекой. TensorFlow - это умный способ обрабатывать тяжелые вычисления (используя вычислительный граф) для выполнения их на нескольких аппаратных средствах (CPU, GPU и другие).
Робин,

Ответы:


15

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

  1. Глубокое обучение (CNN, RNN, полностью связанные сети, линейные модели)
  2. Все остальное (SVM, GBM, случайные леса, наивный байесовский, K-NN и т. Д.)

Причина этого заключается в том, что глубокое обучение требует гораздо больших вычислительных ресурсов, чем другие более традиционные методы обучения, и, следовательно, требует интенсивной специализации библиотеки (например, с использованием графического процессора и распределенных возможностей). Если вы используете Python и ищете пакет с наибольшим набором алгоритмов, попробуйте scikit-learn. В действительности, если вы хотите использовать глубокое обучение и более традиционные методы, вам нужно использовать более одной библиотеки. Там нет «полный» пакет.


1
Этот ответ остается в силе два года спустя? Похоже, что TensorFlow сильно вырос с тех пор.
Джон Салливан

7

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

Вот и все. Это альтернатива Theano , но разработанная Google.

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

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

РЕДАКТИРОВАТЬ: Забыл упомянуть, что, конечно, SVM можно рассматривать как тип нейронной сети , поэтому, очевидно, вы можете обучить SVM с помощью инструментов оптимизации TensorFlow. Но TensorFlow поставляется только с оптимизаторами на основе градиентного спуска, которые немного глупо использовать для обучения SVM, если у вас нет большого количества наблюдений, поскольку существуют специальные оптимизаторы для SVM, которые не застревают в локальных минимумах.

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


1
Theano не разработан Google. Согласно их веб-сайту , он «в основном разработан учеными». Tensorflow был разработан Google .
дантистон

1
@ дантистон да, я знаю. Я хотел сказать: «TensorFlow - это альтернатива Theano, а TensorFlow разработан Google». Я имел в виду TensorFlow, а не Theano. Плохая формулировка, извините.
Рикардо Крус

5

Райан Зотти предлагает хороший ответ, но это меняется. С добавлением методов « Случайный лес» , « Градиентное усиление» и «Байесовский» TensorFlowон становится универсальным решением. Более традиционные алгоритмы перечислены здесь . TensorFlow имеет особые перспективы, поскольку он хорошо масштабируется и поддерживает операции с графическим процессором. Тем не менее, scikit learnэто традиционный универсальный магазин, где вы можете найти множество стандартных алгоритмов. Как правило, они не самые последние и лучшие, поэтому вам, вероятно, понадобятся и специализированные библиотеки.

Используя наш сайт, вы подтверждаете, что прочитали и поняли нашу Политику в отношении файлов cookie и Политику конфиденциальности.
Licensed under cc by-sa 3.0 with attribution required.