9.2 Yerel Vekil (Local Surrogate) (LIME)

Yerel vekil modeller, kara kutu makine öğrenimi modellerinin bireysel tahminlerini açıklamak için kullanılan yorumlanabilir modellerdir. Yerel yorumlanabilir modelden bağımsız açıklamalar (LIME) başlıklı makalede, yazarlar yerel vekil modellerin somut bir uygulamasını önermektedir. Vekil modeller, altta yatan kara kutu modelin tahminlerini yaklaşık olarak modellemek için eğitilir. Küresel bir vekil model eğitmek yerine, LIME, bireysel tahminleri açıklamak için yerel vekil modeller eğitmeye odaklanır.

Fikir oldukça sezgiseldir. Öncelikle, eğitim verilerini bir kenara bırakın ve yalnızca veri noktalarını girdi olarak alıp modelin tahminlerini döndüren kara kutu bir modeliniz olduğunu hayal edin. Kutuyu istediğiniz sıklıkta sorgulayabilirsiniz. Amacınız, makine öğrenimi modelinin neden belirli bir tahmin yaptığını anlamaktır. LIME, verilerinizin varyasyonlarını makine öğrenimi modeline verdiğinizde tahminlerde ne olduğunu test eder. LIME, bozulmuş örneklerden ve bunlara karşılık gelen kara kutu model tahminlerinden oluşan yeni bir veri seti oluşturur. Bu yeni veri setinde, LIME ilgi çekilen örneğe olan yakınlıklarına göre ağırlıklandırılan yorumlanabilir bir model eğitir. Yorumlanabilir model, örneğin Lasso veya bir karar ağacı gibi, yorumlanabilir modeller bölümünden herhangi biri olabilir. Öğrenilen model, kara kutu model tahminlerini yerel olarak iyi bir şekilde yaklaşık olarak modellemelidir, ancak küresel olarak iyi bir yaklaşık modele sahip olması gerekmez. Bu tür bir doğruluk, yerel sadakat (local fidelity) olarak adlandırılır.

Matematiksel olarak, yorumlanabilirlik kısıtlamasına sahip yerel vekil modeller şu şekilde ifade edilebilir:

explanation(x)=argmingGL(f,g,πx)+Ω(g)\text{explanation}(x)=\arg\min_{g\in{}G}L(f,g,\pi_x)+\Omega(g)

Bir örnek x için açıklama modeli, g modelidir (örneğin, bir doğrusal regresyon modeli). Bu model, kaybı (L, örneğin ortalama kare hata) minimize eder. Kayıp, açıklamanın orijinal model f (örneğin bir xgboost modeli) tahminine ne kadar yakın olduğunu ölçer. Aynı zamanda model karmaşıklığı (Ω(g)\Omega(g)) düşük tutulur (örneğin, daha az özellik tercih edilir). G, olası açıklamalar ailesidir, örneğin tüm olası doğrusal regresyon modelleri. πx\pi_x yakınlık ölçüsü, açıklama için x örneği etrafında değerlendirdiğimiz komşuluğun ne kadar büyük olduğunu tanımlar. Pratikte, LIME yalnızca kayıp kısmını optimize eder. Kullanıcı, doğrusal regresyon modelinin kullanabileceği maksimum özellik sayısını seçerek karmaşıklığı belirlemek zorundadır.

Yerel Vekil Modeller Eğitimi İçin Tarif:

  1. Kara kutu tahminini açıklamak istediğiniz ilgi örneğinizi seçin.

  2. Veri kümenizi değiştirin ve bu yeni noktalar için kara kutu model tahminlerini alın.

  3. Yeni örnekleri, ilgi örneğinize olan yakınlıklarına göre ağırlıklandırın.

  4. Varyasyonlara sahip veri kümesi üzerinde ağırlıklandırılmış, yorumlanabilir bir model eğitin.

  5. Yerel modeli yorumlayarak tahmini açıklayın.

Mevcut R ve Python uygulamalarında, örneğin doğrusal regresyon yorumlanabilir vekil model olarak seçilebilir. Önceden, yorumlanabilir modelinizde bulunmasını istediğiniz özelliklerin sayısı olan K’yı seçmeniz gerekir. K ne kadar düşükse, modeli yorumlamak o kadar kolay olur. Daha yüksek bir K, potansiyel olarak daha yüksek sadakatte modeller üretebilir. Tam olarak K özelliğe sahip modeller eğitmek için birkaç yöntem vardır. İyi bir seçim Lasso’dur. Yüksek bir düzenleme parametresine (λ) sahip bir Lasso modeli herhangi bir özellik olmadan bir model üretir. Lasso modelleri, yavaşça azalan λ ile art arda yeniden eğitildiğinde, özellikler sıfırdan farklı ağırlık tahminleri alır. Modelde K özellik olduğunda, istenen özellik sayısına ulaşılır. Diğer stratejiler özelliklerin ileriye veya geriye doğru seçilmesidir. Bu, ya tam modelle (tüm özellikleri içeren) başlamak ya da yalnızca sabit terime sahip bir modelle başlayıp eklenmesi veya çıkarılması en büyük iyileşmeyi sağlayacak özelliği test etmek anlamına gelir ve bu işlem K özellikli bir model elde edilene kadar devam eder.

Veri varyasyonlarını nasıl elde edersiniz? Bu, verinin türüne bağlıdır: metin, görüntü veya tablo verisi olabilir. Metin ve görüntülerde çözüm, tek kelimeleri veya süper pikselleri açıp kapatmaktır. Tablo verisinde, LIME her bir özelliği tek tek bozarak, özellikten alınan ortalama ve standart sapmayı kullanarak normal bir dağılımdan örnekler oluşturur.

9.2.1 LIME for Tabular Data

Tablo verisi, her satırın bir örneği ve her sütunun bir özelliği temsil ettiği tablolarda sunulan verilerdir. LIME örnekleri, ilgi örneği etrafında değil, eğitim verilerinin kütle merkezinden alınır, bu da problem yaratabilir. Ancak bu durum, bazı örnek noktaları için tahminlerin ilgi noktasındaki veriden farklı olma olasılığını artırır ve LIME’ın en azından bazı açıklamalar öğrenmesini sağlar.

Örnekleme ve yerel model eğitiminin nasıl çalıştığını görsel olarak açıklamak en iyisidir:

Her zamanki gibi, şeytan ayrıntıda gizlidir. Bir nokta etrafında anlamlı bir komşuluk tanımlamak zordur. LIME, şu anda komşuluğu tanımlamak için bir üstel yumuşatma çekirdeği kullanmaktadır. Bir yumuşatma çekirdeği, iki veri örneğini alır ve bir yakınlık ölçüsü döndürür.

Çekirdek genişliği, komşuluğun ne kadar büyük olduğunu belirler: Küçük bir çekirdek genişliği, bir örneğin yerel modeli etkilemesi için çok yakın olması gerektiği anlamına gelir. Daha büyük bir çekirdek genişliği, daha uzaktaki örneklerin de modeli etkilemesine izin verir.

Eğer LIME’ın Python implementasyonuna (dosya: lime/lime_tabular.py) bakarsanız, normalleştirilmiş veriler üzerinde bir üstel yumuşatma çekirdeği kullandığını ve çekirdek genişliğinin, eğitim verilerindeki sütun sayısının karekökünün 0.75 katı olduğunu görürsünüz. Bu, masum bir kod satırı gibi görünebilir, ancak büyükannenizden kalan iyi porselenlerin yanındaki oturan bir fil gibidir.

Büyük sorun şu ki, en iyi çekirdek veya genişliği bulmak için iyi bir yöntemimiz yok. Peki, bu 0.75 nereden geliyor? Belirli senaryolarda, çekirdek genişliğini değiştirerek açıklamanızı kolayca tersine çevirebilirsiniz. Aşağıdaki şekil bunu göstermektedir:

Örnek yalnızca bir özelliği göstermektedir. Durum, yüksek boyutlu özellik uzaylarında daha da kötüleşir. Ayrıca, mesafe ölçütünün tüm özellikleri eşit şekilde ele alıp almaması gerektiği oldukça belirsizdir. Örneğin (x1) için bir mesafe birimi, (x2) için bir birime eşit midir? Mesafe ölçütleri oldukça keyfi olabilir ve farklı boyutlardaki (diğer adıyla özellikler) mesafeler hiç karşılaştırılamaz durumda olabilir.

9.2.1.1 Örnek

Somut bir örneğe bakalım. Bisiklet kiralama verilerine geri dönelim ve tahmin problemini bir sınıflandırma problemine dönüştürelim: Bisiklet kiralamanın zamanla daha popüler hale geldiği eğilimi göz önünde bulundurduktan sonra, belirli bir günde kiralanan bisiklet sayısının trend çizgisinin üzerinde mi yoksa altında mı olacağını bilmek istiyoruz. Burada “üzerinde” ifadesini, trend için ayarlanmış ortalama bisiklet sayısının üzerinde olarak da yorumlayabilirsiniz.

İlk olarak, sınıflandırma görevi için 100 ağaçlık bir rastgele orman modeli eğitiyoruz. Hava durumu ve takvim bilgilerine dayanarak, hangi gün kiralanan bisiklet sayısı trendden arındırılmış ortalamanın üzerinde olacak?

Açıklamalar 2 özellikle oluşturulmuştur. Farklı tahmin edilen sınıflara sahip iki örnek için eğitilmiş seyrek yerel doğrusal modellerin sonuçları:

Şekilden, kategorik özellikleri yorumlamanın sayısal özelliklere kıyasla daha kolay olduğu açıkça görülmektedir. Bir çözüm, sayısal özellikleri gruplara (bin) ayırmaktır.

9.2.2 Metin Verileri için LIME

Metin verileri için LIME, tablo verileri için LIME'dan farklıdır. Veri varyasyonları farklı şekilde üretilir: Orijinal metinden başlanarak, yeni metinler, orijinal metinden rastgele kelimeler çıkarılarak oluşturulur. Veri kümesi, her bir kelime için ikili (binary) özelliklerle temsil edilir. Bir özellik, ilgili kelimenin dahil edilmesi durumunda 1, çıkarılması durumunda ise 0 değerini alır.

9.2.2.1 Örnek

Bu örnekte, YouTube yorumlarını spam ya da normal olarak sınıflandırıyoruz.

Kara kutu model, belge kelime matrisinde eğitilmiş derin bir karar ağacıdır. Her yorum bir belgeye (= bir satır) ve her sütun, belirli bir kelimenin kaç kez geçtiğini temsil eder. Kısa karar ağaçları anlaşılması kolaydır, ancak bu durumda ağaç çok derindir. Ayrıca bu ağacın yerine kelime gömmelerinde (soyut vektörler) eğitilmiş bir yinelemeli sinir ağı ya da destek vektör makinesi de olabilirdi. Şimdi, bu veri kümesindeki iki yoruma ve ilgili sınıflarına bakalım (spam için 1, normal yorum için 0):

CONTENT
CLASS

267

PSY is a good guy

0

173

For Christmas Song visit my channel! ;)

1

Bir sonraki adım, yerel modelde kullanılan veri kümelerinin bazı varyasyonlarını oluşturmaktır. Örneğin, yorumlardan birinin bazı varyasyonları:

For
Christmas
Song
visit
my
channel!
;)
prob
weight

1

0

1

1

0

0

1

0.17

0.57

0

1

1

1

1

0

1

0.17

0.71

1

0

0

1

1

1

1

0.99

0.71

1

0

1

1

1

1

1

0.99

0.86

0

1

1

1

0

0

1

0.17

0.57

Her sütun cümledeki bir kelimeye karşılık gelir. Her satır bir varyasyondur, 1 kelimenin bu varyasyonun parçası olduğunu ve 0 kelimenin kaldırıldığını gösterir. Varyasyonlardan birine karşılık gelen cümle “Christmas Song visit my ;)”. “prob” sütunu, her cümle varyasyonu için tahmin edilen spam olasılığını gösterir. “weight” sütunu, varyasyonun orijinal cümleye yakınlığını gösterir, kaldırılan kelimelerin oranının 1'den çıkarılmasıyla hesaplanır, örneğin 7 kelimeden 1'i kaldırıldıysa, yakınlık 1 - 1/7 = 0.86 olur.

İşte LIME algoritması tarafından bulunan tahmini yerel ağırlıklarla iki cümle (biri spam, diğeri spam değil):

case
label_prob
feature
feature_weight

1

0.1701170

is

0.000000

1

0.1701170

good

0.000000

1

0.1701170

a

0.000000

2

0.9939024

channel!

6.180747

2

0.9939024

;)

0.000000

2

0.9939024

visit

0.000000

“channel” kelimesi yüksek bir spam olasılığını gösterir. Spam olmayan yorum için sıfır olmayan hiçbir ağırlık tahmin edilmedi, çünkü hangi kelime kaldırılırsa kaldırılsın, tahmin edilen sınıf aynı kalır.

9.2.3 Görseller için LIME

Bu bölüm Verena Haunschmid tarafından yazılmıştır.

Görseller için LIME, tablo verileri ve metinler için LIME'den farklı çalışır. Sezgisel olarak, bireysel pikselleri bozmak pek mantıklı olmaz, çünkü bir sınıfa birçok pikselle katkıda bulunulur. Bireysel pikselleri rastgele değiştirmek muhtemelen tahminleri pek değiştirmez. Bu nedenle, görsellerin varyasyonları, görüntüyü “süperpiksel” olarak segmentlere ayırarak ve süperpikselleri kapatıp açarak oluşturulur. Süperpikseller, benzer renklere sahip birbirine bağlı piksellerdir ve her pikselin kullanıcı tanımlı bir renk (örneğin gri) ile değiştirilerek kapatılabilir. Kullanıcı ayrıca her permutasyonda bir süperpikseli kapatma olasılığını belirleyebilir.

9.2.3.1 Örnek

Bu örnekte Inception V3 sinir ağı tarafından yapılan bir sınıflandırmaya bakıyoruz. Kullanılan görüntü, bir kasede olan bazı fırınladığım ekmekleri göstermektedir. Her görüntü için (olasılığa göre sıralanmış) birkaç tahmin edilen etiket olabileceği için, en üst etiketleri açıklayabiliriz. En üst tahmin “Bagel” olup olasılığı %77, ardından “Strawberry” %4 olasılıkla gelmektedir. Aşağıdaki görüntüler “Bagel” ve “Strawberry” için LIME açıklamalarını göstermektedir. Açıklamalar doğrudan görüntü örnekleri üzerinde görüntülenebilir. Yeşil, görüntünün bu kısmının etiket için olasılığı artırdığını ve kırmızı ise azalttığını gösterir.

“Bagel” için tahmin ve açıklama çok mantıklıdır, tahmin yanlış olsa bile – ortadaki delik eksik olduğu için bunların açıkça bagel olmadığı görülmektedir.

9.2.4 Avantajlar

Altta yatan yapay öğrenimi modelini değiştirseniz bile, açıklama için aynı yerel, yorumlanabilir modeli kullanmaya devam edebilirsiniz. Diyelim ki, açıklamalara bakan kişiler karar ağaçlarını en iyi anlayanlardır. Yerel yedek modeller kullandığınız için, tahminleri yapmak için gerçekten karar ağacı kullanmanıza gerek kalmadan açıklamalar olarak karar ağaçlarını kullanırsınız. Örneğin, bir SVM kullanabilirsiniz. Ve eğer xgboost modelinin daha iyi çalıştığı ortaya çıkarsa, SVM'yi değiştirebilir ve tahminleri açıklamak için yine de bir karar ağacı kullanabilirsiniz.

Yerel yedek modeller, literatürden ve yorumlanabilir modellerin eğitilmesi ve yorumlanması deneyiminden faydalanır.

Lasso veya kısa ağaçlar kullanıldığında, ortaya çıkan açıklamalar kısa (= seçici) ve muhtemelen karşıt olabilir. Bu nedenle, insan dostu açıklamalar sağlarlar. Bu yüzden LIME'ı, açıklamanın alıcısının bir laik veya çok az zamana sahip biri olduğu uygulamalarda daha çok görüyorum. Tam atamalar için yeterli olmadığından, tahmini tamamen açıklamanızın yasal olarak gerekli olabileceği uyumluluk senaryolarında LIME'ı görmüyorum. Ayrıca makine öğrenimi modellerini hata ayıklamak için, birkaç yerine tüm nedenlere sahip olmak faydalıdır.

LIME, tablo verileri, metinler ve görseller için çalışan nadir yöntemlerden biridir.

Sadakat ölçüsü (yorumlanabilir modelin siyah kutu tahminlerini ne kadar iyi yakaladığı) bize, yorumlanabilir modelin ilgilenilen veri örneğinin komşuluğundaki siyah kutu tahminlerini ne kadar güvenilir şekilde açıkladığı hakkında iyi bir fikir verir.

LIME, Python'da (lime kütüphanesi) ve R'de (lime paketi ve iml paketi) uygulanmıştır ve kullanımı çok kolaydır.

Yerel yedek modellerle oluşturulan açıklamalar, orijinal modelin eğitildiği özelliklerden farklı (yorumlanabilir) özellikler kullanabilir. Tabii ki, bu yorumlanabilir özellikler veri örneklerinden türetilmiş olmalıdır. Bir metin sınıflandırıcısı, özellikler olarak soyut kelime gömme (embedding) yöntemlerine dayanabilir, ancak açıklama bir cümledeki kelimelerin varlığı veya yokluğuna dayanabilir. Bir regresyon modeli, bazı özniteliklerin yorumlanamaz bir dönüşümüne dayanabilir, ancak açıklamalar orijinal özniteliklerle oluşturulabilir. Örneğin, regresyon modeli bir anketin yanıtlarının başlıca bileşen analizi (PCA) bileşenleri üzerinde eğitilmiş olabilir, ancak LIME orijinal anket soruları üzerinde eğitilmiş olabilir. LIME için yorumlanabilir özellikler kullanmak, özellikle model yorumlanamaz özelliklerle eğitilmişse diğer yöntemlere göre büyük bir avantaj sağlayabilir. 9.2.5 Dezavantajlar

Komşuluğun doğru tanımlanması, tablo verileri ile LIME kullanırken çok büyük, çözülmemiş bir problemdir. Bence bu, LIME'ın en büyük sorunu ve LIME'ı yalnızca büyük bir özenle kullanmanızı tavsiye etme nedenidir. Her uygulama için farklı çekirdek ayarlarını denemeniz ve açıklamaların mantıklı olup olmadığını kendiniz görmeniz gerekir. Ne yazık ki, iyi çekirdek genişliklerini bulmak için verebileceğim en iyi tavsiye bu.

Örnekleme, mevcut LIME uygulamasında geliştirilebilir. Veri noktaları, özellikler arasındaki korelasyonu göz ardı ederek Gauss dağılımından örneklenir. Bu, yerel açıklama modellerini öğrenmek için kullanılabilecek olası olmayan veri noktalarına yol açabilir.

Açıklama modelinin karmaşıklığı önceden tanımlanmalıdır. Bu sadece küçük bir şikayettir, çünkü sonunda kullanıcı her zaman sadakat ve seyreklik arasında bir uzlaşma tanımlamak zorundadır.

Başka gerçekten büyük bir problem ise açıklamaların kararsızlığıdır. 51 numaralı bir makalede yazarlar, simüle edilmiş bir ortamda iki çok yakın noktanın açıklamalarının büyük ölçüde farklılaştığını gösterdiler. Ayrıca, deneyimlerime göre, örnekleme sürecini tekrar ederseniz, ortaya çıkan açıklamalar farklı olabilir. Kararsızlık, açıklamalara güvenmeyi zorlaştırır ve çok eleştirel olmanız gerektiği anlamına gelir.

LIME açıklamaları, veri bilimci tarafından önyargıları gizlemek için manipüle edilebilir 52. Manipülasyon olasılığı, LIME ile oluşturulan açıklamalara güvenmeyi zorlaştırır.

Sonuç: LIME'ın somut bir uygulaması olarak yerel yedek modeller çok umut vericidir. Ancak yöntem hala geliştirme aşamasında olup, güvenli bir şekilde uygulanmadan önce çözülmesi gereken birçok problem bulunmaktadır.


Ribeiro, Marco Tulio, Sameer Singh, and Carlos Guestrin. “Why should I trust you?: Explaining the predictions of any classifier.” Proceedings of the 22nd ACM SIGKDD international conference on knowledge discovery and data mining. ACM (2016).↩︎

Alvarez-Melis, David, and Tommi S. Jaakkola. “On the robustness of interpretability methods.” arXiv preprint arXiv:1806.08049 (2018).↩︎

Slack, Dylan, Sophie Hilgard, Emily Jia, Sameer Singh, and Himabindu Lakkaraju. “Fooling lime and shap: Adversarial attacks on post hoc explanation methods.” In Proceedings of the AAAI/ACM Conference on AI, Ethics, and Society, pp. 180-186 (2020).↩︎

Last updated