Bias trong machine learning là gì năm 2024

“By far, the greatest danger of Artificial Intelligence is that people conclude too early that they understand it.” — Eliezer Yudkowsky

Trong quá trình học tập và làm việc với Data Science (DS), Artificial Intelligence (AI) nói chung hay Machine Learning (ML) nói riêng, chúng ta thường tập trung vào việc xây dựng các mô hình (models) để giải quyết các bài toán đặt ra! Nhưng quá trình xây dựng và phát triển các mô hình này chỉ là một phần rất nhỏ trong các dự án ML khi triển khai thực tế. Để một mô hình ML được áp dụng vào môi trường production cần trải qua rất nhiều bước khác nhau, từ khâu chuẩn bị, vận hành, phát triển và triển khai trên Production Server hay Cloud (DevOps).

Chung quy chúng ta cần một hệ sinh thái (ecosystems) cho quá trình phát triển một ứng dụng DS, AI hay ML, có thể minh hoạt như trong hình:

Nguồn: https://developers.google.com/machine-learning/crash-course/production-ml-systems

Như các bạn có thể thấy, ML code cho models chỉ là một phần rất nhỏ trong hệ sinh thái nhưng chính là trái tim của toàn bộ hệ thống. Thực tế, toàn bộ ML code trong một real-time ML production system chỉ chiếm khoảng 5% số lượng code. Cần lưu ý rằng để một mô hình ML hoạt động được chúng ta cần rất nhiều tài nguyên của dữ liệu đầu vào (input data) từ khâu thu thập, chuẩn bị, kiểm tra cũng như tìm và khai thác các đặc trưng của dữ liệu! Ngoài ra còn một phần rất quan trọng khác là Serving Infrastructure cho việc dự đoán và đánh giá tính hiệu quả của một ứng dụng ML khi đưa vào môi trường thực tế.

Về cơ bản để triển khai một dự án DS, AI hay ML thì cần có các teams như sau [1]:

● Algorithms team: những chuyên gia về thuật toán, thường có bằng PhD/Master trong lĩnh vực khoa học máy tính và thống kê, có kỹ năng làm việc với R, Python, thuật toán, và ML.

● Big Data team: thu thập, tiền xử lý và quản trị dữ liệu Big Data (Extract, Transform, Load), thành thạo các công cụ Big Data như Spark, Hadoop, Kafka, Hive, Pig, MapReduce, chiếm 80% trong quá trình phát triển.

● Domain Experts: những chuyên gia về mô hình kinh doanh, thường có bằng MBA, đảm bảo những phân tích và nghiên cứu được đưa vào sử dụng đúng với mục tiêu kinh doanh của doanh nghiệp.

● Visualization and Design team: thiết kế và trình diễn mô hình dữ liệu hay dự đoán sao cho người sử dụng có thể quan sát một cách trực quan và nhanh chóng nhất để có thể đưa ra quyết định một cách hiệu quả.

● Product Managers: người đảm bảo tiến độ của dự án, tập hợp và điều phối tiến trình làm việc của mọi người.

Việc đánh giá model có hiệu quả hay không không chỉ đơn thuần là dựa vào hàm mất mát hay các phép đo metrics, quan trọng hơn là quá trình kiểm tra training data (audit training data) và đánh giá dự đoán (evaluate prediction) có theo hướng thiên vị (thiên kiến) của con người (human bias) hay không! Trong bài viết này mình sẽ giới thiệu một số loại biases khác nhau mà chúng ta thường mắc phải trong quá trình làm việc với DS hay ML, làm cho model của chúng ta mất đi tính tổng quát và tính hiệu quả khi triển khai thực tế! Từ đó các bạn có thể loại bỏ chúng và đảm bảo tính công bằng trong ML (Machine Learning Fairness).

1. Type of Bias

Trong quá trình training ML models, các kỹ sư thường feed models bằng cách đưa một tập các training data và đánh giá models theo test set, tuy nhiên trong quá trình thu thập và đánh giá có sự can thiệp của con người thì model sẽ mang tính chủ quan (not objective) của chính người train dẫn tới quá trình đánh giá bị sai lệch và mất tính tổng quát (skew model’s predictions). Hiểu và tránh được một số loại biases khác nhau từ đó làm giảm thiểu mức độ sai lệch của models là một phần rất quan trọng trước khi bắt đầu một bài toán DS hay ML.

1.1 Reporting Bias

Trong một nhà tù giữa sa mạc, một tù nhân lâu năm kết bạn với một người mới đến. Tù nhân trẻ luôn miệng nói với ông về kế hoạch đào thoát và luôn quay cuồng với việc lên kế hoạch. Sau vài tháng, tù nhân trẻ quyết định vượt ngục. Trốn đi được một tuần, anh bị bắt trở lại trong trạng thái tơi tả và đói khát. Anh kể lể với người bạn già về nỗi kinh hoàng ở bên ngoài với bãi cát mênh mông không một bóng cây và luôn thất bại ở mọi lúc. Tù nhân già lắng nghe một lúc rồi nói: “Ừ, biết rồi, tôi thử vượt ngục nhiều lần rồi, hơn 20 năm trước”. Tù nhân trẻ sửng sốt: “Ông thử rồi? Sao không nói cho tôi biết?”. Tù nhân già nhún vai trả lời: “Ai mà lại đi công bố kết quả thất bại bao giờ!” [2]

Đây là một ví dụ về reporting bias, các bạn thấy rằng trong quá trình xây dựng model, chúng ta thường chú ý đến những điều đặc biệt, nổi trội, bất thường, hoặc một điều gì đó có ý nghĩa, có tác dụng, có hiệu quả, có hại, v.v. mà bỏ đi những những điều vốn dĩ bình thường rất có ý nghĩa ( “go without saying”).

Ví dụ bạn build một hệ thống recommendation cho sách để đánh giá một đầu sách có tốt hay không. Bạn dựa vào review của khách hàng, xây dựng một ML models dựa trên những algorithms hàng đầu về Natural Language Processing để phân tích positive hay negative words hay sequences từ reviews và đưa ra đánh giá một cuốn sách có tốt hay không. Nhưng khi triển khai vào thực tế models của bạn lại không hiệu quả. Lý do là ở đâu? Có 2 nguyên do: model bạn chỉ tập trung vào positive và negative words và khách hàng chỉ đánh giá một đầu sách khi họ thật sự tâm đắc với nó! Những review trung lập, không thể hiện positive hay negative sẽ làm model đánh giá sai và có khuynh hướng thiên về một tập nhỏ các reviews có các từ positive hay negative.

1.2 Automation Bias

Đây là loại bias mà con người có xu hướng áp đặt các kết quả của các hệ thống tự động vào các kết quả của các hệ thống không tự động. Một hệ thống tự động mà chúng ta hay sử dụng là GPS cụ thể là Google Maps, nhưng quá tin vào Google Maps mà áp dụng vào trong thực tế cũng mang lại những tình huống vô cùng trớ trêu [3].

Trong ML, các bạn cần lưu ý rằng các kết quả lấy ra được từ models cũng không nên được áp dụng một cách quá “máy móc” trong các tình huống thực tế. Ví dụ như chuẩn đoán có bệnh hay không có bệnh, có gian lận hay không gian lận, có nói dối hay không nói dối…

1.3 Selection Bias

Nguồn: https://medium.com/advances-in-biological-science/how-corruptive-forces-are-chewing-on-science-from-the-inside-ba9af825f277

Bias trọng thống kê là gì?

Độ chệch (bias – D) Độ chệch thể hiện mức độ sai khác giữa kết quả ngoại kiểm tra của phòng xét nghiệm với trị số ấn định. Độ chệch càng nhỏ thì giá trị đo được càng gần giá trị thực và có độnxác thực càng cao.

Dropout layer là gì?

Lớp dropout. Lớp dropout là một kỹ thuật được sử dụng để hạn chế hiện tượng overfitting (hiện tượng mạng nơ-ron quá bám sát vào tập dữ liệu huận luyện và không đáp ứng được với các tập dữ liệu mới), thường gặp ở mạng CNN và giúp mô hình tính toán nhanh hơn.

Vanishing Exploding gradient là gì?

Vanishing Gradient: (Đạo hàm triệt tiêu) hiện tượng gradient bị biến mất khi câu quá dài, tức là RNN không thể học được những phụ thuộc xa. Exploding Gradient :(bùng nổ gradient) Đây là hiện tượng gradient quá lớn do tích tụ gradient ở những lớp cuối đặc biệt hay xảy ra đối với câu dài.

Overfitting và Underfitting là gì?

Quá khớp (Overfitting) và vị khớp (underfitting) là những hiện tượng ảnh hưởng nghiêm trọng đến hiệu suất của mô hình khiến chúng không thể áp dụng được vào thực tế. Để minh hoạ cho hiện tượng quá khớp và vị khớp chúng ta sẽ cùng lấy ví dụ thực tiễn về phân loại ảnh chó và mèo.