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

Решетка TensorFlow (TFL)

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

Концепции

Этот раздел является упрощенной версией описания в монотонных калиброванных интерполированных справочных таблицах , JMLR 2016.

Решетки

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

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

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

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

калибровка

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

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

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

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

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

ансамбли

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

Библиотека предоставляет два варианта этих ансамблей:

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

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

Почему TensorFlow Lattice?

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

документы

Учебники и API документы

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