Machine Learning cho người mới bắt đầu (Part 1)

Đăng bởi: Admin | Lượt xem: 31 | Chuyên mục: Machine Learning


Học máy (Machine Learning) là một nhánh của trí tuệ nhân tạo. Nó là một ngành học thuộc khoa học máy tính, giúp máy tính có khả năng tự học mà không phải lập trình một cách rõ ràng. Trong bài viết này mình sẽ giới thiệu tổng quan về Machine Learning để các bạn có thể có những hiểu biết cơ bản.


Giới thiệu

Artificial Intelligence (AI) hay Trí Tuệ Nhân Tạo đang len lỏi vào mọi lĩnh vực trong đời sống mà có thể chúng ta không nhận ra. Xe tự hành của Google và Tesla, 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, hệ thống gợi ý phim của Netflix, máy chơi cờ vây AlphaGo của Google DeepMind, …, chỉ là một vài trong vô vàn những ứng dụng của AI/Machine Learning. Trong những năm gần đây, Trí Tuệ Nhân Tạo đã được nhiều thành tựu vô cùng rực rỡ trên nhiều lĩnh vực như: computer vision, natural language processing, recommendation system. Với tốc độ phát triển vô cùng nhanh chóng nhờ vào những tiến bộ trong ngành khoa học dữ liệu (Data Science) và những siêu máy tính có tốc độ tính toán cực kì nhanh chóng, AI đã và đang giúp cho cuộc sống của con người ngày một tốt đẹp hơn. Một số những thành tựu đáng kinh ngạc của trí tuệ nhân tạo có thể kể đến như:

Năm 2015, Google đã huấn luyện một nhân viên giao tiếp có thể thuyết phục trong quá trình tương tác với con người như một bộ phận hỗ trợ kĩ thuật và thậm chí còn thảo luận về đạo đức, bày tỏ ý kiến, và trả lời các câu hỏi dựa trên các câu hỏi phổ biến.

Sau đó 1 năm, AlphaGo do Google phát triển đã đánh bại kì thủ cờ vây hàng đầu thế giới Lee Sedol trước sự ngỡ ngàng của rất nhiều người cũng như các chuyên gia nghiên cứu trong lĩnh vực trí tuệ nhân tạo.

Trí tuệ nhân tạo có thể được hiểu là trí tuệ được biểu diễn bởi bất cứ một hệ thống nhân tạo nào, do con người lập trình tạo nên với mục tiêu giúp máy tính có thể tự động hóa các hành vi thông minh như con người. Trí tuệ nhân tạo luôn là một ngành khoa học khó tiếp cận cho những người mới bắt đầu bởi trí tuệ nhân tạo được xây dựng từ nhiều nền tảng khác nhau, vì vậy trong series bài viết này mình chỉ xin đề cập tới một nhành của trí tuệ nhân tạo là học máy (Machine Learning).

Theo Wikipedia, Machine Learning được định nghĩa như sau:
 

Machine learning is a field of computer science that uses statistical techniques to give computer systems the ability to "learn" (e.g., progressively improve performance on a specific task) with data, without being explicitly programmed.

Định nghĩa này có được thể tạm dịch là "Maching learning là một ngành học thuộc khoa học máy tính, giúp máy tính có khả năng tự học mà không phải lập trình một cách rõ ràng". Và trong series này mình sẽ chia sẻ với các bạn đang muốn tìm hiểu về Machine Learning những kiến thức căn bản nhất.

Tổng quan về Machine Learning

Machine Learning được chia thành 3 loại:

  • Supervised learning (học có giám sát): Ở thời điểm hiện tại, đây là phương pháp học được sử dụng phổ biến nhất hiện nay. Tập dữ liêu dùng để huấn luyện sẽ là các cặp input - output tương ứng, nghĩ là ta đã biết được dữ liệu đầu vào và đầu ra đúng tương ứng với đầu vào đó. Quá trình học sẽ cố gắng tìm ra mối quan hệ giữa gần đúng nhất giữa đầu vào và đầu ra tương ứng, hay nói một cách khác là ta đang đi tìm một hàm quan hệ giữa đầu vào x và đầu ra y : y = f(x). Khi ta đã có được hàm quan hệ f và một đầu vào x mới, ta có thể dự đoán được đầu ra y tương ứng.

  • Unsupervised learning (học không giám sát): Khác với Supervised learning, tập dữ liệu huấn luyện của Unsupervised learning chỉ bao gồm dữ liệu đầu vào input mà không bao gồm đầu ra output tương ứng. Unsupervised learning hướng tới việc tìm ra các structure, relationship trong tập dữ liệu huấn luyện.

  • Reinforcement learning (học tăng cường/học củng cố)

Khi xây dựng một mô hình Machine Learning cho một ứng dụng thực tế, ngoài việc xác định đúng phương pháp học thì còn cần phải xác định được chính xác loại bài toán mà ta đang cần giải quyết. Có 2 loại bài toán phổ biến:

  • Regression problem (bài toán hồi quy tuyến tính): đầu ra output cần dự đoán là các số thực có thể nhận bất cứ giá trị nào. Ví dụ bạn cần xây dựng một mô hình học máy với các dự liệu đầu vào như vị trí căn nhà, diện tích, số phòng ngủ, ... và đầu ra cần dự đoán là giá bán của căn nhà đó. Trong ví dụ này giá bán của căn nhà là một số thực có thể nhận bất cứ giá trị nào, có thể là 100.000 usd, 200.000 usd, 300.000 usd, ...

  • Classification problem (bài toán phân loại): đầu ra output là một trong các class (lớp) mà chúng ta đã biết trước. Ví dụ bạn muốn xây dựng một mô hình học máy với khả năng nhận diện chữ số, như vậy đầu ra output cần dự đoán là 10 chữ số từ 0 cho đến 9. Trong bài toán phân loại này, đầu ra cần dự đoán chỉ có thể là 1 trong 10 khả năng có thể xảy ra mà ta đã biết trước.

 

Kiến thức cần chuẩn bị

Các kiến thức mà bạn cần chuẩn bị bao gồm:

  • Kiến thức cơ bản về lập trình.
  • Các kiến thức liên quan về đại số tuyến tính cơ bản như nhân/chia/cộng/trừ 2 ma trận, cách tính đạo hàm của một hàm số. Nếu cảm thấy mình chưa thực sự thành thạo về đại số tuyến tính hay đạo hàm thì bạn cũng không cần quá lo lằng vì hiện tại các framework về Machine Learning đều hỗ trợ rất tốt cho người dùng. Tuy nhiên mình khuyến khích các bạn tìm hiểu về những kiến thức trên để có thể hiểu tốt hơn về các thuật toán Machine Learning mình sẽ giới thiệu trong phần 2.
  • Nắm được cách sử dụng một vài các framework hỗ trợ Machine Learning bằng ngôn ngữ Python như: tensorflow, keras, scikit-learn, ...

Phần 1 giới thiệu về Machine Learning đến đây là hết. Trong phần tiếp theo mình sẽ đi sâu hơn về các giải thuật như linear regression, logistic regression, neural network. Cảm ơn các bạn đã đọc bài viết trên và hy vọng các bạn sẽ tiếp tục theo dõi phần tiếp theo của chuyên mục này cũng như các bài viết khác trên trang vncoder.

vncoder logo

Theo dõi VnCoder trên Facebook, để cập nhật những bài viết, tin tức và khoá học mới nhất!


Bài viết liên quan

Chuyên mục: Machine Learning


Chuyên mục khác