Chương 2. Cơ sở lý thuyết
2.5 Taguchi, ANOVA, Neural network
2.5.3 Mạng nơ ron nhân tạo và thuật toán lan truyền ngược
2.5.3.2 Mạng nơ ron truyền thẳng nhiều lớp (MLP) và thuật toán lan truyền ngược
a. Cấu tạo nơ ron truyền thẳng nhiều lớp
Mạng truyền thẳng nhiều lớp (MLP)
Hình 2. 15: Hình ảnh sơ đồ mạng nơ ron nhiều lớp Thuật toán lan truyền ngược (Back propagation)
- Bước 1: Chọn ; gán k=1, E=0; khởi động ngẫu nhiên trọng số lớp ẩn và
lớp ra
(k), (k) (1 ≤ ≤ , 1 ≤ ≤ )
- Bước 2: ( Truyền thuận dữ liệu) Tính ngõ ra của mạng với tín hiệu vào x(k) (1≤≤)
Lớp ẩn:
Lớp ra:
- Bước 3: ( Lan truyền ngược sai số). Cập nhật trọng số
Lớp ra:
( )=[(
( )=[∑
ℎ =1
( + 1) = ( ) + ℎ ( ) ( )
- Bước 4: Tính sai số tích lũy:
E=E+
1
∑
2
- Bước 5: Nếu k < K thì gán k=k+1 và trở lại bước 2 Nếu k=K thì tiếp tục bước 7.
- Bước 6: Kết thúc chu kỳ huấn luyện. Nếu E≤ thì kết thúc. Nếu E > thì gán k=1, E=0 và trở lại bước 2.
b. Chọn lớp ẩn
- Số lớp ẩn
Về lý thuyết không có lý do nào sử dụng các mạng có nhiều hơn hai lớp ẩn. Người ta
đã xác định rằng đối với phần lớn các bài toán cụ thể chỉ cần sử dụng một lớp ẩn cho
mạng là đủ để giải quyết. Các bài toán sử dụng hai lớp ẩn hiếm khi xảy ra trong thực tế.
Ngoài ra, việc huấn luyện mạng thường rất chậm khi mà số lớp ẩn sử dụng càng nhiều.
Lý do sau đây giải thích cho việc sử dụng càng ít các lớp ẩn càng tốt là:
Phần lớn các thuật toán luyện mạng cho các mạng nơ ron truyền thẳng đều dựa
trên phương pháp gradient. Các lớp thêm vào sẽ thêm việc phải lan truyền các lỗi
làm cho vector gradient rất không ổn định.
Số các cực trị địa phương tăng lên rất lớn khi có nhiều lớp ẩn và xác suất khá cao
là chúng ta sẽ bị tắc trong một cực trị địa phương sau rất nhiều thời gian lặp, khi đó
sẽ ta phải bắt đầu lại.
Về tổng thể, người ta cho rằng việc đầu tiên là nên xem xét khả năng sử dụng
mạng chỉ có một lớp ẩn. Nếu dùng một lớp ẩn với một số lượng lớn các đơn vị mà
không có hiệu quả thì nên sử dụng thêm một lớp ẩn nữa với một số ít các đơn vị.
- Số nơ ron trong lớp ẩn
Một vấn đề quan trọng trong việc thiết kế một mạng là cần có bao nhiêu nơ ron
trong lớp ẩn. Sử dụng quá ít nơ ron có thể dẫn đến việc không thể nhận dạng được
các tín hiệu đầy đủ trong một tập dữ liệu phức tạp. Sử dụng quá nhiều nơ ron sẽ
tăng thời gian luyện mạng. Số lượng tốt nhất của các đơn vị ẩn phụ thuộc vào rất
nhiều yếu tố - số đầu vào, đầu ra của mạng, số trường hợp trong tập mẫu, độ nhiễu
của dữ liệu đích, độ phức tạp của hàm lỗi, kiến trúc mạng và thuật toán luyện mạng.
Có rất nhiều cách để lựa chọn số đơn vị trong các lớp ẩn chẳng hạn nằm giữa
khoảng kích thước lớp vào, lớp ra.
m∈ ( , )
m=
2( + )
3
m< 2.
m=t.z
Trong đó:
m:Số nơ ron lớp ẩn
t: Số lớp đầu vào
z: Số lớp đầu ra
Các luật này chỉ có thể được coi như là các lựa chọn thô khi chọn lựa kích thước của các lớp. Chúng không phản ánh được thực tế, bởi lẽ chúng chỉ xem xét đến nhân tố kích thước đầu vào, đầu ra mà bỏ qua các nhân tố quan trọng khác như: số trường hợp đưa vào huấn luyện, độ nhiễu ở các đầu ra mong muốn, độ phức tạp của hàm lỗi, kiến trúc của mạng (truyền thẳng hay hồi quy), và thuật toán học.
Trong phần lớn các trường hợp, không có một cách để có thể dễ dàng xác định được số tối ưu các đơn vị trong lớp ẩn mà không phải luyện mạng sử dụng số các đơn vị trong lớp ẩn khác nhau và dự báo lỗi tổng quát hóa của từng lựa chọn. Cách tốt nhất là sử dụng phương pháp thử-sai (trial-and-error). Trong thực tế, có thể sử dụng phương pháp. Lựa chọn tiến (forward selection) hay lựa chọn lùi (backward selection) để xác định số đơn vị trong lớp ẩn.
c. Dừng quá trình huấn luyện và đánh giá sai số mạng
Quá trình huấn luyện mạng nơ ron có thể được dừng lại khi mạng có thể nhận ra tất cả các mẫu hoặc đáp ứng được mức sai số hay yêu cầu cụ thể. Ta có thể ước lượng tổng sai số của mạng bằng cách cộng dồn các sai số của mỗi lần huấn luyện. Nói cách khác, mạng nơ ron tiếp tục quá trình huấn luyện tất cả các mẫu lặp đi lặp lại cho đến khi tổng sai số giảm dưới một giá trị đích định trước rồi dừng. Khi tính toán tổng sai số cho điều kiện dừng của mạng, cần chuyển các sai số về giá trị dương.
Sau khi mạng nơ ron được huấn luyện, nó sẽ có khả năng nhận ra được không chỉ các mẫu ví dụ hoàn thiện mà còn có thể nhận dạng các mẫu bị lỗi, nhiễu. Thực tế, ta
có thể chủ động thêm vào tập mẫu huấn luyện các mẫu nhiễu để cải thiện khả năng kháng lỗi của mạng. Quá trình đạo tạo sẽ hiệu quả hơn nếu các mẫu áp dụng cho việc huấn luyện được sắp xếp theo thứ tự ngẫu nhiên.
Khi mạng nơ ron được huấn luyện đầy đủ, sai số tập hợp lệ sẽ đạt cực tiểu. Khi mạng bị huấn luyện quá mức, giá trị sai số của tập hợp lệ bắt đầu tăng dần, và khi
đó, mạng nơ ron này sẽ mất dần khả năng xử lý các dữ liệu nhiễu.
d. Vấn đề của mạng lan truyền ngược
chỉnh trọng số để giảm giá trị sai số. Như đôi lúc giá trị sai số cần phải tăng ở một khu vực cục bộ để đảm bảo quá trình giảm toàn cục và giải thuật bị mắc kẹt, dừng lại khi sai số chưa phải là cực tiểu mong muốn.
Khi mạng trở nên lớn hơn, ta sẽ phải đối mặt với nhiều vấn đề hơn nhưng hầu hết đều có thể giải quyết bằng cách khởi tạo lại trọng số của mạng. Và hiện nay cũng đã
có nhiều dạng khác nhau của giải thuật lan truyền ngược được phát triển để giải quyết các vấn đề này.
Ưu điểm của mạng sử dụng giải thuật lan truyền ngược là khả năng nhận được mẫu. Các mẫu được trình diện trực tiếp cho mạng được xác định vị trí trên lưới ô vuông và đúng kích thước. Nhược điểm trong nhận dạng mẫu của nó là khả năng xử
lý các mẫu trong các quan cảnh hỗn loạn như nhận dạng khuôn mặt trong đám đông hay 1 kí tự trong một trang in. Do đó, chúng ta sẽ phải cần tiền xử lý dử liệu để có được định dạng chuẩn trước khi áp dụng cho mạng.
e. Ứng dụng Matlab 2018 trong mạng nơ ron nhân tạo
MATLAB là phần mềm cung cấp môi trường tính toán số và lập trình, do công ty MathWorks thiết kế. MATLAB cho phép tính toán số với ma trận, vẽ đồ thị hàm số hay biểu đồ thông tin, thực hiện thuật toán, tạo các giao diện người dùng và liên kết với những chương trình máy tính viết trên nhiều ngôn ngữ lập trình khác.
Với thư viện Toolbox, MATLAB cho phép mô phỏng tính toán, thực nghiệm nhiều mô hình trong thực tế và kỹ thuật. Đặc biệt là công cụ Neuron Network giúp
ta thành lập và giải các bài toán về mạng nơ ron nhân tạo.
Hình 2. 16: Hình ảnh phần mềm Matlab R2018a
37