Эта страница была переведа с помощью Cloud Translation API.
Switch to English

Решетка TensorFlow (TFL)

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

Концепции

Этот раздел представляет собой упрощенную версию описания в Monotonic Calibrated Interpolated Look-Up Tables , JMLR 2016.

Решетки

Решетка - это интерполированная справочная таблица, которая может аппроксимировать произвольные отношения ввода-вывода в ваших данных. Он накладывает регулярную сетку на пространство ввода и изучает значения для вывода в вершинах сетки. Для тестовой точки $ x $, $ f (x) $ линейно интерполируется из значений решетки, окружающих $ x $.

В приведенном выше простом примере показана функция с 2 входными функциями и 4 параметрами: $ \ theta = [0, 0.2, 0.4, 1] $, которые являются значениями функции в углах области ввода; остальная часть функции интерполируется из этих параметров.

Функция $ f (x) $ может фиксировать нелинейные взаимодействия между функциями. Вы можете думать о параметрах решетки как о высоте полюсов, установленных в земле на регулярной сетке, и полученная функция подобна ткани, натянутой на четыре полюса.

С функциями $ D $ и двумя вершинами в каждом измерении обычная решетка будет иметь $ 2 ^ D $ параметров. Чтобы соответствовать более гибкой функции, вы можете указать более мелкозернистую решетку по пространству признаков с большим количеством вершин по каждому измерению. Функции решеточной регрессии непрерывны и кусочно бесконечно дифференцируемы.

Калибровка

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

  • цена на кофе от 0 до 20 долларов
  • расстояние до пользователя от 0 до 30 километров

Мы хотим, чтобы наша модель познавала удовлетворенность пользователей с помощью предложения местной кофейни. Модели TensorFlow Lattice могут использовать кусочно-линейные функцииtfl.layers.PWLCalibration ) для калибровки и нормализации входных функций в диапазоне, принятом решеткой: от 0,0 до 1,0 в приведенном выше примере решетки. Ниже показаны примеры таких функций калибровки с 10 ключевыми точками:

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

Для категориальных функций TensorFlow Lattice предоставляет категориальную калибровку (с tfl.layers.CategoricalCalibration ) с аналогичными выходными ограничениями для подачи в решетку.

Ансамбли

Число параметров слоя решетки экспоненциально увеличивается с числом входных функций, поэтому не очень хорошо масштабируется до очень больших размеров. Чтобы преодолеть это ограничение, TensorFlow Lattice предлагает ансамбли решеток, которые объединяют (усредняют) несколько крошечных решеток, что позволяет модели линейно расти по количеству элементов.

В библиотеке есть два варианта этих ансамблей:

  • Случайные крошечные решетки (RTL): каждая подмодель использует случайное подмножество функций (с заменой).

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

Почему решетка TensorFlow?

Вы можете найти краткое введение в TensorFlow Lattice в этом сообщении блога TF .

Интерпретируемость

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

Точные и гибкие модели

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

Ограничения формы здравого смысла

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

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

TF Lattice позволяет продолжать использовать гибкие модели, но предоставляет несколько вариантов для внедрения знаний предметной области в процесс обучения через семантически значимые, основанные на здравом смысле или определяемые политикой ограничения формы :

  • Монотонность : вы можете указать, что выходной сигнал должен только увеличиваться / уменьшаться относительно входа. В нашем примере вы можете указать, что увеличение расстояния до кафе должно только уменьшать прогнозируемые предпочтения пользователя.

  • Выпуклость / вогнутость : вы можете указать, что форма функции может быть выпуклой или вогнутой. В сочетании с монотонностью это может заставить функцию представлять убывающую отдачу по отношению к заданной функции.

  • Унимодальность : вы можете указать, что функция должна иметь уникальный пик или уникальную впадину. Это позволяет вам представлять функции, у которых есть золотая середина по отношению к функции.

  • Парное доверие : это ограничение работает с парой функций и предполагает, что одна входная функция семантически отражает доверие к другой функции. Например, большее количество отзывов делает вас более уверенными в среднем звездном рейтинге ресторана. Модель будет более чувствительной по отношению к звездному рейтингу (т.е. будет иметь больший наклон по отношению к рейтингу), когда количество обзоров будет выше.

Контролируемая гибкость с помощью регуляризаторов

В дополнение к ограничениям формы решетка TensorFlow предоставляет ряд регуляризаторов для управления гибкостью и плавностью функции для каждого слоя.

  • Регуляризатор: Лапласиан Выходы решетки / калибровка вершина / ключевые точки регуляризуются по отношению к значениям соответствующих соседей. Это приводит к более плоской функции.

  • Регуляризатор Гессе : это штрафует первую производную калибровочного слоя PWL, чтобы сделать функцию более линейной .

  • Регуляризатор морщин : штрафует вторую производную калибровочного слоя PWL, чтобы избежать внезапных изменений кривизны. Это делает функцию более плавной.

  • Регуляризатор кручения : выходы решетки будут упорядочены для предотвращения кручения между элементами. Другими словами, модель будет упорядочена в сторону независимости между вкладом функций.

Смешивайте и сочетайте с другими слоями Keras

Вы можете использовать слои TF Lattice в сочетании с другими слоями Keras для построения частично ограниченных или регуляризованных моделей. Например, калибровочные слои решетки или PWL могут использоваться на последнем уровне более глубоких сетей, которые включают в себя встраивания или другие слои Keras.

Статьи

Учебники и документация по API

Для общих архитектур моделей вы можете использовать готовые модели Keras или стандартные оценщики . Вы также можете создавать собственные модели, используя слои TF Lattice Keras или смешивать и сочетать с другими слоями Keras. Ознакомьтесь с полной документацией по API .