Kisi TensorFlow (TFL)

TensorFlow Lattice adalah pustaka yang mengimplementasikan model berbasis lattice yang fleksibel, terkontrol, dan mudah diinterpretasikan. Pustaka ini memungkinkan Anda untuk memasukkan pengetahuan domain ke dalam proses pembelajaran melalui batasan bentuk yang masuk akal atau berdasarkan kebijakan. Hal ini dilakukan dengan menggunakan kumpulan lapisan Keras yang dapat memenuhi batasan seperti monotonisitas, konveksitas, dan kepercayaan berpasangan. Pustaka ini juga menyediakan model siap pakai yang mudah diatur.

Konsep

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

Kisi-kisi

Kisi (lattice) adalah tabel pencarian terinterpolasi yang dapat mendekati hubungan input-output sembarang dalam data Anda. Kisi ini menumpangkan grid reguler ke ruang input Anda dan mempelajari nilai-nilai untuk output di simpul-simpul grid tersebut. Untuk titik uji \(x\), \(f(x)\) diinterpolasi secara linier dari nilai-nilai kisi di sekitarnya \(x\).

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

Fungsi \(f(x)\) dapat menangkap interaksi non-linear antar fitur. Anda dapat membayangkan parameter kisi sebagai tinggi tiang yang ditancapkan di tanah pada grid teratur, dan fungsi yang dihasilkan seperti kain yang ditarik kencang di antara keempat tiang tersebut.

Dengan \(D\) Dengan fitur dan 2 simpul di sepanjang setiap dimensi, kisi reguler akan memiliki \(2^D\) parameter. Untuk menyesuaikan fungsi yang lebih fleksibel, Anda dapat menentukan kisi yang lebih halus di atas ruang fitur dengan lebih banyak simpul di sepanjang setiap dimensi. Fungsi regresi kisi bersifat kontinu dan dapat didiferensiasi secara tak terbatas per bagian.

Kalibrasi

Misalnya, contoh grid sebelumnya mewakili tingkat kepuasan pengguna terhadap kedai kopi lokal yang disarankan, yang dihitung menggunakan fitur-fitur berikut:

  • Harga kopi, berkisar antara 0 hingga 20 dolar.
  • jarak ke pengguna, dalam rentang 0 hingga 30 kilometer

Kita ingin model kita mempelajari tingkat kepuasan pengguna terhadap saran kedai kopi lokal. Model TensorFlow Lattice dapat menggunakan fungsi linier piecewise (dengan tfl.layers.PWLCalibration ) untuk mengkalibrasi dan menormalisasi fitur input ke rentang yang diterima oleh lattice: 0,0 hingga 1,0 pada contoh lattice di atas. Berikut ini menunjukkan contoh fungsi kalibrasi tersebut dengan 10 titik kunci:

Seringkali merupakan ide yang baik untuk menggunakan kuantil dari fitur sebagai titik kunci input. Model bawaan TensorFlow Lattice dapat secara otomatis mengatur titik kunci input ke kuantil fitur.

Untuk fitur kategorikal, TensorFlow Lattice menyediakan kalibrasi kategorikal (dengan tfl.layers.CategoricalCalibration ) dengan batasan keluaran serupa untuk dimasukkan ke dalam lattice.

Ansambel

Jumlah parameter lapisan lattice meningkat secara eksponensial dengan jumlah fitur input, sehingga tidak dapat diskalakan dengan baik pada dimensi yang sangat tinggi. Untuk mengatasi keterbatasan ini, TensorFlow Lattice menawarkan ensemble lattice yang menggabungkan (merata-ratakan) beberapa lattice kecil , yang memungkinkan model untuk tumbuh secara linier terhadap jumlah fitur.

Perpustakaan ini menyediakan dua variasi dari ansambel tersebut:

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

  • Crystals : Algoritma Crystals pertama-tama melatih model pra-penyesuaian yang memperkirakan interaksi fitur berpasangan. Kemudian, algoritma ini mengatur ensemble akhir sedemikian rupa sehingga fitur-fitur dengan interaksi non-linier yang lebih banyak berada dalam kisi yang sama.

Mengapa TensorFlow Lattice?

Anda dapat menemukan pengantar singkat tentang TensorFlow Lattice di postingan Blog TF ini.

Interpretasi

Karena parameter setiap lapisan merupakan output dari lapisan tersebut, maka setiap bagian model mudah dianalisis, dipahami, dan di-debug.

Model yang Akurat dan Fleksibel

Dengan menggunakan kisi-kisi berbutir halus, Anda dapat memperoleh fungsi yang sangat kompleks dengan satu lapisan kisi. Penggunaan beberapa lapisan kalibrator dan kisi seringkali memberikan hasil yang baik dalam praktiknya dan dapat menyamai atau melampaui model DNN dengan ukuran yang serupa.

Batasan Bentuk Berdasarkan Akal Sehat

Data pelatihan dunia nyata mungkin tidak cukup mewakili data saat eksekusi. Solusi ML yang fleksibel seperti DNN atau forest seringkali bertindak di luar dugaan dan bahkan liar di bagian ruang input yang tidak tercakup oleh data pelatihan. Perilaku ini sangat bermasalah ketika batasan kebijakan atau keadilan dapat dilanggar.

Meskipun bentuk regularisasi umum dapat menghasilkan ekstrapolasi yang lebih masuk akal, regularisasi standar tidak dapat menjamin perilaku model yang wajar 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 kerugian besar pada akurasi model.

TF Lattice memungkinkan penggunaan model yang fleksibel, tetapi menyediakan beberapa opsi untuk memasukkan pengetahuan domain ke dalam proses pembelajaran melalui batasan bentuk yang bermakna secara semantik, baik yang berdasarkan akal sehat maupun kebijakan:

  • Monotonisitas : Anda dapat menentukan bahwa output hanya boleh meningkat/menurun sehubungan dengan input. Dalam contoh kita, Anda mungkin ingin menentukan bahwa peningkatan jarak ke kedai kopi hanya akan menurunkan preferensi pengguna yang diprediksi.

  • Kekonveksian/Kekonkavitas : Anda dapat menentukan bahwa bentuk fungsi dapat berupa konveks atau konkaf. Dikombinasikan dengan monotonisitas, ini dapat memaksa fungsi untuk menunjukkan hasil yang semakin berkurang sehubungan dengan fitur tertentu.

  • Unimodalitas : Anda dapat menentukan bahwa fungsi tersebut harus memiliki puncak atau lembah yang unik. Ini memungkinkan Anda untuk merepresentasikan fungsi yang memiliki titik optimal terkait dengan suatu fitur.

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

Fleksibilitas Terkendali dengan Regularizer

Selain batasan bentuk, TensorFlow Lattice menyediakan sejumlah regularisasi untuk mengontrol fleksibilitas dan kehalusan fungsi untuk setiap lapisan.

  • Regularisasi Laplacian : Keluaran dari titik-titik kisi/kalibrasi/titik kunci diregularisasi ke arah nilai-nilai tetangganya masing-masing. Hal ini menghasilkan fungsi yang lebih datar .

  • Regularisasi Hessian : Ini memberikan penalti pada turunan pertama dari lapisan kalibrasi PWL untuk membuat fungsi lebih linier .

  • Regularizer Kerutan : Ini memberikan penalti pada turunan kedua dari lapisan kalibrasi PWL untuk menghindari perubahan mendadak pada kelengkungan. Ini membuat fungsi menjadi lebih halus.

  • Regularisasi Torsi : Keluaran dari kisi akan diregulasi untuk mencegah torsi di antara fitur-fitur. Dengan kata lain, model akan diregulasi agar kontribusi fitur-fitur tersebut independen.

Padukan dengan lapisan Keras lainnya

Anda dapat menggunakan lapisan TF Lattice dalam kombinasi dengan lapisan Keras lainnya untuk membangun model yang dibatasi sebagian atau diregulasi. Misalnya, lapisan kalibrasi lattice atau PWL dapat digunakan pada lapisan terakhir jaringan yang lebih dalam yang mencakup embedding atau lapisan Keras lainnya.

Dokumen

Tutorial dan dokumentasi API

Untuk arsitektur model umum, Anda dapat menggunakan model bawaan Keras . Anda juga dapat membuat model kustom menggunakan lapisan Keras TF Lattice atau menggabungkan dan mencampur dengan lapisan Keras lainnya. Lihat dokumentasi API lengkap untuk detailnya.