Giải Mã Thuật Toán LIME Trong Explainable AI

Giải Mã Thuật Toán LIME Trong Explainable AI

Explainable AI – XAI, như đã giới thiệu lần trước, đây là món vũ khí giúp chúng ta hiểu rõ thực sự AI đang làm gì. Đi sâu vào chi tiết thì lần này mình sẽ trình bày về thuật toán LIME. Hãy xem một “trái chanh” có thể “mổ xẻ” AI như thế nào.

Phân loại thuật toán

Trước khi đến với “trái chanh” này, chúng ta hãy xem tổng quan một chút về các loại thuật toán của XAI. Hiện các thuật toán đang được phân chia chủ yếu dựa theo quãng thời gian đưa ra thông tin giải thích và phạm vi bao quát của lời giải thích. Dựa theo thời điểm thì ta có 2 cách chia là Intrinsic và Post-hoc (hậu học), hiểu là bạn sẽ bắt đầu quá trình trình giải thích ngay thời điểm AI bắt đầu học hay là chờ sau khi hoàn thiện mô hình rồi mới bắt tay vào quá trình “giải phẫu”, các Intrinsic thì thường chỉ giới hạn cho một hay vài loại mô hình nhất định (Model-specific) còn Post-hoc thì rộng hơn khi có thể giải thích được phần lớn mô hình (Model-agnostic); còn theo phạm vi áp dụng thì lại được phân theo Global và Local, danh phù kỳ thực, một loại sẽ “vạch trần” toàn bộ mô hình cho ta xem còn một loại chỉ làm rõ trong từng trường hợp cụ thể.

“Quả chanh” – LIME trong bài viết này là thuộc loại Post-hoc (Model-agnostic) và Local.

LIME là gì?

LIME, viết tắt của Local Interpretable Model-Agnostic Explanations, thuật toán này giải thích cho các mô hình phân loại kiểu như trong bài toán nhận diện chó-mèo thì dựa vào những vùng ảnh nào mà mô hình lại có thể nhận ra nó là ảnh chó hay dựa vào những từ nào trong câu thì mô hình lại phán câu đó là một câu nói về chủ đề thể thao.

Nguyên lý xuyên suốt của thuật toán này có hiểu là “Chuyện to hóa nhỏ, chuyện nhỏ… đi giải thích”.

Ví dụ như hình dưới, ta có một mô hình phân loại được 2 vùng xanh-hồng, với điểm G được đánh dấu ở vùng màu hồng, làm cách nào ta đi giải thích được tại sao mô hình lại “biết” được điểm đấy ở vùng màu hồng.

 

   

Tất nhiên với một mô hình vòng vèo, phức tạp như ban đầu thì ta không tài nào hình dung được. Rất khó giải thích làm cách nào mô hình “vẽ” ra được một đường biên vòng vù vèo như vậy nhưng nếu “thu nhỏ” lại phạm vi chỉ ở loanh quanh điểm được xét thì sao?

Quéo quèo, có vẻ một đường thẳng đơn giản, dễ hiểu đã xuất hiện rồi ha.

  

Vậy thì LIME đã làm những gì?

Đầu tiên chúng ta sẽ chọn một số điểm bất kỳ quanh điểm G và dùng chính cái mô hình “vòng vù vèo”, phức tạp ban đầu để phân loại những điểm vừa được chọn này

 

Ta sẽ dùng chính những điểm này làm dữ liệu để tạo ra một mô hình đơn giản, dễ hiểu hơn. “Nhất cự ly, nhì cường độ”, những ai đang ở gần G hơn thì sẽ được ưu ái hơn, vì G đang là điểm mà ta quan tâm nhất. Ta thể hiện sự ưu ái bằng cách đánh trọng số những điểm càng gần G thì càng to, ngược lại càng xa thì càng bé.

 

Và sau đó dựa vào chính những điểm lân cận này, trong phạm vi hẹp hơn ta sẽ huấn luyện được một mô hình đơn giản, “thẳng thắn”, “trực đảo hoàng long” ; thường sẽ là một mô hình Hồi quy tuyến tính (Linear regression).

 

Tác giả của thuật toán LIME này có cung cấp một thư viện có thể ứng dụng luôn vào các bài phân loại cụ thể, cộng thêm cả phần thể hiện kết quả nữa.

Một ví dụ về phân loại đoạn văn mình đã thực hiện

Với câu “AN apologetic Michael Phelps today said he made a dangerous mistake when he was arrested for drink-driving last week. The Olympic swimming champion was arrested and charged with drink driving after a trooper” thì mô hình MultinomialNB sẽ phán đây là một câu về Sports từ trong 4 chủ đề Business, SciTech, Sports và World. Lý lẽ đưa ra nghe chiều cũng ổn khi chủ đề này được suy luận dựa trên các từ như Olympic, champion,….

Dành cho ai muốn tự mình xây dựng lại thuật toán thì đây là link Google Colab code xây dựng LIME cho bài toán nhận diện chó-mèo cùng mô hình InceptionV3:
https://colab.research.google.com/drive/1LLcJON45K3BrHWleqSvksLkGQomhrUGp?usp=sharing

Ví dụ như hình dưới đây:

InceptionV3 sẽ đưa ra dự đoán như vầy

Và LIME sẽ cho chúng ta biết những điểm ảnh nào làm InceptionV3 “nghĩ” trong ảnh là một chú chó Labrador.

 

Hãy cùng thưởng thức “trái chanh” này nhá. Let’s enjoy!!!