Chương 3 : LÝ THUYẾT MẠNG THẦN KINH NHÂN TẠO
3.5. Một số mơ hình mạng nơ-ron ứng dụng để nhận dạng ảnh
3.5.1. Mạng Perceptron (mạng truyền thẳng 1 lớp) Cấu trúc mạng: Cấu trúc mạng:
Mạng Perceptron là mạng nơ-ron có cấu trúc truyền thẳng 1 lớp. Hàm tổng ở ngõ vào của mạng Perceptron là hàm tuyến tính, hàm tác động ở ngõ ra có thể là hàm dấu, hàm tuyến tính hay hàm dạng S. Tùy theo từng loại hàm tác động mà ta có các thuật tốn khác nhau để huấn luyện mạng Perceptron.
x y d Tín hiệu củng cố Trọng số W của mạng nơ-ron
Tín hiệu vào Tín hiệu ra
Bộ tạo tín hiệu đánh giá Tín hiệu đánh giá x y Trọng số W của mạng nơ-ron
Hình 3.5 Mơ hình mạng Perceptron 1 lớp (mạng truyền thẳng 1 lớp)
Huấn luyện mạng:
Thuật toán huấn luyện mạng Perceptron được gọi là thuật toán học Perceptron. Thuật tốn học này cịn được gọi là thuật toán học sửa sai (Error Correction Learning Rule).
Thuật tốn học Perceptron được tóm tắt như sau [15]: Bước 1: Chọn tốc độ học 𝜂 > 0.
Bước 2: Khởi động: - Gán sai số E = 0 - Gán biến chạy k = 1
- Gán các vector trọng số 𝑤𝑖(𝑘) (𝑖 = 1, 𝑛̅̅̅̅̅) bằng giá trị ngẫu nhiên nhỏ bất kỳ.
Bước 3: Q trình huấn luyện bắt đầu, tính:
𝑦𝑖(𝑘) = 𝑠𝑡𝑒𝑝(𝑤𝑖𝑇(𝑘)𝑥(𝑘)) = 𝑠𝑡𝑒𝑝 (∑ 𝑤𝑖𝑗(𝑘)𝑥𝑗(𝑘)
𝑚
𝑗=1
) (𝑖 = 1, 𝑛̅̅̅̅̅) (3.1)
𝑤𝑖(𝑘 + 1) = 𝑤𝑖(𝑘) + 𝜂(𝑑𝑖(𝑘) − 𝑦𝑖(𝑘)). 𝑥(𝑘) (𝑖 = 1, 𝑛̅̅̅̅̅) (3.2)
Bước 5: Tính sai số tích lũy:
𝐸 = 𝐸 +1
2‖𝑑(𝑘) − 𝑦(𝑘)‖2 (3.3)
Bước 6: Nếu k < K thì gán k = k+1 và trở lại bước 3. Nếu k = K thì tiếp tục bước 7. Bước 7: Kết thúc một chu kỳ huấn luyện (epoch).
- Nếu 𝐸 = 0 thì kết thúc quá trình học.
- Nếu 𝐸 ≠ 0 thì gán 𝐸 = 0, k = 1 và trở lại bước 3 bắt đầu một chu kỳ huấn luyện mới.
3.5.2. Mạng truyền thẳng nhiều lớp Cấu trúc mạng: Cấu trúc mạng:
Mạng truyền thẳng nhiều lớp là mạng truyền thẳng có từ hai lớp tế bào thần kinh xử lý trở lên. Lớp tế bào thần kinh nối với ngõ vào gọi là lớp vào (thường lớp vào không thực hiện các phép toán xử lý), lớp tế bào thần kinh nối với ngõ ra gọi là lớp ẩn. Kết nối giữa các tế bào thần kinh ở các lớp có thể đầy đủ hoặc khơng đầy đủ.
Khác với mạng truyền thẳng 1 lớp, mạng truyển thẳng nhiều lớp có thể giải bài tốn khơng khả phân tuyến tính.
Huấn luyện mạng:
Thuật toán huấn luyện mạng truyền thẳng nhiều lớp là thuật toán lan truyền ngược. Thuật toán lan truyền ngược thực hiện hai bước truyền thông tin. Thứ nhất, mẫu dữ liệu vào x(k) được truyền từ ngõ vào đến ngõ ra, kết quả của việc truyền dữ liệu theo hướng thuận là tạo ra tín hiệu y(k) ở ngõ ra của mạng. Sau đó sai số là sai lệch giữa d(k) và y(k) được truyền ngược từ lớp ra trở về lớp trước đó để cập nhật trọng số của mạng.
Lớp vào Lớp ẩn Lớp ẩn Lớp ra Hình 3.6 Mạng truyền thẳng nhiều lớp
Thuật toán lan truyền ngược để huấn luyện mạng truyền thằng nhiều lớp được tóm tắt như sau [15]:
Bước 1: Chọn tốc độ 𝜂 > 0, chọn sai số cực đại 𝐸𝑚𝑎𝑥. Bước 2: Khởi động:
- Gán sai số E=0 - Gán biến chạy k=1
- Gán các trọng số 𝑤𝑖𝑞(𝑘), 𝑣𝑞𝑗(𝑘) (𝑖 = 1, 𝑛̅̅̅̅̅; 𝑗 = 1, 𝑚̅̅̅̅̅̅; 𝑞 = 1, 𝑙̅̅̅̅) bằng giá trị
ngẫu nhiên nhỏ bất kỳ
Bước 3: (Truyền thuận dữ liệu) Tính ngõ ra của mạng với tín hiệu vào là 𝑥(𝑘): Lớp ẩn: 𝑛𝑒𝑡𝑞(𝑘) = ∑ 𝑣𝑞𝑗(𝑘)𝑥𝑗(𝑘) 𝑚 𝑗=1 (𝑞 = 1, 𝑙̅̅̅̅) (3.4) 𝑧𝑞(𝑘) = 𝑎ℎ(𝑛𝑒𝑡𝑞(𝑘)) (𝑞 = 1, 𝑙̅̅̅̅) (3.5) Lớp ra: 𝑛𝑒𝑡𝑖(𝑘) = ∑ 𝑤𝑖𝑞(𝑘)𝑧𝑞(𝑘) 𝑙 𝑞=1 (𝑖 = 1, 𝑛̅̅̅̅̅) (3.6) 𝑦𝑖(𝑘) = 𝑎𝑜(𝑛𝑒𝑡𝑖(𝑘)) (𝑖 = 1, 𝑛̅̅̅̅̅) (3.7) x2 x3 xm y2 ym
Bước 4: (Lan truyền ngược sai số) Cập nhập trọng số của mạng: Lớp ra: 𝛿𝑜𝑖(𝑘) = [(𝑑𝑖(𝑘) − 𝑦𝑖(𝑘))][𝑎′𝑜(𝑛𝑒𝑡𝑖(𝑘))] (𝑖 = 1, 𝑛̅̅̅̅̅) (3.8) 𝑤𝑖𝑞(𝑘 + 1) = 𝑤𝑖𝑞(𝑘) + 𝜂𝛿𝑜𝑖(𝑘)𝑧𝑞(𝑘) (𝑖 = 1, 𝑛̅̅̅̅̅) (𝑞 = 1, 𝑙̅̅̅̅) (3.9) Lớp ẩn: 𝛿ℎ𝑞(𝑘) = [∑ 𝛿𝑜𝑖(𝑘)𝑤𝑖𝑞(𝑘) 𝑛 𝑖=1 ] [𝑎′ℎ(𝑛𝑒𝑡𝑞(𝑘))] 𝑞 = 1, 𝑙̅̅̅̅) (3.10) 𝑣𝑞𝑗(𝑘 + 1) = 𝑣𝑞𝑗(𝑘) + 𝜂𝛿ℎ𝑞(𝑘)𝑥𝑗(𝑘) (𝑗 = 1, 𝑚̅̅̅̅̅̅) (𝑞 = 1, 𝑙̅̅̅̅) (3.11)
Bước 5: Tính sai số tích lũy:
𝐸 = 𝐸 +1
2∑(𝑑𝑖(𝑘) − 𝑦𝑖(𝑘))2
𝑛
𝑖=1
(3.12)
Bước 6: Nếu k < K thì gán k = k+1 và trở lại bước 3. Nếu k = K thì tiếp tục bước 7 Bước 7: Kết thúc một chu kỳ huấn luyện.
Nếu 𝐸 < 𝐸𝑚𝑎𝑥 thì kết thúc quá trình học.
Nếu 𝐸 ≥ 𝐸𝑚𝑎𝑥 thì gán E = 0, k = 1 và trở lại bước 3 bắt đầu một chu kỳ huấn luyện mới.
Có nhiều mơ hình mạng nơ-ron dùng để nhận dạng ảnh, trong đó mạng nơ- ron truyền thẳng nhiều lớp với thuật tốn lan truyền ngược là mơ hình đơn giản và hay được sử dụng nhất. Trong đề tài này, tác giả sử dụng mạng nơ-ron truyền thẳng 2 lớp với thuật toán lan truyền ngược.