Yolo Tầm nhìn Thâm Quyến
Thâm Quyến
Tham gia ngay
Bảng chú giải thuật ngữ

Backpropagation (Lan truyền ngược)

Tìm hiểu cách lan truyền ngược (backpropagation) huấn luyện mạng nơ-ron, giảm tỷ lệ lỗi và cung cấp năng lượng cho các ứng dụng AI như nhận dạng hình ảnh và NLP một cách hiệu quả.

Truyền ngược, viết tắt của "truyền ngược lỗi", là thuật toán cơ bản được sử dụng để huấn luyện mạng nơ-ron nhân tạo một cách hiệu quả. Nó hoạt động như một công cụ toán học cho phép mô hình học máy học hỏi từ những sai lầm của chính nó bằng cách điều chỉnh lặp lại các tham số nội bộ. Bằng cách tính toán độ dốc của hàm mất mát theo từng trọng số trong mạng, truyền ngược xác định chính xác mức độ đóng góp của từng nơ-ron vào tổng lỗi. Quá trình này cho phép huấn luyện hiệu quả các kiến trúc học sâu (DL) phức tạp, biến các khởi tạo ngẫu nhiên thành các hệ thống có độ chính xác cao, có khả năng thực hiện các nhiệm vụ như nhận dạng hình ảnh và hiểu ngôn ngữ.

Cách lan truyền ngược thúc đẩy việc học

Quá trình huấn luyện mạng nơ-ron có thể được hình dung như một chu trình bao gồm một lần truyền tiến và một lần truyền lùi. Truyền ngược xử lý cụ thể giai đoạn "truyền lùi", nhưng việc hiểu rõ bối cảnh là điều cần thiết.

  1. Truyền tiếp : Dữ liệu đầu vào đi qua các lớp của mạng, trải qua quá trình biến đổi thông qua trọng số mô hìnhhàm kích hoạt . Mạng tạo ra một dự đoán, được so sánh với giá trị thực tế để tính toán giá trị lỗi bằng hàm mất mát.
  2. Truyền ngược (Truyền ngược) : Thuật toán lấy lỗi được tính toán ở đầu ra và truyền ngược qua các lớp mạng. Thuật toán sử dụng quy tắc chuỗi của phép tính để tính toán gradient cho mỗi trọng số. Về mặt khái niệm, bước này gán "lỗi" hoặc "công" cho mỗi kết nối đối với lỗi cuối cùng.
  3. Cập nhật trọng số : Sau khi tính toán được độ dốc, thuật toán tối ưu hóa sẽ sử dụng thông tin này để cập nhật trọng số, dịch chuyển nhẹ theo hướng giảm thiểu lỗi.

Chu kỳ này lặp lại qua nhiều kỷ nguyên , dần dần cải thiện độ chính xác của mô hình. Các nền tảng hiện đại như PyTorchTensorFlow xử lý phép tính phức tạp của lan truyền ngược một cách tự động thông qua một quy trình gọi là phân biệt tự động.

Truyền ngược so với Tối ưu hóa

Người ta thường nhầm lẫn giữa quá trình truyền ngược với bước tối ưu hóa, nhưng chúng là những quá trình riêng biệt trong vòng lặp đào tạo mô hình .

  • Lan truyền ngược là công cụ chẩn đoán. Nó tính toán các gradient, vẽ một bản đồ thể hiện độ dốc của bối cảnh lỗi. Nó trả lời câu hỏi: "Chúng ta nên di chuyển theo hướng nào để giảm lỗi?"
  • Tối ưu hóa chính là hành động. Các thuật toán như Stochastic Gradient Descent ( SGD ) hoặc bộ tối ưu hóa Adam lấy các gradient được cung cấp bởi lan truyền ngược và cập nhật các trọng số. Nếu lan truyền ngược là bản đồ, thì bộ tối ưu hóa chính là người đi bộ đường dài đang bước đi.

Các Ứng dụng Thực tế

Truyền ngược là cơ chế cơ bản cho hầu hết mọi thành công của AI hiện đại.

  • Thị giác Máy tính : Trong các tác vụ phát hiện đối tượng sử dụng các mô hình như YOLO11 , lan truyền ngược cho phép mạng học các hệ thống phân cấp không gian. Nó giúp mô hình hiểu rằng một số cạnh nhất định tạo thành hình dạng, và những hình dạng đó tạo thành các vật thể như ô tô hoặc người đi bộ. Nhìn về phía trước, Ultralytics đang phát triển YOLO26 , một mô hình thế hệ tiếp theo nhắm tới cuối năm 2025, sẽ tận dụng các kỹ thuật đào tạo đầu cuối tiên tiến dựa nhiều vào khả năng truyền ngược hiệu quả để đạt được kiến trúc nhỏ hơn, nhanh hơn và chính xác hơn.
  • Xử lý Ngôn ngữ Tự nhiên (NLP) : Đối với các Mô hình Ngôn ngữ Lớn (LLM) như các mô hình do OpenAI phát triển, lan truyền ngược cho phép hệ thống học xác suất của từ tiếp theo trong câu. Bằng cách lan truyền lỗi từ các dự đoán văn bản không chính xác, mô hình học được ngữ pháp và ngữ cảnh tinh tế, rất cần thiết cho các ứng dụng như dịch máy .

Những thách thức trong việc lan truyền ngược

Tuy mạnh mẽ, thuật toán này vẫn gặp phải những thách thức trong các mạng sâu. Vấn đề gradient biến mất xảy ra khi gradient trở nên quá nhỏ khi chúng di chuyển ngược lại, khiến các lớp đầu tiên ngừng học. Ngược lại, gradient bùng nổ liên quan đến việc gradient tích lũy đến các giá trị phần lớn không ổn định. Các kỹ thuật như Chuẩn hóa Hàng loạt và các kiến trúc chuyên biệt như ResNet thường được sử dụng để giảm thiểu những vấn đề này.

Python Ví dụ mã

Trong khi các thư viện cấp cao như ultralytics tóm tắt quá trình này trong quá trình đào tạo, torch ( PyTorch ) cho phép bạn nhìn thấy cơ chế trực tiếp. .backward() phương pháp kích hoạt quá trình lan truyền ngược.

import torch

# specialized tensor that tracks operations for backpropagation
w = torch.tensor([2.0], requires_grad=True)
x = torch.tensor([3.0])

# Forward pass: compute prediction and loss
loss = (w * x - 10) ** 2

# Backward pass: This command executes backpropagation
loss.backward()

# The gradient is now stored in w.grad, showing how to adjust 'w'
print(f"Gradient (dL/dw): {w.grad.item()}")

Đọc thêm

Để hiểu cách lan truyền ngược phù hợp với phạm vi phát triển AI rộng hơn, việc khám phá khái niệm tăng cường dữ liệu sẽ rất hữu ích, vì nó cung cấp các ví dụ đa dạng cần thiết để thuật toán khái quát hóa hiệu quả. Ngoài ra, việc hiểu các số liệu cụ thể được sử dụng để đánh giá thành công của quá trình huấn luyện, chẳng hạn như Độ chính xác trung bình ( mAP ) , giúp diễn giải mức độ hiệu quả của quá trình lan truyền ngược trong việc tối ưu hóa mô hình. Để tìm hiểu sâu hơn về lý thuyết, hãy xem ghi chú khóa học Stanford CS231n cung cấp một bản phân tích kỹ thuật tuyệt vời.

Tham gia Ultralytics cộng đồng

Tham gia vào tương lai của AI. Kết nối, hợp tác và phát triển cùng với những nhà đổi mới toàn cầu

Tham gia ngay