Mạng nơ-ron truyền thẳng

Một phần của tài liệu Xử lý ảnh Xquang phổi sử dụng mạng nơ ron (Trang 28 - 33)

Chương 2. MẠNG NƠ-RON NHÂN TẠO

2.3. Mạng nơ-ron truyền thẳng

Một mạng truyền thẳng là một mạng nơ-ron nhân tạo trong đó các kết nối giữa các nơ-ron không tạo thành một chu kỳ. Các mạng truyền thẳng là loại đầu tiên và đơn giản nhất của mạng nơ-ron nhân tạo được phát minh. Trong mạng này, thông tin di chuyển theo một hướng, về phía trước, từ các nút đầu vào, thông qua các nút ẩn (nếu có) và các nút đầu ra. Không có chu kỳ hay vòng lặp tồn tại trong mạng.

Hình 2.3. Mạng nơ-ron truyền thẳng nhiều lớp 2.3.2. Thuật toán lan truyền ngược

Mạng đa lớp truyền thẳng sử dụng một loạt các kỹ thuật huấn luyện, phổ biến nhất là thuật toán lan truyền ngược. Ở đây, các giá trị đầu ra được so sánh với các giá trị mong muốn để tính sự sai biệt dựa vào các hàm lỗi xác định trước. Bằng nhiều kỹ thuật, các lỗi sau đó sẽ được truyền qua mạng từ lớp ra ngược lên lớp nhập và được lặp đi lặp lại nhiều lần với một tập các dữ liệu đầu vào p và đầu ra mong muốn t [26, tr.364].

{p1, t1}, {p2, b2}, …, {pQ, tQ} (2.1) Thuật toán điều chỉnh trọng số của mỗi kết nối của nơ-ron để làm giảm giá trị của hàm lỗi. Sau khi lặp đi lặp lại quá trình này đến một số đủ lớn của chu trình huấn luyện, các giá trị trọng số sẽ hội tụ tại nơi mà giá trị của hàm lỗi là nhỏ nhất.

Trong trường hợp này, người ta sẽ nói rằng mạng đã học được một hàm mục tiêu nhất định.

Hình 2.4. mô tả mô hình mạng nơ-ron nhân tạo 3 lớp truyền thẳng sử dụng thuật toán huấn luyện lan truyền ngược [26, tr.2-11].

Hình 2.4. Mô hình mạng nơ-ron truyền thẳng 3 lớp.

Quy ước:

- R là số lượng thuộc tính đầu vào.

- p, 1 là giá trị đầu vào.

- s1, s2, s3 lần lượt là số lượng nơ-ron ở lớp thứ nhất, thứ hai, thứ ba.

- n1, n2, n3 lần lượt là hàm net ở lớp thứ nhất, thứ hai, thứ ba.

- b1, b2, b3 lần lượt là độ dịch (bias) ở lớp thứ nhất, thứ hai, thứ ba.

- f1( ), f2( ), f3( ) lần lượt là hàm kích hoạt ở lớp thứ nhất, thứ hai, thứ ba.

- a1, a2, a3 lần lượt là giá trị xuất ở lớp thứ nhất, thứ hai, thứ ba.

- w1, w2, w3 lần lượt là trọng số liên kết ở lớp thứ nhất, thứ hai, thứ ba.

- Đầu ra của lớp thứ nhất được tính : a1 = f1(w1 p + b1). (2.2) - Đầu ra của lớp thứ hai được tính : a2 = f2(w2 a1 + b2). (2.3) - Đầu ra của lớp thứ ba được tính : a3 = f3(w3 a2 + b3). (2.4) - Kết quả cuối cùng của mạng: a3 = f3(w3 (f2(w2 (f1(w1 p + b1))+ b2)+ b3).

- Công thức tổng quá tính giá trị xuất của một lớp bất kỳ

am + 1 = f m + 1 (Wm + 1 am + bm + 1) với m = 0, 1, …, M - 1. (2.5) M là số lớp trong mạng.

Nơ-ron ở lớp thứ nhất nhận giá trị vào là:

a0 = p (2.6)

Giá trị ra của nơ-ron ở lớp cuối cùng được xem là kết quả đầu ra của mạng

a = aM (2.7)

- Thuật toán lan truyền ngược cho các mạng đa lớp sử dụng chỉ số hiệu suất:

lỗi bình phương. Thuật toán được cung cấp bởi tập hợp các cặp, trong đó p là giá trị đầu vào và t là giá trị ra mong muốn:

{p1, t1}, {p2, t2}, …, {pQ, tQ} (2.8)

- Đầu vào net ở lớp m có công thức như sau

𝑛𝑖𝑚 = ∑𝑗=1𝑆𝑚−1𝑤𝑖,𝑗𝑚𝑎𝑗𝑚−1 + 𝑏𝑖𝑚 (2.9) - Bằng cách điều chỉnh các thông số mạng để giảm thiểu lỗi bình phương trung bình:

F(x) = E[e2] = E[(ta)2] (2.10) - Cách tính độ nhạy sM: độ nhạy của lớp thứ m được tính từ độ nhạy ở lớp m+1. Độ nhạy được lan truyền ngược qua mạng từ lớp cuối cùng để các lớp đầu tiên [26, tr.368]

𝐬𝑀 → 𝐬𝑀−1 → ⋯ → 𝐬2 → 𝐬1

𝐬𝑀 = −2𝐅𝑀(𝐧𝑀)(𝐭 − 𝐚) (2.11) Với Fm(nm) là ma trận Jacobian, được tính theo công thức sau:

(2.12) - Công thức cập nhật trọng số tại các nơ-ron:

𝑤𝑖,𝑗𝑚(𝑘 + 1) = 𝑤𝑖,𝑗𝑚(𝑘) − ∝ 𝑠𝑖𝑚𝑎𝑗𝑚−1 (2.13) 𝑏𝑖𝑚(𝑘 + 1) = 𝑏𝑖𝑚(𝑘) − ∝ 𝑠𝑖𝑚 (2.14) Viết dưới dạng ma trận:

𝐖𝑚(𝑘 + 1) = 𝐖𝑚(𝑘)− ∝ 𝐬𝑚(𝒂𝑚−1)𝑇 (2.15) 𝐛𝑚(𝑘 + 1) = 𝐛𝑚(𝑘)− ∝ 𝐬𝑚 (2.16) - Huấn luyện đồng loạt: để thực hiện huấn luyện hàng loạt, trong đó gradient hoàn thành được tính toán (sau khi tất cả các thuộc tính đầu vào này được áp dụng

cho mạng) trước khi trọng số và bias được cập nhật. Ví dụ, nếu mỗi đầu vào xảy ra với xác suất như nhau, chỉ số hiệu suất lỗi bình phương được tính [26, tr.373]:

F(𝐱) = E[(𝐭 − 𝐚)T(𝐭 − 𝐚)] = 1

𝑄∑𝑄𝑞=1(𝐭𝑞− 𝐚𝑞)𝑇(𝐭𝑞− 𝐚𝑞) (2.17) Do đó, tổng gradient của các lỗi bình phương trung bình là giá trị gradient trung bình của các lỗi bình phương cá nhân. Vì vậy, để thực hiện huấn luyện hàng loạt thuật toán lan truyền ngược, chúng ta sẽ thực hiện tính toán gradient cho tất cả các mẫu đầu vào trong tập huấn luyện. Sau đó, các gradient cá nhân sẽ được tính trung bình để có được tổng gradient. Các phương trình cập nhật cho thuật toán đồng loạt giảm mạnh sẽ là:

𝐖𝑚(𝑘 + 1) = 𝐖𝑚(𝑘) − ∝

𝑄∑𝑄𝑞= 1𝐬𝑞𝑚(𝐚𝑞𝑚−1)𝑇 (2.18) 𝐛𝑚(𝑘 + 1) = 𝐛𝑚(𝑘) − ∝

𝑄∑𝑄𝑞= 1𝐬𝒒𝒎 (2.19) - Momentum (hệ số quán tính): thuật toán thường có thêm khái niệm momentum. Momentum sẽ thúc đẩy di chuyển đi theo theo một hướng xác định nếu sau khi qua nhiều bước đi cùng một hướng, thuật toán sẽ di chuyển nhanh hơn, đưa đến khả năng thoát khỏi vùng giá trị cực tiểu cục bộ và cũng có thể di chuyển nhanh chóng qua vùng bằng phẳng [26, tr.422-423].

Đặt:

∆𝐖𝑚(𝑘) = −∝ 𝐬𝑚(𝐚𝑚−1)𝑇 (2.20)

∆𝐛𝑚(𝑘) = −∝ 𝐬𝑚 (2.21)

Bộ lọc sẽ được thêm vào những thay đổi tham số

∆𝐖𝑚(𝑘) = γ𝐖𝑚(𝑘 − 1) − (1 − γ) ∝ 𝐬𝑚(𝐚𝑚−1)𝑇 (2.22)

∆𝐛𝑚(𝑘) = γ∆𝐛𝑚(𝑘 − 1) − (1 − γ) ∝ 𝐬𝑚 (2.23) Trong đó, ký hiệu 𝛾 chính là biến momentum.

Một phần của tài liệu Xử lý ảnh Xquang phổi sử dụng mạng nơ ron (Trang 28 - 33)

Tải bản đầy đủ (PDF)

(60 trang)