Hướng dẫn chạy mô hình học máy ngay trên trình duyệt với Tensorflow.js

  1. Trí tuệ nhân tạo

Tensorflow.js là một thư viện học máy mới ra mắt của tensorflow. Với tensorflow.js, bạn không những có thể chạy những mô hình học máy ngay trên trình duyệt của mình để quan sát quá trình làm việc nó mà thậm chí còn có thể TRAIN cả model trên đây nữa.

Trong topic này, tôi sẽ hướng dẫn các bạn làm quen với Tensorflow.js bằng một project "Hello World" đơn giản.

Bắt đầu với một trang HTML thân thuộc:

---------------------------------------------------

<html>

<head></head>

<body></body>

</html>

---------------------------------------------------

Điều tiếp theo bạn phải làm đó là đưa Tensorflow.js vào trang web của mình, có thể down trực tiếp hoặc sử dụng CDN cho thuận tiên:

---------------------------------------------------

script src="https://cdn.jsdelivr.net/npm/@tensorflow/tfjs@0.11.2">

---------------------------------------------------

Ngay tại thời điểm viết bài này, tác giả đang sử dụng version 0.11.2, Bạn có thể xem trên Github để cập nhật phiên bản mới hơn.


Bây giờ Tensorflow.js đã được load.

Giá sử bạn có 1 phương trình Y = 2X-1. Nó sẽ chứa tọa độ của các điểm như (-1, -3), (0, -1), (1, 1), (2, 3), (3, 5) và (4, 7). Giá sử không biết trước phương trình, hãy thử xem chúng ta có thể tìm giá trị của Y tương ứng với một giá trị đầu vào X bất kì không nhé.


Vậy đầu tiện, bạn sẽ phải train cho mô hình của mình, "học" các dữ liệu đã có để nó có thể suy luận các giá trị mới.

Tôi sẽ tạo một mang nơ-ron cực kì đơn giản chỉ có 1 node duy nhất để thực hiện việc huấn luyện này. mạng của chúng ta sẽ nhận 1 giá trị đầu và cho 1 giá tị đầu ra.

---------------------------------------------------

const model = tf.sequential();

model.add(tf.layers.dense({units: 1, inputShape: [1]}));

---------------------------------------------------

Vậy là khai báo đã xong, tiến hành training nó thôi, để train bạn gần có một danh sách các đầu vào và ra đã biết. Tôi sẽ tạo trước một danh sách các giá trị này:

---------------------------------------------------

const xs = tf.tensor2d([-1, 0, 1, 2, 3, 4], [6, 1]);

const ys = tf.tensor2d([-3, -1, 1, 3, 5, 7], [6, 1]);

---------------------------------------------------

Lưu ý giá tị [6,1] ở cuối chính là shape của tensor này, 6x1. Còn bạn có thể thấy các cặp giá trị tương ứng tôi đã đề cập ban đầu như (-1,-3). Bước cuối cùng là train model trên các cặp giá trị này. Bằng hàm fit(), chúng ta đưa các cặp giá trị đã biết kèm theo số vòng lặp để huấn luyện nó. (epochs)

---------------------------------------------------

await model.fit(xs, ys, {epochs: 500});

---------------------------------------------------


Chờ một 1 lúc, model sẽ train xong, bây giờ chúng ta có thể sử dụng nó để dự đoán các giá trị mới, ví dụ như tìm Y khi biết X = 10 và in nó ra trang web của bạn.

---------------------------------------------------

document.getElementById('output_field').innerText =model.predict(tf.tensor2d([10], [1, 1]));

---------------------------------------------------


Bạn sẽ tự hỏi sao không phải là 19? đáng lẽ nó phải là 19 chứ? Thực chất mô hình của chúng ta chwua bao giờ biết cái phương trình cả Y=2X-1, bạn nhớ chứ. Nó là chỉ đơn giản là học từ những dữ liệu đã có và thay đổi các tham số của mô hình để đưa ra giá trị sai số ít nhất nó có thể.


Rất đơn giản để có thể tạo ra một mô hình học máy đơn giản với Tensorflow.js ngay trên trình duyệt phải không? :D Từ đây bạn có thể tìm hiểu và tự làm cho mình nhiều thứ thú vị hơn nữa.


Nguồn tham khảo: Medium Getting Started with TensorFlow.js

Từ khóa: 

machine learning

,

ai

,

trí tuệ nhân tạo

,

học máy

,

trí tuệ nhân tạo