Phép tính đa biến từ nguyên tắc đầu tiên
Có một cấu trúc dữ liệu sắp xếp gọn gàng mọi thứ từ hai bài học trước: đồ thị tính toán. Mọi phép toán số học trong mô hình (cộng, nhân, nhân ma trận, kích hoạt) đều trở thành một nút trong một đồ thị có hướng. Đồ thị này là cách PyTorch, JAX và TensorFlow tính gradient một cách tự động.
Huấn luyện chạy đồ thị qua hai lượt quét. Lượt xuôi (forward) chảy từ trái sang phải, tính và lưu vào bộ nhớ đệm giá trị của từng nút. Lượt ngược (backward) chảy từ phải sang trái, dùng quy tắc dây chuyền để đẩy gradient từ hàm mất mát ngược về mọi đầu vào, mỗi nút một lần.
Ý tưởng giúp nó mở rộng quy mô: mỗi nút chỉ cần biết đạo hàm cục bộ của riêng nó. Để gửi gradient ngược qua một nút, hãy nhân gradient đến (từ phía trên) với ma trận Jacobi cục bộ của nút đó (đầu ra của nó phụ thuộc thế nào vào đầu vào của nó). Không nút nào cần đến bức tranh toàn cục; các quy tắc cục bộ được xâu chuỗi lại tạo ra gradient tổng chính xác.