Tìm hiểu cách truyền ngược huấn luyện mạng nơ-ron, giảm tỷ lệ lỗi và cung cấp năng lượng hiệu quả cho các ứng dụng AI như nhận dạng hình ảnh và NLP.
Backpropagation, viết tắt của "backward propagation of errors", là một thuật toán cơ bản để đào tạo mạng nơ-ron nhân tạo (NN) , đặc biệt là trong lĩnh vực học sâu (DL) . Nó đóng vai trò là cơ chế cốt lõi cho phép các mô hình học hỏi từ những sai lầm của chúng trong quá trình đào tạo mô hình . Thuật toán tính toán hiệu quả sự đóng góp của từng tham số (như trọng số và độ lệch của mô hình ) trong mạng vào lỗi tổng thể được quan sát thấy trong các dự đoán của mô hình. Thông tin về độ dốc này sau đó được các thuật toán tối ưu hóa sử dụng để điều chỉnh các tham số theo từng bước, cải thiện dần hiệu suất và độ chính xác của mô hình.
Quá trình truyền ngược thường theo một lần truyền thẳng ban đầu, trong đó dữ liệu đầu vào chảy qua mạng để tạo ra dự đoán. Sau khi so sánh dự đoán với giá trị mục tiêu thực tế bằng hàm mất mát , thuật toán truyền ngược thực hiện theo hai giai đoạn chính:
Sau khi các gradient được tính toán, một thuật toán tối ưu hóa , chẳng hạn như Gradient Descent hoặc các biến thể như Stochastic Gradient Descent (SGD) hoặc trình tối ưu hóa Adam , sử dụng các gradient này để cập nhật mạng. weights and biases . Mục tiêu là giảm thiểu hàm mất mát, giúp mạng lưới có thể đưa ra dự đoán tốt hơn qua các kỷ nguyên liên tiếp.
Truyền ngược là điều không thể thiếu đối với học sâu hiện đại. Hiệu quả của nó trong việc tính toán độ dốc làm cho việc đào tạo các kiến trúc rất sâu và phức tạp trở nên khả thi về mặt tính toán. Điều này bao gồm các mô hình như Mạng nơ-ron tích chập (CNN) , xuất sắc trong các tác vụ thị giác máy tính (CV) và Mạng nơ-ron hồi quy (RNN) , thường được sử dụng cho dữ liệu tuần tự như trong Xử lý ngôn ngữ tự nhiên (NLP) . Nếu không có truyền ngược, việc điều chỉnh hàng triệu tham số trong các mô hình lớn như GPT-4 hoặc các mô hình được đào tạo trên các tập dữ liệu khổng lồ như ImageNet sẽ là không thực tế. Nó trao quyền cho các mô hình tự động học các tính năng phức tạp và biểu diễn phân cấp từ dữ liệu, hỗ trợ nhiều tiến bộ AI kể từ khi phổ biến, như được trình bày chi tiết trong các tài nguyên về lịch sử Học sâu . Các khuôn khổ như PyTorch và TensorFlow phụ thuộc rất nhiều vào các công cụ phân biệt tự động triển khai truyền ngược.
Điều quan trọng là phải phân biệt backpropagation với các thuật toán tối ưu hóa. Backpropagation là phương pháp được sử dụng để tính toán các gradient (sự đóng góp lỗi của mỗi tham số). Mặt khác, các thuật toán tối ưu hóa là các chiến lược sử dụng các gradient được tính toán này để cập nhật các tham số của mô hình ( weights and biases ) để giảm thiểu tổn thất. Truyền ngược cung cấp hướng cải thiện, trong khi trình tối ưu hóa xác định kích thước bước ( tốc độ học ) và cách thức cập nhật.
Backpropagation được sử dụng ngầm bất cứ khi nào một mô hình học sâu trải qua quá trình đào tạo . Sau đây là hai ví dụ cụ thể: