Chương I. CƠ SỞ LÝ THUYẾT
1.1.4. Mạng Nơ ron sâu
1.1.4.3. Huấn luyện mạng Nơ ron sâu [13]
Huấn luyện mạng Nơ ron sâu nhiều lớp được biết đến là rất khó. Các chiến lược học chuẩn gồm khởi tạo ngẫu nhiên các trọng số của mạng và áp dụng giảm Gradient sử dụng lan truyền ngược biết được theo kinh nghiệm để tìm các giải pháp xấu với 3 lớp hoặc nhiều hơn. Vì đây là một kết quả âm (negative), nó đã không được thể hiện trong tài liệu máy học. Vì lý do đó mà mạng Nơ ron nhân tạo đã bị giới hạn trong một hoặc hai lớp ẩn.
Kiến trúc sâu có năng suất cao hơn (đôi khi theo cấp số nhân) so với kiến trúc nông (shallow), về mặt tính toán các phần tử và các tham số cần thiết để biểu diễn một số hàm. Trong khi đó không thể khẳng định là những kiến trúc sâu là tốt hơn so với kiến trúc nông trên mỗi một vấn đề, đã có bằng chứng có ích khi tác vụ đủ phức tạp và có đủ dữ liệu để nắm bắt sự phức tạp. Do đó việc tìm kiếm các thuật toán học tốt hơn cho mạng sâu có thể có ích.
Một cách tiếp cận đã được thăm dò với một vài thành công trong quá khứ được dựa trên việc xây dựng thêm các lớp. Mỗi lớp trong mạng Nơ ron đa lớp có thể được
32
xem như là biểu diễn của đầu vào thu được thông qua một sự biến đổi (transformation) học được. Điều gì làm cho biểu diễn của dữ liệu bên trong tốt? Các nhà nghiên cứu tin rằng nó gỡ rối được các nhân tố của sự biến đổi mà vốn đã giải thích kiến trúc của sự phân tán. Khi một sự biểu diễn (representation) được sử dụng cho học không giám sát, ta muốn nó để lưu trữ thông tin về các đầu vào khi được dễ dàng để mô hình hóa hơn đầu vào chính nó. Khi một sự mô hình hóa được sử dụng cho một dự đoán có giám sát hoặc nhiệm vụ phân lớp, họ muốn nó tồn tại một “simple” (nghĩa là bằng cách nào đó dễ dàng để học) ánh xạ từ mô hình hóa đến một dự đoán tốt. Để xây dựng cấu trúc một mô hình như vậy, nó đã được đề xuất sử dụng một tiêu chí giám sát ở từng giai đoạn (Fahlman and Lebiere, 1990; Lengelle và Denoeux, 1996).
Tuy nhiên việc sử dụng một tiêu chí giám sát ở từng giai đoạn có thể quá tham lam (greedy) và không mang lại sự tổng hợp tốt như sử dụng một tiêu chí không được giám sát. Các khía cạnh của các đầu vào có thể bị bỏ qua trong một sự biểu diễn để được điều chỉnh hữu ích (với một phân lớp tuyến tính) nhưng các khía cạnh này có thể trở thành quan trọng khi các lớp khác đã có sẵn. Kết hợp không có giám sát (Ví dụ học về P(x)) và giám sát các thành phần (ví dụ học về P(y/x) có thể hữu ích khi cả hai hàm P(x) và P(y/x) chia sẻ cấu trúc).
Ý tưởng sử dụng học không có giám sát ở từng giai đoạn của một mạng sâu gần đây được đưa ra bởi Hinton (2006), như một phần của tiến trình huấn luyện cho mạng Belief (DBN), một mô hình đường sinh (generative) với nhiều lớp của các biến ngẫu nhiên ẩn. Tầng trên của một DBN biểu diễn nhiều khái niệm “trừu tượng” mà giải thích các quan sát đầu vào x, các lớp thấp hơn trích chọn “tham số mức thấp” từ x. Nói cách khác, mô hình này đầu tiên học các khái niệm đơn giản, trên cơ sở đó xây dựng các khái niệm trừu tượng hơn.
Chiến lược huấn luyện này được lấy cảm hứng từ phương pháp tiếp cận tổng quan hơn để giúp giải quyết các vấn đề huấn luyện mạng sâu. Hinton (2006) cho thấy việc xếp chồng (stacking) máy RBM, đó là huấn luyện trên RBM về sự phân bố của các hoạt động tính toán bởi các RBM thấp hơn – cung cấp một chiến lược tốt khởi tạo trọng số của mạng Nơ ron nhân tạo sâu. Cách tiếp cận này có thể mở rộng tới các
33
bộ mã hóa tự động phi tuyến hoặc tự động liên kết (Saund, 1989), đã được thể hiện bởi Bengio (2007) và được tìm thấy trong các mạng autoencoder xếp chồng (Larochelle, 2007) và mạng Nơ ron chập sâu (Ranzato, 2007) được bắt nguồn từ mạng Nơ ron chập (LeCun, 1998). Kể từ đó các mạng sâu đã có ứng dụng thành công không chỉ trong các tác vụ phân cấp mà còn trong hồi quy (Salakhutdinov và Hinton, 2008)…
Tiếp theo thảo luận một cách chi tiết 3 nguyên tắc để huấn luyện mạng Nơ ron sâu và thực nghiệm làm nổi bật vai trò của việc thành công trong huấn luyện mạng sâu:
1. Tiền huấn luyện một lớp tại một thời điểm một cách tham lam (greedy) 2. Sử dụng học không giám sát ở mỗi lớp trong một cách mà giữ thông tin từ đầu
vào và gỡ rối các yếu tố thay đổi;
3. Tinh chỉnh toàn mạng.
Các thí nghiệm đã đưa ra cho thấy chiến lược này cải thiện khởi tạo ngẫu nhiên truyền thống của mạng đa lớp được giám sát bằng cách cung cấp “dấu vết” tới mỗi lớp trung gian về các kiểu biểu diễn mà nó nên học, và do đó khởi tạo được giám sát tinh chỉnh tối ưu trong một vùng không gian tham số mà giá trị cực tiểu cục bộ tốt hơn có thể đạt được. Các thí nghiệm nhằm đánh giá các liên kết giữa hiệu suất của mạng Nơ ron sâu và các khía cạnh của cấu trúc liên kết như độ sâu và kích thước của các lớp. Đặc biệt, các nhà nghiên cứu chứng minh trường hợp thêm độ sâu giúp phân lớp được lỗi nhưng quá sâu sẽ hỏng. Các biến thể đơn giản của thuật toán huấn luyện nói trên như một cách đơn giản để kết hợp chúng để cài thiện hiệu năng của chúng.
DNN thường được thiết kế như các mạng truyền thẳng, những nghiên cứu gần đây đã áp dụng thành công kiến trúc học sâu tới các mạng Nơ ron hồi quy cho các ứng dụng như mô hình ngôn ngữ. Mạng Nơ ron sâu chập (CNN) được sử dụng trong thị giác máy tính, thành công của họ được ghi nhận rất tốt. Gần đây CNN đã được áp dụng để xây dựng mô hình âm học cho nhận dạng tiếng nói tự động (ASR) và chúng thực hiện thành công hơn các mô hình trước đó. Để đơn giản, quan sát huấn luyện DNN được đưa ra ở đây.
34
DNN là một mạng truyền thẳng, mạng nơ ron nhân tạo mà có nhiều hơn một lớp ẩn giữa lớp đầu vào và lớp đầu ra. Mỗi lớp ẩn j điển hình sử dụng một hàm logistic để ánh xạ tổng đầu vào từ lớp thấp hơn (xj), thành một đại lượng vô hướng (yj) và truyền xuống lớp thấp hơn
𝑦𝑗 = 𝑙𝑜𝑔𝑖𝑠𝑡𝑖𝑐(𝑥𝑗) = 1
1 + 𝑒−𝑥𝑗 , 𝑥𝑗 = 𝑏𝑗 + ∑ 𝑦𝑖𝑤𝑖𝑗
𝑖
Trong đó bj là ngưỡng của khối j, i là một chỉ số trên các khối bên trong lớp, wij là trọng số trên kết nối từ khối j đến khối i ở lớp dưới. Đối với phân lớp có nhiều lớp, khối đầu ra j chuyển đổi tổng đầu vào (xj) tới một lớp xác suất (pj) sử dụng hàm phi tuyến softmax.
Hàm softmax được định nghĩa như sau:
𝑝𝑗 = exp (𝑥𝑗)
∑ exp (𝑥𝑘 𝑘)
trong đó pj trình bày xác xuất phân lớp (class) và xj, xk biểu diễn tổng đầu vào tới khối j và k riêng biệt, k là chỉ số trên toàn lớp.
DNN có thể được huấn luyện Discriminatively (DT) bởi lan truyền ngược giá trị hàm chi phí để đo lường sự khác biệt giữa đầu ra mục tiêu và đầu ra thực tế được xử lý qua mỗi trường hợp huấn luyện. Khi sử dụng hàm đầu ra softmax, các hàm chi phí nguyên C là entropy chéo giữa xác suất mục tiêu d và đầu ra của hàm softmax p Entropy chéo được định nghĩa là:
𝐶 = − ∑ 𝑑𝑗log (𝑝𝑗)
𝑗
trong đó dj biểu diễn xác xuất đích cho khối đầu ra j và pj là xác xuất đầu ra đối với j sau khi áp dụng hàm kích hoạt.
Cập nhật các trọng số có thể được thực hiện thông qua sử dụng gradient descent ngẫu nhiên sử dụng phương trình sau:
∆𝑤𝑖𝑗(𝑡 + 1) = ∆𝑤𝑖𝑗(𝑡) + η 𝜕𝐶
𝜕𝑤𝑖𝑗
35
Ở đây, η là tốc độ học và ∁ là hàm chi phí. Việc lựa chọn hàm chi phí phụ thuộc các yếu tố như kiểu học (có giám sát, không có giám sát, học tăng cường…) và hàm kích hoạt. Ví dụ, khi thực hiện học có giám sát về một vấn đề được phân lớp đa lớp, thông thường lựa chọn hàm kích hoạt và hàm chi phí lần lượt là hàm softmax và hàm entropy chéo.
Để giảm overfitting, lượng lớn các trọng số được bổ sung tương ứng với bình phương độ lớn của chúng hoặc việc hoặc chỉ có thể bị chấm dứt tại một thời điểm mà tại đó hiệu suất trên một tập kiểm thử bắt đầu tồi tệ. Trong DNN, với kết nối đầy đủ giữa các lớp tiếp giáp, trọng số khởi tạo thường là một số ngẫu nhiên nhỏ để ngăn tất cả các khối ẩn trong một lớp cùng độ chính xác gradient.
DNN với nhiều lớp ẩn sẽ khó tối ưu. Gradient descrent từ một điểm khởi đầu ngẫu nhiên không phải là cách tốt nhất để tìm một bộ trọng số tốt, trừ khi các trọng số khởi tạo được lựa chọn cẩn thận. Gradient lan truyền ngược sẽ có độ lớn khác nhau ở các lớp khác nhau. Ngoài các vấn đề tối ưu, DNN có thể tổng hợp kém để lấy ra dữ liệu kiểm thử. DNN với nhiều lớp ẩn và nhiều khối cho mỗi lớp là mô hình rất linh hoạt với một số lượng lớn các tham số. Điều này tạo ra khả năng mô hình hóa các mối quan hệ phức tạp và phi tuyến tính giữa đầu vào và đầu ra. Tính năng này rất quan trọng cho mô hình âm học chất lượng cao.
* Các vấn đề với mạng Nơ ron sâu
Như với ANN, nhiều vấn đề có thể phát sinh với DNN nếu chúng được huấn luyện một cách “ngây thơ”. Hai vấn đề chung là overfitting và thời gian tính toán.
DNN dễ bị overfitting vì có thêm các lớp trừu tượng, khiến cho mô hình ít phụ thuộc dữ liệu huấn luyện. Các phương pháp quy chuẩn như phân tán hay giảm dần các trọng số có thể được áp dụng trong quá trình huấn luyện giúp chống lại overfitting.
Một phương pháp quy chuẩn gần đây được áp dụng cho DNN là quy tắc dropout (sự mất tạm). Trong dropout, một số khối (unit) được bỏ qua một cách ngẫu nhiên từ các lớp ẩn trong quá trình huấn luyện. Điều này giúp phá vỡ sự “ít phụ thuộc” có thể xảy ra trong dữ liệu huấn luyện.
36
Lan truyền ngược và giảm gradient là các phương pháp được ưa dùng cho huấn luyện các cấu trúc vì thực hiện dễ dàng, xu hướng hội tụ để tối ưu cục bộ của chúng tốt hơn các phương pháp huấn luyện khác. Tuy nhiên, các phương pháp này có thể chi phí tính toán cao, đặc biệt là khi sử dụng để huấn luyện DNN. Có nhiều tham số huấn luyện cần được xem xét với một DNN, chẳng hạn như kích thước (số lớp và số khối cho mỗi lớp), tốc độ học và khởi tạo các trọng số. Bao quát không gian tham số để tối ưu các tham số có thể không khả thi về chi phí về thời gian và tài nguyên tính toán. Nhiều “thủ thuật” như sử dụng phân đợt nhỏ đã được chứng minh làm tăng tốc độ tính toán. Việc xử lý thông lượng lớn của GPU đã làm tăng tốc đáng kể trong việc huấn luyện, do các tính toán ma trận và tính toán vec tơ là rất phù hợp với GPU.