+6

[Deeplearning-1] Giải thích Machine Learning và Deep Learning bằng ngôn ngữ đại chúng

Phân biệt Artificial Intelligence, Machine Learning và Deep Learning

Đầu tiên chúng ta phải phân biệt rõ ba khái niệm này có quan hệ như thế nào với nhau trước khi đi sâu vào phần giải thích về Machine Learning(ML) và Deep Learning(DL).

image.png

Vào những năm 1950, một số các nhà tiên phong trong lĩnh vực khoa học máy tính tự hỏi, liệu chúng ta có thể làm cho máy tính "suy nghĩ" được không. Điều này dẫn dắt và tạo ra rất nhiều sự đột phá ngày nay. Vậy chúng ta tạm gọi các nghiên cứu liên quan mảng này là Artificial Intelligence(AI). Hay tên đầy đủ và tường minh là "Nỗ lực tự động việc xử lý các công việc đòi hỏi học thức như một con người làm".

Như hình trên, AI là một mảng chung bao gồm cả Machine learning và Deep learning, nhưng cũng bao gồm một số cách tiếp cận để giải quyết vấn đề không liên quan việc "learning". Chúng ta lấy những chương trình tự động chơi cờ vua làm ví dụ, được tạo ra bằng cách đưa vào các Hardcoded-rule(các bạn lập trình viên sẽ hiểu hard code là sao) thì các chương trình đánh cờ này không đủ tiêu chuẩn để được gọi là Machine learning nhưng vẫn thuộc phạm vi của AI. Còn được gọi là Symbolic AI (Symbolic: Tượng trưng).

Mặc dù Symbolic AI giải quyết khá tốt các vấn đề có logic được quy định trước, rõ ràng về luật chơi như là đánh cờ. Nhưng khi được áp dụng vào giải quyết các vấn đề phức tạp, không rõ ràng như là image classification(phân loại hình ảnh), speech recognition(nhận dạng giọng nói) và language translation(dịch thuật) thì Symbolic AI lại gặp nhiều khó khăn.

Machine learning

Một câu hỏi mới được đặt ra bởi Alan Turing, một nhà tiên phong trong lĩnh vực AI. Đó là một chiếc máy tính có thể đi xa hơn những thứ/công thức mà chúng ta ra lệnh chúng nó làm không ? Chúng có thể tự học và thực hiện một việc cụ thể nào đó bằng chính chúng mà không cần chúng ta đưa vào những công thức, thuật toán có sẵn ? chúng có thể tự động học những thuật toán và công thức bằng việc xem các dữ liệu(data) không ?

Câu hỏi trên mở ra cánh cửa tới một mô hình lập trình mới. Sự thay đổi từ Symbolic AI sang Machine learning được mô tả như hình dưới:

Symbolic AI: đầu vào là Rules và Dữ liệu, đầu ra là Kết quả image.png

Machine Learning: đầu vào là Dữ liệu và Kết quả, đầu ra là Rules image.png

Một hệ thống Machine Learning thay vì được gọi là lập trình ra, thì chúng ta sử dụng từ huấn luyện(train). Bằng cách cho hệ thống xem nhiều ví dụ và dữ liệu có liên quan đến công việc được giao, và nó sẽ tìm ra một cấu trúc trong các dữ liệu đầu vào này. Sau đó, hệ thống Machine learning sử dụng rule vừa được tạo ra để tự động hóa việc xử lý các task sau đó.

Ví dụ như chúng ta muốn tạo ra một chương trình phân loại hình ảnh chó và mèo, chúng ta có thể cho hệ thống Machine Learning xem rất nhiều các hình ảnh về chó và mèo. Sau đó, hệ thống sẽ tìm ra được công thức(rule) cho việc phân loại này và sử dụng công thức mới tìm ra để sử dụng cho việc phân loại hình ảnh.

Cơ chế vận hành của Machine Learning

Đầu tiên, chúng ta sẽ xem cách vận hành của Machine Learning. Cơ chế vận hành của Machine Learning được cấu thành từ ba thành phần:

  • Dữ liệu đầu vào(Input data points): Ví dụ như là để phục vụ cho Speech Recognition thì dữ liệu đầu vào là các file audio có chứa giọng nói của con người, nếu công việc là phân loại hình ảnh thì dữ liệu đầu vào là các hình ảnh.
  • Các ví dụ của kết quả mong muốn(Expected Output): Trong Speech Recognition thì có thể là những đoạn transcripts của các file audio, trong công việc phân loại hình ảnh như là phân loại chó mèo như bên trên thì output có thể là các Tag "Dog" hoặc "Cat"
  • Phương pháp đo lường tính chính xác(A way to measure whether the algorithm is doing right): Đây là việc cần thiết để đánh giá kết quả trả ra của hệ thống Machine Learning có sát với kết quả mong muốn không. Sau đó kết quả của việc đo lường này được feedback lại để hệ thống Machine Learning điều chỉnh rule mà nó tạo ra. Việc điều chỉnh xảy ra liên tục, và được gọi là "Learning".

Về bản chất, Machine Learning và Deep Learning đều thực hiện một công việc chung đó là biến đổi từ dữ liệu đầu vào vô nghĩa, phi cấu trúc thành các dữ liệu có ý nghĩa. Việc hiểu rõ cơ chế chuyển đổi từ dữ liệu thành rule này rất quan trọng nên chúng ta "đóng bê tông" phần kiến thức này thêm bằng ví dụ bổ sung bên dưới.

image.png

Như bạn thấy trên hình, chúng ta thấy dữ liệu đầu vào là những đốm trắng và đen. Bây giờ lấy ví dụ, công việc của chúng ta là tìm ra rule để xác định khi đưa vào một đốm mới (x,y) thì nó sẽ là đốm màu gì.

  • Dữ liệu đầu vào(Input data points): Vị trí của đốm mới
  • Các ví dụ của kết quả mong muốn(Expected Output): Màu sắc của đốm mới
  • Phương pháp đo lường tính chính xác(A way to measure whether the algorithm is doing right): tỉ lệ phần trăm(%) đoán đúng được màu các đốm input

Bên dưới là hình mô tả việc tìm ra rule sau khi hệ thống Machine Learning chạy xong:

image.png

Tạm gọi rule được tìm ra là: Nếu x > 0 thì là đốm màu đen, còn x < 0 thì đốm màu trắng.

Từ "Deep" trong khái niệm "Deep Learning"

Deep Learning là một khái niệm con của Machine Learning. Một phương pháp mới để tìm ra các rule có thể sử dụng được là đặt nhiều lớp liên tiếp(successive layers) để tìm ra ý nghĩa của dữ liệu. Chữ "Deep" ở đây không phải nói về độ hiểu về dữ liệu mà là đang nói về "Dept" của các lớp liên tiếp của mô hình Deep Learning.

Các mô hình Deep Learning có thể chứa từ 10 tới hàng trăm lớp liên tục(successive layers). Chúng tự động "learning" bằng việc được cho xem các dữ liệu đầu vào. Trong khi đó, Machine Learning truyền thống chỉ tập trung vào "learning" trên một hoặc hai lớp(layers). Đôi khi chúng được gọi là Shallow Learning(Shallow: Nông, Cạn).

Trong Deep Learning, các lớp liên tiếp(successive layers) thường xuyên "learning" thông qua một mô hình gọi là Neural Network, mô hình này tạo ra nhiều lớp chồng lên nhau và được lấy cảm hứng từ Neuralbiology(Sinh học thần kinh). Nhưng mặc dù là mô hình được lấy cảm hứng chủ đạo từ việc thấu hiểu mạng lưới thần kinh của con người nhưng bạn vui lòng nhớ cho là Deep Learning không phải là mô hình của bộ não con người. Hãy loại bỏ việc thần bí hóa Deep Learning bằng việc so sánh nó với bộ não con người, Deep Learning là một mô hình toán học dùng để chuyển đổi dữ liệu thành các rule có ý nghĩa.

Để hiểu hơn về các lớp liên tục(successive layers) chúng ta hãy xem thêm ví dụ bên dưới:

image.png

Bạn có thể nghĩ về Deep Learning như là một quá trình tinh lọc dữ liệu, mỗi khi đi qua một lớp(layer) thì dữ liệu được tinh khiết hơn.

image.png

Vậy bên trên chúng ta đã đi qua về khái niệm Deep Learning và Machine Learning, hi vọng sau bài viết này bạn đã hiểu hơn về các khái niệm trên và phân biệt được chúng với nhau.

Hãy upvote cho mình để mình có động lực ra tiếp các bài tiếp theo về lĩnh vực Machine Learning nhé.

Chúc các bạn thành công!


All Rights Reserved

Viblo
Let's register a Viblo Account to get more interesting posts.