Я новичок в TensorFlow, и мне нужно понять возможности и недостатки TensorFlow, прежде чем я смогу его использовать. Я знаю, что это основа глубокого обучения, но помимо той, которую другие алгоритмы машинного обучения мы можем использовать с тензорным потоком. Например, можем ли мы использовать SVM или случайные леса, используя TensorFlow? (Я знаю, это звучит безумно)
Короче говоря, я хочу знать, какие алгоритмы машинного обучения поддерживаются TensorFlow. Это просто глубокое обучение или что-то еще?
machine-learning
Swaroop
источник
источник
Ответы:
Это большое упрощение, но на сегодняшний день существует два типа библиотек машинного обучения:
Причина этого заключается в том, что глубокое обучение требует гораздо больших вычислительных ресурсов, чем другие более традиционные методы обучения, и, следовательно, требует интенсивной специализации библиотеки (например, с использованием графического процессора и распределенных возможностей). Если вы используете Python и ищете пакет с наибольшим набором алгоритмов, попробуйте scikit-learn. В действительности, если вы хотите использовать глубокое обучение и более традиционные методы, вам нужно использовать более одной библиотеки. Там нет «полный» пакет.
источник
TensorFlow особенно показан для глубокого обучения, то есть нейронных сетей с большим количеством слоев и странных топологий.
Вот и все. Это альтернатива Theano , но разработанная Google.
И в TensorFlow, и в Theano вы программируете символически. Вы определяете свою нейронную сеть в форме алгебраических операций (эти узлы умножаются на эти веса, а затем применяется нелинейное преобразование, бла-бла-бла), которые внутренне представляются графом (который в случае TensorFlow, но не Theano, вы можете видеть это для отладки вашей нейронной сети).
Затем TensorFlow (или Theano) предлагают алгоритмы оптимизации, которые выполняют тяжелую работу по выяснению того, какие веса минимизируют любую функцию затрат, которую вы хотите минимизировать. Если ваша нейронная сеть предназначена для решения проблемы регрессии, вы можете минимизировать сумму квадратов различий между прогнозируемыми значениями и истинными значениями. TensorFlow выполняет тяжелую работу по дифференцированию вашей функции затрат и всего этого.
РЕДАКТИРОВАТЬ: Забыл упомянуть, что, конечно, SVM можно рассматривать как тип нейронной сети , поэтому, очевидно, вы можете обучить SVM с помощью инструментов оптимизации TensorFlow. Но TensorFlow поставляется только с оптимизаторами на основе градиентного спуска, которые немного глупо использовать для обучения SVM, если у вас нет большого количества наблюдений, поскольку существуют специальные оптимизаторы для SVM, которые не застревают в локальных минимумах.
Также, вероятно, стоит упомянуть, что TensorFlow и Theano - довольно низкоуровневые фреймворки. Большинство людей используют фреймворки, построенные поверх них, и их проще использовать. Я не буду предлагать здесь ничего, потому что это вызовет свою дискуссию. Смотрите здесь предложения для простых в использовании пакетов.
источник
Райан Зотти предлагает хороший ответ, но это меняется. С добавлением методов « Случайный лес» , « Градиентное усиление» и «Байесовский»
TensorFlow
он становится универсальным решением. Более традиционные алгоритмы перечислены здесь . TensorFlow имеет особые перспективы, поскольку он хорошо масштабируется и поддерживает операции с графическим процессором. Тем не менее,scikit learn
это традиционный универсальный магазин, где вы можете найти множество стандартных алгоритмов. Как правило, они не самые последние и лучшие, поэтому вам, вероятно, понадобятся и специализированные библиотеки.источник