Chào mừng các bạn quay lại với series “Nhập môn Machine Learning”. Trong bài viết này, chúng ta sẽ tìm hiểu về một khái niệm quan trọng trong Machine Learning, đó là Computational Graph (Đồ thị tính toán).
Giới thiệu
Computational Graph là một khái niệm cơ bản nhưng quan trọng trong quá trình triển khai các thuật toán Machine Learning. Đây là một phương pháp biểu diễn toán tử và biến trong mô hình Machine Learning dưới dạng đồ thị, giúp ta dễ dàng hiểu và theo dõi quá trình tính toán.
Cấu trúc của Computational Graph
- Node (Nút): Trong Computational Graph, mỗi toán tử (ví dụ: phép cộng, nhân) và biến đều được biểu diễn bởi một node. Node có thể là một toán tử hoặc một biến đơn giản.
- Edge (Cạnh): Các node được nối với nhau bởi các cạnh, thể hiện mối quan hệ giữa chúng. Cạnh có thể mang theo dữ liệu (kết quả của phép toán) từ node này sang node khác.
- Graph (Đồ thị): Tất cả các node và cạnh tạo nên một đồ thị, mô tả quá trình tính toán từ input đến output.
Đạo hàm trong Computational Graph và Quy tắc đạo hàm
Trong Machine Learning, đạo hàm của hàm mất mát đối với các tham số (weights) được tính bằng cách sử dụng đồ thị tính toán.
Đạo hàm riêng – Partial Derivative
Đồ thị tính toán giúp tính đạo hàm riêng theo các quy tắc:
- Đạo hàm của biểu thức cộng tại 1 biến = 1
- Đạo hàm của biểu thức nhân theo biến này = giá trị của biến còn lại
Quy tắc dây chuyền – Chain rule
Đồ thị tính toán giúp tính đạo hàm theo quy tắc dây chuyền để tính đạo hàm của các hàm phức tạp.
Deep Learning và Computational Graph
Đồ thị tính toán là một loại đồ thị có hướng dùng để biểu diễn các biểu thức toán học. Nó là ngôn ngữ mô tả mô hình Deep Learning.
Neural Network là một dạng đặc biệt của Computational Graph. Trong Neural Network, việc tính toán output được thực hiện theo thuật toán lan truyền xuôi (forward pass) và sau đó tính lỗi và cập nhật trọng số mạng thần kinh bằng thuật toán backpropagation.
Như vậy, đồ thị tính toán là công cụ then chốt để biểu diễn và tối ưu các mô hình học sâu như Neural Network. Nhờ có các quy tắc dây chuyền và đạo hàm riêng, đồ thị tính toán đã mở ra một nhánh mới cho ngành máy học, với các mô hình mở rộng cùng nhiều lớp ẩn (hidden layer): Deep Learning
Ứng dụng
- Là công cụ mạnh để đạo hàm theo từng biến.
- Trong các bài toán network nhiều lớp, cần phải tính đạo hàm theo từng biến. Để làm việc này hiệu quả hơn, người ta sử dụng thuật toán lan truyền ngược (backpropagation).
- Parallelization (tính toán song song)
Ví dụ
TensorFlow
import tensorflow as tf
# Khai báo các biến
a = tf.constant(2)
b = tf.constant(3)
c = tf.add(a, b)
d = tf.multiply(a, b)
e = tf.square(d)
# In kết quả
print("Tổng của a và b là:", c.numpy())
print("Kết quả của a * b và bình phương:", d.numpy(), e.numpy())
Hy vọng rằng bài viết này đã giúp bạn hiểu rõ hơn về Computational Graph và vai trò của nó trong Machine Learning, đặc biệt là Deep Learning. Hãy tiếp tục theo dõi để khám phá thêm về Machine Learning!