TensorFlow – движок искусственного интеллекта и вычислений с открытым исходным кодом от Google


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

Часть продолжающихся исследований Google в области ИИ заключается в поиске способов использования мощных вычислительных средств для реализации сложных методов ИИ. Например, нейронные сети могут быть довольно простыми, но, учитывая количество слоев и нейронов типичной сети, в результате возникает много проблем с вычислениями даже для использования обученной сети. Когда дело доходит до тренировки, она может занять дни или недели, и если мы собираемся найти лучшие способы работы, нам нужно иметь возможность опробовать разные вещи намного быстрее.
У Google уже была реализация распределенной системы обучения, в которой использовалось множество графических процессоров и процессоров, под названием DistBelief. Это было использовано для обучения всех нейронных сетей Google, которые недавно попадали в заголовки новостей – см. Статьи по теме.
Это сработало, но было нацелено исключительно на нейронные сети и имело репутацию сложного в настройке. Теперь Google создал и открыл исходный код альтернативы – TensorFlow.
Хотя об этом сообщается как об инструменте реализации ИИ, на самом деле это универсальный инструмент для распределенных вычислений. Это больше похоже на Hadoop для действительно сложных задач, чем просто на уменьшение карты, и он в два раза быстрее, чем DistBelief и регулярно используется в Google.

Ключ к TensorFlow и причина его названия в том, что он принимает потоковый граф, в котором дуги соответствуют тензорам, а узлы являются тензорными операторами.
Если престижный термин «тензор» сбивает вас с толку, не волнуйтесь. В этом контексте тензор – это просто многомерный массив. В TensorFlow все данные представляют собой многомерный массив, и все операторы комбинируют тензоры для создания новых тензоров.

Знакомая тензорная операция – это умножение матриц, и именно так вы используете TensorFlow в Python.
import tensorflow as tf # Создайте постоянную операцию, которая производит матрицу 1×2. # Операция добавляется как узел к графу по умолчанию. # # Значение, возвращаемое конструктором, представляет # выход # константы op. matrix1 = tf.constant ([[3., 3.]]) # Создайте другую константу, которая # создает матрицу 2×1. matrix2 = tf.constant ([[2.], [2.]]) # Создайте оператор Matmul, который принимает # ‘matrix1’ и ‘matrix2’ в качестве входных данных. # Возвращаемое значение, ‘product’, представляет результат # умножения матрицы. продукт = tf.matmul (матрица1, матрица2)
Если вы можете представить свой расчет в виде потоковой диаграммы, то TensorFlow выполнит его за вас. Это означает, что вы можете использовать его не только для нейронных сетей, но и для решения таких задач, как решение уравнений в частных производных и вычисление множества Мандельброта.
Родным языком TensorFlow является C ++, и это то, что вам нужно использовать, если вы хотите реализовать новый тензорный оператор. Однако, если вы просто хотите использовать доступные операторы, тогда Python – лучший выбор, потому что существует множество вспомогательных функций, и вы можете использовать интерактивную записную книжку iPython (Jupyter). Есть надежда, что сообщество с открытым исходным кодом внесет дополнительные и улучшенные языковые привязки и среды.
Выпущенная версия TensorFlow – это не совсем полная система, которая есть у Google. Он работает только на одной машине, а не на той ферме серверов, которую Google использует для своего ИИ. Обещано, что полная версия будет выпущена в будущем, но на данный момент TensorFlow будет использовать дополнительные процессоры и графические процессоры, доступные на одной машине. Все, что нужно, – это установить CUDA, чтобы он работал с графическим процессором вашего компьютера, а это означает, что он будет работать с большинством оборудования.
На первый взгляд управление вычислительными ресурсами не кажется слишком сложным. Если есть графический процессор, он будет использоваться автоматически, но если у вас несколько графических процессоров, вы должны вручную выделить их для определенных узлов. Тем не менее, это делает параллельные вычисления более доступными для неспециалистов и означает, что вы можете обучать большие нейронные сети, используя ноутбук или настольный компьютер.
Стоит отметить, что, хотя это система обработки чисел общего назначения, у нее есть функции, специально предназначенные для нейронных сетей. Например, у него есть оператор автоматического дифференцирования, который найдет градиент для модели нейронной сети. Предлагается несколько стандартных моделей, но не модель, которая обеспечивает потрясающий результат ImageNet – но это тоже обещано в будущем.
Одна из замечательных особенностей проекта TensorFlow – исключительная документация. Это действительно хорошо. Множество простых для понимания примеров и множество хорошо представленных объяснений. Это увеличило шансы того, что TensorFlow будет воспринят новичком в программировании или искусственном интеллекте.
Тот факт, что Google сделал TensorFlow открытым исходным кодом под лицензией Apache 2.0, действительно хорошая новость, даже если Google сохраняет контроль над проектом. Существуют и другие альтернативы, Torch, Caffe и Theano, но TensorFlow обладает гибкостью, чтобы покрыть весь спектр оборудования, необходимого для обучения и использования. Возможно, однако, что именно Google стоит за проектом, что, вероятно, будет самой большой привлекательной особенностью. Учитывая, что команда Google AI использует TensorFlow и достигает полезных и впечатляющих результатов, TensorFlow предлагает рекомендации, которые вы действительно не можете игнорировать.
Это может стать началом более широкого распространения сложных методов искусственного интеллекта в «повседневном» программировании.


Добавить комментарий