- vừa được xem lúc

Làm như nào để giải thích một mô hình học máy? (phần 1)

0 0 7

Người đăng: Viblo AI

Theo Viblo Asia

Giới thiệu

Các mô hình học máy đã bắt đầu thâm nhập vào các lĩnh vực quan trọng, yêu cầu về tính bảo mật và độ chính xác cao như y tế, hệ thống tư pháp và ngành tài chính. Do đó, việc giải thích tại sao mô hình lại đưa ra dự đoán như vậy là một điều cần thiết, nó giúp ta đảm bảo sự tin tưởng khi áp dụng mô hình vào thực tế. 😃

Trong khi đó, sự tăng trưởng nhanh chóng của các mô hình học sâu làm cho việc diễn giải các mô hình ngày càng trở nên phức tạp. Chúng ta mong muốn áp dụng sức mạnh của AI vào mọi khía cạnh chính của cuộc sống hàng ngày. Tuy nhiên, thật khó để làm được điều đó nếu không có đủ tin tưởng vào các mô hình hoặc một quy trình hiệu quả để giải thích các hành vi ngoài ý muốn, đặc biệt là khi xem xét các mạng neural như một blackbox 😄

Thử xét một vài ví dụ sau để "cảm nhận" được tầm quan trọng của việc giải thích các mô hình:

  1. Ngành tài chính được quản lý chặt chẽ và luật pháp yêu cầu các tổ chức phát hành khoản vay phải đưa ra các quyết định công bằng. Việc giải thích các mô hình tín dụng là cần thiết để đưa ra lý do hợp lý cho các quyết định cho vay hay không.
  2. Trong y tế, việc sử dụng các mô hình liên quan trực tiếp tới sức khỏe của con người. Làm sao để chúng ta có thể tự tin trao quyền quyết định tới sức khỏe bệnh nhân cho một black-box model?
  3. Khi sử dụng mô hình quyết định hình sự để dự đoán nguy cơ tái phạm tại tòa án, chúng ta phải đảm bảo rằng mô hình này hành xử một cách công bằng, trung thực và không phân biệt đối xử
  4. Nếu một chiếc xe tự lái đột nhiên hoạt động bất thường và không thể giải thích lý do tại sao, liệu chúng ta có đủ tin tưởng để sử dụng công nghệ này trong giao thông thực tế trên diện rộng không?

Interpretable Models

Lipton (2017) đã tổng hợp các tính chất của một interpretable model trong bài báo The Mythos of Model Interpretability như sau: A human can repeat (“simulatability”) the computation process with a full understanding of the algorithm (“algorithmic transparency”) and every individual part of the model owns an intuitive explanation (“decomposability”).

Các mô hình cổ điển có sự hình thành tương đối đơn giản và đi kèm với một phương pháp giải thích cụ thể. Trong khi đó, các công cụ mới đang được phát triển để giúp tạo ra các mô hình có thể diễn giải tốt hơn (Been, Khanna, & Koyejo, 2016, Lakkaraju, Bach & Leskovec, 2016)

Regression

Công thức tổng quát của linear regression model:

y=w0+w1x1+w2x2++wnxny=w_{0}+w_{1} x_{1}+w_{2} x_{2}+\ldots+w_{n} x_{n}

Trong đó các biến độc lập là các feature của data. Kết quả của dự đoán được biểu diễn bởi giá trị yy.

Naive Bayes

"Naive" (ngây thơ) trong Naive Bayes là do thuật toán hoạt động trên một giả định rất đơn giản rằng các tính năng độc lập với nhau và mỗi tính năng đóng góp vào kết quả đầu ra một cách độc lập.

Cho 1 feature vector x=[x1,x2,,xn]\mathbf{x}=\left[x_{1}, x_{2}, \ldots, x_{n}\right] và class label c{1,2,,C}c \in\{1,2, \ldots, C\}, Xác suất của một điểm dữ liệu này thuộc class cc

p(cx1,x2,,xn)p(c,x1,x2,,xn)p(c)p(x1c)p(x2c)p(xnc)p(c)i=1np(xic)\begin{aligned} p\left(c \mid x_{1}, x_{2}, \ldots, x_{n}\right) & \propto p\left(c, x_{1}, x_{2}, \ldots, x_{n}\right) \\ & \propto p(c) p\left(x_{1} \mid c\right) p\left(x_{2} \mid c\right) \ldots p\left(x_{n} \mid c\right) \\ & \propto p(c) \prod_{i=1}^{n} p\left(x_{i} \mid c\right) \end{aligned}

Naive Bayes Classifier được định nghĩa như sau:

y^=argmaxc1,,Cp(c)i=1np(xic)\hat{y}=\arg \max _{c \in 1, \ldots, C} p(c) \prod_{i=1}^{n} p\left(x_{i} \mid c\right)

Vì mô hình học giá trị p(xic)p(x_i|c) trong quá trình training nên đóng góp của một feature riêng lẻ có thể được định lượng dễ dàng như sau p(cxi)=p(c)p(xic)/p(xi)p\left(c \mid x_{i}\right)=p(c) p\left(x_{i} \mid c\right) / p\left(x_{i}\right)

Decision Tree

Decision Tree là một tập các boolean function, thường được xây dựng bởi công thức if... then... else... Điều kiện if chứa một function liên quan đến một hoặc nhiều feature và trả về một output kiểu boolean. Decision Tree có khả năng diễn giải tốt và có thể được hình dung trong một cấu trúc cây. Nhiều nghiên cứu về decision tree với mục tiêu ứng dụng trong lĩnh vực y tế, trong đó khả năng diễn giải của mô hình đóng vai trò rất quan trọng.

image.png

Decision tree là một mô hình supervised learning, có thể được áp dụng vào cả hai bài toán classification và regression. Việc xây dựng một decision tree trên dữ liệu huấn luyện cho trước là việc đi xác định các câu hỏi và thứ tự của chúng. Một điểm đáng lưu ý của decision tree là nó có thể làm việc với các đặc trưng (trong các tài liệu về decision tree, các đặc trưng thường được gọi là thuộc tính – attribute) dạng categorical, thường là rời rạc và không có thứ tự. Ví dụ, mưa, nắng hay xanh, đỏ, v.v. Decision tree cũng làm việc với dữ liệu có vector đặc trưng bao gồm cả thuộc tính dạng categorical và liên tục (numeric). Một điểm đáng lưu ý nữa là decision tree ít yêu cầu việc chuẩn hoá dữ liệu.

Thuật toán xây dựng decision tree phổ biến là ID3, bạn đọc có thể tìm hiểu tại đây.

Random Forests

Nhiều người cho rằng mô hình Random Forests là một blackbox, tuy nhiên điều này không đúng. Output của random forests là phiếu bầu đa số của một lượng lớn các decision tree độc lập và mỗi decision tree lại có thể diễn giải một cách rất tự nhiên 😃 Hãy đi vào thử một ví dụ cụ thể nhé 😄

Xét bộ dữ liệu Boston housing price dataset bao gồm giá nhà tại ngoại ô Boston với các thuộc tính như chất lượng không khí (NOX), khoảng cách đến trung tâm (DIST),... Ta sẽ xây dựng decison tree với độ sâu là 3 để dự đoán giá nhà. Thường thì mỗi cây có các điều kiện trên mỗi node và giá trị đầu ra trên mỗi lá. Tuy nhiên trong hình dưới, ta bổ sung thêm giá trị tại mỗi mỗi node, đó là giá trị trung bình của response variable tại khu vực đó.

image.png

image.png

Vậy làm thế nào để chuyển từ decision tree sang random forests. Điều này khá đơn giản vì giá trị dự đoán của 1 forest là giá trị trung bình các dự đoán của các tree của forest đó 😄 F(x)=1Jj=1Jfj(x)F(x)=\frac{1}{J} \sum_{j=1}^{J} f_{j}(x), trong đó JJ là số lượng tree trong forest.

Kết luận

Bạn có thể thấy rằng các interpretable model đều được form dưới dạng công thức toán học, điều này giúp ta dễ dàng ước lượng được mức độ quan trọng của các feature đầu vào. Tuy nhiên, các mô hình học sâu sẽ không đơn giản như vậy, ta sẽ cùng nhau tìm hiểu trong phần 2 của bài viết nhé 😄

Bình luận

Bài viết tương tự

- vừa được xem lúc

Hành trình AI của một sinh viên tồi

Mình ngồi gõ những dòng này vào lúc 2h sáng (chính xác là 2h 2 phút), quả là một đêm khó ngủ. Có lẽ vì lúc chiều đã uống cốc nâu đá mà giờ mắt mình tỉnh như sáo, cũng có thể là vì những trăn trở về lý thuyết chồng chất ánh xạ mình đọc ban sáng khiến không tài nào chợp mắt được hoặc cũng có thể do mì

0 0 143

- vừa được xem lúc

[Deep Learning] Key Information Extraction from document using Graph Convolution Network - Bài toán trích rút thông tin từ hóa đơn với Graph Convolution Network

Các nội dung sẽ được đề cập trong bài blog lần này. . Tổng quan về GNN, GCN. Bài toán Key Information Extraction, trích rút thông tin trong văn bản từ ảnh.

0 0 215

- vừa được xem lúc

Tìm hiểu về YOLO trong bài toán real-time object detection

1.Yolo là gì. . Họ các mô hình RCNN ( Region-Based Convolutional Neural Networks) để giải quyết các bài toán về định vị và nhận diện vật thể.

0 0 280

- vừa được xem lúc

Encoding categorical features in Machine learning

Khi tiếp cận với một bài toán machine learning, khả năng cao là chúng ta sẽ phải đối mặt với dữ liệu dạng phân loại (categorical data). Khác với các dữ liệu dạng số, máy tính sẽ không thể hiểu và làm việc trực tiếp với categorical variable.

0 0 254

- vừa được xem lúc

TF Lite with Android Mobile

Như các bạn đã biết việc đưa ứng dụng đến với người sử dụng thực tế là một thành công lớn trong Machine Learning.Việc làm AI nó không chỉ dừng lại ở mức nghiên cứu, tìm ra giải pháp, chứng minh một giải pháp mới,... mà quan trọng là đưa được những nghiên cứu đó vào ứng dụng thực tế, được sử dụng để

0 0 68

- vừa được xem lúc

Xây dựng hệ thống Real-time Multi-person Tracking với YOLOv3 và DeepSORT

Trong bài này chúng ta sẽ xây dựng một hệ thống sử dụng YOLOv3 kết hợp với DeepSORT để tracking được các đối tượng trên camera, YOLO là một thuật toán deep learning ra đời vào tháng 5 năm 2016 và nó nhanh chóng trở nên phổ biến vì nó quá nhanh so với thuật toán deep learning trước đó, sử dụng YOLO t

0 0 311