Чи є TensorFlow повна бібліотека машинного навчання?


11

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

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


1
Векторна машина підтримки, реалізована в TensorFlow: github.com/AidanGG/tensorflow_tmva/wiki/Support-Vector-Machine
Neil Slater

3
Просто для переконання: TensorFlow НЕ є бібліотекою глибокого навчання. Керас (який може використовувати TensorFlow як Backend) - така бібліотека. TensorFlow - це розумний спосіб обробляти важкі обчислення (використовуючи обчислювальний графік), щоб виконати їх на декількох апаратних засобах (CPU, GPU та інші).
Робін

Відповіді:


15

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

  1. Глибоке навчання (CNN, RNN, повністю підключені мережі, лінійні моделі)
  2. Все інше (SVM, GBM, Random Forests, Naive Bayes, K-NN тощо)

Причиною цього є те, що глибоке навчання набагато більш обчислювально інтенсивно, ніж інші традиційні методи навчання, а тому потребує інтенсивної спеціалізації бібліотеки (наприклад, використання GPU та розподілених можливостей). Якщо ви використовуєте Python і шукаєте пакет з найбільшою широтою алгоритмів, спробуйте scikit-learn. Насправді, якщо ви хочете використовувати глибоке навчання та більш традиційні методи, вам потрібно буде використовувати більше однієї бібліотеки. Немає "повного" пакету.


1
Чи справді ця відповідь справедлива через два роки? Схоже, TensorFlow з тих пір значно виріс.
John sullivan

7

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

Це воно. Це альтернатива Theano , але розроблена Google.

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

Тоді TensorFlow (або Theano) пропонують алгоритми оптимізації, які роблять важку роботу щодо з'ясування того, які ваги мінімізують будь-яку функцію витрат, яку ви хочете мінімізувати. Якщо ваша нейронна мережа призначена для вирішення проблеми регресії, ви, можливо, захочете мінімізувати суму квадратних різниць між передбачуваними значеннями та справжніми значеннями. TensorFlow виконує важку роботу з розмежування вашої функції витрат і всього цього.

EDIT: Забув зазначити, що, звичайно, SVM можна розглядати як тип нейронної мережі , тому очевидно, що ви можете тренувати SVM, використовуючи інструменти оптимізації TensorFlow. Але TensorFlow поставляється лише з оптимізаторами на основі градієнта спуску, які трохи нерозумно використовувати для тренування SVM, якщо у вас є багато спостережень, оскільки є специфічні оптимізатори для SVM, які не зациклюються на локальних мінімумах.

Також, напевно, варто згадати, що TensorFlow і Theano є досить низькими рамками. Більшість людей використовують рамки, побудовані на них і простіші у використанні. Я не пропоную тут жодного, тому що це породжує власну дискусію. Дивіться тут пропозиції про прості у користуванні пакети.


1
Theano не розробляється Google. Згідно з їхнім веб-сайтом , він "в першу чергу розробляється вченими". Tensorflow був розроблений Google .
Дантістон

1
@dantiston так, я знаю. Я хотів сказати, що "TensorFlow - це альтернатива Theano, а TensorFlow розроблений Google". Я мав на увазі TensorFlow, а не Theano. Погане формулювання, вибачте.
Рікардо Крус

5

Ryan Zotti пропонує хорошу відповідь, але це змінюється. За допомогою методів випадкових лісів , підвищення рівня градієнта та байєсівських TensorFlowнапрямків він спрямовується в напрямку досягнення єдиного рішення. Більш традиційні алгоритми перераховані тут . TensorFlow має особливі перспективи, оскільки він розроблений для масштабування та підтримки операційних процесорів. Однак scikit learnце традиційний єдиний магазин, де можна знайти багато стандартних алгоритмів. Зазвичай вони не найновіші та найвищі, тому ви, ймовірно, захочете і спеціалізованих бібліотек.

Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.