Cùng đi học Machine Learning - Phần 1 - Machine Learning là cái gì ?

Những năm gần đây, AI - Artificial Intelligence (Trí Tuệ Nhân Tạo) và Machine Learning (ML - Học Máy) nổi lên như một bằng chứng của cuộc cách mạng công nghiệp lần thứ tư. Chúng xuất hiện và len lỏi vào mọi lĩnh vực trong đời sống của chúng ta. Xe tự hành của Google, hệ thống tự tag khuôn mặt trong ảnh của Facebook, trợ lý ảo Siri của Apple, hệ thống gợi ý sản phẩm của Amazon... là một trong vô vàn những ứng dụng được tạo ra bởi Machine Learning. Sự vượt trội của AI/ML so với phương pháp truyền thống đã được chứng minh trong nhiều lĩnh vực, gần đây nhất đó là AlphaGo.

Trong seri này chúng ta sẽ cùng nhau từng bước tìm hiểu về Machine Learning để có một nền tảng học thuật cơ bản trước khi nghiên cứu sâu hơn về nó.

Nguồn gốc

Chúng ta vẫn hay nhắc đến AI và ML, thế nhưng nhiều khi chúng ta cũng chẳng phân biệt nổi sự khác biệt giữa chúng. Chúng có liên quan gì đến nhau không hay là 2 lĩnh vực riêng biệt ?

Và để bắt đầu chúng ta sẽ đến với AI:

AI là một nhánh của khoa học máy tính, phát triển máy móc phần mềm với trí thông minh của con người.

Trong lịch sử phát triển AI, các nhà nghiên cứu phân thành 4 hướng tiếp cận chính:

  • Hành động như người (acting humanly)
  • Suy nghĩ như người (thinking humanly)
  • Suy nghĩ hợp lý (thinking rationally)
  • Hành động hợp lý (acting rationally)

Trong đó, mức độ mô phỏng máy tính như người là khó nhất và đây cũng là mục tiêu mà các nhà khoa học đang hướng tới. Có lẽ bạn đã từng (cũng có thể là chưa 😂) nghe đến Turing Test. Đây là hướng phát triển AI hành động như người (acting humanly). Bài test này được Alan Turing đề xuất vào năm 1950, mục đích để kiểm tra hệ thống máy tính đã đạt đến khả năng thông minh hay chưa. Bài test gồm một người đặt câu hỏi, một người trả lời câu hỏi và một máy tính phản hồi câu hỏi. Nếu trong quá trình trao đổi mà người đặt câu hỏi không thể phân biệt được người hay máy trả lời các câu hỏi này thì máy được xem là thông minh. Đến nay thì hướng tiếp cận này đã đạt được một số thành quả nhất định như:

  • Natural language processing: máy có khả năng đọc hiểu và giao tiếp bằng ngôn ngữ tự nhiên với người.
  • Knowledge representation: máy có khả năng lưu trữ tri thức thông qua thị giác, thính giác, hay văn bản.
  • Automated reasoning: máy có khả năng sử dụng tri thức đã lưu trữ để trả lời câu hỏi hay đưa ra kết luận hữu ích.
  • Machine learning: máy có khả năng thích nghi với các điều kiện môi trường xung quanh để rút trích ra các nguyên lý từ tri thức thu nhận được phục vụ cho việc ra quyết định.
  • Computer vision: máy có khả năng quan sát và xác định được các đối tượng xung quanh.
  • Robotics: máy có khả năng tương tác với đối tượng và di chuyển trong môi trường xung quanh.

Như vậy, ta có thể thấy :

Machine learning là một lĩnh vực trong hướng tiếp cận hành động như người (acting humanly) của AI.

Vậy Machine Learning chính xác là cái là gì ?

Theo định nghĩa của Wikipedia

Machine learning is a field of computer science that gives computers the ability to learn without being explicitly programmed.

Định nghĩa "cho máy tính khả năng học mà không cần lập trình một cách rõ ràng" khá là mơ hồ. Vậy máy tính sao có thể học được ?

Dưới góc nhìn của khoa học máy tính (computer science)

Tom Mitchell trong cuốn sách Machine Learning đã cung cấp một định nghĩa

A computer program is said to learn from experience E with respect to some class of tasks T and performance measure P, if its performance at tasks in T, as measured by P, improves with experience E.

Ta có thể diễn giải như sau: một chương trình máy tính được gọi là học từ kinh nghiệm (dữ liệu) E với tác vụ (dự đoán, phân lớp, gom nhóm) T và được đánh giá bởi độ đo (độ chính xác) P nếu máy tính khiến tác vụ T này cải thiện được độ chính xác P thông qua dữ liệu E cho trước.

Thoạt đầu ta có thể lúng túng trước phát biểu này, nhưng đây là các thành phần cở bản mà bất cứ hệ thống Machine learning nào cũng có. Đó là, dữ liệu E cho trước (tập dữ liệu email) nhằm hoàn thành tác vụ T (xác định email là spam hay không). Mô hình này được đánh giá bởi độ đo P (độ chính xác), từ đó ta có thể tiến hành cải thiện mô hình dựa vào độ đo P này.

Dưới góc nhìn của lập trình viên

Trong ví dụ về spam/non-spam email, các ví dụ (E) là những email đã thu thập được. Tác vụ (T) là một vấn đề về quyết định (gọi là phân loại) đánh dấu mỗi email là spam hoặc không và đặt nó vào đúng thư mục. Cách đo hiệu suất có thể là độ chính xác theo tỷ lệ phần trăm (các quyết định chính xác chia cho tổng số quyết định được nhân với 100) giữa 0% (tệ nhất) và 100% (tốt nhất).

Chuẩn bị một chương trình ra quyết định như thế này thường được gọi là trainning, nơi các ví dụ thu thập được gọi là training set (tập huấn luyện) và chương trình được gọi là module (mô hình), như trong ví dụ là 1 module của vấn đề phân loại thư spam từ thư non-spam.

Là 1 lập trình viên, những thuật ngữ này có vẻ gần gũi hơn, một module có trạng thái và cần phải được duy trì, trainning là một quá trình được thực hiện một lần và có thể chạy lại nếu cần, phân loại là nhiệm vụ được thực hiện.

Tóm lại

Từ 2 góc nhìn trên chúng ta có thể đưa ra một định nghĩa về Machine Learning như sau:

Machine learning là quá trình xây dựng module có khả năng khái quát hoá quyết định dựa vào dữ liệu cho trước, được đánh giá hiệu suất bởi một độ đo nào đó.

Xây dựng một module yêu cầu dữ liệu cho trước. Nếu không có dữ liệu chúng ta không thể xây dựng được module. Khái quát hóa quyết định cho thấy khả đưa ra quyết định dựa trên đầu vào và dự đoán các đầu vào trong tương lai cần phải đưa ra quyết định. Hiệu suất đánh giá cho thấy mục tiêu và chất lượng của module đang được xây dựng.

Kết

Hôm nay tạm thời đến đây thôi là đủ. Hẹn gặp lại các bạn trong phần tiếp theo Phân nhóm các thuật toán Machine Learning.

Nguồn

https://ongxuanhong.wordpress.com/2015/06/10/machine-learning-la-gi/ https://machinelearningcoban.com/2016/12/26/introduce/ https://machinelearningmastery.com/what-is-machine-learning/ https://en.wikipedia.org/wiki/Machine_learning Machine Learning - Tom Mitchell