Lý thuyết về Machine Learning – Máy học

svm2

Machine Learning (ML) – máy học là ngành khá hay, ứng dụng khá nhiều và đang trở thành xu hướng. Nó là 1 nhánh của AI (trí tuệ nhân tạo), và ứng dụng của ML vào thực tế càng lúc càng nhiều.

Hãy tưởng tượng máy tính là 1 đứa trẻ, bạn cho nó nhìn hình ảnh rồi dạy đó là chó hoặc mèo. Sau đó đưa 1 tấm hình chưa từng xem qua nó vẫn đoán được đó là chó hay mèo. Não của đứa trẻ học những đặc điểm của chó mèo rồi dùng quy luật đó để dự đoán. Khi đoán sai người lớn sẽ sửa lại để mô hình học đúng hơn, đó gọi là học có giám sát.

Cũng với 1 đứa trẻ, đưa cho nó 1 đống đồ chơi rồi kêu nó phân loại tùy ý. Nó sẽ sắp xếp các loại đồ chơi theo quy tắc nào đó mà nó nhận ra như màu sắc, kích thước. Tuy nhiên mỗi đứa trẻ sẽ có 1 cách sắp xếp khác nhau, đó gọi là học không giám sát.

girl-playing-with-colorful-blocks

Vậy ML có dự đoán được xổ số hay không? Câu trả lời là không vì xổ số hoàn toàn ngẫu nhiên. Nó không có quy luật để rút trích đặc trưng mà dự đoán. Nếu làm được thì các nhà khoa học đã giàu hết rồi và ngành xổ số dẹp tiệm rồi.

Trong Thị giác máy tính thì ML là bước cuối cùng sau khi đã xử lý ảnh thành dữ liệu input. Kết quả trả về là lớp (nhãn) của hình ảnh input. Như là nhận dạng ảnh động vật, biển số xe, biển báo giao thông,…

Tổng quan thì một ứng dụng ML đều có những bước cơ bản như:
– Thu thập dữ liệu (biển số, khuôn mặt, chó mèo,…)
– Trích xuất thông tin cần thiết từ dữ liệu
– Huấn luyện (training) để tạo thành model để sử dụng
– Lập trình ứng dụng sử dụng model đã huấn luyện

Theo định nghĩa của Wikipedia:

Học máy, có tài liệu gọi là Máy học, (tiếng Anh: machine learning) là một lĩnh vực của trí tuệ nhân tạo liên quan đến việc nghiên cứu và xây dựng các kĩ thuật cho phép các hệ thống “học” tự động từ dữ liệu để giải quyết những vấn đề cụ thể. Ví dụ như các máy có thể “học” cách phân loại thư điện tử xem có phải thư rác (spam) hay không và tự động xếp thư vào thư mục tương ứng. Học máy rất gần với suy diễn thống kê (statistical inference) tuy có khác nhau về thuật ngữ.

Học máy có liên quan lớn đến thống kê, vì cả hai lĩnh vực đều nghiên cứu việc phân tích dữ liệu, nhưng khác với thống kê, học máy tập trung vào sự phức tạp của các giải thuật trong việc thực thi tính toán. Nhiều bài toán suy luận được xếp vào loại bài toán NP-khó, vì thế một phần của học máy là nghiên cứu sự phát triển các giải thuật suy luận xấp xỉ mà có thể xử lý được.

Có nhiều giải thuật liên quan đến lĩnh vực thú vị này, như:

Support Vector Machine (SVM)

Xem dữ liệu như vectơ nhiều chiều rồi phân lớp kết quả

Hình trên là ảnh 3 chiều cho thấy rằng siêu phẳng (hyperplane) phân lớp các phần tử trong không gian 3 chiều thành 2 lớp khác nhau. Và theo mô hình xây dựng sẵn thì dựa vào tọa độ của siêu phẳng mà kết luận. Tất nhiên là dữ liệu sẽ có n chiều chứ không phải chỉ là 3 chiều như ảnh minh họa.

Các bạn có thể tham khảo bài viết LIBSVM – giới thiệu tổng quan và ví dụ



Naive Bayes: Bayes thơ ngây

Giả sử có 1 cô gái được 2 anh chàng yêu cùng lúc, cô gái sẽ phải cân nhắc anh nào ưu điểm nhiều để cưới. Mỗi anh đều có một vài ưu điểm như: đẹp trai, tài năng, quan hệ rộng, tâm lý,… Nhưng cô không biết ưu điểm nào là quan trọng hơn ưu điểm nào, thế thì cứ liệt kê ra ưu điểm, ai nhiều hơn thì cô yêu người đó.

Vấn đề nhìn thấy rõ là: xem mức độ quan trọng của từng thuộc tính như nhau là không hợp lý, nhưng kết quả trong thực tế lại cho kết quả khá tốt. Các bạn tham khảo slide về cách tính toán xác suất cuối bài.

Và còn rất nhiều giải thuật khác hay ho thú vị nhưng rất nhức đầu, hại não. Quay lại chủ đề chính, Machine Learning cần thiết cho xử lý ở phần Object Detection. OpenCV sẽ sử dụng những thuật toán đó để học ra những quy luật của chữ số, mặt người, vật thể thành các mô hình nhận dạng, sau đó so sánh hình ảnh input với mô hình nhận dạng để tìm ra đối tượng trong ảnh.

Slide Naive Bayes (.pdf)




Khái quát về ML là như vậy, mục đích bài này để giúp bạn hiểu được ML là gì nên có thể từ ngữ không chính xác lắm. Mình sẽ cập nhật liên tục về những mô hình ML mới một cách dễ đọc, dễ hiểu nhất.

Leave a Reply