Авторы: научный сотрудник Майя Гупта, инженеры-программисты Ян Пфайфер и Сынгил Ю
(существуетКросс-постинг в блоге Google Open Source)
Машинное обучение, в котором используются очень гибкие модели для захвата сложных взаимосвязей ввода-вывода, добилось больших успехов во многих областях применения, включая обработку естественного языка, компьютерное зрение и системы рекомендаций. Однако нерешенной проблемой является анализ входных данных, которые подчиняются известным глобальным отношениям и имеют некоторое семантическое значение (например, «Если есть пробка, расчетное время прохождения расстояния увеличится, в противном случае оно останется прежним»). проблема.DNNислучайный лесКласс гибких моделей может быть не в состоянии изучить эти взаимосвязи и, следовательно, может плохо обобщаться на примеры, взятые из другого распределения выборки, чем примеры, используемые для обучения модели.
Сегодня мы выпускаемTensorFlow Lattice, который включает в себя набор простых в использовании готовыхОценщик TensorFlowиTensorFlowоператора, чтобы помочь вам построить свои собственные модели решетки. Решетка представляет собой многомерную интерполяционную справочную таблицу (подробности см. в [1-5]), аналогичную справочной таблице, которая аппроксимирует синусоидальную функцию на задней обложке учебника по геометрии. Чтобы лучше обобщить модель, мы полностью используем структуру справочной таблицы, чтобы удовлетворить заданным требованиям.Монотонные отношения, структура, способная вводить ключ, оценивая произвольные отношения гибкости с использованием нескольких входных данных. То есть значения интерполяционной таблицы обучаются, чтобы свести к минимуму потери на обучающих примерах, в то время как близлежащие значения в интерполяционной таблице будут ограничены для увеличения в заданном направлении входного пространства, позволяя выходу модели быть в этих направлениях. увеличивать. Важно отметить, что поскольку решетчатую модель можно интерполировать между значениями интерполяционной таблицы, решетчатая модель очень гладкая, а предсказания ограничены границами, что помогает избежать ложно больших или малых предсказаний во время тестирования.
woohoo.YouTube.com/watch?V=cardP…
Как решетчатые модели могут вам помочь
Предположим, вы разрабатываете систему, которая рекомендует пользователям близлежащие кофейни. Вы хотите, чтобы модель научилась «если две одинаковые кофейни, выберите ближайшую». Ниже мы показываем гибкую модель (розовый цвет), которая точно соответствует некоторым обучающим данным (фиолетовый цвет) для пользователей в Токио, у которых поблизости много кофеен. Розовая гибкая модель отлично подходит для шумных тренировочных примеров и отклоняется от общей тенденции предпочтения более близких кофеен. Техас имеет более широкое распределение кофеен, если вы используете эту розовую модель для ранжирования примера Техаса (синего), вы увидите, что модель ведет себя очень странно, иногда даже выбирая кофейни дальше!
Напротив, решетчатая модель, обученная с использованием тех же примеров в Токио, может быть ограничена, чтобы удовлетворять таким монотонным отношениям и генерировать монотонную мягкую функцию (зеленый). Зеленая линия не только точно соответствует учебному примеру в Токио, но и хорошо обобщает пример из Техаса, никогда не выбирая кофейню дальше.
Вообще говоря, о каждой кофейне у вас может быть много входных данных, например, качество и цена кофе и т. д. Гибким моделям сложно зафиксировать глобальные отношения в форме «если все остальные входные данные одинаковы, выберите более близкое», особенно в тех частях пространства признаков, где обучающие данные разрежены и зашумлены. Модели машинного обучения, которые фиксируют предварительные знания (например, как входные данные должны влиять на прогнозы), работают лучше на практике, их легче отлаживать и интерпретировать.
Готовые оценщики
Мы предоставляем ряд архитектур решетчатых моделей, таких какОценщик TensorFlow. Самая простая оценка, которую мы предлагаем, этоКалиброванная линейная модель, который изучает оптимальное одномерное преобразование для каждого объекта (используя одномерную решетку), а затем линейно объединяет все откалиброванные объекты. Эта линейная модель работает очень хорошо, если обучающий набор данных очень мал или нет сложных нелинейных входных взаимодействий. Другой оценщикМодель калибровочной решетки. Эта модель может комбинировать калибровочные функции нелинейным образом, используя двухслойную модель с одной решеткой, которая может представлять сложныенелинейное взаимодействие. Если у вас есть от 2 до 10 функций, модель калибровочной решетки обычно является хорошим выбором, но для 10 или более функций мы считаем, что использование набора калибровочных решеток даст наилучшие результаты, вы можете использовать предварительно созданный набор архитектур для обучать эти решетки. По сравнению со случайными лесами монотонные решетчатые ансамбли могут повысить точность на 0,3–0,5% [4], а эти новые решетчатые оценки TensorFlow могут повысить точность на 0,1–0,4% по сравнению с предыдущими современными монотонными моделями обучения. точность [5].
Создайте свою собственную модель
Возможно, вы захотите поэкспериментировать с более глубокими решетчатыми сетями или исследовать частично монотонные функции как часть глубоких нейронных сетей или других архитектур TensorFlow. Мы предоставляем следующие стандартные блоки: операторы калибратора TensorFlow, решетчатую интерполяцию и монотонную проекцию. Например, на рисунке ниже показана 9-слойная сеть с глубокой решеткой [5].
L1иL2В дополнение к регуляризации мы также предоставляем новые условия регуляризации в TensorFlow Lattice:
Спасибо
Разработка и открытие исходного кода TensorFlow Lattice — это огромная командная работа. Мы хотели бы поблагодарить всех причастных: Эндрю Коттера, Кевина Канини, Дэвида Динга, Махди Милани Фард, Ифей Фэн, Джоша Гордона, Кирила Горового, Клеменса Мьюальда, Таман Нараян, Александра Пассоса, Кристин Робсон, Серену Ван, Мартина Вике, Ярека. Вилькевич, Сен Чжао, Тао Чжу
использованная литература
[1] Lattice Regression, Eric Garcia, Maya Gupta, Advances in Neural Information Processing Systems (NIPS), 2009
[2] Optimized Regression for Efficient Function Evaluation, Eric Garcia, Raman Arora, Maya R. Gupta, IEEE Transactions on Image Processing, 2012
[3] Monotonic Calibrated Interpolated Look-Up Tables, Maya Gupta, Andrew Cotter, Jan Pfeifer, Konstantin Voevodski, Kevin Canini, Alexander Mangylov, Wojciech Moczydlowski, Alexander van Esbroeck, Journal of Machine Learning Research (JMLR), 2016
[4] Fast and Flexible Monotonic Functions with Ensembles of Lattices, Mahdi Milani Fard, Kevin Canini, Andrew Cotter, Jan Pfeifer, Maya Gupta, Advances in Neural Information Processing Systems (NIPS), 2016
[5] Deep Lattice Networks and Partial Monotonic Functions, Seungil You, David Ding, Kevin Canini, Jan Pfeifer, Maya R. Gupta, Advances in Neural Information Processing Systems (NIPS), 2017
(существуетКросс-постинг в блоге Google Open Source)
Машинное обучение, в котором используются очень гибкие модели для захвата сложных взаимосвязей ввода-вывода, добилось больших успехов во многих областях применения, включая обработку естественного языка, компьютерное зрение и системы рекомендаций. Однако нерешенной проблемой является анализ входных данных, которые подчиняются известным глобальным отношениям и имеют некоторое семантическое значение (например, «Если есть пробка, расчетное время прохождения расстояния увеличится, в противном случае оно останется прежним»). проблема.DNNислучайный лесКласс гибких моделей может быть не в состоянии изучить эти взаимосвязи и, следовательно, может плохо обобщаться на примеры, взятые из другого распределения выборки, чем примеры, используемые для обучения модели.
Сегодня мы выпускаемTensorFlow Lattice, который включает в себя набор простых в использовании готовыхОценщик TensorFlowиTensorFlowоператора, чтобы помочь вам построить свои собственные модели решетки. Решетка представляет собой многомерную интерполяционную справочную таблицу (подробности см. в [1-5]), аналогичную справочной таблице, которая аппроксимирует синусоидальную функцию на задней обложке учебника по геометрии. Чтобы лучше обобщить модель, мы полностью используем структуру справочной таблицы, чтобы удовлетворить заданным требованиям.Монотонные отношения, структура, способная вводить ключ, оценивая произвольные отношения гибкости с использованием нескольких входных данных. То есть значения интерполяционной таблицы обучаются, чтобы свести к минимуму потери на обучающих примерах, в то время как близлежащие значения в интерполяционной таблице будут ограничены для увеличения в заданном направлении входного пространства, позволяя выходу модели быть в этих направлениях. увеличивать. Важно отметить, что поскольку решетчатую модель можно интерполировать между значениями интерполяционной таблицы, решетчатая модель очень гладкая, а предсказания ограничены границами, что помогает избежать ложно больших или малых предсказаний во время тестирования.
woohoo.YouTube.com/watch?V=cardP…
Как решетчатые модели могут вам помочь
Предположим, вы разрабатываете систему, которая рекомендует пользователям близлежащие кофейни. Вы хотите, чтобы модель научилась «если две одинаковые кофейни, выберите ближайшую». Ниже мы показываем гибкую модель (розовый цвет), которая точно соответствует некоторым обучающим данным (фиолетовый цвет) для пользователей в Токио, у которых поблизости много кофеен. Розовая гибкая модель отлично подходит для шумных тренировочных примеров и отклоняется от общей тенденции предпочтения более близких кофеен. Техас имеет более широкое распределение кофеен, если вы используете эту розовую модель для ранжирования примера Техаса (синего), вы увидите, что модель ведет себя очень странно, иногда даже выбирая кофейни дальше!
Монотонная функция изгиба (зеленая) является точной на обучающих примерах и обобщает пример Техаса по сравнению с немонотонной функцией изгиба (розовая) на предыдущем рисунке. |
Вообще говоря, о каждой кофейне у вас может быть много входных данных, например, качество и цена кофе и т. д. Гибким моделям сложно зафиксировать глобальные отношения в форме «если все остальные входные данные одинаковы, выберите более близкое», особенно в тех частях пространства признаков, где обучающие данные разрежены и зашумлены. Модели машинного обучения, которые фиксируют предварительные знания (например, как входные данные должны влиять на прогнозы), работают лучше на практике, их легче отлаживать и интерпретировать.
Готовые оценщики
Мы предоставляем ряд архитектур решетчатых моделей, таких какОценщик TensorFlow. Самая простая оценка, которую мы предлагаем, этоКалиброванная линейная модель, который изучает оптимальное одномерное преобразование для каждого объекта (используя одномерную решетку), а затем линейно объединяет все откалиброванные объекты. Эта линейная модель работает очень хорошо, если обучающий набор данных очень мал или нет сложных нелинейных входных взаимодействий. Другой оценщикМодель калибровочной решетки. Эта модель может комбинировать калибровочные функции нелинейным образом, используя двухслойную модель с одной решеткой, которая может представлять сложныенелинейное взаимодействие. Если у вас есть от 2 до 10 функций, модель калибровочной решетки обычно является хорошим выбором, но для 10 или более функций мы считаем, что использование набора калибровочных решеток даст наилучшие результаты, вы можете использовать предварительно созданный набор архитектур для обучать эти решетки. По сравнению со случайными лесами монотонные решетчатые ансамбли могут повысить точность на 0,3–0,5% [4], а эти новые решетчатые оценки TensorFlow могут повысить точность на 0,1–0,4% по сравнению с предыдущими современными монотонными моделями обучения. точность [5].
Создайте свою собственную модель
Возможно, вы захотите поэкспериментировать с более глубокими решетчатыми сетями или исследовать частично монотонные функции как часть глубоких нейронных сетей или других архитектур TensorFlow. Мы предоставляем следующие стандартные блоки: операторы калибратора TensorFlow, решетчатую интерполяцию и монотонную проекцию. Например, на рисунке ниже показана 9-слойная сеть с глубокой решеткой [5].
L1иL2В дополнение к регуляризации мы также предоставляем новые условия регуляризации в TensorFlow Lattice:
- Наложите ограничения монотонности на ваш выбор ввода [3], как описано выше.
- Лапласова регуляризация [3] выполняется на решетке, чтобы сделать изученную функцию более плоской.
- Регуляризация деформации [3] для подавления нежелательных нелинейных взаимодействий признаков.
Спасибо
Разработка и открытие исходного кода TensorFlow Lattice — это огромная командная работа. Мы хотели бы поблагодарить всех причастных: Эндрю Коттера, Кевина Канини, Дэвида Динга, Махди Милани Фард, Ифей Фэн, Джоша Гордона, Кирила Горового, Клеменса Мьюальда, Таман Нараян, Александра Пассоса, Кристин Робсон, Серену Ван, Мартина Вике, Ярека. Вилькевич, Сен Чжао, Тао Чжу
использованная литература
[1] Lattice Regression, Eric Garcia, Maya Gupta, Advances in Neural Information Processing Systems (NIPS), 2009
[2] Optimized Regression for Efficient Function Evaluation, Eric Garcia, Raman Arora, Maya R. Gupta, IEEE Transactions on Image Processing, 2012
[3] Monotonic Calibrated Interpolated Look-Up Tables, Maya Gupta, Andrew Cotter, Jan Pfeifer, Konstantin Voevodski, Kevin Canini, Alexander Mangylov, Wojciech Moczydlowski, Alexander van Esbroeck, Journal of Machine Learning Research (JMLR), 2016
[4] Fast and Flexible Monotonic Functions with Ensembles of Lattices, Mahdi Milani Fard, Kevin Canini, Andrew Cotter, Jan Pfeifer, Maya Gupta, Advances in Neural Information Processing Systems (NIPS), 2016
[5] Deep Lattice Networks and Partial Monotonic Functions, Seungil You, David Ding, Kevin Canini, Jan Pfeifer, Maya R. Gupta, Advances in Neural Information Processing Systems (NIPS), 2017