Miễn 100% phí hồ sơ du học Nhật + Tặng 5~9 triệu/bạn

Friday, February 16, 2018

Machine Learning nhập môn

Dạo này AI (trí tuệ nhân tạo) đang thành chủ đề bàn tán, kẻ hi vọng, người lo sợ (rằng AI sẽ cướp mất công ăn việc làm vv). Tuy nhiên, số người thật sự hiểu được AI rất ít. Trong bài này tôi sẽ nói về Machine Learning (học tập máy móc).

Từ vựng:
AI = Artificial Intelligence, trí tuệ nhân tạo
Machine Learning = học tập máy móc hay học máy

Đối với máy tính chỉ có ĐÚNG/SAI (1 hoặc 0)
chứ không có trung gian như con người

AI và Machine Learning

Nhân loại còn xa mới tới AI, hiện tại chỉ mới là Machine Learning mà thôi. AI phải được xây dựng trên nền tảng machine learning, tức là một cỗ máy thông minh có khả năng học tập.

Do đó, chúng ta cần hiểu rõ về machine learning trước. Trước hết, machine learning chỉ là giải thuật (algorithm hay thuật toán).

Machine learning = Algorithm + Khả năng tự cải tiến

Máy móc không tự có khả năng này mà do bạn lập trình và nghĩ thuật toán cho nó. Nếu bạn không thể viết giải thuật hay lập trình, bạn sẽ không thể tạo ra machine learning.

Làm thế nào tạo machine learning?

Machine learning sẽ được tạo ra thông qua giải thuật được triển khai bằng việc lập trình do bạn thực hiện. Để máy móc (computer) có khả năng tự học thì bạn phải có dữ liệu (DATA) cho nó, cùng với đáp án ĐÚNG/SAI, trong đa số trường hợp, DỮ LIỆU LỚN (BIG DATA) sẽ tốt hơn nhiều.

Machine learning chỉ là mô phỏng quá trình con người học tập mà thôi. Vậy thì con người thực sự học tập như thế nào?

Đó là việc RA QUYẾT ĐỊNH với kết quả ĐÚNG hoặc SAI dựa trên dữ liệu quá khứ.

Học tập = (Dữ liệu quá khứ (kinh nghiệm) => Ra quyết định => Kết quả ĐÚNG/SAI)

Ví dụ, hôm nay tôi có nên mua bitcoin không? Tháng sau bitcoin có tăng giá 3% và tôi sẽ có lời không? Đây là một  quyết định và sẽ cho ra kết quả đúng hay sai vào tháng sau. Do đó, bạn phải dựa vào dữ liệu (data) và kinh nghiệm để chọn mua hay không mua (True or False).

Cuộc sống chỉ là một chuỗi ra quyết định và hành động!

Bạn = {Tập hợp quyết định và hành động của bạn}

Đây là quá trình học tập của bạn và con người nói chung.

Con người học tập và ra quyết định như thế nào?

Để quyết định có mua bitcoin hay không, bạn sẽ phải sử dụng nhiều dữ liệu để phán đoán, gọi chung là vector ra quyết định:

Trục phán đoán (vector nhân tố) x = {x1, x2, x3, ..., xn}

Giả sử có n nhân tố ảnh hưởng tới giá cả bitcoin ví dụ biến động giá vàng, giá đô la, tình hình kinh tế, kỳ vọng của số đông vv. Machine learning không thể tư duy ra các nhân tố này, bạn sẽ phải tự nghĩ ra thôi.

Tiếp theo, chúng ta đặt trọng số tương ứng (tức là tầm quan trọng của mỗi nhân tố):

Vector trọng số w = {w1, w2, w3, ..., wn}

Vector trọng số chính là GIÁ TRỊ QUAN của bạn.

Giờ chúng ta nhân vô hướng hai vector xw:

w * x = w1*x1 + w2*x2 + .... + wn*xn

Sau đó chúng ta thêm giá trị thiên lệch b (bias) nữa:

w * x + b

Giá trị này giống như là bitcoin có tăng giá 3% hay không vậy.

Nhưng việc tính toán là vô nghĩa nếu không giúp đưa ra quyết định. Đây chính là quyết định có mua hay không mua bitcoin:

F(x) = (w * x + b > 0)

Nếu F(x) là ĐÚNG (True hay 1) thì bạn sẽ mua bitcoin. Nếu F(x) là SAI (False hay 0) thì bạn sẽ không mua.

Dù quyết định thế nào thì bạn cũng sẽ quan sát kết quả vào thời điểm kỳ vọng để xem bạn ra quyết định đúng hay sai và điều chỉnh trọng số để ra quyết định đúng hơn trong tương lai nhỉ?

Machine learning

Machine learning cũng học tập y như con người, lý do là vì do bạn lập trình mà ^^

Điều khác biệt là machine learning (computer) sẽ học tập trên lượng data lớn hơn rất nhiều do bạn cung cấp cho nó. Nó có thể học tập từ nhiều giao dịch trong quá khứ mà bạn cung cấp hay tự mô phỏng (simulation) theo thời gian thực. Vì thế, lượng dữ liệu sẽ vượt trội so với con người.

Mục đích chính là điều chỉnh trọng số để đưa ra quyết định chính xác hơn trong tương lai. Vậy làm sao một chương trình máy tính lại có thể tự điều chỉnh chính nó?

Vì bạn lập trình nó như vậy. Hiển nhiên rồi!

Bạn phải lập trình thì mới có chương trình máy tính, và bạn phải lập trình thì nó mới tự machine learning được. Không có gì ăn sẵn được ở đây cả.

Thế thì giải thuật ở đây là gì?

Bạn tạo ra giải thuật để tìm ra vector trọng số tối ưu ựa trên một lượng lớn dữ liệu quá khứ (BIG DATA), sau đó, mỗi khi có thêm data và kết quả đúng sai thì giải thuật sẽ tự động cập nhật để tạo ra vector trọng số tối ưu mới.

Và đây không phải là AI

Machine learning không phải là AI (trí tuệ nhân tạo). Vì machine learning có thể điều chỉnh trọng số (bằng algorithm mà bạn viết) nhưng không thể "suy luận" vector nhân tố được. Khả năng suy nghĩ này mới là trí tuệ nhân tạo và máy móc chưa thể có một sớm một chiều được (nhưng rồi sẽ có).

Hi vọng các bạn có thêm động lực để học IT và lập trình. Hãy học các chủ đề IT của thời đại này nhé.

Tôi thích AI và machine learning (và cũng đang lập trình) và sẽ tiếp tục chủ đề này trong tương lai.
Mark

No comments:

Post a Comment