Rumah  >  Artikel  >  Peranti teknologi  >  Sepuluh perpustakaan Python untuk AI yang boleh dijelaskan

Sepuluh perpustakaan Python untuk AI yang boleh dijelaskan

WBOY
WBOYke hadapan
2023-04-13 16:46:061383semak imbas

Matlamat XAI adalah untuk memberikan penjelasan yang bermakna untuk tingkah laku dan keputusan model Artikel ini menyusun 10 perpustakaan Python yang kini tersedia untuk AI yang boleh dijelaskan

Apakah itu XAI?

XAI, AI Boleh Dijelaskan merujuk kepada sistem atau strategi yang boleh memberikan penjelasan yang jelas dan boleh difahami untuk proses dan ramalan membuat keputusan kecerdasan buatan (AI). Matlamat XAI adalah untuk memberikan penjelasan yang bermakna untuk tindakan dan keputusan mereka, yang membantu meningkatkan kepercayaan, menyediakan akauntabiliti dan ketelusan dalam keputusan model. XAI tidak terhad kepada tafsiran, tetapi juga menjalankan eksperimen ML dengan cara yang menjadikan inferens lebih mudah untuk diekstrak dan ditafsirkan untuk pengguna.

Dalam praktiknya, XAI boleh dicapai melalui pelbagai kaedah, seperti menggunakan ukuran kepentingan ciri, teknik visualisasi atau dengan membina model yang sememangnya boleh ditafsir, seperti pepohon keputusan atau model regresi linear. Pemilihan kaedah bergantung kepada jenis masalah yang diselesaikan dan tahap kebolehtafsiran yang diperlukan.

Sistem AI digunakan dalam semakin banyak aplikasi, termasuk penjagaan kesihatan, kewangan dan keadilan jenayah, di mana potensi kesan AI terhadap kehidupan manusia adalah tinggi dan di mana keputusan dibuat dengan pengetahuan Sebab khusus adalah penting. Oleh kerana kos keputusan yang salah dalam bidang ini tinggi (pertaruhannya tinggi), XAI menjadi semakin penting, malah keputusan yang dibuat oleh AI perlu disemak dengan teliti untuk kesahihan dan kebolehjelasan.

Sepuluh perpustakaan Python untuk AI yang boleh dijelaskan

Langkah-langkah amalan kebolehjelasan

Penyediaan data: Peringkat ini termasuk pengumpulan dan pemprosesan data. Data hendaklah berkualiti tinggi, seimbang dan mewakili masalah dunia sebenar yang sedang diselesaikan. Mempunyai data yang seimbang, mewakili, bersih mengurangkan usaha masa hadapan untuk memastikan AI boleh dijelaskan.

Latihan model: Model ini dilatih pada data yang disediakan, sama ada model pembelajaran mesin tradisional atau rangkaian saraf pembelajaran mendalam. Pemilihan model bergantung kepada masalah yang hendak diselesaikan dan tahap kebolehtafsiran yang diperlukan. Lebih mudah model, lebih mudah untuk mentafsir keputusan, tetapi prestasi model mudah tidak akan menjadi sangat tinggi.

Penilaian model: Memilih kaedah penilaian dan metrik prestasi yang sesuai adalah perlu untuk mengekalkan kebolehtafsiran model. Ia juga penting untuk menilai kebolehtafsiran model pada peringkat ini untuk memastikan ia dapat memberikan penjelasan yang bermakna untuk ramalannya.

Penjanaan penjelasan: Ini boleh dilakukan menggunakan pelbagai teknik seperti ukuran kepentingan ciri, teknik visualisasi atau dengan membina model yang boleh dijelaskan secara semula jadi.

Pengesahan penjelasan: Sahkan ketepatan dan kesempurnaan penjelasan yang dijana oleh model. Ini membantu memastikan penjelasan itu boleh dipercayai.

Pengerahan dan Pemantauan: Kerja XAI tidak berakhir dengan penciptaan dan pengesahan model. Ia memerlukan kerja kebolehjelasan berterusan selepas penggunaan. Apabila memantau dalam persekitaran sebenar, adalah penting untuk sentiasa menilai prestasi dan kebolehtafsiran sistem.

1. SHAP (SHapley Additive exPlanations)

SHAP ialah kaedah teori permainan yang boleh digunakan untuk menerangkan output mana-mana model pembelajaran mesin. Ia menggunakan nilai Shapley klasik daripada teori permainan dan sambungan berkaitannya untuk mengaitkan peruntukan kredit optimum dengan tafsiran tempatan.

Sepuluh perpustakaan Python untuk AI yang boleh dijelaskan

2. LIME (Penjelasan Model-agnostik yang Boleh Ditafsirkan Tempatan)

LIME ialah kaedah model-agnostik yang menghampiri ramalan khusus secara setempat dengan mengelilinginya Tingkah laku model kepada bekerja dengan. LIME cuba menerangkan perkara yang dilakukan oleh model pembelajaran mesin. LIME menyokong tafsiran ramalan individu daripada pengelas teks, pengelas untuk data jadual atau imej.

Sepuluh perpustakaan Python untuk AI yang boleh dijelaskan

3 Eli5

ELI5 ialah pakej Python yang membantu nyahpepijat pengelas pembelajaran mesin dan mentafsir ramalannya. Ia menyediakan sokongan untuk rangka kerja dan pakej pembelajaran mesin berikut:

  • scikit-learn: ELI5 boleh mentafsir pemberat dan ramalan pengelas dan regressor linear scikit-learn, dan pepohon keputusan boleh dicetak sebagai teks atau SVG yang menunjukkan kepentingan ciri dan menerangkan ramalan daripada pokok keputusan dan kumpulan pokok. ELI5 juga memahami pengendali teks dalam scikit-learn dan menyerlahkan data teks dengan sewajarnya.
  • Keras - Mentafsir ramalan pengelas imej secara visual melalui Grad-CAM.
  • XGBoost - Menunjukkan kepentingan ciri dan menerangkan ramalan XGBClassifier, XGBRegressor dan XGBoost .boost.
  • LightGBM - Menunjukkan kepentingan ciri dan menerangkan ramalan LGMClassifier dan LGBMRegressor.
  • CatBoost: Memaparkan kepentingan ciri CatBoostClassifier dan CatBoostRegressor.
  • kilat - Menerangkan berat dan ramalan pengelas dan regressor kilat.
  • sklearn-crfsuite. ELI5 membolehkan menyemak berat model sklearn_crfsuite.CRF.

Penggunaan asas:

Show_weights() menunjukkan semua berat model, Show_prediction() boleh digunakan untuk menyemak ramalan individu model

Sepuluh perpustakaan Python untuk AI yang boleh dijelaskan

ELI5 juga melaksanakan beberapa algoritma untuk menyemak model kotak hitam:

TextExplainer menggunakan algoritma LIME untuk menerangkan ramalan mana-mana pengelas teks. Kaedah kepentingan pilih atur boleh digunakan untuk mengira kepentingan ciri bagi penganggar kotak hitam.

Sepuluh perpustakaan Python untuk AI yang boleh dijelaskan

4. Shapash

Shapash menyediakan beberapa jenis visualisasi untuk menjadikannya lebih mudah untuk memahami model. Gunakan ringkasan untuk memahami keputusan yang dicadangkan oleh model. Projek ini dibangunkan oleh saintis data MAIF. Shapash terutamanya menerangkan model melalui satu set visualisasi yang sangat baik.

Shapash berfungsi melalui mekanisme aplikasi web dan boleh disepadukan dengan sempurna dengan Jupyter/ipython.

from shapash import SmartExplainer
 
 xpl = SmartExplainer(
 model=regressor,
 preprocessing=encoder, # Optional: compile step can use inverse_transform method
 features_dict=house_dict# Optional parameter, dict specifies label for features name
 )
 
 xpl.compile(x=Xtest,
y_pred=y_pred,
y_target=ytest, # Optional: allows to display True Values vs Predicted Values
)
 
 xpl.plot.contribution_plot("OverallQual")

Sepuluh perpustakaan Python untuk AI yang boleh dijelaskan

5. Sauh

Sauh menggunakan peraturan ketepatan tinggi yang dipanggil sauh untuk menerangkan kelakuan model yang kompleks dan mewakili keadaan ramalan "mencukupi" setempat . Algoritma ini boleh mengira penjelasan mana-mana model kotak hitam dengan cekap dengan jaminan kebarangkalian tinggi.

Sauh boleh dianggap sebagai LIME v2, di mana beberapa had LIME (seperti ketidakupayaan untuk memuatkan model untuk kejadian data yang tidak kelihatan) telah diperbetulkan. Sauh menggunakan kawasan tempatan dan bukannya setiap sudut pandangan individu. Ia adalah ringan dari segi pengiraan daripada SHAP dan oleh itu boleh digunakan dengan set data berdimensi tinggi atau besar. Tetapi beberapa batasan ialah label hanya boleh menjadi integer.

Sepuluh perpustakaan Python untuk AI yang boleh dijelaskan

6. Breakdown

Breakdown ialah alat yang boleh digunakan untuk menerangkan ramalan model linear. Ia berfungsi dengan menguraikan output model kepada sumbangan setiap ciri input. Terdapat dua kaedah utama dalam pakej ini. Explainer() dan Explanation()

model = tree.DecisionTreeRegressor()
 model = model.fit(train_data,y=train_labels)
 
 #necessary imports
 from pyBreakDown.explainer import Explainer
 from pyBreakDown.explanation import Explanation
 
 #make explainer object
 exp = Explainer(clf=model, data=train_data, colnames=feature_names)
 
 #What do you want to be explained from the data (select an observation)
 explanation = exp.explain(observation=data[302,:],direction="up")

Sepuluh perpustakaan Python untuk AI yang boleh dijelaskan

7 Interpret-Text

Interpret-Text menggabungkan komuniti untuk NLP. Teknik kebolehtafsiran untuk pembangunan model dan panel visualisasi untuk melihat hasil. Percubaan boleh dijalankan pada berbilang jurubahasa terkini dan dianalisis secara perbandingan. Kit alat ini boleh mentafsir model pembelajaran mesin secara global pada setiap teg atau secara setempat pada setiap dokumen.

Berikut ialah senarai jurubahasa yang tersedia dalam pakej ini:

  • Penjelasan Teks Klasik - (Lalai: beg perkataan untuk regresi logistik)
  • Penjelasan Maklumat Bersatu
  • Penjelasan Rasional Introspektif

Sepuluh perpustakaan Python untuk AI yang boleh dijelaskan

Kelebihannya ialah ia menyokong model seperti CUDA, RNN dan BERT. Dan boleh menjana panel untuk kepentingan ciri dalam dokumen

from interpret_text.widget import ExplanationDashboard
 from interpret_text.explanation.explanation import _create_local_explanation
 
 # create local explanation
 local_explanantion = _create_local_explanation(
 classification=True,
 text_explanation=True,
 local_importance_values=feature_importance_values,
 method=name_of_model,
 model_task="classification",
 features=parsed_sentence_list,
 classes=list_of_classes,
 )
 # Dash it
 ExplanationDashboard(local_explanantion)

Sepuluh perpustakaan Python untuk AI yang boleh dijelaskan

8, aix360 (AI Explainability 360)

Kit alat AI ​​Explainability 360 ialah perpustakaan sumber terbuka Pakej ini dibangunkan oleh IBM dan digunakan secara meluas pada platform mereka. AI Explainability 360 mengandungi set algoritma komprehensif yang meliputi dimensi penjelasan yang berbeza serta metrik kebolehjelasan ejen.

Sepuluh perpustakaan Python untuk AI yang boleh dijelaskan

Kit alat menggabungkan algoritma dan penunjuk daripada kertas berikut:

  • Towards Robust Interpretability with Self-Explaining Neural Networks, 2018. ref
  • Boolean Decision Rules via Column Generation, 2018. ref
  • Explanations Based on the Missing: Towards Contrastive Explanations with Pertinent Negatives, 2018. ref
  • Improving Simple Models with Confidence Profiles, , 2018. ref
  • Efficient Data Representation by Selecting Prototypes with Importance Weights, 2019. ref
  • TED: Teaching AI to Explain Its Decisions, 2019. ref
  • Variational Inference of Disentangled Latent Concepts from Unlabeled Data, 2018. ref
  • Generating Contrastive Explanations with Monotonic Attribute Functions, 2019. ref
  • Generalized Linear Rule Models, 2019. ref

9、OmniXAI

OmniXAI (Omni explable AI的缩写),解决了在实践中解释机器学习模型产生的判断的几个问题。

它是一个用于可解释AI (XAI)的Python机器学习库,提供全方位的可解释AI和可解释机器学习功能,并能够解决实践中解释机器学习模型所做决策的许多痛点。OmniXAI旨在成为一站式综合库,为数据科学家、ML研究人员和从业者提供可解释的AI。

from omnixai.visualization.dashboard import Dashboard
 # Launch a dashboard for visualization
 dashboard = Dashboard(
instances=test_instances,# The instances to explain
local_explanations=local_explanations, # Set the local explanations
global_explanations=global_explanations, # Set the global explanations
prediction_explanations=prediction_explanations, # Set the prediction metrics
class_names=class_names, # Set class names
explainer=explainer# The created TabularExplainer for what if analysis
 )
 dashboard.show()

Sepuluh perpustakaan Python untuk AI yang boleh dijelaskan

10、XAI (eXplainable AI)

XAI 库由 The Institute for Ethical AI & ML 维护,它是根据 Responsible Machine Learning 的 8 条原则开发的。它仍处于 alpha 阶段因此请不要将其用于生产工作流程。

Atas ialah kandungan terperinci Sepuluh perpustakaan Python untuk AI yang boleh dijelaskan. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

Kenyataan:
Artikel ini dikembalikan pada:51cto.com. Jika ada pelanggaran, sila hubungi admin@php.cn Padam