AI 101
Backpropagation là gì?

Backpropagation là gì?
Các hệ thống học sâu có thể học các mẫu phức tạp một cách cực kỳ, và chúng thực hiện điều này bằng cách điều chỉnh trọng số của chúng. Làm thế nào để điều chỉnh trọng số của một mạng nơ-ron sâu chính xác? Chúng được điều chỉnh thông qua một quá trình gọi là backpropagation. Nếu không có backpropagation, các mạng nơ-ron sâu sẽ không thể thực hiện các nhiệm vụ như nhận dạng hình ảnh và giải thích ngôn ngữ tự nhiên. Hiểu cách backpropagation hoạt động là điều quan trọng để hiểu các mạng nơ-ron sâu nói chung, vì vậy hãy thảo luận về backpropagation và xem quá trình này được sử dụng để điều chỉnh trọng số của mạng như thế nào.
Backpropagation có thể khó hiểu, và các tính toán được sử dụng để thực hiện backpropagation có thể khá phức tạp. Bài viết này sẽ cố gắng cung cấp cho bạn một sự hiểu biết trực quan về backpropagation, sử dụng ít toán học phức tạp. Tuy nhiên, một số thảo luận về toán học đằng sau backpropagation là cần thiết.
Mục tiêu của Backpropagation
Hãy bắt đầu bằng cách định nghĩa mục tiêu của backpropagation. Trọng số của một mạng nơ-ron sâu là độ mạnh của các kết nối giữa các đơn vị của mạng nơ-ron. Khi mạng nơ-ron được thiết lập, các giả định được thực hiện về cách các đơn vị trong một lớp được kết nối với các lớp được kết nối với nó. Khi dữ liệu di chuyển qua mạng nơ-ron, trọng số được tính toán và các giả định được thực hiện. Khi dữ liệu đến lớp cuối cùng của mạng, một dự đoán được thực hiện về cách các tính năng liên quan đến các lớp trong tập dữ liệu. Sự khác biệt giữa các giá trị dự đoán và các giá trị thực tế là sự mất mát / lỗi, và mục tiêu của backpropagation là giảm thiểu sự mất mát. Điều này được thực hiện bằng cách điều chỉnh trọng số của mạng, làm cho các giả định trở nên giống như các mối quan hệ thực giữa các tính năng đầu vào.
Đào tạo một Mạng Nơ-ron Sâu
Trước khi backpropagation có thể được thực hiện trên một mạng nơ-ron, quá trình đào tạo thường / tiến của mạng nơ-ron phải được thực hiện. Khi một mạng nơ-ron được tạo, một tập hợp trọng số được khởi tạo. Giá trị của trọng số sẽ được thay đổi khi mạng được đào tạo. Quá trình đào tạo tiến của mạng nơ-ron có thể được coi là ba bước riêng biệt: kích hoạt nơ-ron, truyền nơ-ron và truyền tiến.
Khi đào tạo một mạng nơ-ron sâu, chúng ta cần sử dụng nhiều hàm toán học. Các nơ-ron trong một mạng nơ-ron sâu bao gồm dữ liệu đầu vào và một hàm kích hoạt, quyết định giá trị cần thiết để kích hoạt nút. Giá trị kích hoạt của một nơ-ron được tính toán với nhiều thành phần, là tổng trọng số của các đầu vào. Trọng số và giá trị đầu vào phụ thuộc vào chỉ số của các nút được sử dụng để tính toán kích hoạt. Một số khác phải được tính đến khi tính toán giá trị kích hoạt, giá trị偏. Giá trị偏 không thay đổi, vì vậy chúng không được nhân với trọng số và đầu vào, chúng chỉ được thêm vào. Tất cả điều này có nghĩa là phương trình sau có thể được sử dụng để tính toán giá trị kích hoạt:
Kích hoạt = tổng (trọng số * đầu vào) +偏
Sau khi nơ-ron được kích hoạt, một hàm kích hoạt được sử dụng để quyết định đầu ra thực tế của nơ-ron sẽ là gì. Các hàm kích hoạt khác nhau là tối ưu cho các nhiệm vụ học khác nhau, nhưng các hàm kích hoạt thường được sử dụng bao gồm hàm sigmoid, hàm Tanh và hàm ReLU.
Một khi đầu ra của nơ-ron được tính toán bằng cách chạy giá trị kích hoạt qua hàm kích hoạt mong muốn, truyền tiến được thực hiện. Truyền tiến chỉ là việc lấy đầu ra của một lớp và làm cho chúng trở thành đầu vào của lớp tiếp theo. Đầu vào mới sau đó được sử dụng để tính toán các hàm kích hoạt mới, và đầu ra của hoạt động này được truyền đến lớp tiếp theo. Quá trình này tiếp tục cho đến khi kết thúc mạng nơ-ron.
Backpropagation trong Mạng
Quá trình backpropagation lấy các quyết định cuối cùng của quá trình đào tạo của mô hình, và sau đó nó xác định các lỗi trong các quyết định này. Các lỗi được tính toán bằng cách so sánh đầu ra / quyết định của mạng và đầu ra / quyết định mong muốn của mạng.
Một khi các lỗi trong quyết định của mạng đã được tính toán, thông tin này được backpropagation qua mạng và các tham số của mạng được thay đổi dọc theo đường đi. Phương pháp được sử dụng để cập nhật trọng số của mạng dựa trên toán học, cụ thể là, nó dựa trên quy tắc chuỗi. Tuy nhiên, sự hiểu biết về toán học không cần thiết để hiểu ý tưởng đằng sau backpropagation. Chỉ cần biết rằng khi một giá trị đầu ra được cung cấp từ một nơ-ron, độ dốc của giá trị đầu ra được tính toán với một hàm truyền, tạo ra một đầu ra phái sinh. Khi thực hiện backpropagation, lỗi cho một nơ-ron cụ thể được tính toán theo công thức sau:
lỗi = (đầu ra mong muốn – đầu ra thực tế) * độ dốc của giá trị đầu ra của nơ-ron
Khi hoạt động trên các nơ-ron trong lớp đầu ra, giá trị lớp được sử dụng làm giá trị mong muốn. Sau khi lỗi đã được tính toán, lỗi được sử dụng làm đầu vào cho các nơ-ron trong lớp ẩn, có nghĩa là lỗi cho lớp ẩn này là lỗi trọng số của các nơ-ron được tìm thấy trong lớp đầu ra. Các tính toán lỗi di chuyển ngược qua mạng dọc theo trọng số mạng.
Sau khi các lỗi cho mạng đã được tính toán, trọng số trong mạng phải được cập nhật. Như đã đề cập, tính toán lỗi liên quan đến việc xác định độ dốc của giá trị đầu ra. Sau khi độ dốc đã được tính toán, một quá trình gọi là gradient descent có thể được sử dụng để điều chỉnh trọng số trong mạng. Một gradient là một độ dốc, có góc / độ dốc có thể được đo lường. Độ dốc được tính toán bằng cách vẽ “y trên” hoặc “độ tăng” trên “độ chạy”. Trong trường hợp của mạng nơ-ron và tốc độ lỗi, “y” là lỗi tính toán, trong khi “x” là các tham số của mạng. Các tham số của mạng có mối quan hệ với các giá trị lỗi tính toán, và khi trọng số của mạng được điều chỉnh, tốc độ lỗi tăng hoặc giảm.
“Gradient descent” là quá trình cập nhật trọng số để giảm tốc độ lỗi. Backpropagation được sử dụng để dự đoán mối quan hệ giữa các tham số của mạng nơ-ron và tốc độ lỗi, điều này thiết lập mạng cho gradient descent. Đào tạo một mạng với gradient descent liên quan đến việc tính toán trọng số qua truyền tiến, backpropagation lỗi, và sau đó cập nhật trọng số của mạng.












