Chương 1: Giới thiệu về học máy (Machine Learning)

Chào mừng đến với series về Machine Learning!

Ngày nay, học máy đang ngày càng trở nên thông dụng nhờ khả năng xử lý dữ liệu của mình và đây là một công cụ đầy mạnh mẽ, có thể giúp cho cuộc sống của chúng ta dễ dàng hơn rất nhiều. Khi bắt đầu với Machine Learning, tôi đã cảm thấy thắc mắc/gặp khó khăn với việc “Làm thế nào để bắt đầu với Machine Learning .Sau đó, nhờ các blog của Analytics Vidhya mà tôi có thể hình dung vấn đề một cách rõ ràng hơn. Tôi cũng học theo một vài cách học ở vài website, tuy nhiên nếu bạn là người chưa có kiến thức nền tảng thì tôi nghĩ bạn đừng bao giờ học theo cách này. Chính vì vậy, ở chương này, tôi sẽ viết về những kiến thức nền tảng mà các bạn cần và những điều cơ bản về Machine Learning.

Khái niệm Machine Learning

Machine Learning là một phần của lĩnh vực trí tuệ nhân tạo (AI) – lĩnh vực sử dụng các phương pháp thống kê để đem lại cho máy móc trí tuệ nhằm thực hiện một tác vụ cụ thể nào đó một các chính xác.

Sự khác biệt giữa khai phá dữ liệu (Data mining), học máy và học sâu (deep learning)

Khai phá dữ liệu là quá trình trích xuất những thông tin hay tri thức hữu ích (không phải khuôn mẫu hay hiểu biết cụ thể) từ một bộ dữ liệu lớn. Những tri thức này có thể được sử dụng trong các ứng dụng kinh doanh như phân tính thị trường, quản lý rủi ro, xác định lừa đảo,… Khai phá dữ liệu có thể được thực hiện bằng phân tích, trực quan hóa dữ liệu hoặc thông qua các mô hình học máy.

Học máy là quá trình thu thập tri thức từ những dữ liệu trong quá khứ và sử dụng chúng để dự đoán tương lai. Ví dụ thuật toán “support vector machines” (SVM).

Học sâu là một loại của phương pháp học máy với khả năng cao hơn vì nó là định hướng xây dựng mô phỏng các neuron trong não người và học hiện tượng như 1 khái niệm cấp bậc xếp chồng lên nhau với mỗi khái niệm được định nghĩa bằng mối liên hệ đến một khái niệm đơn giản hơn. Ví dụ như thuật toán: Convolution Neural NetWorks (CNN).

Machine Learning hoạt động như thế nào?

Hệ thống Machine Learning được tạo thành từ 3 thành phần chính:

  • Mô hình (Model): hệ thống đưa ra dự đoán hoặc nhận dạng
  • Tham số (Parameters): tín hiệu hoặc nhân tố được Model sử dụng để đưa ra quyết định.
  • Learner : hệ thống điều chỉnh lại parameters và tiếp đó là model bằng cách so sánh sự khác biệt giữa dự đoán và kết quả thực tế.

Để tôi cho bạn thấy bức tranh toàn cảnh của Machine Learning trong sơ đồ dưới đây

Vậy làm thế nào để bắt đầu học về Machine Learning?

Bước 1: Điều chỉnh tư duy: Hãy tin rằng bạn có thể luyện tập và ứng dụng được Machine learning

Bước 2: Chọn một hệ thống. Sử dụng một quy trình có hệ thống để xử lý khi có vấn đề.

Bước 3: Chọn một công cụ. Chọn một công cụ phù hợp với trình độ bản thân và đưa nó vào quy trình vừa nêu.

Bước 4: Thực hành trên các bộ dữ liệu. Chọn vài bộ dữ liệu để tập luyện và làm việc.

Bước 5: Xây dựng 1 hồ sơ và chứng minh khả năng của bạn.

Các phương thức học máy

Các phương thức rất đa dạng và được phân loại dựa trên bản chất của cách mà chúng giải quyết vấn đề.

  • Học có giám sát (supervised learning): trong phương pháp này, hệ thống được cho một bộ đầu vào (input) (x1,x2,…) và bộ kết quả (output) (y1,y2,..) và thử thách đặt ra là tìm ra một hàm có kết quả gần với output có thể. Output có thể là một nhãn nếu trong thuật toán phân loại (classification) hoặc một số thực trong thuật toán hồi quy (regression)
  • Học không giám sát (Unsupervised learning): Đối với học không giám sát, thường thì bạn chỉ có bộ input mà không có output hay phần thưởng của môi trường (cái này sẽ được giải thích trong phương pháp tiếp theo). phân loại hoặc dự đoán kiến thức nền tảng về không gian mẫu, bạn có thể sẽ sử dụng các phương pháp thích hợp: mật độ xác suất (density estimation), K-means clustering (phân loại các dữ liệu chưa được gán nhãn), k-model clustering ( phân loại danh mục dữ liệu chưa được gán nhãn),…
  • Giám sát 1 phần (semi-supervised learning):  học bán giám sát là xây dựng hàm dự đoán dựa trên input đã được gán nhãn và input chưa được gán nhãn. Cách tiếp cận này được sinh ra do việc sinh ra dữ liệu đã gán nhẵn thường khá tốn kém. Thách thức ở đây phần lớn liên quan đến vấn đề kĩ thuật làm thế nào để xử lý dữ liệu đã bị trộn lẫn. Bạn có thể đọc thêm ở đây để hiểu rõ hơn về phương pháp này  Semi-Supervised Learning Literature Survey
  • Học tăng cường (reinforcement learning): thuật toán học tăng cường sẽ tìm cách tốt nhất để nhận được phần thưởng. Phần thưởng có thể là thắng trò chơi, kiếm được nhiều tiền hơn hoặc đánh bại các đối thủ khác. Chúng cho kết quả tuyệt vời nhất trên những tác vụ mang tính con người,ví dụ là bài báo của đại học Toronto chỉ ra rằng máy tính có thể đánh bại con người trong trò chơi điện tử cổ điển Atari.

Một vài nguồn khác để tìm hiểu:

  1. http://dataconomy.com/2015/01/whats-the-difference-between-supervised-and-unsupervised-learning/
  2. http://enhancedatascience.com/2017/07/19/machine-learning-explained-supervised-learning-unsupervised-learning-and-reinforcement-learning/
  3. https://www.analyticsvidhya.com/blog/2017/09/common-machine-learning-algorithms/
  4. https://medium.com/deep-math-machine-learning-ai/different-types-of-machine-learning-and-their-types-34760b9128a2

Các bước trong việc sử dụng Machine Learning là gì?

Có 5 bước cơ bản để thực hiện một tác vụ Machine Learning:

  1. Thu thập dữ liệu: có thể là dữ liệu thô từ excel, access, file text,…Bước này (thu thập dữ liệu của quá khứ) đặt nền tảng cho các tác vụ sau này. Dữ liệu càng đa dạng, càng dày đặc và khối lượng của dữ liệu liên quan càng lớn thì kết quả của quá trình học càng tốt.
  2. Chuẩn bị dữ liệu: bất cứ quá trình phân tích nào đều phát triển tùy thuộc vào chất lượng dữ liệu. Bạn cần dành thời gian để quyết định chất lượng của dữ liệu và dành các bước để xử lý các vấn đề như mất dữ liệu, xử lý ngoại lệ,..Mô tả dữ liệu bằng biểu đồ trực quan ( Exploratory analysis) có lẽ là phương thức duy nhất để hiểu rõ và trích xuất những phần tinh túy nhất của dữ liệu.
  3. Huấn luyện Model: Bước này yêu cầu chọn một thuật toán phù hợp và trình bày dữ liệu theo định dạng của model. Dữ liệu được “làm sạch” được chia thành 2 phần: phần dùng để huấn luyện (train) và phần dùng để đánh giá kết quả (test). 
  4. Đánh giá model: để kiểm tra chính xác, phần thứ 2 của data-test được sử dụng. Bước này xác định sự chính xác của việc chọn model. Cách để đánh giá độ chính xác của model là dựa trên hiệu suất của hệ thống khi chạy với những dữ liệu mà nó chưa được huấn luyện.
  5. Nâng cao hiệu suất: Bước này yêu cầu chọn một model khác hoặc chọn một biến số khác để nâng cao hiệu suất. Đó chính là lý do vì sao phần lớn thời gian được dành cho tìm kiếm và chuẩn bị dữ liệu

Với bất kì model nào, 5 bước nếu trên có thể được sử dụng để cấu trúc phương pháp và khi ta bàn về các thuận toán, bạn sẽ thấy 5 bước này xuất hiện trong mọi model.

Ứng dụng của Machine Learning:

  1. Trợ lý cá nhân ảo: 

Trợ lý cá nhân ảo được hợp nhất trên đa dạng các nền tảng. Ví dụ: 

  • Loa thông minh: Amazon echo và Google Home
  • Điện thoại thông minh: Samsung Bixby trên Samsung S8
  • Ứng dụng điện thoại: Google Allo, amazon echo, google home,…
  1. Dự đoán khi di chuyển
  • Dự đoán giao thông 
  • Hệ thống phương tiện online 
  1. Video giám sát
  2. Các dịch vụ mạng xã hội: nhận diện khuôn mặt, giới thiệu bạn bè,…
  3. Lọc email rác, mã độc
  4. Giới thiệu sản phẩm
  5. Công cụ tìm kiếm lọc kết quả 
  6. Giới thiệu sản phẩm 
  7. Xác định lừa đảo online 

Bài viết dựa trên: 

  1. https://www.analyticsvidhya.com/blog/2015/06/machine-learning-basics/
  2. https://www.kdnuggets.com/2017/11/3-different-types-machine-learning.htMachine Learning
  3. https://medium.com/deep-math-machine-learning-ai/different-types-of-machine-learning-and-their-types-34760b9128a2
  4. https://www.analyticsvidhya.com/blog/2017/09/common-machine-learning-algorithms/
  5. https://medium.com/app-affairs/9-applications-of-machine-learning-from-day-to-day-life-112a47a429d0