Huấn luyện mạng nơron

Một phần của tài liệu (LUẬN văn THẠC sĩ) áp dụng các kỹ thuật phân lớp dữ liệu, hồi quy để dự báo số liệu sản xuất kinh doanh cho VNPT (Trang 42 - 47)

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 tới một tham số (cực tiểu toàn cục) thay vì 2 tham số là điểm dừng huấn luyện để kiểm tra và mạng huấn luyện-kiểm tra nào là tối ưu như trong phương pháp huấn luyện-kiểm tra. Với phương pháp huấn luyện kiểm tra, ưu điểm của nó có thể là mạng với độ chính xác vừa phải xây dựng bằng phương pháp này có thể sẽ đạt độ tổng quát hóa tốt hơn những mạng xây dựng theo cách tiếp cận “hội tụ” mà bị phù hợp quá (overfit). Nhưng nói chung người ta không chú trọng lắm tới ưu điểm này. Một ưu điểm nữa có thể kể đến của cách tiếp cận huấn luyện- kiểm tra là thời gian huấn luyện nhanh hơn cách tiếp cận “hội tụ”.

Hình 9. Đồ thị lỗi của quá trình huấn luyện và kiểm tra mạng nơron

Mục tiêu của cách tiếp cận “hội tụ” là đạt được cực tiểu toàn cục. Việc này đòi hỏi phải thực hiện một số lần thích hợp các vòng lặp huấn luyện với số lượng hợp lý các trọng số được khởi tạo ngẫu nhiên. Dù vậy vẫn không có gì đảm bảo rằng mạng truyền thẳng sẽ đạt được cực tiểu toàn cục bởi nó có thể bị vướng vào các cực tiểu địa phương.Trong thực tế thì các tài nguyên tính toán là có giới hạn và người nghiên cứu phải tính tới vấn đề cân bằng các yếu tố khác nhau để đạt được sự kết hợp tốt nhất. Người nghiên cứu phải sắp đặt, lựa chọn số lượng các biến đầu vào cần kết hợp để huấn luyện, số lượng nơron ẩn mà mạng kiểm tra, số lượng các trọng số khởi tạo ngẫu nhiên, và số lượng tối đa lần chạy.

Ví dụ: một bộ 50 biến đầu vào được kiểm tra qua 3 nơron ẩn với 5 bộ trọng số khởi tạo ngẫu nhiên và số lần chạy tối đa là 4,000 sẽ cho kết quả trong 3,000,000 vòng lặp. Thời gian thực hiện này cũng tương đương với việc 10 biến đầu vào được kiểm tra qua 6 nơron ẩn với 10 bộ trọng số khởi tạo ngẫu nhiên và 5000 vòng lặp.

Một phương pháp khác để chọn giá trị hợp lý cho số lần chạy tối đa là vẽ đồ thị tương ứng của tổng lỗi bình phương hoặc các độ đo lỗi thích hợp khác với mỗi lần lặp hoặc tại điểm nào đó mà sự cải tiến là không đáng kể nữa (thông thường thì tối đa là 10,000 vòng). Mỗi lần lặp có thể dễ dàng được biểu diễn nếu phần mềm mạng nơron có tạo file thống kê. Sau khi vẽ được đồ thị tương quan với số lượng trọng số khởi tạo ngẫu nhiên, người nghiên cứu có thể chọn số lần chạy tối đa dựa trên điểm nào mà đồ thị ngừng không tăng mạnh nữa và đi theo chiều ngang.

Có nhiều nghiên cứu cho thấy số lượng các vòng lặp có thể tạo ra sự hội tụ nằm trong khoảng từ 85 đến 5,000 vòng. Tuy nhiên, người ta cũng ghi nhận được những ngưỡng rất lớn về số vòng lặp như 50,000 hay 191,400 vòng và thời gian huấn luyện có thể lên tới 60 giờ. Quá trình huấn luyện bị ảnh hưởng bởi rất nhiều yếu tố như cách chọn tốc độ học, hệ số xung lượng, và cách chọn cũng khác nhau trong các nghiên cứu vì vậy rất khó để đưa ra một giá trị tổng quát cho số lần chạy tối đa. Tương tự, độ chính xác số học của phần mềm mạng nơron cũng ảnh hưởng tới quá trình huấn luyện bởi sai số sinh ra có thể rất nhỏ và làm cho chương trình mạng nơron đi chệch hướng bởi các thao tác làm tròn số mà chuyện này rất dễ xảy ra đối với các thuật toán lặp nhiều vòng. Người ta khuyến nghị rằng nên giải quyết vấn đề theo hướng chọn số vòng lặp cần thiết để đạt được mức độ mà sự cải tiến là không đáng kể và kiểm tra số lượng các trọng số ngẫu nhiên nhiều nhất mà tính toán cho phép.

b. Tốc độ học và hệ số xung lƣợng

Mạng truyền thẳng được huấn luyện theo thuật toán giảm gradient, đi theo đường viền của mặt phẳng lỗi bằng cách luôn đi xuống theo chiều dốc nhất. Mục tiêu của việc huấn luyện là cực tiểu hóa bình phương lỗi toàn cục, được định nghĩa như sau:

     M h hi N i hi M h h t O E E ( )2 2 1 2 1

h đại diện cho các mẫu trong tập đầu vào;

i đại diện cho nơron đầu ra thứ i;

Biến thi là đầu ra mong muốn của nơron đầu ra thứ i khi thực thi với mẫu h; Ohi là đầu ra thực tế của nơron đầu ra thứ i đối với mẫu h;

Hình 10. Giản đồ biểu diễn một mặt phẳng lỗi của mạng nơron

Luật huấn luyện để điều chỉnh trọng số giữa nơron ij được định nghĩa như sau: ) 1 ( ) ( hi hi hi hi hitO OO  (3)    N k jk hk hi hi hi O Ow  (1 ) (4) wij(n1)(hiOhi) (5)

Trong đó n là số biểu diễn, δhi là tín hiệu lỗi của nơron i đối với mẫu hε

là tốc độ học.

Hệ số học là một hằng số quyết định độ lớn của sự thay đổi trọng số. Sự thay đổi trọng số của một nơron tỷ lệ với ảnh hưởng của trọng số của nơron đó đối với lỗi. Tín hiệu lỗi của một nơron đầu ra và một nơron ẩn lần lượt được tính theo các phương trình (3) và (4).

Có thể xem việc huấn luyện một mạng truyền thẳng tương tự như việc một người ném một quả bóng từ điểm A tới điểm C trong hình 9, dù trong thực tế mặt phẳng lỗi là đa chiều và không thể biểu diễn dưới dạng đồ họa như vậy. Lực để ném quả bóng cũng tương tự như tốc độ học. Ném quá mạnh có thể khiến quả bóng bay quá khỏi mục tiêu, thậm chí quay trở lại điểm A hoặc nó có thể đu đưa giữa 2 điểm A và B. Trong quá trình huấn luyện, tốc độ học quá cao có thể nhận thấy khi hàm đánh giá thay đổi nhanh mà không cho thấy sự cải tiến nào. Nếu

lực ném quả bóng quá nhẹ, nó sẽ khó đi xa được khỏi điểm A, trong huấn luyện mạng cũng vậy, hàm đánh giá sẽ được cải tiến rất ít, thậm chí không được cải tiến. Tốc độ học quá nhỏ do vậy sẽ đòi hỏi nhiều thời gian huấn luyện hơn. Trong cả hai trường hợp, người nghiên cứu phải điều chỉnh hệ số học trong khi huấn luyện hoặc “tẩy não” mạng bằng cách chọn ngẫu nhiên tất cả các trọng số và thay đổi tốc độ học để tạo ra một lần chạy mới trên tập huấn luyện.

Một phương pháp tăng hệ số học, đồng nghĩa với việc tăng tốc độ huấn luyện mà không dẫn tới tình trạng vượt quá mục tiêu là thêm vào luật huấn luyện của giải thuật truyển thẳng một hệ số xung lượng. Hệ số xung lượng sẽ quyết định mức độ ảnh hưởng của lần thay đổi trọng số trước đó đối với lần thay đổi trọng số hiện tại. Luật huấn luyện mới cho mạng truyền thẳng được định nghĩa như sau:

) ( ) ( ) 1 (n O w n wij   hi hi   ij    

trong đó α là hệ số xung lượng.

Hệ số xung lượng sẽ lọc bỏ những sự thay đổi về tần suất cao. Mỗi hướng tìm kiếm mới sẽ là tổng trọng số của gradient hiện thời và gradient trước đó. Giá trị trung bình của gradient trong 2 giai đoạn như vậy sẽ lọc bớt những thay đổi bất thường ở tốc độ nhanh của tốc độ học. Hệ số xung lượng quá lớn sẽ ngăn cản thuật toán đi theo các đường gấp khúc của mặt phẳng trọng số. McClelland và Rumelhart chỉ ra rằng hệ số xung lượng rất hữu ích trong mặt phẳng lỗi có chứa các khe sâu, tường cao và đáy hơi dốc. Nếu không có hệ số xung lượng, để đi xuống các khe sâu, cần sử dụng một tốc độ học rất nhỏ và sẽ mất rất nhiều thời gian. Sử dụng hệ số xung lượng sẽ cho phép dùng tốc độ học cao hơn để đi qua các khe đó.

Hầu hết các phần mềm mạng nơron đều cung cấp các giá trị mặc định tốt cho tốc độ học và hệ số xung lượng. Các thực nghiệm cho thấy nên bắt đầu huấn luyện với tốc độ học vào khoảng 0.7 và giảm dần trong quá trình huấn luyện. Nhiều chương trình mạng nơron sẽ tự động giảm tốc độ học và tăng hệ số xung lượng khi đạt tới sự hội tụ.

Một phần của tài liệu (LUẬN văn THẠC sĩ) áp dụng các kỹ thuật phân lớp dữ liệu, hồi quy để dự báo số liệu sản xuất kinh doanh cho VNPT (Trang 42 - 47)

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

(100 trang)