Франсуа ШоллеГлубокое обучение на Python. 2-е межд. издание
Глубокое обучение динамично развивается, открывая все новые и новые возможности создания ПО. Это не только автоматический перевод текстов с одного языка на другой, распознавание изображений, но и многое другое. Глубокое обучение превратилось в важный навык, необходимый каждому разработчику. Keras и TensorFlow облегчают жизнь разработчикам и позволяют легко работать даже тем, кто не имеет фундаментальных знаний в области математики или науки о данных.
Настала пора познакомиться с глубоким обучением и мощной библиотекой Keras!
В этом расширенном и дополненном издании создатель библиотеки Keras — Франсуа Шолле — делится знаниями и с новичками, и с опытными специалистами. Иллюстрации и наглядные примеры помогут вам разобраться с самыми сложными вопросами и концепциями. Вы быстро приобретете навыки, необходимые для разработки приложений глубокого обучения.
GradientTape — мощный объект, способный даже вычислять градиенты второго порядка, то есть градиенты градиентов. Например, градиент положения объекта относительно времени — это скорость объекта, а градиент второго порядка — его ускорение.
Данная терминология пришла из поисковых и рекомендательных систем (рис. 11.7). Представьте, что вы вводите запрос «собаки на пляже» для выбора фотографий из вашей коллекции. Каждая фотография в вашей базе данных описывается набором ключевых слов — «кошка», «собака», «вечеринка» и т.д. Будем называть их ключами. Поисковая система сначала сравнивает запрос с ключами в базе данных. Совпадение со словом «собака» дает оценку соответствия 1, а отсутствие совпадения со словом «кошка» дает оценку соответствия 0. Затем она ранжирует ключи по величине соответствия (релевантности) и возвращает фотографии, связанные с лучшими N совпадениями в порядке убывания релевантности.
Концептуально именно так работает механизм внимания в архитектуре Transformer. У вас есть исходная последовательность, характеризующая искомое, — запрос. Есть совокупность знаний, из которых извлекается информация — значения. Каждому значению соответствует ключ, описывающий значение в формате, пригодном для сравнения с запросом. Вы просто сопоставляете запрос с ключами и возвращаете взвешенную сумму значений.