Meningkatkan kualitas penjelasan berbasis fitur

Saat bekerja dengan model yang dilatih khusus, Anda dapat mengonfigurasi parameter tertentu untuk meningkatkan kualitas penjelasan. Panduan ini menjelaskan cara memeriksa penjelasan yang Anda dapatkan dari Vertex Explainable AI untuk menemukan error, dan menjelaskan cara menyesuaikan konfigurasi Vertex Explainable AI untuk mengurangi error.

Jika ingin menggunakan Vertex Explainable AI dengan model tabel AutoML, Anda tidak perlu melakukan konfigurasi apa pun; Vertex AI akan otomatis mengonfigurasi model untuk Vertex Explainable AI. Lewati dokumen ini dan baca Mendapatkan penjelasan.

Metode atribusi fitur Vertex Explainable AI didasarkan pada varian nilai Shapley. Karena nilai Shapley sangat mahal secara komputasi, Vertex Explainable AI hanya memberikan perkiraan, bukan nilai tepatnya.

Anda dapat mengurangi error perkiraan dan mendapatkan nilai yang mendekati nilai yang tepat dengan mengubah input berikut:

  • Meningkatkan jumlah langkah integral atau jumlah jalur.
  • Mengubah dasar pengukuran input yang Anda pilih.
  • Menambahkan lebih banyak dasar pengukuran input. Dengan gradien terintegrasi dan metode XRAI, penggunaan dasar pengukuran tambahan akan meningkatkan latensi. Menggunakan dasar pengukuran tambahan dengan metode Shapley yang dijadikan sampel tidak akan meningkatkan latensi.

Memeriksa penjelasan untuk menemukan error

Setelah meminta dan menerima penjelasan dari Vertex Explainable AI, Anda dapat memeriksa penjelasan untuk mengetahui kesalahan perkiraan. Jika penjelasan memiliki kesalahan perkiraan yang tinggi, penjelasan mungkin tidak dapat diandalkan. Bagian ini menjelaskan beberapa cara untuk memeriksa error.

Periksa kolom approximationError

Untuk setiap Attribution, Vertex Explainable AI akan menampilkan error perkiraan di kolom approximationError. Jika error perkiraan Anda melebihi 0,05, sebaiknya sesuaikan konfigurasi Vertex Explainable AI.

Untuk teknik gradien terintegrasi, kita menghitung error perkiraan dengan membandingkan jumlah atribusi fitur dengan selisih antara prediksi nilai untuk skor input dan skor dasar pengukuran. Untuk teknik gradien terintegrasi, atribusi fitur adalah perkiraan integral nilai gradien antara dasar pengukuran dan input. Kita menggunakan aturan kuadrat Gaussian untuk memperkirakan integral karena lebih akurat jika dibandingkan metode Riemann Sum.

Memeriksa selisih antara prediksi dan output dasar pengukuran

Untuk setiap Attribution, Vertex Explainable AI akan menampilkan instanceOutputValue, yang mewakili bagian dari output prediksi yang menjadi tujuan atribusi fitur, dan baselineOutputValue, yang mewakili bagian output prediksi ini jika prediksi dilakukan di dasar pengukuran input, bukan instance input sebenarnya.

Jika selisih antara instanceOutputValue dan baselineOutputValue kurang dari 0,05 untuk setiap atribusi, Anda mungkin perlu mengubah dasar pengukuran input.

Menyesuaikan konfigurasi Anda

Bagian berikut menjelaskan cara menyesuaikan konfigurasi Vertex Explainable AI untuk mengurangi error. Untuk melakukan perubahan berikut, Anda harusmengonfigurasi Model baru dengan ExplanationSpec atauganti ExplanationSpec dari aplikasi Model dengan men-deploy-nya ulang ke Endpoint atau dengan mendapatkan prediksi batch baru.

Meningkatkan langkah atau jalur

Untuk mengurangi error perkiraan, Anda dapat meningkatkan:

Menyesuaikan dasar pengukuran

Dasar pengukuran input mewakili fitur yang tidak menyediakan informasi tambahan. Dasar pengukuran untuk model tabel dapat berupa nilai median, minimum, maksimum, atau acak yang terkait dengan data pelatihan Anda. Demikian pula, untuk model gambar, dasar pengukuran Anda dapat berupa gambar hitam, gambar putih, gambar abu-abu, atau gambar dengan nilai piksel acak.

Saat mengonfigurasi Vertex Explainable AI, Anda dapat menentukan kolom input_baselines secara opsional. Jika tidak, Vertex AI akan memilih dasar pengukuran input untuk Anda. Jika mengalami masalah yang dijelaskan di bagian sebelumnya dalam panduan ini, Anda mungkin perlu menyesuaikan input_baselines untuk setiap input Model.

Secara umum:

  • Memulai dengan satu dasar pengukuran yang mewakili nilai median.
  • Ubah dasar pengukuran ini menjadi dasar yang mewakili nilai acak.
  • Coba dua dasar pengukuran, yang masing-masing mewakili nilai minimum dan maksimum.
  • Tambahkan dasar pengukuran lain yang mewakili nilai acak.

Contoh untuk data tabulasi

Kode Python berikut membuat pesan ExplanationMetadata untuk model TensorFlow hipotetis yang dilatih dengan data tabulasi.

Perhatikan bahwa input_baselines adalah daftar tempat Anda dapat menentukan beberapa dasar pengukuran. Contoh ini hanya menetapkan satu dasar pengukuran. Dasar pengukuran adalah daftar nilai median untuk data pelatihan (dalam contoh ini train_data).

explanation_metadata = {
    "inputs": {
        "FEATURE_NAME": {
            "input_tensor_name": "INPUT_TENSOR_NAME",
            "input_baselines": [train_data.median().values.tolist()],
            "encoding": "bag_of_features",
            "index_feature_mapping": train_data.columns.tolist()
        }
    },
    "outputs": {
        "OUTPUT_NAME": {
            "output_tensor_name": "OUTPUT_TENSOR_NAME"
        }
    }
}

Lihat Mengonfigurasi penjelasan untuk model yang dilatih khusus guna mendapatkan konteks selengkapnya tentang cara menggunakan ExplanationMetadata ini

Untuk menetapkan dua dasar pengukuran yang mewakili nilai minimum dan maksimum, tetapkan input_baselines sebagai berikut: [train_data.min().values.tolist(), train_data.max().values.tolist()]

Contoh untuk data gambar

Kode Python berikut membuat pesan ExplanationMetadata untuk model TensorFlow hipotetis yang dilatih dengan data gambar.

Perhatikan bahwa input_baselines adalah daftar tempat Anda dapat menentukan beberapa dasar pengukuran. Contoh ini hanya menetapkan satu dasar pengukuran. Dasar pengukuran adalah daftar nilai acak. Menggunakan nilai acak untuk dasar pengukuran gambar adalah pendekatan yang baik jika gambar dalam set data pelatihan berisi banyak warna hitam putih.

Jika tidak, tetapkan input_baselines ke [0, 1] untuk mewakili gambar hitam putih.

random_baseline = np.random.rand(192,192,3)

explanation_metadata = {
    "inputs": {
        "FEATURE_NAME": {
            "input_tensor_name": "INPUT_TENSOR_NAME",
            "modality": "image",
            "input_baselines": [random_baseline.tolist()]
        }
    },
    "outputs": {
        "OUTPUT_NAME": {
            "output_tensor_name": "OUTPUT_TENSOR_NAME"
        }
    }
}

Langkah berikutnya