
Поваренная книга Tensorflow Machine Learning
Книга издательства Packt
Ник МакКлюр
=================
Строить:
=================
Оглавление
- CH 1: Начало работы с TensorFlow
- CH 2: TensorFlow Way
- CH 3: Линейная регрессия
- CH 4:
- CH 5: Ближайшие соседские методы
- CH 6: Нейронные сети
- Ch 7: обработка естественного языка
- CH 8: сверточные нейронные сети
- CH 9: повторяющиеся нейронные сети
- CH 10: Взятие TensorFlow в производство
- Ch 11: больше с TensorFlow
CH 1: Начало работы с TensorFlow

Эта глава намеревается представить основные объекты и концепции в Tensorflow. Мы также представляем, как получить доступ к данным для остальной части книги и предоставлять дополнительные ресурсы для изучения TensorFlow.
- Общий план алгоритмов TF
- Здесь мы представляем TensorFlow и общий план того, как работают большинство алгоритмов TensorFlow.
- Создание и использование тензоров
- Как создать и инициализировать тензоры в Tensorflow. Мы также показываем, как эти операции появляются в Tensorboard.
- Использование переменных и заполнителей
- Как создавать и использовать переменные и заполнители в Tensorflow. Мы также показываем, как эти операции появляются в Tensorboard.
- Работа с матрицами
- Понимание того, как TensorFlow может работать с матрицами, имеет решающее значение для понимания того, как работают алгоритмы.
- Объявление операций
- Как использовать различные математические операции в Tensorflow.
- Реализация функций активации
- Функции активации являются уникальными функциями, которые TensorFlow встроил для вашего использования в алгоритмах.
- Работа с источниками данных
- Здесь мы показываем, как получить доступ ко всем различным необходимым источникам данных в книге. Есть также ссылки, описывающие источники данных и откуда они.
- Дополнительные ресурсы
- В основном официальные ресурсы и документы. Документы - это бумаги для тензора или ресурсы глубокого обучения.
CH 2: TensorFlow Way

После того, как мы установили основные объекты и методы в TensorFlow, теперь мы хотим установить компоненты, которые составляют алгоритмы TensorFlow. Мы начнем с введения вычислительных графиков, а затем перемещаемся к функциям потерь и обратному распространению. Мы заканчиваем созданием простого классификатора, а затем показываем пример оценки алгоритмов регрессии и классификации.
- Одна операция как вычислительный график
- Мы показываем, как создать операцию на вычислительном графике и как визуализировать ее с помощью Tensorboard.
- Слоирование вложенных операций
- Мы показываем, как создать несколько операций на вычислительном графике и как визуализировать их с помощью Tensorboard.
- Работа с несколькими слоями
- Здесь мы расширяем использование вычислительного графика, чтобы создать несколько слоев и показать, как они появляются в Tensorboard.
- Реализация функций убытков
- Чтобы обучить модель, мы должны быть в состоянии оценить, насколько хорошо она работает. Это дается функциями потерь. Мы планируем различные функции потерь и говорим о преимуществах и ограничениях некоторых.
- Реализация обратного распространения
- Здесь мы показываем, как использовать функции убытков для итерации через данные и обратно пропагандировать ошибки для регрессии и классификации.
- Работа со стохастическим и партийным обучением
- Tensorflow позволяет легко использовать как пакетные, так и стохастические тренировки. Мы показываем, как реализовать оба и говорить о преимуществах и ограничениях каждого.
- Объединяя все вместе
- Теперь мы объединяем все вместе, что мы узнали, и создаем простой классификатор.
- Оценка моделей
- Любая модель так же хороша, как и оценка. Здесь мы показываем два примера (1) оценки алгоритма регрессии и (2) алгоритма классификации.
CH 3: Линейная регрессия

Здесь мы показываем, как реализовать различные методы линейной регрессии в Tensorflow. Первые два раздела показывают, как выполнить стандартную линейную регрессию матрицы в TensorFlow. Оставшиеся шесть раздела показывают, как реализовать различные типы регрессии с использованием вычислительных графиков в TensorFlow.
- Использование обратного метода матрицы
- Как решить 2D -регрессию с матрицей, обратной в Tensorflow.
- Реализация метода разложения
- Решение 2D -линейной регрессии с разложением Чузли.
- Изучение тензорфлоу -способа линейной регрессии
- Линейная регрессия итерация через вычислительный график с потерей L2.
- Понимание функций потерь при линейной регрессии
- L2 против L1 Потеря в линейной регрессии. Мы говорим о преимуществах и ограничениях обоих.
- Реализация регрессии Деминга (общая регрессия)
- Деминг (общая) регрессия, реализованная в TensorFlow путем изменения функции потерь.
- Внедрение регрессии Лассо и хребта
- Регрессия Лассо и хребта - это способы регуляризации коэффициентов. Мы реализуем оба из них в TensorFlow, изменяя функции потерь.
- Реализация упругой чистой регрессии
- Elastic Net - это метод регуляризации, которая сочетает в себе потерю L2 и L1 для коэффициентов. Мы показываем, как реализовать это в Tensorflow.
- Реализация логистической регрессии
- Мы реализуем логистическую регрессию с помощью функции активации в нашем вычислительном графике.
CH 4:

В этой главе показано, как реализовать различные методы SVM с помощью TensorFlow. Сначала мы создаем линейный SVM, а также показываем, как его можно использовать для регрессии. Затем мы вводим ядра (RBF гауссовое ядро) и показываем, как использовать его для разделения нелинейных данных. Мы заканчиваем многомерной реализацией нелинейных SVM для работы с несколькими классами.
- Введение
- Мы представляем концепцию SVM и то, как мы будем реализовать их в рамках TensorFlow.
- Работа с линейными SVM
- Мы создаем линейный SVM для разделения I. setosa на основе длины чашеля и ширины педали в наборе данных Iris.
- Снижение линейной регрессии
- Сердцем SVMS является разделение классов с линией. Мы слегка изменяем алгоритм, чтобы выполнить регрессию SVM.
- Работа с ядрами в Tensorflow
- Чтобы расширить SVM на нелинейные данные, мы объясняем и показываем, как реализовать различные ядра в TensorFlow.
- Реализация нелинейных SVM
- Мы используем ядро Гаусса (RBF) для разделения нелинейных классов.
- Реализация многоклассных SVM
- SVM по своей сути являются бинарными предикторами. Мы показываем, как расширить их в стратегии с одним против всех в Tensorflow.
CH 5: Ближайшие соседские методы

Ближайшие соседские методы - очень популярный алгоритм ML. Мы показываем, как реализовать K-ближайшие соседи, взвешенные K-ближайшие соседи и соседей K-близости со смешанными дистанционными функциями. В этой главе мы также показываем, как использовать расстояние Levenshtein (редактирование расстояния) в Tensorflow и использовать его для расчета расстояния между строками. Мы заканчиваем эту главу, показывая, как использовать K-ближайшие соседи для категориального прогноза с распознаванием рукописных цифр MNIST.
- Введение
- Мы вводим концепции и методы, необходимые для выполнения K-ближайших соседей в TensorFlow.
- Работа с ближайшими соседями
- Мы создаем алгоритм ближайшего соседа, который пытается предсказать стоимость жилья (регрессия).
- Работа с расстояниями на основе текста
- Чтобы использовать функцию расстояния на тексту, мы показываем, как использовать редактирование расстояний в TensorFlow.
- Вычислительные функции расстояния смешивания
- Здесь мы реализуем масштабирование функции расстояния путем стандартного отклонения входной функции для K-ближайших соседей.
- Использование сопоставления адресов
- Мы используем смешанную функцию расстояния для соответствия адресам. Мы используем численное расстояние для почтовых индексов и расстояние редактирования струн для имен улиц. Названия улиц разрешено иметь опечатки.
- Использование ближайших соседей для распознавания изображений
- Сбор изображений MNIST Digit-отличный набор данных для иллюстрации того, как выполнить K-ближайшие соседи для задачи классификации изображений.
CH 6: Нейронные сети

Нейронные сети очень важны для машинного обучения и растут в популярности из -за основных прорывов в предыдущих нераскрытых проблемах. Мы должны начать с введения «мелких» нейронных сетей, которые очень мощные и могут помочь нам улучшить наши предыдущие результаты алгоритма ML. Мы начнем с представления самого базового NN -блока, операционных ворот. Мы постепенно добавляем все больше и больше в нейронную сеть и заканчиваемся обучением модели, чтобы воспроизводить Tic-Tac-Toe.
- Введение
- Мы вводим концепцию нейронных сетей и то, как Tensorflow создан для легкости обработки этих алгоритмов.
- Реализация операционных ворот
- Мы реализуем оперативные ворота с одной операцией. Затем мы показываем, как расширить это на несколько вложенных операций.
- Работа с воротами и функциями активации
- Теперь мы должны ввести функции активации на воротах. Мы показываем, как работают разные функции активации.
- Внедрение нейронной сети с одним уровнем
- У нас есть все части, чтобы начать реализацию нашей первой нейронной сети. Мы делаем это здесь с регрессией на наборе данных Iris.
- Реализация разных слоев
- В этом разделе вводит слой свертки и слой максимального питания. Мы показываем, как их объединить в 1D и 2D -пример с полностью подключенными слоями.
- Использование многослойных нейронных сетей
- Здесь мы показываем, как функционализировать различные уровни и переменные для более чистой многослойной нейронной сети.
- Улучшение прогнозов линейных моделей
- Мы показываем, как мы можем улучшить сходимость нашей предварительной логистической регрессии с помощью набора скрытых слоев.
- Научиться играть в Tic-Tac-Toe
- Учитывая набор плат Tic-Tac-Toe и соответствующие оптимальные движения, мы обучаем модель классификации нейронной сети для игры. В конце сценария вы можете попытаться сыграть против обученной модели.
Ch 7: обработка естественного языка

Обработка естественного языка (NLP) - это способ обработки текстовой информации в числовые резюме, функции или модели. В этой главе мы будем мотивировать и объяснить, как лучше всего справиться с текстом в Tensorflow. Мы показываем, как реализовать классические «сумки слоя» и показывать, что могут быть лучшие способы встраивать текст на основе задачи. Существуют встраиваемые нейронные сети, называемые Word2VEC (CBOW и Skip-Gram) и DOC2VEC. Мы показываем, как реализовать все это в Tensorflow.
- Введение
- Мы вводим методы превращения текста в числовые векторы. Мы также представляем функцию TensorFlow «Enceding».
- Работа с сумкой слов
- Здесь мы используем TensorFlow, чтобы сделать однопольнущее кодирование слов, называемых пакетом слоя. Мы используем этот метод и логистическую регрессию, чтобы предсказать, является ли текстовое сообщение спам или ветчину.
- Реализация TF-IDF
- Мы реализуем частоту текста - частота обратной документы (TFIDF) с комбинацией Sci -Kit Learn и Tensorflow. Мы выполняем логистическую регрессию на векторах TFIDF, чтобы улучшить наши прогнозы текста-текста спама/ветчины.
- Работа с Skip-Gram
- Наша первая реализация Word2VEC под названием «Skip-Gram» в базе данных обзора фильмов.
- Работа с CBOW
- Затем мы реализуем форму Word2VEC, называемого «Cbow» (непрерывная сумка слов) в базе данных обзора фильмов. Мы также вводим метод для сохранения и загрузки слов.
- Реализация примера Word2VEC
- В этом примере мы используем предыдущие сохраненные встроенные вставки Choby Word для улучшения нашей логистической регрессии TF-IDF обзора фильма.
- Выполнение настроений анализа с Doc2VEC
- Здесь мы вводим метод DOC2VEC (объединение DOC и Word Entgeddings), чтобы улучшить логистическую модель настроения на обзор фильмов.
CH 8: сверточные нейронные сети

Свижческие нейронные сети (CNN) - это способы получить нейронные сети для работы с данными изображений. CNN получает свое имя от использования сверточного слоя, который применяет фильтр с фиксированным размером на более широком изображении, распознавая шаблон в любой части изображения. Есть много других инструментов, которые они используют (максимальное количество, отсечение и т. Д.), Которые мы показываем, как реализовать с помощью TensorFlow. Мы также показываем, как переучить существующую архитектуру и еще больше взять CNN с Stylenet и Deep Dream.
- Введение
- Мы вводим сверточные нейронные сети (CNN) и как мы можем использовать их в TensorFlow.
- Внедрение простого CNN.
- Здесь мы показываем, как создать архитектуру CNN, которая хорошо работает в задаче распознавания цифр MNIST.
- Реализация расширенного CNN.
- В этом примере мы показываем, как воспроизвести архитектуру для задачи распознавания изображений CIFAR-10.
- Переподготовка существующей архитектуры.
- Мы показываем, как загрузить и настроить данные CIFAR-10 для учебника TensorFlow Restraining/FineNuling.
- Использование Stylenet/Neural -Style.
- В этом рецепте мы показываем основную реализацию использования Stylenet или Neural -Style.
- Реализация глубокой мечты.
- Этот сценарий показывает линейное объяснение учебника Tensorflow по поводу DeepDream. Взят из Deepdream на Tensorflow. Обратите внимание, что код здесь преобразуется в Python 3.
CH 9: повторяющиеся нейронные сети

Рецидивные нейронные сети (RNN) очень похожи на обычные нейронные сети, за исключением того, что они позволяют «повторяющиеся» соединения или петли, которые зависят от предыдущих состояний сети. Это позволяет RNN эффективно иметь дело с последовательными данными, тогда как другие типы сетей не могут. Затем мы мотивируем использование сетей LSTM (длинная краткосрочная память) как способ решения регулярных задач RNN. Затем мы показываем, как легко внедрить эти типы RNN в TensorFlow.
- Введение
- Мы вводим повторяющиеся нейронные сети и то, как они способны питаться в последовательности и прогнозировать либо фиксированную мишень (категориальную/численную), либо другую последовательность (последовательность в последовательность).
- Реализация модели RNN для прогнозирования спама
- В этом примере мы создаем модель RNN для улучшения наших прогнозов SPAM/HAM SMS.
- Реализация модели LSTM для генерации текста
- Мы показываем, как реализовать RNN LSTM (длинная краткосрочная память) для генерации языка Шекспира. (Словарь уровня слов)
- Укладка нескольких слоев LSTM
- Мы складываем несколько слоев LSTM, чтобы улучшить нашу генерацию языка Шекспира. (Словарь уровня персонажа)
- Создание модели перевода последовательности (SEQ2SEQ)
- Здесь мы используем модели последовательности Tensorflow последовательности к последовательности для обучения модели перевода на английском языке.
- Обучение мера сходства сиамцев
- Здесь мы реализуем сиамский RNN для прогнозирования сходства адресов и используем его для сопоставления записей. Использование RNN для сопоставления записей очень универсально, так как у нас нет фиксированного набора целевых категорий и можем использовать обученную модель для прогнозирования сходств по новым адресам.
CH 10: Взятие TensorFlow в производство

Конечно, в TensorFlow есть нечто большее, чем просто создание и подгонка моделей машинного обучения. Как только у нас появится модель, которую мы хотим использовать, мы должны переместить ее в направлении использования производства. В этой главе будут представлены советы и примеры реализации модульных тестов, используя несколько процессоров, с использованием нескольких машин (распределенные TensorFlow) и завершить с полным производственным примером.
- Реализация модульных тестов
- Мы показываем, как реализовать различные типы модульных тестов на тензорах (заполнители и переменные).
- Использование нескольких исполнителей (устройства)
- Как использовать машину с несколькими устройствами. Например, машина с процессором и один или несколько графических процессоров.
- Параллелизирование тензора
- Как настроить и использовать TensorFlow, распределенную на нескольких машинах.
- Советы по тензорфлоу в производстве
- Различные советы для разработки с TensorFlow
- Пример производственного тензора
- Мы показываем, как сделать модель RNN для прогнозирования ветчины/спама (из главы 9, рецепт № 2) и поместить ее в два файла уровня производства: обучение и оценка.
Ch 11: больше с TensorFlow

Чтобы проиллюстрировать, насколько универсальный тензорфлоу, мы покажем дополнительные примеры в этой главе. Мы начнем с того, что показываем, как использовать инструмент для ведения журнала/визуализации Tensorboard. Затем мы иллюстрируем, как делать кластеризацию K-средних, использовать генетический алгоритм и решать систему ODE.
- Визуализация вычислительных графиков (с тенденсорным дозом)
- Пример использования гистограмм, скалярных резюме и создания изображений в Tensorboard.
- Работа с генетическим алгоритмом
- Мы создаем генетический алгоритм для оптимизации человека (массив 50 чисел) в направлении основной функции истины.
- Кластеризация с использованием K-средних
- Как использовать TensorFlow для кластеризации K-средних. Мы используем набор данных IRIS, устанавливаем K = 3 и используем K-средние для прогнозирования.
- Решение системы ОД
- Здесь мы показываем, как использовать TensorFlow для решения системы ODES. Системой, вызывающей озабоченность системой Lotka-Volterra Predator-Prey.
- Использование случайного леса
- Мы иллюстрируем, как использовать градиент Tensorflow, повышенный регрессия и классификацию.
- Использование TensorFlow с керасом
- Здесь мы показываем, как использовать построение последовательной модели Keras для полностью подключенной нейронной сети и модели CNN с обратными вызовами.