Người ta khuyến nghị rằng tập huấn luyện và tập kiểm tra nên được giữ nguyên tỉ lệ trong quá trình huấn luyện mạng, vì mục tiêu của tập kiểm tra là để xác định khả năng tổng quát hóa của mạng. Tuy nhiên, tập đánh giá không nhất thiết phải cùng tỉ lệ với tập huấn luyện và tập kiểm tra vì đây là bước kiểm tra sau cùng và độc lập.
5). Bước 5: Xác định mô hình mạng nơron
Có rất nhiều cách xây dựng mạng nơron. Cấu trúc và kiến trúc mạng nơron là 2 cụm từ thường được dùng để mô tả về cách tổ chức một mạng nơron. Sự kết hợp của cấu trúc nơron và kiến trúc sẽ định nghĩa ra mô hình mạng nơron. Cấu trúc nơron mô tả tính chất của một nơron độc lập như hàm chuyển đổi hay cách các đầu vào kết hợp với nhau. Kiến trúc mạng nơron thường bao gồm các yếu tố như số lớp, số nơron trong mỗi lớp và cách thức liên kết của chúng.
đầu vào. Phần này sẽ đề cập tới cách lựa chọn số lớp ẩn, số nơron ẩn, số nơron đầu ra và hàm chuyển đổi.
a. Số lượng lớp ẩn
Số lượng lớp ẩn đại diện cho khả năng tổng quát hóa của mạng. Theo lý thuyết, mạng nơron với một lớp ẩn và một số lượng đủ lớn các nơron ẩn sẽ có khả năng xấp xỉ được bất kỳ hàm liên tục nào. Trong thực tế, mạng nơron với một lớp ẩn và đôi khi là hai lớp ẩn được sử dụng rộng rãi và cho kết quả tốt. Tăng số lượng lớp ẩn lên cũng đồng nghĩa với tăng thời gian tính toán và tăng nguy cơ bị quá phú hợp (overfitting). Phù hợp quá xảy ra khi mô hình dự báo có quá ít mẫu liên quan tới các tham số của nó và do đó nó sẽ ghi nhớ các điểm độc lập chứ không phải là học mô hình chung. Cụ thể đối với mạng nơron, số lượng trọng số, cái được gắn cố định với số lượng các lớp và nơron ẩn, và kích thước của tập huấn luyện (số lượng mẫu) sẽ quyết định khả năng xảy ra overfitting. Càng có nhiều trọng số liên quan tới kích thước của tập huấn luyện thì càng dễ xảy ra khả năng mạng ghi nhớ các đặc tính của các mẫu độc lập. Điều đó đồng nghĩa với việc khả năng tổng quát hóa sẽ mất đi và khả năng dự báo thực tế của mô hình sẽ kém.
Chính vì thế, người ta khuyến nghị rằng tất cả các mạng nơron nên bắt đầu với một hoặc cùng lắm là hai lớp ẩn. Nếu một mạng nơron 4 lớp (2 lớp ẩn) vẫn không thỏa mãn được các điều kiện kiểm tra sau khi đã thử thay đổi các trọng số hợp lý cho các nơron ẩn thì người nghiên cứu nên sửa lại các biến đầu vào nhiều lần trước khi thêm lớp ẩn thứ 3. Cả lý thuyết và các kinh nghiệm thực tiễn đều cho thấy là các mạng nơron với nhiều hơn 4 lớp đều không thể cải thiện được kết quả dự báo.
b. Số lượng nơron ẩn
Mặc dù đây là yếu tố rất quan trọng nhưng không có công thức “thần kỳ” nào để đưa ra được số lượng tối ưu các nơron ẩn. Chính vì thế, chúng ta bắt buộc phải quay trở lại vấn đề thực nghiệm. Tuy nhiên, các nghiên cứu trước đây đã đưa ra một số luật cơ bản. Chúng ta có thể tính xấp xỉ số lượng nơron ẩn theo luật Kim tự tháp được đưa ra bởi Masters. Luật này như sau: trong một mạng nơron 3 lớp với n nơron đầu vào và m nơron đầu ra thì lớp ẩn nên có n.m
nơron. Số lượng nơron ẩn thực tế có thể dao động từ một nửa tới 2 lần số lượng đề xuất bởi luật Kim tự tháp tùy theo độ phức tạp của bài toán. Baily và Thompson [8] thì khuyến nghị là số lượng nơron ẩn trong một mạng nơron 3 lớp nên là 75% số lượng nơron đầu vào. Katz [11] chỉ ra rằng số lượng tối ưu các nơron ẩn sẽ nằm trong khoảng từ ½ tới 3 lần số lượng nơron đầu vào. Ersoy [12]
đề nghị một phương pháp là cứ tiếp tục tăng gấp đôi số nơron ẩn cho tới khi nào việc thử nghiệm mạng với tập kiểm tra cho kết quả xấu đi. Klimasauskas [13] khuyến nghị là số lượng sự kiện huấn luyện nên nhiều ít nhất gấp 5 lần số lượng trọng số.
Cần chú ý là các luật tính toán số lượng nơron ẩn dựa trên số lượng nơron đầu vào đều ngầm định là tập huấn luyện phải lớn ít nhất gấp 2 lần số lượng trọng số và nên lớn hơn từ 4 lần trở lên. Nếu không thỏa mãn được điều kiện này thì các luật trên sẽ nhanh chóng dẫn mô hình tới tình trạng overfitting bởi số lượng nơron ẩn phụ thuộc trực tiếp vào số lượng nơron đầu vào (nơron đầu vào quyết định số lượng trọng số). Giải pháp cho tình trạng này là hoặc tăng kích thước của tập huấn luyện, hoặc nếu không thì giới hạn lại số lượng nơron đầu vào sao cho số lượng trọng số chỉ bằng một nửa số sự kiện huấn luyện. Trong trường hợp này việc lựa chọn các biến đầu vào cũng trở thành một bài toán khó. Có 3 phương pháp để lựa chọn số lượng tốt nhất các nơron ẩn là: phương pháp cố định, phương pháp tăng thêm và phương pháp giảm bớt. Trong cách tiếp cận cố định, một nhóm mạng nơron với số lượng nơron ẩn khác nhau được huấn luyện và lần lượt đánh giá trên một tập kiểm tra với các trọng số được khởi tạo ngẫu nhiên. Số lượng các nơron tăng thêm có thể là 1, 2 hoặc nhiều tùy theo quá trình tính toán. Kết quả đánh giá lỗi trên tập kiểm tra của các mạng nơron sẽ được ghi lại dưới dạng một hàm của số lượng nơron ẩn và tạo thành một đồ thị lỗi. Mạng nào ít lỗi nhất sẽ được chọn vì nó sẽ có khả năng tổng quát hóa cao nhất. Cách này rất tốn thời gian, tuy nhiên thường cho kết quả rất tốt.
Cách tiếp cận tăng thêm hoặc giảm đi thường thay đổi số lượng nơron ẩn ngay trong quá trình huấn luyện chứ không tạo ra nhiều mạng nơron với số lượng nơron ẩn khác nhau như trong phương pháp cố định. Rất nhiều gói phần mềm thương mại về mạng nơron không hỗ trợ việc thêm hoặc bớt các nơron ẩn trong quá trình huấn luyện. Tư tưởng của cách tiếp cận tăng thêm là cứ tăng thêm số lượng nơron ẩn cho tới khi khả năng thực thi của mạng bắt đầu kém đi. Tư tưởng của cách tiếp cận giảm đi cũng tương tự, tuy nhiên số lượng nơron ẩn được giảm dần đi trong quá trình huấn luyện.
Bất kể là sử dụng phương pháp nào để tìm số lượng nơron ẩn thì có một quy luật chung là luôn luôn chọn mạng thực thi tốt nhất trên tập kiểm tra với số lượng nơron ẩn ít nhất. Trong quá trình thử nghiệm để tìm số nơron ẩn, các tham số khác phải được giữ nguyên. Thay đổi bất kỳ tham số nào khác sẽ tạo ra một
c. Số lượng nơron đầu ra
Quyết định số lượng nơron đầu ra nói chung là một vấn đề khá dễ dàng bởi có nhiều lý do thuyết phục để luôn luôn sử dụng mạng với duy nhất một nơron đầu ra. Mạng nơron với nhiều đầu ra, đặc biệt nếu những đầu ra này khá cách biệt, sẽ cho kết quả kém hơn so với một mạng nơron chỉ có một đầu ra. Một mạng nơron được huấn luyện bằng cách chọn các trọng số sao cho tối thiểu hóa sai số trung bình toàn phần của nơron đầu ra. Ví dụ, một mạng nơron để dự báo giá đồ đạc trong 1 tháng tới và 6 tháng tới sẽ tập trung vào việc giảm sai số lớn nhất của nó, ở đây là sai số khi dự báo cho 6 tháng. Vì vậy nó sẽ không cải tiến được nhiều cho việc dự báo 1 tháng. Giải pháp đưa ra ở đây là xây dựng các mạng nơron chuyên biệt cho mỗi mục tiêu dự báo. Chuyên biệt hóa các mạng nơron cũng sẽ làm giảm lỗi bởi các mạng nơron sẽ trở nên nhỏ hơn và sẽ có ít tham số phải thay đổi hơn để tối ưu hóa mô hình cuối cùng.
d. Hàm kích hoạt
Hàm kích hoạt là các công thức toán học quyết định đầu ra của quá trình xử lý nơron. Nó cũng có tên khác là hàm chuyển đổi, hàm ngưỡng… Đa phần các mạng nơron hiện nay sử dụng hàm sigmoid, ngoài ra còn có thể sử dụng các hàm khác như hàm tang hypebol, hàm ngưỡng, hàm arctang, hàm tuyến tính… Mục tiêu của hàm kích hoạt là ngăn không cho mạng nơron tạo ra các giá trị đầu ra quá lớn mà có thể làm “tê liệt” mạng và làm cản trở quá trình huấn luyện. Các hàm kích hoạt tuyến tính thường không hữu dụng cho các bài toán phi tuyến. Các bài toán về thị trường, tài chính thường là các bài toán phi tuyến và các hàm kích hoạt phi tuyến sẽ cho kết quả tốt hơn, ví dụ như hàm sigmoid rất thích hợp với dữ liệu chuỗi thời gian.
Klimasauskas cho rằng nếu dùng mạng nơron để học các đặc tính trung bình của tập dữ liệu thì nên sử dụng hàm sigmoid, còn nếu dùng mạng nơron để học về độ lệch so với giá trị trung bình thì hàm tang hypecbolic là thích hợp nhất. Hàm dốc và hàm ngưỡng thường được dùng cho các biến nhị phân bởi vì hàm sigmoid chỉ tiệm cận tới các giá trị 0 hoặc 1. Trong mạng truyền thẳng chuẩn, lớp nơron đầu vào thường sử dụng hàm kích hoạt tuyến tính còn các lớp còn lại sử dụng hàm sigmoid.
Dữ liệu thô thường được đưa về khoảng [0,1] hoặc [-1,1], như vậy nó sẽ thống nhất với các hàm kích hoạt. Hai phương pháp chia lại tỉ lệ dữ liệu được sử dụng phổ biến nhất với mạng nơron là: chia tỉ lệ tuyến tính và chia tỉ lệ theo độ
lệch chuẩn/trung bình. Trong phương pháp chia tỉ lệ tuyến tính, các mẫu dữ liệu được đưa về khoảng giữa giá trị lớn nhất và nhỏ nhất theo công thức:
) ( ) ( ) ( min max min min max min D D D D TF TF TF SV
trong đó SV là giá trị sau khi chia tỉ lệ, TFmin và TFmax là giá trị lớn nhất và nhỏ nhất của hàm kích hoạt, D là giá trị của mẫu, và Dmin, Dmax là giá trị lớn nhất và nhỏ nhất của tập mẫu.
Phương pháp chia tỉ lệ tuyến tính rất nhạy cảm với các điểm ngoại lai bởi nó không chuyển đổi sự đồng dạng của phân bố mà chỉ đưa chúng vào khoảng giá trị thích hợp của hàm kích hoạt. Trong hình 4, tập dữ liệu S & P 500 được chia tỉ lệ tuyến tính và kết quả là 98.6% mẫu dữ liệu đã bị đưa về khoảng nhỏ hơn 10% khoảng của hàm kích hoạt. Phân bố dữ liệu như vậy không thích hợp để huấn luyện mạng nơron.
Trong phương pháp chia tỉ lệ độ lệch chuẩn và trung bình, tất cả các giá trị sẽ được đưa về khoảng [0,1] theo công thức:
A A v v '
Trong đó A và A lần lượt là giá trị trung bình và độ lệch chuẩn. Phương pháp này sẽ giữ được sự đồng dạng của phân bố. Hầu hết các phần mềm mạng nơron đều tự động chia tỉ lệ các biến về khoảng giá trị thích hợp. Dù vậy, vẫn nên xem qua biểu đồ histogram của biến đầu ra và biến đầu vào sau khi chia tỉ lệ.
6). Bước 6: Xác định hàm đánh giá sai số
Hàm đánh giá thông dụng nhất trong mạng nơron là hàm tổng lỗi bình phương tối thiểu. Một số hàm đánh giá khác phải kể đến là: độ lệch tuyệt đối tối thiểu, lũy thừa bốn tối thiểu, bình phương tối thiểu đồng dạng và sai phân phần trăm. Những hàm đánh giá này có thể không phải là tiêu chí đánh giá cuối cùng bởi vì các phương pháp đánh giá dự báo thông thường như phần trăm lỗi tuyệt
đối trung bình (mean absolute percentage error – MAPE) thường là không đạt
cực tiểu trong mạng nơron.
Ví dụ một hệ thống bán đồ đạc, những dự báo của mạng nơron sẽ được chuyển thành tín hiệu mua/bán dựa vào các tiêu chí xác định trước, ví dụ các giá trị dự báo lớn hơn 0.8 hoặc 0.9 sẽ được coi là tín hiệu mua còn các giá trị dự báo nhỏ hơn 0.1 hoặc 0.2 sẽ được coi là các tín hiệu bán. Các tín hiệu mua/bán sau đó sẽ được đưa vào một chương trình tính rủi ro và mạng nào có kết quả rủi ro thấp nhất (chứ không phải là kết quả lỗi nhỏ nhất trên tập kiểm tra) sẽ được chọn.
Lọc các giá trị của chuối thời gian để loại bỏ các thay đổi nhỏ có thể giúp tránh được tình trạng mạng nơron có điểm chuyển cao mà độ chính xác dự báo vẫn không chấp nhận được.
7). Bước 7: Huấn luyện mạng nơron
Huấn luyện một mạng nơron để học được các mẫu là việc cho mạng nơron chạy qua các dữ liệu có câu trả lời đúng. Mục tiêu của việc huấn luyện là tìm ra tập các trọng số giữa các nơron mà có thể cho ra cực tiểu toàn cục của hàm đánh giá. Thông thường, trừ phi mô hình rơi vào tình trạng overfit, nếu không tập trọng số này sẽ cho kết quả tổng quát hóa tốt. Mạng truyền thẳng sử dụng thuật
toán huấn luyện giảm gradient, điều chỉnh các trọng số đi xuống theo chiều dốc nhất của mặt phẳng lỗi. Dù vậy, điều này không hoàn toàn đảm bảo là tìm được cực tiểu toàn cục bởi mặt phẳng lỗi có rất nhiều cực tiểu địa phương có thể dẫn thuật toán tới chỗ “tắc”. Sử dụng khái niệm xung lượng và 5 -10 tập trọng số khởi tạo ngẫu nhiên sẽ làm tăng cơ hội tìm được cực tiểu toàn cục. Phần này sẽ đề cập tới việc khi nào có thể dừng việc huấn luyện mạng nơron và các chọn tốc độ học và hệ số xung lượng.
a. Số vòng lặp huấn luyện
Có hai quan điểm khi xem xét vấn đề khi nào có thể dừng huấn luyện mạng nơron. Quan điểm thứ nhất lo ngại về vấn đề có thể vướng vào các cực tiểu địa phương do vậy khó tìm được cực tiểu toàn cục. Người nghiên cứu chỉ nên dừng việc huấn luyện khi không còn cải tiến được hàm đánh giá, dựa trên một số lượng hợp lý các trọng số ngẫu nhiên. Quan điểm này được gọi là “hội tụ”. Quan điểm thứ hai chủ trương tạo ra một loạt các điểm dừng trong khi huấn luyện và kiểm tra tại các điểm dừng đó. Việc huấn luyện sẽ được dừng lại sau một số vòng lặp đã định trước và khả năng tổng quát hóa của mạng nơron trên tập kiểm tra sẽ được đánh giá sau đó lại quay trở lại việc huấn luyện. Mạng nào có kết quả lỗi trên tập kiểm tra thấp nhất từ dưới lên sẽ được chọn vì nó được cho là có khả năng tổng quát hoá tốt nhất.
Vấn đề của phương pháp huấn luyện-kiểm tra là các điểm dừng huấn luyện- kiểm tra có thể tạo ra các kết quả lỗi nhỏ trước khi lỗi tăng lên. Hay nói cách khác, người nghiên cứu không có cách nào biết được liệu việc huấn luyện như thế có thể cải thiện khả năng tổng quát hóa không, bởi các trọng số đều được chọn ngẫu nhiên.
Cả hai quan điểm trên đều đồng ý là tổng quát hóa trên tập đánh giá là mục tiêu cuối cùng và đều sử dụng tập kiểm tra để đánh giá số lượng lớn các mạng nơron. Điểm khác biệt giữa hai cách tiếp cận chủ yếu nằm ở hai khái niệm huấn luyện quá nhiều (overtraining) và phù hợp quá (overfitting). Những người theo cách tiếp cận “hội tụ” cho rằng không tồn tại khái niệm huấn luyện quá nhiều mà chỉ có overfitting. Overfitting chỉ là dấu hiệu chứng tỏ mạng có quá nhiều trọng số. Giải pháp là giảm số lượng nơron ẩn (hoặc số lượng lớp ấn nếu có nhiều hơn 1 lớp ẩn) và/hoặc tăng kích thước của tập huấn luyện lên. Những người theo cách tiếp cận huấn luyện-kiểm tra thì cố gắng bảo vệ quan điểm chống lại overfitting bằng cách dừng việc huấn luyện khi mạng đã có khả năng
Ưu điểm của cách tiếp cận “hội tụ” là làm cho người ta tin rằng mạng luôn đạt được cực tiểu toàn cục. Một ưu điểm nữa là người nghiên cứu phải quan tâm