이 페이지는 Cloud Translation API를 통해 번역되었습니다.
Switch to English

TensorFlow Lattice (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 개의 정점이 있으면 일반 격자에는 $ 2 ^ D $ 매개 변수가 있습니다. 보다 유연한 기능에 맞추기 위해 각 차원을 따라 더 많은 정점이있는 피쳐 공간에 더 미세한 격자를 지정할 수 있습니다. 격자 회귀 함수는 연속적이고 부분적으로 무한 미분 할 수 있습니다.

구경 측정

앞의 샘플 격자가 기능을 사용하여 계산 된 추천 지역 커피 숍을 통해 학습 된 사용자의 행복 을 나타낸다고 가정 해 보겠습니다.

  • 커피 가격 (0 ~ 20 달러)
  • 사용자까지의 거리 (범위 : 0 ~ 30km)

우리는 모델이 지역 커피 숍 제안으로 사용자의 행복을 배우기를 바랍니다. TensorFlow Lattice 모델은 조각 선형 함수 ( tfl.layers.PWLCalibration )를 사용하여 위의 예제 격자에서 0.0에서 1.0까지 격자가 허용하는 범위로 입력 특성을 보정하고 정규화 할 수 있습니다. 다음은 10 개의 키포인트가있는 교정 기능의 예를 보여줍니다.

특성의 분위수를 입력 키포인트로 사용하는 것이 좋습니다. TensorFlow Lattice canned estimator 는 입력 키포인트를 특성 분위수로 자동 설정할 수 있습니다.

범주 형 기능의 경우 TensorFlow Lattice는 격자에 공급할 유사한 출력 경계를 사용하여 범주 형 보정 ( tfl.layers.CategoricalCalibration )을 제공합니다.

앙상블

격자 레이어의 매개 변수 수는 입력 특성의 수에 따라 기하 급수적으로 증가하므로 매우 높은 차원으로 확장되지 않습니다. 이러한 한계를 극복하기 위해 TensorFlow Lattice는 여러 개의 작은 격자를 결합 (평균)하는 격자 앙상블을 제공하여 모델이 기능 수에서 선형 적으로 성장할 수 있도록합니다.

라이브러리는 이러한 앙상블의 두 가지 변형을 제공합니다.

  • RTL ( Random Tiny Lattices ) : 각 하위 모델은 기능의 무작위 하위 집합 (대체 포함)을 사용합니다.

  • Crystals : Crystals 알고리즘은 먼저 쌍별 기능 상호 작용을 추정하는 사전 적합 모델을 학습시킵니다 . 그런 다음 비선형 상호 작용이 더 많은 피처가 동일한 격자에 있도록 최종 앙상블을 정렬합니다.

왜 TensorFlow Lattice인가?

TF 블로그 게시물 에서 TensorFlow Lattice에 대한 간략한 소개를 확인할 수 있습니다.

해석 가능성

각 계층의 매개 변수는 해당 계층의 출력이므로 모델의 각 부분을 쉽게 분석, 이해 및 디버그 할 수 있습니다.

정확하고 유연한 모델

세분화 된 격자를 사용하면 단일 격자 레이어로 임의의 복잡한 함수를 얻을 수 있습니다. 여러 계층의 교정기와 격자를 사용하면 실제로 잘 작동하며 비슷한 크기의 DNN 모델과 일치하거나 성능을 능가 할 수 있습니다.

상식적인 모양 제약

실제 훈련 데이터는 런타임 데이터를 충분히 나타내지 못할 수 있습니다. DNN 또는 포리스트와 같은 유연한 ML 솔루션은 종종 훈련 데이터가 다루지 않는 입력 공간의 일부에서 예기치 않게 심지어 격렬하게 작동합니다. 이 동작은 정책 또는 공정성 제약을 위반할 수있는 경우 특히 문제가됩니다.

일반적인 형태의 정규화가 더 합리적인 외삽을 가져올 수 있지만, 표준 정규화는 특히 고차원 입력에서 전체 입력 공간에 걸쳐 합리적인 모델 동작을 보장 할 수 없습니다. 보다 제어되고 예측 가능한 동작을 가진 더 단순한 모델로 전환하면 모델 정확도가 크게 저하 될 수 있습니다.

TF Lattice를 사용하면 유연한 모델을 계속 사용할 수 있지만 의미 상 의미있는 상식 또는 정책 기반 형태 제약을 통해 학습 프로세스에 도메인 지식을 주입 할 수있는 몇 가지 옵션을 제공합니다.

  • Monotonicity : 입력에 대해 출력이 증가 / 감소하도록 지정할 수 있습니다. 이 예에서는 커피 숍까지의 거리가 증가하면 예상 사용자 선호도 만 감소하도록 지정할 수 있습니다.

  • 볼록 / 오목 : 함수 모양을 볼록 또는 오목하도록 지정할 수 있습니다. 단조 성과 혼합되면 함수가 주어진 특성에 대해 감소하는 수익을 나타내도록 강제 할 수 있습니다.

  • Unimodality : 함수가 고유 한 피크 또는 고유 한 밸리를 갖도록 지정할 수 있습니다. 이를 통해 기능과 관련하여 최적의 지점 이있는 함수를 나타낼 수 있습니다.

  • Pairwise trust :이 제약은 한 쌍의 기능에서 작동하며 하나의 입력 기능이 다른 기능에 대한 신뢰를 의미 적으로 반영 함을 제안합니다. 예를 들어 리뷰 수가 많을수록 레스토랑의 평균 별점에 대해 더 확신 할 수 있습니다. 모델은 리뷰 수가 많을 때 별 등급에 대해 더 민감합니다 (즉, 등급에 대해 더 큰 기울기를 가짐).

레귤레이터로 제어 된 유연성

모양 제약 외에도 TensorFlow 격자는 각 레이어에 대한 기능의 유연성과 부드러움을 제어하기위한 여러 정규화기를 제공합니다.

  • Laplacian Regularizer : 격자 / 보정 꼭지점 / 키포인트의 출력이 해당 인접 항목의 값으로 정규화됩니다. 이로 인해 더 평평한 기능이 생성됩니다.

  • Hessian Regularizer : 이것은 함수를 보다 선형 적 으로 만들기 위해 PWL 보정 계층의 1 차 도함수에 페널티를줍니다.

  • Wrinkle Regularizer : 곡률의 갑작스런 변화를 피하기 위해 PWL 보정 레이어의 2 차 미분에 페널티를줍니다. 그것은 기능을 더 부드럽게 만듭니다.

  • 비틀림 정규화 : 격자의 출력이 피쳐 간의 비틀림을 방지하기 위해 정규화됩니다. 즉, 모델은 기능의 기여 사이의 독립성을 향해 정규화됩니다.

다른 Keras 레이어와 믹스 앤 매치

TF Lattice 레이어를 다른 Keras 레이어와 함께 사용하여 부분적으로 제한되거나 정규화 된 모델을 구성 할 수 있습니다. 예를 들어, 래티스 또는 PWL 보정 레이어는 임베딩 또는 기타 Keras 레이어를 포함하는 심층 네트워크의 마지막 레이어에서 사용할 수 있습니다.

서류

자습서 및 API 문서

일반적인 모델 아키텍처의 경우 Keras 사전 제작 모델 또는 미리 준비된 Estimators를 사용할 수 있습니다. TF Lattice Keras 레이어를 사용하여 사용자 지정 모델을 생성하거나 다른 Keras 레이어와 혼합 및 일치시킬 수도 있습니다. 자세한 내용은 전체 API 문서 를 확인하세요.