Kisi TensorFlow (TFL)

TensorFlow Lattice adalah perpustakaan yang mengimplementasikan model berbasis kisi yang fleksibel, terkontrol, dan dapat diinterpretasikan. Pustaka memungkinkan Anda 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. Perpustakaan juga menyediakan pengaturan model premade yang mudah.

Konsep

Bagian ini adalah versi sederhana dari deskripsi dalam Tabel Pencarian Interpolasi Kalibrasi Monotonik , JMLR 2016.

kisi-kisi

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

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

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

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

Kalibrasi

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

  • harga kopi, dalam kisaran 0 hingga 20 dolar
  • jarak ke pengguna, dalam rentang 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 masukan ke rentang yang diterima oleh kisi: 0,0 hingga 1,0 pada contoh kisi di atas. Berikut ini contoh fungsi kalibrasi tersebut dengan 10 titik kunci:

Seringkali merupakan ide bagus untuk menggunakan kuantil fitur sebagai titik kunci masukan. Model TensorFlow Lattice yang dibuat sebelumnya dapat secara otomatis menyetel titik kunci masukan ke kuantil fitur.

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

ansambel

Jumlah parameter lapisan kisi meningkat secara eksponensial seiring dengan jumlah fitur masukan, sehingga tidak dapat diskalakan dengan baik ke dimensi yang sangat tinggi. Untuk mengatasi keterbatasan ini, TensorFlow Lattice menawarkan kumpulan kisi yang menggabungkan (rata-rata) beberapa kisi kecil , yang memungkinkan model bertambah secara linear dalam jumlah fitur.

Perpustakaan menyediakan dua variasi ansambel ini:

  • Kisi Kecil Acak (RTL): Setiap submodel menggunakan subset fitur acak (dengan penggantian).

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

Mengapa Kisi TensorFlow?

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

Interpretasi

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

Model Akurat dan Fleksibel

Dengan menggunakan kisi berbutir halus, Anda bisa mendapatkan fungsi rumit 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 tidak terduga dan bahkan liar di bagian ruang input yang tidak tercakup dalam data pelatihan. Perilaku ini menjadi problematis ketika batasan kebijakan atau keadilan dilanggar.

Meskipun bentuk regularisasi yang umum dapat menghasilkan ekstrapolasi yang lebih masuk akal, pengatur standar tidak dapat menjamin perilaku model yang wajar di seluruh ruang masukan, terutama dengan masukan berdimensi tinggi. Beralih ke model yang lebih sederhana dengan perilaku yang lebih terkontrol dan dapat diprediksi dapat berdampak buruk pada keakuratan model.

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

  • Monotonisitas : Anda dapat menentukan bahwa keluaran hanya boleh bertambah/berkurang terhadap suatu masukan. Dalam contoh kami, Anda mungkin ingin menentukan bahwa peningkatan jarak ke kedai kopi hanya akan menurunkan prediksi preferensi pengguna.

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

  • Unimodalitas : Anda dapat menentukan bahwa fungsi tersebut harus memiliki puncak atau lembah yang unik. Hal ini memungkinkan Anda merepresentasikan fungsi yang memiliki sweet spot sehubungan dengan suatu fitur.

  • Kepercayaan berpasangan : Batasan ini bekerja pada sepasang fitur dan menyarankan bahwa satu fitur masukan 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, kisi TensorFlow menyediakan sejumlah pengatur untuk mengontrol fleksibilitas dan kelancaran fungsi setiap lapisan.

  • Regularizer Laplacian : Output dari simpul kisi/kalibrasi/titik kunci diatur berdasarkan nilai tetangganya masing-masing. Hal ini menghasilkan fungsi yang lebih datar .

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

  • Pengatur Kerut : Ini memberikan penalti pada turunan kedua dari lapisan kalibrasi PWL untuk menghindari perubahan lengkungan secara tiba-tiba. Itu membuat fungsinya lebih lancar.

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

Padu padankan dengan lapisan Keras lainnya

Anda dapat menggunakan lapisan TF Lattice yang dikombinasikan dengan lapisan Keras lainnya untuk membuat model yang dibatasi atau diatur sebagian. Misalnya, lapisan kalibrasi kisi atau PWL dapat digunakan pada lapisan terakhir jaringan yang lebih dalam yang menyertakan embeddings atau lapisan Keras lainnya.

Dokumen

Tutorial dan dokumen API

Untuk arsitektur model umum, Anda dapat menggunakan model Keras yang telah dibuat sebelumnya . Anda juga dapat membuat model khusus menggunakan lapisan TF Lattice Keras atau memadupadankan dengan lapisan Keras lainnya. Lihat dokumen API lengkap untuk detailnya.

,

TensorFlow Lattice adalah perpustakaan yang mengimplementasikan model berbasis kisi yang fleksibel, terkontrol, dan dapat diinterpretasikan. Pustaka memungkinkan Anda 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. Perpustakaan juga menyediakan pengaturan model premade yang mudah.

Konsep

Bagian ini adalah versi sederhana dari deskripsi dalam Tabel Pencarian Interpolasi Kalibrasi Monotonik , JMLR 2016.

kisi-kisi

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

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

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

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

Kalibrasi

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

  • harga kopi, dalam kisaran 0 hingga 20 dolar
  • jarak ke pengguna, dalam rentang 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 masukan ke rentang yang diterima oleh kisi: 0,0 hingga 1,0 pada contoh kisi di atas. Berikut ini contoh fungsi kalibrasi tersebut dengan 10 titik kunci:

Seringkali merupakan ide bagus untuk menggunakan kuantil fitur sebagai titik kunci masukan. Model TensorFlow Lattice yang dibuat sebelumnya dapat secara otomatis menyetel titik kunci masukan ke kuantil fitur.

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

ansambel

Jumlah parameter lapisan kisi meningkat secara eksponensial seiring dengan jumlah fitur masukan, sehingga tidak dapat diskalakan dengan baik ke dimensi yang sangat tinggi. Untuk mengatasi keterbatasan ini, TensorFlow Lattice menawarkan kumpulan kisi yang menggabungkan (rata-rata) beberapa kisi kecil , yang memungkinkan model bertambah secara linear dalam jumlah fitur.

Perpustakaan menyediakan dua variasi ansambel ini:

  • Kisi Kecil Acak (RTL): Setiap submodel menggunakan subset fitur acak (dengan penggantian).

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

Mengapa Kisi TensorFlow?

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

Interpretasi

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

Model Akurat dan Fleksibel

Dengan menggunakan kisi berbutir halus, Anda bisa mendapatkan fungsi rumit 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 tidak terduga dan bahkan liar di bagian ruang input yang tidak tercakup dalam data pelatihan. Perilaku ini menjadi problematis ketika batasan kebijakan atau keadilan dilanggar.

Meskipun bentuk regularisasi yang umum dapat menghasilkan ekstrapolasi yang lebih masuk akal, pengatur standar tidak dapat menjamin perilaku model yang wajar di seluruh ruang masukan, terutama dengan masukan berdimensi tinggi. Beralih ke model yang lebih sederhana dengan perilaku yang lebih terkontrol dan dapat diprediksi dapat berdampak buruk pada keakuratan model.

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

  • Monotonisitas : Anda dapat menentukan bahwa keluaran hanya boleh bertambah/berkurang terhadap masukan. Dalam contoh kami, Anda mungkin ingin menentukan bahwa peningkatan jarak ke kedai kopi hanya akan menurunkan prediksi preferensi pengguna.

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

  • Unimodalitas : Anda dapat menentukan bahwa fungsi tersebut harus memiliki puncak atau lembah yang unik. Hal ini memungkinkan Anda merepresentasikan fungsi yang memiliki sweet spot sehubungan dengan suatu fitur.

  • Kepercayaan berpasangan : Batasan ini bekerja pada sepasang fitur dan menyarankan bahwa satu fitur masukan 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, kisi TensorFlow menyediakan sejumlah pengatur untuk mengontrol fleksibilitas dan kelancaran fungsi setiap lapisan.

  • Regularizer Laplacian : Output dari simpul kisi/kalibrasi/titik kunci diatur berdasarkan nilai tetangganya masing-masing. Hal ini menghasilkan fungsi yang lebih datar .

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

  • Pengatur Kerut : Ini memberikan penalti pada turunan kedua dari lapisan kalibrasi PWL untuk menghindari perubahan lengkungan secara tiba-tiba. Itu membuat fungsinya lebih lancar.

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

Padu padankan dengan lapisan Keras lainnya

Anda dapat menggunakan lapisan TF Lattice yang dikombinasikan dengan lapisan Keras lainnya untuk membuat model yang dibatasi atau diatur sebagian. Misalnya, lapisan kalibrasi kisi atau PWL dapat digunakan pada lapisan terakhir jaringan yang lebih dalam yang menyertakan embeddings atau lapisan Keras lainnya.

Dokumen

Tutorial dan dokumen API

Untuk arsitektur model umum, Anda dapat menggunakan model Keras yang telah dibuat sebelumnya . Anda juga dapat membuat model khusus menggunakan lapisan TF Lattice Keras atau memadupadankan dengan lapisan Keras lainnya. Lihat dokumen API lengkap untuk detailnya.