Искусственный интеллект
Искусственный интеллект проникает во все уголки каждой отрасли и начинает менять то, как мы ведем бизнес. Как выразился Эрик Шмидт, новые разработки в области машинного интеллекта сделают нас намного, намного умнее и принесут пользу всем на планете.
Вот несколько примеров того, как компании уже используют машинное обучение. НФЛ использует машинное обучение для сбора глубокой информации о движениях, позициях и пасах игроков, чтобы реорганизовать стиль игры. В медицинском секторе машинное обучение анализирует пациентов и прогнозирует вероятность их возвращения. Даже найм и управление талантами в большинстве компаний теперь осуществляется с помощью алгоритмов, которые выявляют желаемые характеристики и, как мы надеемся, устраняют предубеждения.
ТензорФлоу
Если вы разработчик, было бы разумно начать изучать ИИ. TensorFlow был бы самым простым способом начать работу с ИИ. TensorFlow — это платформа машинного обучения, разработанная Google. TensorFlow имеет огромное сообщество с более чем 500 участниками, около 40 000 звезд GitHub, 20 000 форков, множество встроенных моделей, кода и документации. Он имеет языковые привязки для Python, C++ и Go с другими языками на подходе. Модели, написанные в TensorFlow, можно запускать в Google Cloud TPU (Tensor Processing Units) с очень простым в использовании интерфейсом. В этом блоге представлен обзор основ TensorFlow, который поможет вам начать работу с ИИ.
Обзор
Чтобы написать программу в TensorFlow, нужно использовать графики для описания вычислений. Узлы в графе называются операциями. Операция принимает ноль или более тензоров, выполняет некоторые вычисления и создает ноль или более тензоров. Считайте операторы эквивалентами + или *, а тензоры — эквивалентами переменных или констант. Тензор — это типизированный многомерный массив. Входные данные для моделей машинного обучения и промежуточные значения представлены с помощью тензоров. Чтобы что-либо вычислить, граф должен быть запущен в сеансе, который выполняет операции на процессорах или графических процессорах.
График вычислений
Программы TensorFlow состоят из двух частей. Первая часть описывает, как построить график. Вторая часть описывает этап выполнения графа, состоящий из выполнения операций.
Например, обычно создается граф для представления и обучения нейронной сети на этапе построения, а затем повторно выполняется набор обучающих операций в графе на этапе выполнения.
Построение графика
Чтобы построить граф, начните с операций, которые не требуют каких-либо входных данных (исходные операции), таких как константа, и передайте их выходные данные другим операциям, выполняющим вычисления. TensorFlow имеет график по умолчанию. Если вы не используете график явно, TensorFlow добавляет операции к графику по умолчанию. Вот очень простой график, который описывает, как умножить два тензора и вывести их результат.
import tensorflow as tf x = tf.constant(2) y = tf.constant(3) z = x * y session = tf.Session() print(session.run(z))
Приведенная выше программа создает граф с тремя узлами: две операции Constant() и одна операция умножения. Чтобы на самом деле умножить числа и получить результат умножения, вы должны запустить график в сеансе.
Запуск графа в сессии
Запуск следует за строительством. Чтобы запустить график, создайте объект Session. Без аргументов конструктор сеанса запускает граф по умолчанию.
Полный API сеанса см. в разделе Класс сеанса.
# Launch the default graph. session = tf.Session() """ To run the multiplication operation we call the session 'run()' method, passing 'z', which represents the output of the * operation. This indicates to the call that we want to get the output of the * operation back. All inputs needed by the operation are calculated automatically. The call 'session.run(z)' thus causes the execution of three operations in the graph: the two constants and *. """ result = session.run(z) print(result) # ==> 6 # close the Session when we're done. session.close()
Реализация TensorFlow преобразует определение графа в исполняемые операции, распределенные по доступным вычислительным ресурсам, таким как ЦП или одна из видеокарт вашего компьютера.
Интерактивное использование
Примеры Python в документации запускают граф с Session и используют метод Session.run() для выполнения операций.
Для простоты использования в интерактивных средах Python, таких как IPython, вы можете вместо этого использовать класс InteractiveSession и методы Tensor.eval() и Operation.run(). Это позволяет избежать необходимости хранить переменную, удерживающую сеанс.
# enter an interactive TensorFlow Session. import tensorflow as tf session = tf.InteractiveSession() x = tf.Variable([1.0, 2.0]) a = tf.constant([3.0, 3.0]) # initialize 'x' using the run() method of its initializer op. x.initializer.run() # Add an op to subtract 'a' from 'x'. Run it and print the result sub = tf.sub(x, a) print(sub.eval()) # ==> [-2. -1.] # Close the Session when we’re done. session.close()
Резюме
TensorFlow — очень мощная библиотека для решения проблем глубокого обучения. Этот пост дает введение в гайки и болты TensorFlow. Как только вы ознакомитесь с основами, погрузитесь в несколько примеров, которые показывают, как работает TensorFlow.