+10

Tìm hiểu về machine learning

Mở đầu

Học máy (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ể.

Machine learning sẽ giúp chúng ta phát triển các dự đoán, mô hình được suy đoán từ dữ liệu mà chúng ta đưa vào ban đầu để xử lý. Các dữ liệu này nên có ý nghĩa nhất định để việc tính toán chuẩn xác hơn. Hiểu về các thuật toán học máy sẽ giúp chúng ta tự xây dựng các mô hình của bản thân. Các thuật toán này có khả năng học hỏi từ những sai lầm trong quá khứ và giảm thiểu tối đa theo thời gian.

Hoạt động như thế nào?

Đầu tiên ta sẽ có một bộ dữ liệu, gọi là dữ liệu huấn luyện. Dữ liệu này bao gồm input và output có sẵn, máy tính sẽ được học từ các dữ liệu này. Sau đó chúng ta có thể đưa dữ liệu khác vào test thử, máy tính sẽ suy đoán từ dữ liệu học được và dự đoán kết quả. Việc so sánh các kết quả suy đoán với kết quả chính xác sẽ giúp máy tính cải thiện độ chính xác của thuật toán.

Cơ bản

Machine learning có các phương thức học là:

  1. Học có giám sát (Supervised Learning)
  2. Học không giám sát (Unsupervised Learning)
  3. Học bán giám sát (Semi-Supervised Learning)
  4. Học củng cố (Reinforcement Learning)

Học có giám sát (Supervised Learning)

Supervised learning là thuật toán dự đoán đầu ra (outcome) của một dữ liệu mới (new input) dựa trên các cặp (input, outcome) đã biết từ trước. Cặp dữ liệu này còn được gọi là (data, label), tức (dữ liệu, nhãn). Supervised learning là nhóm phổ biến nhất trong các thuật toán Machine Learning.

Học không giám sát (Unsupervised Learning)

Trong thuật toán này, chúng ta không biết được outcome hay nhãn mà chỉ có dữ liệu đầu vào. Thuật toán unsupervised learning sẽ dựa vào cấu trúc của dữ liệu để thực hiện một công việc nào đó, ví dụ như phân nhóm (clustering) hoặc giảm số chiều của dữ liệu (dimension reduction) để thuận tiện trong việc lưu trữ và tính toán.

Học bán giám sát (Semi-Supervised Learning)

Các bài toán khi chúng ta có một lượng lớn dữ liệu X nhưng chỉ một phần trong chúng được gán nhãn được gọi là Semi-Supervised Learning. Những bài toán thuộc nhóm này nằm giữa hai nhóm được nêu bên trên.

Một ví dụ điển hình của nhóm này là chỉ có một phần ảnh hoặc văn bản được gán nhãn (ví dụ bức ảnh về người, động vật hoặc các văn bản khoa học, chính trị) và phần lớn các bức ảnh/văn bản khác chưa được gán nhãn được thu thập từ internet. Thực tế cho thấy rất nhiều các bài toán Machine Learning thuộc vào nhóm này vì việc thu thập dữ liệu có nhãn tốn rất nhiều thời gian và có chi phí cao. Rất nhiều loại dữ liệu thậm chí cần phải có chuyên gia mới gán nhãn được (ảnh y học chẳng hạn). Ngược lại, dữ liệu chưa có nhãn có thể được thu thập với chi phí thấp từ internet.

Học củng cố (Reinforcement Learning)

Reinforcement learning là các bài toán giúp cho một hệ thống tự động xác định hành vi dựa trên hoàn cảnh để đạt được lợi ích cao nhất (maximizing the performance). Hiện tại, Reinforcement learning chủ yếu được áp dụng vào Lý Thuyết Trò Chơi (Game Theory), các thuật toán cần xác định nước đi tiếp theo để đạt được điểm số cao nhất.

Xử lý dữ liệu

Dữ liệu mà chúng ta thường nhận được là dữ liệu thô và không thể sử dụng trực tiếp cho việc học máy. Vì vậy chúng ta cần xử lý trước dữ liệu để tăng khả năng dự đoán của máy tính. Dữ liệu trong thế giới thực thường bị nhiễu, có lỗi, không phù hợp, không nhất quán và không đầy đủ. Bởi các lý do đó nên xử lý dữ liệu trước khi đem vào sử dụng là một phần quan trọng của học máy

Có 2 loại xử lý dữ liệu là:

  1. Tinh giản dữ liệu (Data cleaning)
  2. Giảm bớt dữ liệu (Data reduction)

Data cleaning

Đối với dữ liệu bị thiếu

  • Bỏ qua dữ liệu này
  • Sử dụng giá trị trung bình thay thế
  • Dự đoán giá trị

Dữ liệu bị nhiễu (chia thành các tập nhỏ)

Ví dụ ta có dữ liệu: 3, 6, 15, 19, 20, 24, 29, 34, 42.

  • Phân vùng dữ liệu thành các tập bằng nhau:
    • tập 1: 3, 6, 15
    • tập 2: 19, 20, 24
    • tập 3: 29, 34, 42
  • Sử dụng giá trị trung bình
    • tập 1: 8, 8, 8
    • tập 2: 21, 21, 21
    • tập 3: 35, 35, 35
  • Sử dụng giá trị biên
    • tập 1: 3, 3, 15
    • tập 2: 19, 19, 24
    • tập 3: 29, 29, 42

Trường hợp ngoại lệ

Ta có thể làm các cách sau:

  • Phân nhóm (clustering)
  • Đưa dữ liệu vào biểu đồ (curve fitting)
  • Thử nghiệm giả thuyết với một mô hình có sẵn

Data reduction

  • Giảm bớt các thuộc tính
  • Sử dụng mức trung bình

Kết luận

Bài viết là những gì mình tìm hiểu và tổng hợp được và còn khá sơ sài, mục đích để ghi nhớ lại kiến thức cho mình và chia sẻ cho mọi người, có gì sai sót mong mọi người góp ý :p


All rights reserved

Viblo
Hãy đăng ký một tài khoản Viblo để nhận được nhiều bài viết thú vị hơn.
Đăng kí