Посетите симпозиум «Женщины в машинном обучении» 7 декабря Зарегистрируйтесь сейчас

Решетка TensorFlow (TFL)

Оптимизируйте свои подборки Сохраняйте и классифицируйте контент в соответствии со своими настройками.

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

Концепции

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

Решетки

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

Простой пример выше — это функция с двумя входными функциями и четырьмя параметрами:\(\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 Lattice могут автоматически устанавливать входные ключевые точки в квантили признаков.

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

Ансамбли

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

Документы

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

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