tiểu sử Đặc điểm Phân tích

Thuật toán lan truyền ngược. Phương pháp lan truyền ngược: Toán học, Ví dụ, Mã

Trong các mạng thần kinh nhiều lớp, các giá trị đầu ra tối ưu của các nơ-ron của tất cả các lớp, ngoại trừ lớp cuối cùng, thường không được biết.

Một cách để giải quyết vấn đề này là phát triển các bộ tín hiệu đầu ra tương ứng với các tín hiệu đầu vào cho mỗi lớp. mạng lưới thần kinh, tất nhiên, đây là một hoạt động rất tốn thời gian và không phải lúc nào cũng khả thi.. Tùy chọn thứ hai là điều chỉnh động các hệ số trọng lượng của các khớp thần kinh, trong đó, theo quy luật, quan hệ yếu và thay đổi một lượng nhỏ theo hướng này hay hướng khác và chỉ những thay đổi đó được lưu lại dẫn đến giảm lỗi ở đầu ra của toàn bộ mạng. phương pháp này, cho dù

đơn giản rõ ràng, đòi hỏi các phép tính thông thường cồng kềnh.Và, cuối cùng, tùy chọn thứ ba, dễ chấp nhận hơn là truyền tín hiệu lỗi từ đầu ra của mạng thần kinh đến đầu vào của nó, theo hướng ngược lại với truyền tín hiệu về phía trước trong hoạt động bình thường.Điều này thuật toán học được gọi là thủ tục Lan truyền ngược lỗi (lan truyền ngược lỗi) Chính anh ta là người được xem xét dưới đây

Lan truyền ngược là một thuật toán học gradient lặp đi lặp lại được sử dụng để giảm thiểu độ lệch chuẩn dòng điện từ các đầu ra cần thiết của mạng thần kinh nhiều lớp có kết nối nối tiếp

Theo phương pháp bình phương nhỏ nhất, hàm mục tiêu của lỗi mạng thần kinh được giảm thiểu là giá trị

đâu là thật trạng thái đầu ra nơ ron ở lớp đầu ra của mạng nơ ron khi một hình ảnh được đưa vào đầu vào của nó, trạng thái đầu ra bắt buộc của nơ ron này

Việc tổng kết được thực hiện trên tất cả các nơ-ron của lớp đầu ra và trên tất cả các hình ảnh được xử lý bởi mạng Việc tối thiểu hóa bằng phương pháp giảm dần độ dốc cung cấp điều chỉnh các hệ số trọng số như sau

ở đâu là hệ số trọng số của kết nối khớp thần kinh kết nối nơ-ron của lớp với nơ-ron của lớp là hệ số tốc độ học tập,

Theo quy tắc đạo hàm của hàm phức

ở đâu là tổng trọng số của các tín hiệu đầu vào của nơ-ron, đối số của hàm kích hoạt. chức năng trơn tru, dưới dạng tiếp tuyến hyperbol hoặc sigmoid cổ điển với số mũ (xem Bảng 1 1) Ví dụ, trong trường hợp tiếp tuyến hyperbol

Số nhân thứ ba bằng với đầu ra của nơ-ron của lớp trước

Đối với thừa số thứ nhất trong (1.11) có thể dễ dàng khai triển như sau:

Ở đây, phép tính tổng được thực hiện giữa các nơ-ron của lớp.Giới thiệu một biến mới:

chúng tôi có được một công thức đệ quy để tính các giá trị của lớp từ các giá trị của lớp cũ hơn

Đối với lớp đầu ra:

Bây giờ chúng ta có thể viết (1.10) ở dạng khai triển:

Đôi khi, để cung cấp cho quá trình hiệu chỉnh trọng lượng một số quán tính, làm mịn các bước nhảy sắc nét khi di chuyển dọc theo bề mặt hàm mục tiêu, (1.17) được bổ sung bởi giá trị thay đổi trọng số ở lần lặp trước.

đâu là hệ số quán tính; số lần lặp hiện tại.

Do đó, thuật toán huấn luyện mạng thần kinh hoàn chỉnh sử dụng quy trình lan truyền ngược được xây dựng như sau.

BƯỚC 1. Gửi một trong những hình ảnh có thể có cho đầu vào mạng và ở chế độ hoạt động bình thường của mạng thần kinh, khi tín hiệu truyền từ đầu vào đến đầu ra, hãy tính toán các giá trị của giá trị sau. Nhớ lại rằng:

ở đâu là số lượng nơ ron trong lớp, có tính đến nơ ron có trạng thái đầu ra không đổi đặt phần bù; đầu vào nơ-ron lớp

sigmoid ở đâu,

đâu là thành phần của vector hình ảnh đầu vào.

BƯỚC 4. Điều chỉnh tất cả các trọng số trong mạng thần kinh:

BƯỚC 5. Nếu lỗi mạng nghiêm trọng, hãy chuyển sang bước 1. Nếu không, hãy kết thúc.

Mạng ở bước 1 được hiển thị luân phiên với tất cả các hình ảnh đào tạo theo thứ tự ngẫu nhiên để mạng, nói một cách hình tượng, không quên một cái khi nó ghi nhớ những cái khác.

Từ biểu thức (1.17) suy ra khi giá trị đầu ra có xu hướng bằng 0 thì hiệu quả học tập giảm rõ rệt. Với các vectơ đầu vào nhị phân, trung bình, một nửa hệ số trọng số sẽ không được hiệu chỉnh, do đó, mong muốn thay đổi phạm vi giá trị có thể có của các đầu ra nơ-ron trong giới hạn, điều này đạt được bằng cách sửa đổi đơn giản các hàm logistic. Ví dụ: một sigmoid với số mũ được chuyển đổi thành dạng:

Hãy xem xét câu hỏi về khả năng của một mạng lưới thần kinh, tức là số lượng hình ảnh được hiển thị cho đầu vào của nó mà nó có thể học cách nhận biết. Đối với các mạng có nhiều hơn hai lớp, câu hỏi này vẫn còn bỏ ngỏ. Đối với các mạng có hai lớp, dung lượng xác định của mạng được ước tính như sau:

ở đâu là số lượng trọng số có thể điều chỉnh, là số lượng tế bào thần kinh trong lớp đầu ra.

Biểu thức này thu được tùy thuộc vào những hạn chế nhất định. Thứ nhất, số lượng đầu vào và nơ-ron trong lớp ẩn phải thỏa mãn bất đẳng thức Thứ 2. Tuy nhiên, ước tính trên được thực hiện cho mạng có hàm kích hoạt ngưỡng của nơ-ron và dung lượng của mạng có hàm kích hoạt trơn, ví dụ (1.23), thường lớn hơn. Ngoài ra, thuật ngữ tất định có nghĩa là ước tính dung lượng kết quả phù hợp với tất cả các mẫu đầu vào có thể được biểu thị bằng đầu vào. Trên thực tế, việc phân phối các hình ảnh đầu vào thường có một số quy tắc nhất định, cho phép mạng nơ-ron khái quát hóa và do đó, tăng dung lượng thực. Kể từ khi phân phối hình ảnh, trong trường hợp chung, không được biết trước, người ta chỉ có thể nói về công suất thực, nhưng thông thường nó cao hơn hai lần so với công suất xác định.

Câu hỏi về dung lượng của mạng thần kinh có liên quan chặt chẽ với câu hỏi về dung lượng cần thiết của lớp đầu ra của mạng thực hiện phân loại hình ảnh cuối cùng. Ví dụ, để chia một tập hợp các hình ảnh đầu vào thành hai lớp, một nơ-ron đầu ra là đủ. Đồng thời, mỗi mức logic sẽ biểu thị một lớp riêng biệt. Trên hai nơ-ron đầu ra có chức năng kích hoạt ngưỡng, bốn lớp đã có thể được mã hóa. Để tăng độ tin cậy của phân loại, nên đưa ra dự phòng bằng cách phân bổ một nơ-ron cho mỗi lớp trong lớp đầu ra hoặc tốt hơn nữa là nhiều nơ-ron, mỗi nơ-ron được đào tạo để xác định xem một hình ảnh có thuộc về một lớp với mức độ tin cậy của chính nó hay không. , ví dụ: cao, trung bình và thấp. Các mạng thần kinh như vậy có thể phân loại các hình ảnh đầu vào được kết hợp thành các tập mờ (mờ hoặc giao nhau). Thuộc tính này đưa các mạng như vậy đến gần hơn với các điều kiện thực tế cho hoạt động của các mạng thần kinh sinh học.

Mạng lưới thần kinh được xem xét có một số nút cổ chai. Đầu tiên, trong quá trình này, tích cực lớn hoặc giá trị âm trọng số có thể dịch chuyển điểm vận hành trên sigmoids của nơ-ron sang vùng bão hòa. Các giá trị nhỏ của đạo hàm của hàm logistic sẽ dẫn đến ngừng học, theo (1.15) và (1.16), làm tê liệt mạng. Thứ hai, việc áp dụng phương pháp giảm độ dốc không đảm bảo tìm được giá trị cực tiểu toàn cục của hàm mục tiêu. Điều này liên quan mật thiết đến vấn đề chọn tỷ lệ học. Số gia của các trọng số và do đó, tốc độ học để tìm cực trị phải là vô cùng nhỏ, tuy nhiên, trong trường hợp này, việc học sẽ là

chậm đến mức không thể chấp nhận được. Mặt khác, hiệu chỉnh trọng số quá lớn có thể dẫn đến sự mất ổn định vĩnh viễn trong quá trình học. Do đó, một số nhỏ hơn 1 (ví dụ: 0,1) thường được chọn làm hệ số tốc độ học tập 1], hệ số này giảm dần trong quá trình học tập. Ngoài ra, để loại trừ lượt truy cập ngẫu nhiên các mạng đến cực tiểu cục bộ, đôi khi, sau khi ổn định các giá trị của hệ số trọng số, 7 được tăng lên đáng kể trong thời gian ngắn để bắt đầu giảm độ dốc từ điểm mới. Nếu việc lặp lại quy trình này nhiều lần đưa mạng về cùng một trạng thái, thì có thể giả định rằng đã tìm thấy mức tối thiểu toàn cầu.

Có một phương pháp khác để loại bỏ cực tiểu cục bộ và tình trạng tê liệt mạng, đó là sử dụng mạng thần kinh ngẫu nhiên.

Hãy để chúng tôi đưa ra giải thích hình học ở trên.

Thuật toán lan truyền ngược tính toán vectơ gradient bề mặt lỗi. Vectơ này biểu thị hướng đi xuống ngắn nhất trên bề mặt từ điểm hiện tại, chuyển động dọc theo đó dẫn đến giảm sai số. Một chuỗi các bước giảm dần sẽ dẫn đến mức tối thiểu của loại này hay loại khác. Khó khăn ở đây là vấn đề chọn độ dài của các bước.

Tại size lớn bước hội tụ sẽ nhanh hơn, nhưng có nguy cơ nhảy qua nghiệm, hoặc trong trường hợp hình dáng phức tạp các bề mặt lỗi đi sai hướng, chẳng hạn như di chuyển dọc theo khe núi hẹp có độ dốc lớn, nhảy từ bên này sang bên kia. Ngược lại, với một bước nhỏ và đúng hướng nó sẽ mất rất nhiều lần lặp lại. Trong thực tế, kích thước bước được thực hiện tỷ lệ thuận với độ dốc của độ dốc, do đó thuật toán chậm lại gần mức tối thiểu. lựa chọn đúng đắn Tỷ lệ học tập phụ thuộc vào nhiệm vụ cụ thể và thường được thực hiện theo kinh nghiệm. Hằng số này cũng có thể phụ thuộc vào thời gian, giảm dần khi thuật toán tiến triển.

Thông thường, thuật toán này được sửa đổi để bao gồm một thuật ngữ động lượng (hoặc quán tính). Điều này thúc đẩy chuyển động theo một hướng cố định, vì vậy nếu một số bước được thực hiện theo cùng một hướng, thuật toán sẽ tăng tốc độ, điều này đôi khi tránh được địa phương tối thiểu, cũng như đi qua các khu vực bằng phẳng nhanh hơn.

Ở mỗi bước của thuật toán, tất cả các ví dụ đào tạo lần lượt được đưa vào đầu vào của mạng, các giá trị đầu ra thực của mạng được so sánh với các giá trị cần thiết và lỗi được tính toán. Giá trị của lỗi cũng như độ dốc của bề mặt lỗi

được sử dụng để điều chỉnh thang đo, sau đó tất cả các hành động được lặp lại. Quá trình học dừng lại khi một số kỷ nguyên nhất định đã trôi qua hoặc khi lỗi đạt đến một mức nhỏ nhất định hoặc khi lỗi ngừng giảm.

Chúng ta hãy xem xét các vấn đề tổng quát hóa và đào tạo lại một mạng lưới thần kinh chi tiết hơn. Khái quát hóa là khả năng mạng nơ-ron đưa ra dự đoán chính xác về dữ liệu không thuộc tập huấn luyện ban đầu. Mặt khác, trang bị quá mức xảy ra khi thuật toán học chạy quá lâu và mạng quá phức tạp đối với tác vụ hoặc lượng dữ liệu có sẵn.

Hãy để chúng tôi chứng minh các vấn đề tổng quát hóa và đào tạo lại bằng cách sử dụng ví dụ về xấp xỉ một sự phụ thuộc nhất định không phải bằng mạng nơ-ron mà bằng đa thức, trong khi bản chất của hiện tượng sẽ hoàn toàn giống nhau.

Đồ thị đa thức có thể có hình dạng khác nhau và cấp độ cũng như số lượng thành viên càng cao thì hình thức này càng phức tạp. Đối với dữ liệu ban đầu, có thể chọn một đường cong đa thức (mô hình) và do đó có được lời giải thích về sự phụ thuộc hiện có. Dữ liệu có thể bị nhiễu, vì vậy không thể giả định rằng Mô hình tốt nhấtđi chính xác qua tất cả các điểm có sẵn. Một đa thức bậc thấp có thể giải thích tốt hơn sự phụ thuộc hiện có, tuy nhiên, không đủ linh hoạt để phù hợp với dữ liệu, trong khi đa thức bậc cao có thể quá linh hoạt, nhưng sẽ theo dõi dữ liệu một cách chính xác, trong khi có dạng phức tạp không liên quan gì đến sự phụ thuộc thực sự.

Mạng lưới thần kinh phải đối mặt với những khó khăn tương tự. Mạng với một số lượng lớn mô hình trọng lượng hơn chức năng phức tạp và do đó dễ bị quá khớp. Các mạng có số lượng trọng số nhỏ có thể không đủ linh hoạt để mô hình hóa các phụ thuộc hiện có. Ví dụ, một mạng không có lớp ẩn chỉ mô hình một hàm tuyến tính thông thường.

Làm thế nào để chọn đúng mức độ phức tạp của mạng? Hầu như luôn luôn, một mạng phức tạp hơn sẽ cho một lỗi nhỏ hơn, nhưng điều này có thể không phải là dấu hiệu của chất lượng tốt mô hình, nhưng về đào tạo lại mạng.

Cách thoát ra là sử dụng xác thực chéo kiểm soát. Để làm điều này, một phần của mẫu đào tạo được dành riêng, được sử dụng không phải để đào tạo mạng theo thuật toán lan truyền ngược lỗi mà để kiểm soát độc lập kết quả trong thuật toán. Khi bắt đầu công việc, một lỗi mạng trong quá trình đào tạo và

bộ điều khiển sẽ giống nhau. Khi mạng được đào tạo, lỗi học tập giảm, cũng như lỗi trên bộ điều khiển. Nếu lỗi điều khiển ngừng giảm hoặc thậm chí bắt đầu tăng, điều này cho thấy rằng mạng đã bắt đầu ước tính dữ liệu quá chặt chẽ (đào tạo lại) và nên dừng quá trình đào tạo. Nếu điều này xảy ra, thì số lượng phần tử và/hoặc lớp ẩn sẽ giảm đi vì mạng quá mạnh đối với nhiệm vụ này. Nếu cả hai lỗi (đào tạo và xác thực chéo) không đạt đến mức đủ nhỏ, thì tất nhiên, việc đào tạo lại đã không xảy ra và ngược lại, mạng không đủ mạnh để mô hình hóa sự phụ thuộc hiện có.

Các vấn đề được mô tả dẫn đến công việc thực tế Với mạng thần kinh, bạn phải thử nghiệm với một số lượng lớn các mạng khác nhau, đôi khi huấn luyện từng mạng nhiều lần và so sánh kết quả. Chỉ báo chính về chất lượng của kết quả là lỗi điều khiển. Đồng thời, theo nguyên tắc toàn hệ thống, trong số hai mạng có xấp xỉ lỗi bằng nhau kiểm soát nó có ý nghĩa để chọn cái dễ dàng hơn.

Nhu cầu về nhiều thử nghiệm dẫn đến thực tế là bộ điều khiển bắt đầu đóng vai trò chính trong việc chọn mô hình và trở thành một phần của quá trình học tập. Điều này làm suy yếu vai trò của nó như một tiêu chí độc lập về chất lượng mô hình. Tại số lượng lớn các thử nghiệm, có khả năng cao để chọn một mạng thành công cho kết quả tốt trên bộ điều khiển. Tuy nhiên, để cung cấp cho mô hình cuối cùng độ tin cậy phù hợp, thông thường (khi số lượng ví dụ huấn luyện cho phép), họ tiến hành như sau: một tập mẫu thử nghiệm được dành riêng. Mô hình cuối cùng được thử nghiệm trên dữ liệu từ tập hợp này để đảm bảo rằng kết quả đạt được trên các tập mẫu kiểm soát và tập huấn luyện là có thật chứ không phải giả tạo của quá trình huấn luyện. Tất nhiên, để phát huy tốt vai trò của mình, bộ kiểm tra chỉ được sử dụng một lần: nếu nó được sử dụng lặp đi lặp lại để điều chỉnh quá trình học, thì nó sẽ thực sự trở thành một bộ kiểm soát.

Để tăng tốc quá trình học của mạng, nhiều sửa đổi của thuật toán lan truyền ngược lỗi được đề xuất, liên quan đến việc sử dụng các hàm lỗi khác nhau, quy trình xác định hướng và kích thước bước.

1) Chức năng lỗi:

Các chức năng lỗi tích phân trên toàn bộ tập hợp các ví dụ đào tạo;

Các hàm lỗi của lũy thừa nguyên và phân số

2) Quy trình xác định kích thước bước tại mỗi lần lặp

Phân đôi;

Tỷ lệ quán tính (xem ở trên);

3) Thủ tục xác định hướng bước.

Sử dụng ma trận đạo hàm cấp 2 (phương pháp Newton);

Sử dụng hướng dẫn trên một số bước (phương pháp partan).

Prudnikov Ivan Alekseevich
MIREA(MTU)

Chủ đề về mạng nơ-ron đã được đề cập trong nhiều tạp chí, nhưng hôm nay tôi muốn giới thiệu với độc giả thuật toán huấn luyện mạng nơ-ron nhiều lớp bằng phương pháp lan truyền ngược và cung cấp cách triển khai phương pháp này.

Tôi muốn đặt trước ngay rằng tôi không phải là chuyên gia trong lĩnh vực mạng lưới thần kinh, vì vậy tôi mong đợi từ độc giả phê bình mang tính xây dựng, nhận xét và bổ sung.

phần lý thuyết

Tài liệu này giả định rằng bạn đã làm quen với những kiến ​​thức cơ bản về mạng nơ-ron, tuy nhiên, tôi cho rằng có thể giới thiệu cho người đọc chủ đề này mà không cần phải trải qua những thử thách không cần thiết về lý thuyết mạng nơ-ron. Vì vậy, đối với những người lần đầu tiên nghe thấy cụm từ "mạng nơ-ron", tôi đề xuất coi mạng nơ-ron là một đồ thị có hướng có trọng số, các nút (nơ-ron) được sắp xếp theo lớp. Ngoài ra, một nút của một lớp có liên kết đến tất cả các nút của lớp trước đó. Trong trường hợp của chúng tôi, một biểu đồ như vậy sẽ có các lớp đầu vào và đầu ra, các nút tương ứng đóng vai trò là đầu vào và đầu ra. Mỗi nút (nơ-ron) có một chức năng kích hoạt - chức năng chịu trách nhiệm tính toán tín hiệu ở đầu ra của nút (nơ-ron). Ngoài ra còn có khái niệm về sự dịch chuyển, đó là một nút, ở đầu ra của nó luôn xuất hiện. Trong bài viết này, chúng ta sẽ xem xét quá trình học của mạng nơ-ron giả định có sự hiện diện của "giáo viên", tức là quá trình học trong đó việc học diễn ra bằng cách cung cấp cho mạng một chuỗi các ví dụ huấn luyện với các phản hồi chính xác.
Như với hầu hết các mạng thần kinh, mục tiêu của chúng tôi là đào tạo mạng theo cách sao cho đạt được sự cân bằng giữa khả năng mạng đưa ra phản hồi chính xác cho dữ liệu đầu vào được sử dụng trong quá trình học (ghi nhớ) và khả năng tạo ra kết quả chính xác để đáp ứng với dữ liệu đầu vào, tương tự nhưng không giống với kết quả được sử dụng trong đào tạo (nguyên tắc tổng quát hóa). Huấn luyện mạng bằng phương pháp lan truyền ngược lỗi bao gồm ba giai đoạn: cung cấp dữ liệu cho đầu vào, tiếp theo là truyền dữ liệu theo hướng của đầu ra, tính toán và lan truyền ngược lỗi tương ứng và điều chỉnh trọng số. Sau khi đào tạo, nó chỉ có nhiệm vụ cung cấp dữ liệu cho đầu vào của mạng và phân phối chúng theo hướng của đầu ra. Đồng thời, nếu việc đào tạo mạng có thể là một quá trình khá dài, thì việc tính toán trực tiếp kết quả của mạng được đào tạo là rất nhanh. Ngoài ra, có rất nhiều biến thể của phương pháp lan truyền ngược được thiết kế để tăng tốc độ của quá trình học tập.
Cũng cần lưu ý rằng mạng nơ-ron một lớp bị hạn chế đáng kể về kiểu dữ liệu đầu vào mà nó phải học, trong khi mạng nhiều lớp (có một hoặc nhiều lớp ẩn) không gặp phải nhược điểm như vậy. Tiếp theo, một mô tả sẽ được đưa ra về một mạng lưới thần kinh lan truyền ngược tiêu chuẩn.

Ngành kiến ​​​​trúc

Hình 1 cho thấy một mạng nơ-ron nhiều lớp với một lớp nơ-ron ẩn (phần tử Z).

Các nơ-ron đại diện cho đầu ra của mạng (ký hiệu là Y) và các nơ-ron ẩn có thể bị sai lệch (như trong hình). Phần bù tương ứng với đầu ra Y k được ký hiệu là w ok , phần tử ẩn của Z j - V oj . Những sai lệch này đóng vai trò là trọng số trên các kết nối đến từ các nơ-ron, đầu ra của chúng luôn xuất hiện 1 (trong Hình 1, chúng được hiển thị, nhưng ngụ ý thường không được hiển thị rõ ràng). Ngoài ra, các mũi tên trong Hình 1 cho thấy sự di chuyển của thông tin trong giai đoạn phổ biến dữ liệu từ đầu vào đến đầu ra. Trong quá trình học, các tín hiệu truyền theo hướng ngược lại.

Mô tả thuật toán

Thuật toán được trình bày dưới đây có thể áp dụng cho mạng thần kinh có một lớp ẩn, đây là một tình huống hợp lệ và phù hợp cho hầu hết các ứng dụng. Như đã đề cập trước đó, đào tạo mạng bao gồm ba giai đoạn: cung cấp dữ liệu đào tạo cho đầu vào của mạng, lan truyền ngược lỗi và điều chỉnh trọng số. Trong giai đoạn đầu tiên, mỗi nơ-ron đầu vào X i nhận một tín hiệu và phát tín hiệu đó đến từng nơ-ron ẩn Z 1 ,Z 2 ...,Z p . Sau đó, mỗi nơ-ron ẩn sẽ tính toán kết quả của hàm kích hoạt (hàm mạng) của nó và phát tín hiệu Z j của nó tới tất cả các nơ-ron đầu ra. Lần lượt, mỗi nơ-ron đầu ra Y k , tính toán kết quả của hàm kích hoạt Y k , không gì khác hơn là tín hiệu đầu ra của nơ-ron này cho dữ liệu đầu vào tương ứng. Trong quá trình học, mỗi nơ-ron ở đầu ra của mạng so sánh giá trị Y k được tính toán với t k (giá trị đích) do giáo viên cung cấp, xác định giá trị lỗi phù hợp cho mẫu đầu vào đã cho. Dựa trên sai số này, σ k (k = 1,2,...m) được tính toán. σ k được sử dụng khi lan truyền lỗi từ Y k đến tất cả các phần tử mạng của lớp trước đó (nơ-ron ẩn được kết nối với Y k) và sau đó khi thay đổi trọng số của các kết nối giữa các nơ-ron đầu ra và các nơ-ron ẩn. Tương tự, σj (j = 1,2,...p) được tính cho mỗi nơron ẩn Z j . Mặc dù không cần truyền lỗi đến lớp đầu vào, nhưng σj được sử dụng để thay đổi trọng số của các kết nối giữa các nơ-ron trong lớp ẩn và các nơ-ron đầu vào. Sau khi tất cả σ đã được xác định, trọng số của tất cả các liên kết được điều chỉnh đồng thời.

chỉ định:

Ký hiệu sau đây được sử dụng trong thuật toán học mạng:

X Vector dữ liệu huấn luyện đầu vào X = (X 1 , X 2 ,...,X i ,...,X n).
t Vector kết quả đầu ra mục tiêu do giáo viên cung cấp t = (t 1 , t 2 ,...,t k ,...,t m)
σ k Thành phần điều chỉnh trọng số của các kết nối w jk , tương ứng với sai số của nơ ron đầu ra Y k ; đồng thời, thông tin về lỗi của nơ-ron Y k , được phân phối cho các nơ-ron của lớp ẩn có liên quan đến Y k .
σ j Thành phần điều chỉnh trọng số của các kết nối v ij , tương ứng với thông tin lỗi được truyền từ lớp đầu ra đến nơ ron ẩn Z j .
một tỷ lệ học tập.
X i Nơron đầu vào có chỉ số i. Đối với nơ-ron đầu vào, tín hiệu đầu vào và đầu ra giống nhau - X i .
v oj Độ lệch của nơ ron ẩn j.
Z j Nơron ẩn j; Tổng giá trịđầu vào của phần tử ẩn Z j được ký hiệu là Z_in j: Z_in j = v oj +∑x i *v ij
Tín hiệu ở đầu ra Z j (kết quả của việc áp dụng hàm kích hoạt cho Z_in j) được ký hiệu là Z j: Z j = f (Z_in j)
w ok Độ lệch nơ ron đầu ra.
Y k Nơron đầu ra dưới chỉ số k; Tổng giá trị cung cấp cho đầu vào của phần tử đầu ra Y k được ký hiệu là Y_in k: Y_in k = w ok + ∑ Z j *w jk . Tín hiệu đầu ra Y k (kết quả của việc áp dụng chức năng kích hoạt cho Y_in k) được ký hiệu là Y k:

chức năng kích hoạt

Hàm kích hoạt trong thuật toán lan truyền ngược phải có một số đặc điểm quan trọng: tính liên tục, khả vi và đơn điệu không giảm. Hơn nữa, để tăng hiệu quả tính toán, mong muốn đạo hàm của nó dễ dàng được tìm thấy. Thông thường, chức năng kích hoạt cũng là một chức năng bão hòa. Một trong những hàm kích hoạt được sử dụng phổ biến nhất là hàm sigmoid nhị phân với phạm vi (0, 1) và được định nghĩa là:

Một hàm kích hoạt được sử dụng rộng rãi khác là sigmoid lưỡng cực với phạm vi (-1, 1) và được định nghĩa là:


thuật toán học tập

Thuật toán học trông như thế này:

Khởi tạo trọng số (trọng số của tất cả các liên kết được khởi tạo với các giá trị nhỏ ngẫu nhiên).

Miễn là điều kiện kết thúc của thuật toán là sai, các bước 2 - 9 được thực hiện.

Đối với mỗi cặp (dữ liệu, giá trị của mục tiêu) bước 3 đến 8 được thực hiện.

Truyền dữ liệu từ đầu vào đến đầu ra:

Bước 3
Mỗi nơ-ron đầu vào (X i , i = 1,2,...,n) gửi tín hiệu nhận được X i tới tất cả các nơ-ron trong lớp (ẩn) tiếp theo.

Mỗi nơ-ron ẩn (Z j , j = 1,2,..., p) tính tổng các tín hiệu đến có trọng số: z_in j = v oj + ∑ x i *v ij và áp dụng hàm kích hoạt: z j = f (z_in j) Sau đó gửi kết quả cho tất cả các phần tử của lớp tiếp theo (đầu ra).

Mỗi nơ-ron đầu ra (Y k , k = 1,2,...m) tính tổng các tín hiệu đầu vào có trọng số: Y_in k = w ok + ∑ Z j *w jk và áp dụng hàm kích hoạt, tính toán tín hiệu đầu ra: Y k = f(Y_trong k).

Lan truyền ngược:

Mỗi nơ-ron đầu ra (Y k , k = 1,2,...m) nhận giá trị đích - giá trị đầu ra đúng với tín hiệu đầu vào đã cho và tính toán lỗi: σ k = (t k - y k)*f " ( y_in k) cũng tính toán lượng mà theo đó trọng số của kết nối w jk sẽ thay đổi: Δw jk = a * σ k * z j Ngoài ra, nó tính toán giá trị điều chỉnh bù: Δw ok = a*σ k và gửi σ k đến các nơ-ron ở lớp trước .

Mỗi nơ-ron ẩn (z j , j = 1,2,...p) tính tổng các lỗi đến (từ các nơ-ron ở lớp tiếp theo) σ_in j = ∑ σ k * w jk và tính giá trị lỗi bằng cách nhân giá trị kết quả với đạo hàm của hàm kích hoạt: σ j = σ_in j * f "(z_in j), cũng tính toán lượng mà trọng lượng liên kết vij sẽ thay đổi: Δv ij = a * σ j * x i . Ngoài ra, tính toán lượng điều chỉnh bù : v oj = a * σ j

Bước 8. Thay đổi trọng số.

Mỗi nơ-ron đầu ra (y k , k = 1,2,...,m) thay đổi trọng số của các kết nối của nó với phần tử sai lệch và nơ-ron ẩn: w jk (mới) = w jk (cũ) + Δw jk
Mỗi nơ-ron ẩn (z j , j = 1,2,...p) thay đổi trọng số của các kết nối của nó với phần tử thiên vị và nơ-ron đầu ra: v ij (mới) = v ij (cũ) + Δv ij

Kiểm tra điều kiện kết thúc của thuật toán.
Điều kiện để kết thúc hoạt động của thuật toán có thể là cả việc đạt được tổng lỗi bậc hai kết quả ở đầu ra của mạng ở mức tối thiểu được xác định trước trong quá trình học và thực hiện một số lần lặp nhất định của thuật toán. Thuật toán dựa trên một phương pháp gọi là độ dốc gốc. Tùy thuộc vào dấu, gradient của hàm số (trong trường hợp này giá trị của hàm là sai số và các tham số là trọng số của các kết nối trong mạng) đưa ra hướng mà các giá trị của hàm tăng (hoặc giảm) nhanh nhất.

Delta là một quy tắc được sử dụng khi đào tạo perceptron, sử dụng giá trị lỗi của lớp đầu ra. Nếu mạng có hai lớp trở lên thì không có giá trị lỗi rõ ràng cho các lớp trung gian và không thể sử dụng quy tắc delta.

Ý tưởng chính đằng sau lan truyền ngược là làm thế nào để ước tính lỗi cho các nơ-ron lớp ẩn. thông báo rằng nổi tiếng lỗi do các nơ-ron trong lớp đầu ra phát sinh do không xác định lỗi của các tế bào thần kinh trong các lớp ẩn. Làm sao nhiều giá trị hơn kết nối synap giữa nơ-ron của lớp ẩn và nơ-ron đầu ra, lỗi của lớp thứ nhất càng mạnh thì ảnh hưởng đến lỗi của lớp thứ hai. Do đó, ước tính lỗi của các phần tử của các lớp ẩn có thể được lấy dưới dạng tổng trọng số của các lỗi của các lớp tiếp theo.

Thuật toán lan truyền ngược (ABOR), là sự tổng quát hóa của quy tắc delta, cho phép bạn huấn luyện ANN PR với bất kỳ số lượng lớp nào. Chúng ta có thể nói rằng AOR thực sự sử dụng một loại giảm dần độ dốc, sắp xếp lại các trọng số theo hướng có sai số nhỏ nhất.

Khi sử dụng AOR, người ta cho rằng hàm sigmoid được sử dụng làm hàm kích hoạt. Hàm này tiết kiệm chi phí tính toán vì nó có đạo hàm đơn giản:

Hàm sigmoid giới hạn các tín hiệu mạnh ở mức 1 và tăng các tín hiệu yếu.

Ý nghĩa của thuật toán lan truyền ngược lỗi là trong quá trình đào tạo, trước tiên mạng được hiển thị một hình ảnh mà lỗi đầu ra được tính toán. Hơn nữa, lỗi này lan truyền qua mạng theo hướng ngược lại, làm thay đổi trọng số của các kết nối giữa các mạng nội bộ.

Thuật toán bao gồm chuỗi hành động tương tự như khi huấn luyện perceptron. Đầu tiên, trọng số của các kết nối interneuronal thu được giá trị ngẫu nhiên, sau đó các bước sau đây được thực hiện:

1) Một cặp huấn luyện được chọn ( X , Z*), X phục vụ tại lối vào;

2) Tính toán đầu ra của mạng z = F(Y);

3) Lỗi đầu ra được tính toán e;

4) Các trọng số mạng được điều chỉnh để giảm thiểu lỗi;

Bước 1 và 2 là lan truyền thuận trên mạng, trong khi bước 3 và 4 là ngược lại.

Trước khi đào tạo, cần chia các cặp “đầu vào-đầu ra” hiện có thành hai phần: đào tạo và kiểm tra.

Các cặp kiểm tra được sử dụng để kiểm tra chất lượng đào tạo - NN được đào tạo tốt nếu nó tạo ra đầu ra gần với kiểm tra đầu vào do cặp kiểm tra đưa ra.

Khi học, một tình huống có thể xảy ra khi NN thể hiện kết quả tốt đẹp cho dữ liệu huấn luyện, nhưng không tốt cho dữ liệu thử nghiệm. Có thể có hai lý do cho việc này:

1. Dữ liệu thử nghiệm rất khác với dữ liệu huấn luyện, tức là các cặp đào tạo không bao gồm tất cả các khu vực của không gian đầu vào.


2. Đã phát sinh hiện tượng “đào tạo lại” ( trang bị quá nhiều), khi hành vi của NN trở nên phức tạp hơn vấn đề đang được giải quyết.

trường hợp cuối cùngđối với bài toán xấp xỉ một hàm theo điểm được minh họa trong hình. 3.3, trong đó các vòng tròn màu trắng biểu thị dữ liệu thử nghiệm và các vòng tròn màu tối biểu thị dữ liệu huấn luyện.

Nói một cách chính xác, lan truyền ngược là một phương pháp tính toán độ dốc nhanh dựa trên các tính năng của chức năng tính toán lại mạng, có thể làm giảm độ phức tạp tính toán của phép tính độ dốc. Phương pháp sử dụng lỗi ở đầu ra mạng để tính đạo hàm riêng theo trọng số của lớp kết nối được đào tạo cuối cùng, sau đó lỗi ở đầu ra của lớp áp chót được xác định từ trọng số của lớp cuối cùng và lỗi mạng, và quá trình được lặp đi lặp lại.

Mô tả thuật toán

Lan truyền ngược được áp dụng cho các mạng nhiều lớp có các nơ-ron không tuyến tính với đạo hàm liên tục, chẳng hạn như:

Tính phi tuyến tính của loại này thuận tiện do tính đơn giản của đạo hàm:

Để huấn luyện mạng, P cặp vectơ tín hiệu được sử dụng: vectơ đầu vào I và vectơ cần thu được ở đầu ra của mạng D. Mạng, trong trường hợp đơn giản, bao gồm N lớp và mỗi nơ-ron của lớp tiếp theo được kết nối với tất cả các nơ-ron của lớp trước bằng các kết nối, có trọng số w [n].

Với truyền thuận, đối với mỗi lớp, tổng tín hiệu ở đầu ra của lớp (S[n]) và tín hiệu ở đầu ra của nơ ron được tính toán (và được lưu trữ). Vì vậy, tín hiệu ở đầu vào của tế bào thần kinh thứ i của lớp thứ n:

Ở đây w(i,j) là trọng số của các kết nối của lớp thứ n. Tín hiệu ở đầu ra của nơ-ron được tính bằng cách áp dụng tính phi tuyến tính của nơ-ron cho tín hiệu tổng.

Tín hiệu lớp đầu ra x[N] được coi là tín hiệu đầu ra của mạng O.

Dựa trên tín hiệu đầu ra mạng O và tín hiệu D, sẽ thu được ở đầu ra mạng cho một đầu vào nhất định, lỗi mạng được tính toán. thường được sử dụng hình vuông ở giữađộ lệch cho tất cả các vectơ của mẫu đào tạo:

Để huấn luyện mạng, độ dốc của hàm lỗi theo trọng số của mạng được sử dụng. Thuật toán lan truyền ngược liên quan đến việc tính toán độ dốc của hàm lỗi bằng cách "lan truyền ngược" tín hiệu lỗi. Khi đó, đạo hàm riêng của sai số đối với trọng số trái phiếu được tính theo công thức:

Ở đây q là phần dư của mạng, đối với lớp đầu ra được tính từ hàm lỗi:

Và đối với các lớp ẩn - theo phần còn lại của lớp trước:

Đối với trường hợp phi tuyến tính sigmoid và độ lệch bình phương trung bình là một hàm của sai số:

Trên thực tế, đào tạo mạng bao gồm việc tìm các giá trị trọng số sao cho giảm thiểu lỗi ở đầu ra mạng. Có nhiều phương pháp dựa trên hoặc sử dụng gradient để giải quyết vấn đề này. Trong trường hợp đơn giản nhất, việc huấn luyện mạng được thực hiện bằng cách sử dụng các gia số nhỏ của trọng số kết nối theo hướng ngược lại với vectơ gradient:

Phương pháp học này được gọi là "tối ưu hóa giảm dần độ dốc" và, trong trường hợp mạng thần kinh, thường được coi là một phần của phương pháp lan truyền ngược.

Triển khai thuật toán lan truyền ngược lỗi bằng cách sử dụng ví dụ về xấp xỉ hàm

Nhiệm vụ: Để có một bảng giá trị đối số ( x tôi ) và các giá trị hàm tương ứng ( f(x tôi )) ( bảng này có thể đã phát sinh trong tính toán của một số phân tích hàm đã cho khi tiến hành thí nghiệm nhận biết sự phụ thuộc của cường độ dòng điện vào điện trở trong mạng điện, khi nhận biết mối liên hệ giữa hoạt động năng lượng mặt trời và số cuộc gọi đến trung tâm tim mạch, giữa số tiền trợ cấp cho nông dân và khối lượng sản xuất nông nghiệp, v.v.).

Trong môi trường Matlab, cần xây dựng và huấn luyện mạng nơ-ron để xấp xỉ hàm bảng i=1, 20. Xây dựng chương trình thực hiện thuật toán xấp xỉ mạng nơ-ron và hiển thị kết quả xấp xỉ dưới dạng đồ thị.

Tính gần đúng nằm ở chỗ, bằng cách sử dụng thông tin có sẵn về f (x), chúng ta có thể coi hàm xấp xỉ z (x) gần với f (x) theo một nghĩa nào đó, cho phép chúng ta thực hiện các thao tác thích hợp trên nó và thu được một ước tính về lỗi của một sự thay thế như vậy.

Xấp xỉ thường có nghĩa là mô tả của một số, đôi khi không được chỉ định rõ ràng, sự phụ thuộc hoặc tập hợp dữ liệu biểu diễn nó với sự trợ giúp của một sự phụ thuộc khác, thường đơn giản hơn hoặc thống nhất hơn. Thông thường, dữ liệu ở dạng các điểm nóng riêng lẻ, có tọa độ được cung cấp bởi bảng dữ liệu. Kết quả xấp xỉ có thể không đi qua các điểm nút. Ngược lại, nhiệm vụ của phép nội suy là tìm dữ liệu trong vùng lân cận của các điểm nút. Đối với điều này, các hàm phù hợp được sử dụng, các giá trị của chúng tại các điểm nút trùng với tọa độ của các điểm này.

Một nhiệm vụ. Trong môi trường Matlab, cần xây dựng và huấn luyện một mạng nơron để xấp xỉ một hàm bảng cho trước (xem Hình 5).

Hình 5. Bảng giá trị hàm Trong môi trường toán học Matlab, tại cửa sổ lệnh, chúng ta viết mã chương trình tạo và huấn luyện mạng nơ-ron.

Để giải quyết, chúng tôi sử dụng hàm newff (.) - tạo NN đa lớp "cổ điển" với đào tạo bằng phương pháp lan truyền ngược, tức là sự thay đổi về trọng số của các khớp thần kinh diễn ra có tính đến hàm lỗi, sự khác biệt giữa phản hồi thực và phản hồi chính xác của mạng nơ-ron, được xác định trên lớp đầu ra, lan truyền theo hướng ngược lại - về phía luồng tín hiệu. Mạng sẽ có hai lớp ẩn. Có 5 nơ-ron ở lớp đầu tiên, 1 ở lớp thứ 2. Chức năng kích hoạt của lớp đầu tiên là "tansig" (hàm sigmoid, trả về các vectơ đầu ra có giá trị trong khoảng từ - 1 đến 1), lớp thứ hai là "tinh khiết" ( hàm tuyến tính kích hoạt, trả về các vectơ đầu ra không thay đổi). Sẽ có 100 kỷ nguyên đào tạo. Chức năng đào tạo "trainlm" - một chức năng đào tạo mạng (được sử dụng theo mặc định, vì nó cung cấp nhiều nhất học nhanh, nhưng đòi hỏi nhiều bộ nhớ).

Mã chương trình:

P = số không (1, 20);

for i = 1: 20% tạo mảng P(i) = i*0.1; %dữ liệu đầu vào (đối số) end T= ; %input (giá trị hàm) net = newff ([-1 2.09], ,("tansig" "purelin")); %tạo ra một mạng lưới thần kinh. xe lửaParam. kỷ nguyên = 100; %đặt số lượng kỷ nguyên đào tạo net=train (net,P,T); %huấn luyện mạng y = sim(net,P); %poll đào tạo hình mạng (1);

cốt truyện(P,T,P,y,"o"), lưới; % vẽ đồ thị của dữ liệu ban đầu và hàm được hình thành bởi mạng thần kinh.

Kết quả của mạng lưới thần kinh.

Kết quả đào tạo (xem Hình 2): biểu đồ hiển thị thời gian đào tạo của mạng thần kinh và lỗi đào tạo. Trong ví dụ này, mạng thần kinh đã trải qua tất cả 100 kỷ nguyên, dần dần học hỏi và giảm lỗi và đạt 10 -2,35 (0,00455531).

Hình 2. Kết quả huấn luyện mạng nơ-ron

Đồ thị của dữ liệu ban đầu và hàm do mạng nơ-ron tạo ra (xem Hình 3): các vòng tròn biểu thị dữ liệu ban đầu và đường kẻ là hàm do mạng nơ-ron tạo ra. Hơn nữa, bằng cách sử dụng các điểm thu được, bạn có thể xây dựng hồi quy và thu được phương trình gần đúng (xem Hình 8). Chúng tôi đã sử dụng hồi quy bậc ba, vì đồ thị của nó đi qua các điểm thu được một cách chính xác nhất. Phương trình kết quả trông giống như:

y=0,049x 3 +0,88x 2 -0,006x+2,1.

Do đó, chúng tôi thấy rằng bằng cách sử dụng mạng thần kinh, bạn có thể nhanh chóng tìm thấy một hàm, chỉ biết tọa độ của các điểm mà nó đi qua.

Hình 3. Đồ thị dữ liệu ban đầu và hàm được hình thành bởi mạng nơ-ron


Hình 4. Đồ thị hàm xấp xỉ

Thuật toán lan truyền ngược là một trong những phương pháp huấn luyện mạng nơ-ron truyền tiếp nhiều lớp, còn được gọi là các tri giác đa lớp. Perceptron đa lớp được sử dụng thành công để giải quyết nhiều vấn đề phức tạp.

Đào tạo bằng thuật toán lan truyền ngược lỗi bao gồm hai lần đi qua tất cả các lớp của mạng: tiến và lùi. Trong quá trình chuyển tiếp, vectơ đầu vào được đưa đến lớp đầu vào của mạng thần kinh, sau đó nó truyền qua mạng từ lớp này sang lớp khác. Kết quả là, một tập hợp các tín hiệu đầu ra được tạo ra, đây là phản hồi thực tế của mạng đối với một hình ảnh đầu vào nhất định. Trong quá trình chuyển tiếp, tất cả các trọng số khớp thần kinh của mạng được cố định. Trong quá trình truyền ngược, tất cả các trọng số khớp thần kinh được điều chỉnh theo quy tắc sửa lỗi, cụ thể là: đầu ra thực tế của mạng bị trừ đi so với đầu ra mong muốn, dẫn đến tín hiệu lỗi. Tín hiệu này sau đó truyền qua mạng theo hướng hướng ngược lại các kết nối synap. Do đó tên - thuật toán lan truyền ngược. Trọng số synap được điều chỉnh để làm cho đầu ra của mạng càng gần với đầu ra mong muốn càng tốt.

Hãy xem xét hoạt động của thuật toán chi tiết hơn. Giả sử chúng ta cần huấn luyện mạng thần kinh sau bằng thuật toán lan truyền ngược:

Trong hình dưới đây, các quy ước sau đây được sử dụng:

Là một chức năng kích hoạt trong các tri giác đa lớp, theo quy luật, chức năng kích hoạt sigmoidal được sử dụng, cụ thể là chức năng logistic:

ở đâu là tham số độ dốc của hàm sigmoidal. Bằng cách thay đổi tham số này, có thể xây dựng các hàm với độ dốc khác nhau. Hãy đảm bảo rằng đối với tất cả các lý do tiếp theo, nó sẽ được sử dụng chính xác chức năng kích hoạt logistic, chỉ được biểu thị bằng công thức trên.

Đường sigmoid thu hẹp phạm vi thay đổi sao cho giá trị nằm trong khoảng từ 0 đến 1. Các mạng thần kinh nhiều lớp có sức mạnh đại diện lớn hơn các mạng một lớp chỉ khi có sự phi tuyến tính. Hàm co lại cung cấp tính phi tuyến tính cần thiết. Trong thực tế, có rất nhiều chức năng có thể được sử dụng. Thuật toán lan truyền ngược chỉ yêu cầu hàm khả vi ở mọi nơi. Sigmoid đáp ứng yêu cầu này. Của anh lợi thế bổ sung bao gồm kiểm soát khuếch đại tự động. Đối với các tín hiệu yếu (tức là khi gần bằng 0), đường cong đầu vào-đầu ra có độ dốc lớn, mang lại mức tăng lớn. Khi tín hiệu trở nên lớn hơn, mức tăng giảm xuống. Do đó, mạng nhận được các tín hiệu lớn mà không bị bão hòa và các tín hiệu yếu đi qua mạng mà không bị suy giảm quá mức.

Mục tiêu của đào tạo mạng Một thuật toán lan truyền ngược lỗi là một sự điều chỉnh các trọng số của nó sao cho việc áp dụng một tập hợp đầu vào nhất định dẫn đến tập hợp đầu ra cần thiết. Để cho ngắn gọn, các tập hợp đầu vào và đầu ra này sẽ được gọi là vectơ. Trong quá trình đào tạo, giả định rằng đối với mỗi vectơ đầu vào có một vectơ đích được ghép nối xác định đầu ra được yêu cầu. Họ cùng nhau được gọi là cặp đào tạo. Mạng được đào tạo trên nhiều cặp.

Tiếp theo:

  1. Khởi tạo trọng số synap với các giá trị ngẫu nhiên nhỏ.
  2. Chọn cặp huấn luyện tiếp theo từ tập huấn luyện; cung cấp vectơ đầu vào cho đầu vào của mạng.
  3. Tính toán đầu ra của mạng.
  4. Tính toán sự khác biệt giữa đầu ra mạng và đầu ra mong muốn (vectơ mục tiêu của cặp huấn luyện).
  5. Điều chỉnh trọng số mạng để giảm thiểu lỗi (như hình bên dưới).
  6. Lặp lại các bước từ 2 đến 5 cho mỗi vectơ của tập huấn luyện cho đến khi lỗi trên toàn tập đạt đến mức chấp nhận được.

Các thao tác được thực hiện ở bước 2 và 3 tương tự như các thao tác được thực hiện trong quá trình vận hành mạng đã được đào tạo, tức là một vectơ đầu vào được đưa vào và kết quả đầu ra được tính toán. Các tính toán được thực hiện trong các lớp. Trên hình. 1, đầu tiên, đầu ra của các nơ-ron của lớp được tính toán (lớp là đầu vào, có nghĩa là không có phép tính nào diễn ra trong đó), sau đó chúng được sử dụng làm đầu vào của lớp, đầu ra của các nơ-ron của lớp là được tính toán, tạo thành vectơ đầu ra của mạng. Bước 2 và 3 hình thành cái được gọi là chuyển tiếp khi tín hiệu truyền qua mạng từ đầu vào đến đầu ra.

Bước 4 và 5 tạo thành "back pass" trong đó tín hiệu lỗi được tính toán truyền trở lại qua mạng và được sử dụng để điều chỉnh trọng số.

Chúng ta hãy xem xét kỹ hơn bước 5 - điều chỉnh trọng số mạng. Có hai trường hợp cần được nhấn mạnh ở đây.

Trường hợp 1. Điều chỉnh trọng số khớp thần kinh của lớp đầu ra

Ví dụ, đối với mô hình mạng thần kinh trong Hình. 1, đây sẽ là các trọng số có ký hiệu sau: và . Hãy xác định rằng chỉ số sẽ biểu thị nơ-ron mà trọng lượng khớp thần kinh đi ra và nơ-ron mà nó đi vào:

Hãy để chúng tôi giới thiệu giá trị , bằng với chênh lệch giữa đầu ra bắt buộc và đầu ra thực, nhân với đạo hàm của hàm kích hoạt logistic (xem công thức của hàm kích hoạt logistic ở trên):

Khi đó, trọng số của lớp đầu ra sau khi hiệu chỉnh sẽ bằng:

Dưới đây là một ví dụ về tính toán cho trọng lượng khớp thần kinh:

Trường hợp 2. Điều chỉnh Trọng số Synaptic của Lớp ẩn

Đối với mô hình mạng thần kinh trong hình. 1, đây sẽ là các trọng số tương ứng với các lớp và . Hãy xác định rằng chỉ số sẽ biểu thị nơ-ron mà trọng lượng khớp thần kinh đi ra và nơ-ron mà nó đi vào (chú ý đến sự xuất hiện của một biến mới ).