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

https://www.tensorflow.org/

Хотя вы, безусловно, можете выполнять задачи машинного обучения без каких-либо готовых инструментов, Tensorflow стал любимой экосистемой инструментов в сообществе машинного обучения, помогающей людям запускать свои проекты машинного обучения.

В этом уроке я покажу вам, как начать использовать Tensorflow, и мы даже создадим довольно простую модель для обучения и использования.

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

Как работает Tensorflow?

Основными строительными блоками Tensorflow и ML в целом являются тензоры. Не вдаваясь в математику, тензоры — это группы алгебраических объектов (чаще всего чисел), таких как скаляры, векторы или матрицы. Тензоры могут иметь любое количество измерений, что делает их формализацию очень полезной для обхода больших и многомерных наборов данных.

Tensorflow позволяет программистам работать с тензорами невероятно простым и эффективным способом и предоставляет дополнительную библиотеку под названием Keras для построения моделей машинного обучения из тензоров.

Что мы будем создавать

Для простоты мы собираемся создать нейронную сеть, которая может предсказывать результат оператора XOR (или).

Наша модель будет принимать 2 значения (оба логические) и выводить 1 значение (также логическое). Мы будем использовать 1 и 0 вместо правды и лжи.

Входы и выходы должны следовать следующей логической таблице:

Можно ли это сделать намного проще с некоторыми операторами if? Конечно. Но дело здесь в том, чтобы понять, как использовать Tensorflow и Keras, чтобы вы могли в конечном итоге создать что-то полезное самостоятельно.

Настройка нашей среды

Хотя этот пример, вероятно, подойдет для вашего локального компьютера, создание моделей машинного обучения может потребовать невероятно больших ресурсов памяти. Поэтому полезно использовать виртуальную машину. Codesphere предлагает онлайн-среду разработки, чтобы вы могли легко кодировать и развертывать свои приложения в облаке.

Единственная необходимая установка здесь — Tensorflow, которую мы можем установить с помощью:

pipenv install tensorflow

И нам понадобится только один файл Python, который мы назовем main.py.

Создание и тестирование нашей модели

Теперь займемся кодированием!

Обратите внимание на следующие шаги:

  1. Определяем наши обучающие данные
  2. Создайте нашу модель
  3. Добавить слои
  4. Скомпилируйте нашу модель
  5. Подгоните нашу модель к нашим тренировочным данным
  6. Предсказать значения

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

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

  • Тип слоя: тип слоя, который вы создаете (например, плотный, двунаправленный).
  • Функция активации: функция, которая изменяет вход нейрона (т.е. relu, сигмовидная).
  • Функция потерь: функция, которая измеряет неточность модели при правильном прогнозировании обучающих данных (т. е. среднеквадратическая ошибка, категориальная кросс-энтропия).
  • Функция оптимизации: алгоритм, который минимизирует значение потерь модели. Это то, что на самом деле делает обучение (например, Адам, стохастический градиентный спуск)

Дальнейшие шаги

Если все эти термины кажутся немного более пугающими, чем большинство программ, которыми вы занимаетесь, это потому, что, вероятно, так оно и есть. ML — это одна из областей разработки программного обеспечения, которая требует большего, чем несколько красиво сформулированных вопросов о переполнении стека. Много математики, статистики и теории CS.

Однако это не означает, что вы должны просто отказаться от его изучения. Существует множество книг и онлайн-курсов, которые помогут вам научиться!

Когда вы будете готовы начать сборку, вам понадобится место для развертывания вашей новаторской модели. Когда это время придет, вы сможете за считанные минуты развернуться в Codesphere, облачном провайдере с нулевой конфигурацией, созданном для экономии вашего времени.

Удачного кодирования!