Понимание основ библиотеки машинного обучения Google

До Covid-19, когда были популярны международные путешествия, посещение новой страны могло быть захватывающим временем. Не каждый день знакомишься с новой культурой. Мне посчастливилось побывать в Австралии, и мне понравилась каждая минута. К счастью для меня, я свободно говорю по-английски, и мне не пришлось изучать новый язык, но я могу представить, как это может добавить некоторого стресса к поездке. Введите Google Translate. Это приложение можно использовать для перевода речи, текста или изображений в режиме реального времени, что избавляет вас от стресса и дает больше возможностей насладиться поездкой. Это делается с помощью TensorFlow. Прежде чем перейти к TensorFlow и привести пример, давайте начнем с основ машинного обучения.

Машинное обучение

Машинное обучение - это процесс поиска компьютерами закономерностей в больших объемах данных для принятия решений. Этот процесс постоянно повторяется из-за их способности учиться на собственном опыте и совершенствоваться без лишнего кода. Компьютеры могут делать это с помощью статистического моделирования. По сути, Машины получают данные, а затем используют математические методы для аппроксимации результата в течение нескольких секунд. Это позволяет компьютерным программам извлекать уроки из прошлого и принимать актуальные решения. Позвольте мне привести вам реальный пример машинного обучения, чтобы проиллюстрировать его преимущества для человечества.

Пример машинного обучения

У многих из нас был любимый человек, заболевший раком. Ежегодно публикуются сотни тысяч новых медицинских исследований, поэтому врачи не могут оставаться в курсе всех последних статей и исследований. Что еще больше усугубляет травму, большая часть онкологической помощи в Соединенных Штатах осуществляется в общественных больницах, где у них нет всех необходимых ресурсов. IBM разработала инструмент машинного обучения Watson Genomics, чтобы помочь онкологам лучше обслуживать пациентов. Он может читать миллионы научных статей и методов лечения, чтобы в режиме реального времени поставить врачу конкретный диагноз для пациента. Это приводит к спасению многих жизней благодаря скорости и точности машинного обучения.

TensorFlow

Теперь, когда у нас есть общее представление о машинном обучении, давайте поговорим о TensorFlow. По определению TensorFlow - это программная библиотека с открытым исходным кодом, используемая для машинного обучения. Написанный на 3 языках (Python, C ++ и CUDA), он был впервые создан в 2015 году командой Google AI для внутреннего использования в Google. Tensorflow структурирован с использованием тензоров и узлов. Программа вводит данные в виде многомерных массивов, также известных как тензоры. Затем вы можете построить блок-схему математических операций, также известных как узлы, которые вы хотите выполнить с введенными данными, выводя один или несколько тензоров. Этот поток ввода и вывода тензоров с использованием узлов и получил название TensorFlow.

Причины, по которым люди используют TensorFlow

Одна из причин популярности TensorFlow заключается в том, что он чрезвычайно быстрый и точный. Кроме того, он очень универсален. Его можно запускать на настольном компьютере или мобильном устройстве, а также на графическом процессоре или процессоре. Еще одна причина, по которой люди склонны использовать TensorFlow, - это Tensorboard, инструмент, который позволяет визуализировать вашу модель машинного обучения. Последняя причина популярности TensorFlow заключается в том, что это библиотека с открытым исходным кодом, разработанная и поддерживаемая Google, проверенным техническим гигантом. Это означает, что любой может использовать его для машинного обучения бесплатно, не беспокоясь о ресурсах или надежности.

Пример TensorFlow

Многие крупнейшие компании мира используют TensorFlow для создания лучшего продукта. Например, Airbnb использует TensorFlow для классификации различных изображений по комнатам и представления наиболее привлекательных в верхней части веб-сайта (Видео TensorFlow Airbnb на YouTube). Это делается путем идентификации различных объектов на картинке. Крыльцо или кровать, или холодильник. Как только он определит вероятность правильной классификации каждого объекта на картинке, он будет использовать предшествующие знания для оценки вероятности правильной идентификации комнаты, учитывая, что объект был правильным. Этот поток продолжается и позволяет Airbnb ставить лучшие фотографии на первое место. На гифке ниже мы можем посмотреть на простой пример этого процесса. Для каждого изображения он определяет разные особенности (например, глаза, уши, рот). Используя предварительные знания, он может предсказать, что на картинке изображена кошка или собака, учитывая собранные данные.

Альтернативы TensorFlow

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

PyTorch: разработан Facebook как библиотека машинного обучения с открытым исходным кодом. Наиболее важное различие между ними заключается в том, что TensorFlow создает статический график, а PyTorch создает динамический график. Это означает, что в TensorFlow вам сначала нужно определить весь граф модели, а затем запустить его. Находясь в PyTorch, вы можете определять свой график и управлять им по ходу работы. Еще одно отличие состоит в том, что у TensorFlow более крутая кривая обучения, но за этим стоит большее сообщество. А в TensorFlow есть TensorBoard, который позволяет визуализировать вашу модель машинного обучения. В PyTorch нет такого инструмента.

Scikit-Learn: также известная как sklearn, это больше универсальная библиотека машинного обучения, в то время как TensorFlow позиционирует себя как библиотеку глубокого обучения. Глубокое обучение - это подмножество машинного обучения, которое говорит компьютеру использовать несколько уровней для обработки данных и заполнения пробелов. Sklearn лучше всего использовать для малых и средних проектов, которые требуют, чтобы пользователи вручную обрабатывали данные и выбирали соответствующий алгоритм. Поскольку он был написан только на Python, он не обладает универсальностью таких языков, как TensorFlow.

Keras: дополнительная библиотека-оболочка, которая должна работать поверх TensorFlow. Он лучше всего подходит для небольших наборов данных и более удобен для пользователя, но не так эффективен. Следует отметить, что это не прямое сравнение, потому что Keras необходимо запускать поверх библиотеки с открытым исходным кодом, такой как TensorFlow.

Учебники

Если вы хотите изучить TensorFlow, ниже приведены несколько веб-сайтов, на которые стоит обратить внимание:

Https://www.tensorflow.org/tutorials

Https://www.udemy.com/course/complete-guide-to-tensorflow-for-deep-learning-with-python/

Https://www.coursera.org/learn/introduction-tensorflow

Https://www.udacity.com/course/intro-to-machine-learning-with-tensorflow-nanodegree--nd230

Документация по API

Https://www.tensorflow.org/api_docs