a. Chọn hàm truyền
Không phải bất kỳ hàm truyền nào cũng cho kết quả như mong muốn. Để trả lời cho câu hỏi “hàm truyền như thế nào được coi là tốt?” là điều không hề đơn giản. Có một số quy tắc khi chọn hàm truyền như sau:
Không dùng hàm truyền tuyến tính ở tầng ẩn. Vì nếu dùng hàm truyền tuyến tính ở tầng ẩn thì sẽ làm mất vai trò của tầng ẩn đó: Xét tầng ẩn thứ i:
Tổng trọng số:ni = wiai-1+ bi
ai = f(ni) = wf ni +bf (hàm truyền tuyến tính)
Khi đó: tổng trọng số tại tầng thứ (i + 1)
ni+1= wi+1ai + bi+1
= wi+1[wf ni +bf] + bi+1
= wi+1[wf(wiai-1+ bi) + bf] + bi+1 = Wai-1+ b
Như vậy ni+1= Wai-1+ b, và tầng i đã không còn giá trị nữa.
Chọn các hàm truyền sao cho kiến trúc mạng nơ-ron là đối xứng (tức là với đầu vào ngẫu nhiên thì đầu ra có phân bố đối xứng). Nếu một mạng nơ-ron không đối xứng thì giá trị đầu ra sẽ lệch sang một bên, không phân tán lên toàn bộ miền giá trị của output. Điều này có thể làm cho mạng rơi vào trạng thái bão hòa, không thoát ra được.
Trong thực tế người ta thường sử dụng các hàm truyền dạng – S. Một hàm s(u) được gọi là hàm truyền dạng – S nếu nó thỏa mãn ba tính chất sau:
• s(u) là hàm bị chặn: tức là tồn tại các hằng số C1 ≤ C2 sao cho:
• C1≤s(u)≤C2 với mọi u.
• s(u) là hàm đơn điệu tăng: giá trị của s(u) luôn tăng khi u tăng. Do tính chất thứ nhất, s(u) bị chặn, nên s(u) sẽ tiệm cận tới giá trị cận trên khi u dần tới
dương vô cùng, và tiệm cận giá trị cận dưới khi u dần tới âm vô cùng. • s(u) là hàm khả vi: tức là s(u) liên tục và có đạo hàm trên toàn trục số.
Một hàm truyền dạng - S điển hình và được áp dụng rộng rãi là hàm Sigmoid.
b. Xác định số nơ-ron tầng ẩn
Câu hỏi chọn số lượng noron trong tầng ẩn của một mạng MLP thế nào là khó, nó phụ thuộc vào bài toán cụ thể và vào kinh nghiệm của nhà thiết kế mạng. Nếu tập dữ liệu huấn luyện được chia thành các nhóm với các đặc tính tương tự nhau thì số lượng các nhóm này có thể được sử dụng để chọn số lượng nơ-ron ẩn. Trong trường hợp dữ liệu huấn luyện nằm rải rác và không chứa các đặc tính chung, số lượng kết nối có thể gần bằng với số lượng các mẫu huấn luyện để mạng có thể hội tụ. Có nhiều đề nghị cho việc chọn số lượng nơ-ron tầng ẩn h trong một mạng MLP. Chẳng hạn h phải thỏa mãn h>(p-1)/(n+2), trong đó p là số lượng mẫu huấn luyện và n là số lượng đầu vào của mạng. Càng nhiều nút ẩn trong mạng, thì càng nhiều đặc tính của dữ liệu huấn luyện sẽ được mạng nắm bắt, nhưng thời gian học sẽ càng lớn.
Một kinh nghiệm khác cho việc chọn số lượng nút ẩn là số lượng nút ẩn bằng với số tối ưu các cụm mờ (fuzzy clusters). Phát biểu này đã được chứng minh bằng thực nghiệm. Việc chọn số tầng ẩn cũng là một nhiệm vụ khó. Rất nhiều bài toán đòi hỏi nhiều hơn một tầng ẩn để có thể giải quyết tốt.
Để tìm ra mô hình mạng nơ-ron tốt nhất, Ishikawa and Moriyama (1995) sử dụng học cấu trúc có quên (structural leanrning with forgetting), tức là trong thời gian học cắt bỏ đi các liên kết có trọng số nhỏ. Sau khi huấn luyện, chỉ các noron có đóng góp vào giải quyết bài toán mới được giữ lại, chúng sẽ tạo nên bộ xương cho mô hình mạng nơ-ron.
c. Khởi tạo trọng số
Trọng thường trọng số (weight) được khởi tạo bằng phương pháp thử sai, nó mang tính chất kinh nghiệm và phụ thuộc vào từng bài toán. Việc định nghĩ thế nào là một bộ trọng số tốt cũng không hề đơn giản. Một số quy tắc khi khởi tạo trọng:
• Khởi tạo trọng số sao cho mạng nơ-ron thu được là cân bằng (với đầu vào ngẫu nhiên thì sai số lan truyền ngược cho các ma trận trọng số là xấp xỉ bằng nhau):
• Nếu mạng nơ-ron không cân bằng thì quá trình thay đổi trọng số ở một số ma trận là rất nhanh trong khi ở một số ma trận khác lại rất chậm, thậm chí không đáng kể. Do đó để các ma trận này đạt tới giá trị tối ưu sẽ mất rất nhiều thời
gian.
Tạo trọng sao cho giá trị kết xuất của các nút có giá trị trung gian (0.5 nếu hàm truyền là hàm Sigmoid). Rõ ràng nếu ta không biết gì về giá trị kết xuất thì giá trị ở giữa là hợp lý. Điều này cũng giúp ta tránh được các giá trị thái quá.
Thủ tục khởi tạo trọng thường được áp dụng:
• Bước 1: Khởi tạo các trọng số nút ẩn (và các trọng số của các cung liên kết trực tiếp giữa nút nhập và nút xuất, nếu có) giá trị ngẫu nhiên, nhỏ, phân bố đều quanh 0.
• Bước 2: Khởi tạo một nửa số trọng số của nút xuất giá trị 1, và nửa kia giá trị -1.