TensorFlow Lattice (TFL)

TensorFlow Lattice adalah library yang mengimplementasikan model berbasis lattice yang fleksibel, terkontrol, dan dapat ditafsirkan. Pustaka memungkinkan Anda untuk memasukkan pengetahuan domain ke dalam proses pembelajaran melalui akal sehat atau batasan bentuk yang didorong oleh kebijakan . Ini dilakukan dengan menggunakan kumpulan lapisan Keras yang dapat memenuhi kendala seperti monotonisitas, konveksitas, dan kepercayaan berpasangan. Perpustakaan juga menyediakan estimator kalengan yang mudah diatur.

Konsep

Bagian ini adalah versi sederhana dari deskripsi di Monotonic Calibrated Interpolated Look-Up Tables , JMLR 2016.

kisi-kisi

Kisi adalah tabel pencarian yang diinterpolasi yang dapat memperkirakan hubungan input-output arbitrer dalam data Anda. Ini tumpang tindih dengan kisi biasa ke ruang input Anda dan mempelajari nilai untuk output di simpul kisi. Untuk titik uji \(x\), \(f(x)\) diinterpolasi secara linier dari nilai kisi yang mengelilingi \(x\).

Contoh sederhana di atas adalah fungsi dengan 2 fitur input dan 4 parameter:\(\theta=[0, 0.2, 0.4, 1]\), yang merupakan nilai fungsi di sudut ruang input; sisa fungsi diinterpolasi dari parameter ini.

Fungsi \(f(x)\) dapat menangkap interaksi non-linier antar fitur. Anda dapat menganggap parameter kisi sebagai ketinggian tiang yang dipasang di tanah pada kisi biasa, dan fungsi yang dihasilkan seperti kain yang ditarik kencang ke keempat tiang.

Dengan fitur \(D\) dan 2 simpul di sepanjang setiap dimensi, kisi biasa akan memiliki parameter \(2^D\) . Agar sesuai dengan fungsi yang lebih fleksibel, Anda dapat menentukan kisi berbutir lebih halus di atas ruang fitur dengan lebih banyak simpul di sepanjang setiap dimensi. Fungsi regresi kisi adalah kontinu dan terdiferensialkan secara sepotong-sepotong.

Kalibrasi

Katakanlah kisi sampel sebelumnya mewakili kebahagiaan pengguna yang terpelajar dengan kedai kopi lokal yang disarankan yang dihitung menggunakan fitur:

  • harga kopi, dalam kisaran 0 hingga 20 dolar
  • jarak ke pengguna, dalam kisaran 0 hingga 30 kilometer

Kami ingin model kami mempelajari kebahagiaan pengguna dengan saran kedai kopi lokal. Model TensorFlow Lattice dapat menggunakan fungsi linier sepotong -sepotong (dengan tfl.layers.PWLCalibration ) untuk mengkalibrasi dan menormalkan fitur input ke rentang yang diterima oleh kisi: 0,0 hingga 1,0 pada contoh kisi di atas. Berikut ini menunjukkan contoh fungsi kalibrasi tersebut dengan 10 keypoint:

Sering kali merupakan ide yang baik untuk menggunakan kuantil fitur sebagai titik kunci input. Penaksir kaleng TensorFlow Lattice dapat secara otomatis mengatur titik kunci input ke kuantil fitur.

Untuk fitur kategoris, TensorFlow Lattice menyediakan kalibrasi kategoris (dengan tfl.layers.CategoricalCalibration ) dengan keluaran serupa yang terikat untuk dimasukkan ke dalam kisi.

ansambel

Jumlah parameter lapisan kisi meningkat secara eksponensial dengan jumlah fitur input, sehingga tidak dapat diskalakan dengan baik ke dimensi yang sangat tinggi. Untuk mengatasi batasan ini, TensorFlow Lattice menawarkan rangkaian kisi yang menggabungkan (rata-rata) beberapa kisi kecil , yang memungkinkan model untuk berkembang secara linier dalam jumlah fitur.

Perpustakaan menyediakan dua variasi dari ansambel ini:

  • Random Tiny Lattices (RTL): Setiap submodel menggunakan subset fitur secara acak (dengan penggantian).

  • Crystals : Algoritma Crystals pertama-tama melatih model prefitting yang memperkirakan interaksi fitur berpasangan. Kemudian mengatur ansambel akhir sedemikian rupa sehingga fitur dengan lebih banyak interaksi non-linier berada dalam kisi yang sama.

Mengapa TensorFlow Lattice ?

Anda dapat menemukan pengenalan singkat tentang TensorFlow Lattice di posting Blog TF ini.

Interpretasi

Karena parameter setiap lapisan adalah keluaran dari lapisan itu, maka mudah untuk menganalisis, memahami, dan men-debug setiap bagian dari model.

Model yang Akurat dan Fleksibel

Menggunakan kisi berbutir halus, Anda bisa mendapatkan fungsi kompleks yang sewenang -wenang dengan satu lapisan kisi. Menggunakan beberapa lapis kalibrator dan kisi sering kali berfungsi dengan baik dalam praktiknya dan dapat menyamai atau mengungguli model DNN dengan ukuran serupa.

Batasan Bentuk Akal Sehat

Data pelatihan dunia nyata mungkin tidak cukup mewakili data run-time. Solusi ML yang fleksibel seperti DNN atau forest sering kali bertindak secara tidak terduga dan bahkan liar di bagian ruang input yang tidak tercakup oleh data pelatihan. Perilaku ini terutama bermasalah ketika batasan kebijakan atau keadilan dapat dilanggar.

Meskipun bentuk regularisasi yang umum dapat menghasilkan ekstrapolasi yang lebih masuk akal, regularizer standar tidak dapat menjamin perilaku model yang masuk akal di seluruh ruang input, terutama dengan input berdimensi tinggi. Beralih ke model yang lebih sederhana dengan perilaku yang lebih terkontrol dan dapat diprediksi dapat menimbulkan biaya yang besar terhadap akurasi model.

TF Lattice memungkinkan untuk tetap menggunakan model yang fleksibel, tetapi menyediakan beberapa opsi untuk memasukkan pengetahuan domain ke dalam proses pembelajaran melalui batasan bentuk yang didorong oleh akal sehat atau kebijakan yang bermakna secara semantik :

  • Monotonisitas : Anda dapat menentukan bahwa output hanya boleh naik/turun sehubungan dengan input. Dalam contoh kami, Anda mungkin ingin menentukan bahwa peningkatan jarak ke kedai kopi seharusnya hanya menurunkan preferensi pengguna yang diprediksi.

  • Convexity/Concavity : Anda dapat menentukan bahwa bentuk fungsi bisa cembung atau cekung. Dicampur dengan monoton, ini dapat memaksa fungsi untuk mewakili hasil yang semakin berkurang sehubungan dengan fitur yang diberikan.

  • Unimodality : Anda dapat menentukan bahwa fungsi tersebut harus memiliki puncak yang unik atau lembah yang unik. Ini memungkinkan Anda mewakili fungsi yang memiliki sweet spot sehubungan dengan fitur.

  • Kepercayaan berpasangan : Batasan ini berfungsi pada sepasang fitur dan menunjukkan bahwa satu fitur masukan secara semantik mencerminkan kepercayaan pada fitur lain. Misalnya, jumlah ulasan yang lebih tinggi membuat Anda lebih percaya diri dengan peringkat bintang rata-rata sebuah restoran. Model akan lebih sensitif sehubungan dengan peringkat bintang (yaitu akan memiliki kemiringan yang lebih besar sehubungan dengan peringkat) ketika jumlah ulasan lebih tinggi.

Fleksibilitas Terkendali dengan Regularizer

Selain batasan bentuk, kisi TensorFlow menyediakan sejumlah regularizer untuk mengontrol fleksibilitas dan kelancaran fungsi untuk setiap lapisan.

  • Laplacian Regularizer : Keluaran dari kisi/kalibrasi simpul/titik kunci diatur ke nilai tetangganya masing-masing. Ini menghasilkan fungsi yang lebih datar .

  • Reguler Hessian : Ini menghukum turunan pertama dari lapisan kalibrasi PWL untuk membuat fungsi lebih linier .

  • Wrinkle Regularizer : Ini menghukum turunan kedua dari lapisan kalibrasi PWL untuk menghindari perubahan mendadak pada kelengkungan. Itu membuat fungsinya lebih lancar.

  • Pengatur Torsi : Keluaran kisi akan diatur untuk mencegah torsi di antara fitur. Dengan kata lain, model akan diatur menuju kemandirian antara kontribusi fitur.

Padu padankan dengan lapisan Keras lainnya

Anda dapat menggunakan lapisan TF Lattice dalam kombinasi dengan lapisan Keras lainnya untuk membuat model yang dibatasi sebagian atau diregangkan. Misalnya, lapisan kalibrasi kisi atau PWL dapat digunakan pada lapisan terakhir dari jaringan yang lebih dalam yang mencakup penyematan atau lapisan Keras lainnya.

Dokumen

Tutorial dan dokumen API

Untuk arsitektur model umum, Anda dapat menggunakan model premade Keras atau Estimator kalengan . Anda juga dapat membuat model khusus menggunakan lapisan TF Lattice Keras atau mencampur dan mencocokkan dengan lapisan Keras lainnya. Lihat dokumen API lengkap untuk detailnya.