Nội dung được biên soạn dựa trên sự kế thừa các tài liệu và các công trình nghiên cứu liên quan đến các mô hình truyền thống phi thống kê và các tiếp cận dựa trên mô hình thống kê.Nội du
TỔNG QUAN VÈ NHẬN DẠNG MẲU
Giới thiệu
Nhận dạng mẫu, thực hiện hành động dựa trên nhãn hay loại của mẫu từ dữ liệu đầu vào, đóng vai trò rất quan trọng trong cuộc sống hàng ngày của chúng ta Ví dụ như việc đọc được các chữ viết tay, hiểu được lời nói, hay nhận ra một khuôn mặt, nhận dạng một loài hoa được thực hiện bởi các mô hình học máy đã và đang được đầu tư nghiên cứu rất nhiều và mang lại những hiệu quả rất đáng khích lệ.
Việc nhận dạng được thực hiện dựa trên khả năng “học” Khả năng này cho phép các hệ thống nhận dạng có thể được huấn luyện dựa trên tập dữ liệu đe cho kết quả nhận dạng càng chính xác hơn Thông thường, tập dữ liệu được chia làm hai tập con bao gồm tập dữ liệu dùng cho huấn luyện và tập dữ liệu dùng trong kiểm thử để đánh giá mô hình như mô tả ở Hình 1.1.
Hình 1.1 Phân chia tập dữ liệu thành tập huấn luyện và tập kiểm thử Tập dữ liệu huấn luyện bao gồm dữ liệu được sử dụng trong huấn luyện hay xây dựng mô hình Các giải thuật huấn luyện được sử dụng để khớp giá trị đầu ra mồ hình với giá trị đầu ra kỳ vọng tương ứng với các dữ liệu đầu vào Sau khi được huấn luyện, mô hình có thể được sử dụng để tạo ra kết quả đầu ra tương ứng với dữ liệu đầu vào mới Tập dữ liệu kiểm thử được sử dụng để đánh giá khả năng đáp ứng của mô hình đối với các tập dữ liệu mới sau khi đã được huấn luyện Ngoài ra, chúng ta có thể sử dụng tập dữ liệu kiểm chứng (validation set) để kiểm chứng và lựa chọn mô hình (bao gồm các thông số) phù hợp từ các ứng viên được huấn luyện từ tập huấn luyện.
Hình 1.2 Mô hình tồng quát của hệ thống nhận dạng
Một cách đơn giản, quá trình nhận dạng thông thường gồm các bước chính: (1) tiền xử lý; (2) trích xuất và/hoặc lựa chọn đặc trưng; và
(3) nhận dạng, như được trình bày trong Hình 1.2 Mỗi bước có thể được thực hiện bởi một số mô hình riêng, các mô hình có thể tĩnh hoặc được đặc trưng bởi các trọng số Ví dụ như trong nhận dạng khối u với đầu vào là ảnh y khoa, bước đầu tiên là tiền xử lý ảnh để lọc nhiễu và cân bằng mức xám Sang bước thứ hai là trích xuất các đặc trưng liên quan đến khối u chẳng hạn như đặc điểm phân phối mức xám, độ mịn của biên, hoặc hình dạng của nó Các đặc trưng này được đưa vào mô hình nhận dạng để phân loại khối u.
Các trọng số của từng mô hình thành phần có thể được xác định thông qua quá trình huấn luyện độc lập hoặc kết hợp Trong các mô hìnhdựa trên mạng học sâu (deep learning), cácthông số của bước trích xuất đặc trưng và bước nhận dạng có thể được cập nhật đồng thời.
Các giải thuật huấn luyện có thể được chia thành hai nhóm là: (1) có giám sát (supervised learning) và (2) không có giám sát (unsupervised learning) Đối với các giải thuật huấn luyện có giám sát, mỗi đầu vào sẽ có đầu ra kỳ vọng tương ứng của nó đóng vai trò như một “giáo viên” Quá trình huấn luyện là tìm tập các thông số của mô hình nhằm tối thiểu sự khác biệt giữa giá trị đầu ra của mô hình và giá trị kỳ vọng này Đối với học không giám sát thì chúng ta chỉ biết giá trị đặc trưng đầu vào, không có giá trị đầu ra kỳ vọng, không có “giáo viên” một cách tường minh.
Quyển sách này tập trung chính vào tiếp cận học có giám sát Đối với bài toán phân lớp, cho một tập dữ liệu thu được thông qua quá trình khảo sát bao gồm tập các mẫu được biểu diễn bởi các vector X, chúng ta kỳ vọng gán nhãn cho mỗi mẫu từ một tập c nhãn, Cời, /=1,2, , c Luật quyết định sẽ phân chia không gian tương ứng của đầu vào thành c vùng, /21, /=1, 2, , c Nếu một vector khảo sát nằm trong vùng /21 thì nó được giả sử gán nhãn Mỗi vùng phân lớp /21 có thể bao gồm nhiều vùng nhỏ không liền kề nhau Các biên giữa các vùng Qi được gọi là biên quyết định hay biên phân lớp Thông thường, các mẫu càng gần với các biên quyết định thì khả năng nhận dạng sai càng cao Các biên quyết định có thể ở dạng tuyến tính hoặc phi tuyến. Đối với bài toán hồi qui, chúng ta cần tìm hàm xấp xỉ cho mối quan hệ giữa biến độc lập X tương ứng với các dữ liệu đầu vào đo được và biến phụ thuộcy tương ứng với đáp ứng của nó, y ~7(x).
Phần còn lại của chương này trình bày hai phương pháp đơn giản phổ biến truyền thống trong nhận dạng bao gồm: (1) mô hình được xây dựng trực tiếp từ các đặc trưng đầu vào, cây quyết định, nó hình thành các đoạn biên quyết định tuyến tính song song với các trục tọa độ tương ứng với từng đặc trưng; và (2) mô hình được xây dựng dựa vào các điểm dữ liệu hỗ trợ, máyhỗ trợ vector (supportvector machine), nó dựa vào cực đại khoảng cách với các vector hỗ trợ.
Cây quyết định là một trong những tiếp cận đơn giản trong bài toán nhận dạng dựa trên đồ thị dạng cây, trong đó các nút tương ứng với đặc trưng của tập dữ liệu và câu hỏi được đặt ra, các cạnh biểu diễn các kết quả trả lời tương ứng với câu hỏi đó Nút đầu tiên được gọi là nút gốc của cây, các nút lá biểu diễn giátrị ngõ ra hay nhãn phân lớp Việc phân lóp dựa trên cây quyêt định khá tự nhiên và trực quan, kêt quả gán nhãn có thể dựa vào dãy các câu hỏi Câu hỏi sau phụ thuộc vào kết quả trả lời của câu hỏi hiện tại.
Hình 1.3 Phân lớp dựa vào cây quyết định Quá trình xử lý từ nút gốc đến nút lá Quá trình phân lớp cho mộtmẫuđược thực hiện bátđầutại nút ệốc, ở đó sẽ hỏi giá trị tương ứng với đặc trưng của nó, các cạnh liên kêt từ nút gốc sẽ tương ứng với các giá trị khác nhau của đặc trưng Tùy theo kết quả trả lời mà cạnh tương ứng sẽ được chọn để đi đến nút con Tại nút con quá trình được thực hiện tương tự như trên, và nút con được xem là nút gốc của cây con tiếp theo Quá trình sẽ được tiếp tục cho đến nút lá, ởđó không còn câu hỏi kiểm tra giátrị Nó chính là nhãn sẽ được gán cho mẫu cần nhận dạng.
Hình 1.3 minh họa một ví dụ cho cây quyết định đơn giản cho bài toán phân lóp với tập các đặc trưng {Màu, Kích thước, Hình dáng, Có que} Việc phân lớp cho một mẫu đầu vào được thực hiện dựa trên đường đi được xác định bởi các giá trị tương ứng với các đặc trưng Giả sử một mẫu X có các giá trị đặc trưng là \={Màu-Vàng, Kích thước=Nhỏ, Hình dáng=Tròn, Có que=Không}, mẫu này được xác định là quả Chanh (vỏ vàng) bởi vì nó có màu vàng, hình tròn, và kích thước nhỏ.
Bảng 1.1 Ví dụ dữ liệu cho cây quyết định đánh giá kết quả học tập
ID Tuổi Đọc sách ờ thư viện (giờ/tuần)
Một ví dụ khác về cây quyết định được mô tả ở Hình 1.4 tươngứng với tập dữ liệu ở Bảng 1.1 tập dữ liệu bao gồm 10 mẫu dữ liệu tương ứng với 10 sinh viên Các nút lá tương ứng các nhãn phân loại (đặc trưng Kết quả), các nút còn lại tương ứng với các đặc trưng khác còn lại Các nhánh của cây từ một nút bất kỳ tương đương một phép so sánh(có thê là so sánh băng, so sánh khác, lớn hơn, hoặc nhỏ hơn) nhưng kết quả các phép so sánh này bắt buộc phải thể hiện một giá trị logic (Đúng hoặc Sai) dựa trên một giá trị nào đó của thuộc tính của nút Lưu ý cây quyết định trên không có sự tham gia của đặc trưng “Giờ lên Lab”trong thành phần cây, các đặc trưng như vậy được gọi chung là các đặc trưng dư thừa, bởi các đặc trưngnày không ảnh hưởngđến quá trình xây dựng mô hình của cây.
Các đặc trưng tham giavào quá trìnhphân lớp thông thường có các giá trị thuộc kiểu sắp xếp hay kiểu số (ordered or numeric values) hoặc kiểu không sắp xếp hoặc kiểu phân lớp (unordered or category values)
Ví dụ kiểu dữ liệu tuổi biểu diễn bằng số có thứ tự (sắp xếp), kiểu dữ liệu “Nghiện game” là kiểu dữ liệu không sắp xếp (không có thứ tự).
Hình 1.4 Cây quyết định tương ứng với tập dữ liệu trong Bảng 1.1.Việc xây dựng cây quyết định được tiến hành một cách đệ (ỊUĨ, lần lượt từ nút gốc xuống tới các nút lá Tại mỗi nút hiện hành, nêu điêu kiện dừng được thỏa thì giải thuật sẽ tạo nút lá Nút này được gán nhãn lớp tùy điều kiện dừng được thoả Ngược lại, điểm chia tốt nhất được chọn dựa trên một tiêu chí cho trước, phân chia tập dữ liệu hiện hành được thực hiện theo điều kiện chia này Chú ý, dữ liệu hiện hành không nhất thiết là tập dữ liệu đầy đủ ban đầu, có thể là tập dữ liệu đã được phân chia theo điều kiện chia của nút liền trước đó (nút cha) Sau bước phân chia trên, thuật toán sẽ lặp qua tất cả các tập con (đã được chia) và tiến hành gọi đệ qui như bước đầu tiên với dữ liệu chính là các tập con này Quá trình tạo cây quyết định được tóm lược ở giải thuật sau:
Giải thuật 7.7 Giải thuật tông quát tạo cây quyêt định Đầu vào: Tập dữ liệu huấn luyện, tập các đặc trưng, tập nhãn Đầu ra: Cây quyết định
Giải thuật: TreeCreate (Tập dữ liệu Z), tập các đặc trưng F, tập nhãn£)
1 If điều_kiện_dừng (P,F) thỏa
3 Nút lá->nhãn = Gán nhãn (D)
5 Else (điều_kiện_dừng không thỏa)
7 Tìm điểm chia tốt nhất (Đ, F)
8 Đặt 5= {Các tập con được phân chia từ D}
9 Loop qua từng tập Ds eS
10 Đặt F=F\{Các đặc trưng tương ứng điểm chia được chọn}
11 Nút_con = TreeCreate(ỉ)s,F,tập nhãn £)
Máy hỗ trợ vector (Support vector machine-SVM)
SVM (support vector machine) là một trong những tiếp cận khá phổ biến trong vài năm trước đây trong việc giải các bài toán phân lóp, hồi qui, và nhận dạng bất thường Đầu tiên nó được phát triển cho bài toán phân lớp, sau đó được mở rộng sang các bài toán xấp xỉ hàm hay hồi qui Cho tập dữ liệu với không gian đặc trưng đầu vào bao gồm các biến x=(xi, X2, Xd) Chức năng chính của SVM là xây dựng hàm tuyến tính từ các biến ban đầu hay trong không gian đặc trưng được biến đổi thông qua phép biến đổi phi tuyến của các biến ban đầu.
1.3.1 Biên phân lớp tuyến tính trên tập dữ liệu 2 lớp
Chúng ta bắt đầu thảo luận về SVM với bài toán phân lớp tuyến tính nhị phân Tập dữ liệu huấn luyện bao gồm các mẫu nhập Xi, X2, ,
Xn và các giá trị ngõ ra kỳ vọng của nó lần lượt lày 1, y2, , yn với yiG {-
1,1} Chúng ta cũng giả sử rằng tập dữ liệu là phân hoạch tuyến tính trong miền không gian đầu vào Khi đó bài toán phân lớp sử dụng mô hình tuyến tính có dạng f(x) = w-x + b, (1-12) trong đó w và 6 là các thông số của mô hình Với khả năng phân hoạch tuyến tính của tập dữ liệu nhập, sẽ tồn tại ít nhất các bộ thông số w và b sao choy(xi)>0 đối với các mẫu cóyi=l vày(xi)i=-1, hayyi/(xi)>0 cho tất cả các mẫu Một mẫu dữ liệu mới X sẽ được phân lớp tương ứng với dấu của/(x).
Có thể tồn tại nhiều bộ giá trị của các thông số thỏa điều kiện trên
Ví dụ giải thuật dựatrên giảm gradient sẽ khởi động giá trị ban đầu cho trọng so w và ò, quá trình tìm trọng số được cập nhật thông qua các bước lặp Tiếp cận SVM sẽ dựa trên ý tưởng về độ rộng của “lề” (margin) được xác định dựa trên khoảng cách nhỏ nhất giữa biên quyết định và bất kỳ điểm dữ liệu nào (Hình 1.8) Mục tiêu chính của SVM là tìm biên phân lớp tuyến tính (siêu mặt phẳng) sao cho cực đại biên Y giữa nó và các điểm dữ liệu trong tập huấn luyện hay cực đại độ rộng của lề 2y, ý tưởng này được minh họa trong Hình 1.8.
Theo trực quan, những điểm càng xa biên được phân lớp có độ tin cậy càng cao hơn Do đó, các điểm huấn luyện càng tách xa biên càng tốt (hiển nhiên là nằm ở phía đúng của nó) Hơn nữa, có thể có những điểm dữ liệu gần biên nhưng không xuất hiện trong tập dữ liệu huấn luyện, khi đó việc chọn biên càng phân tách hai lớp sẽ tạo cơ hội phân lớp các mẫu không nằm trong tập huấn luyện tốt hơn.
Giải pháp cực đại lề cũng đã từng được đề cập trong lý thuyết học thống kê (statistical learning theory) và cũng được đề cập bởi Tong và
Koller (2020)2, các tác giả đã đề xuất mô hình phân lớp dựa trên sự kết hợp giữa tiếp cận tạo sinh (generative) và tiếp cận phân biệt (discriminative) Trong đó, mô hình phân phối dữ liệu trên mỗi lớp sẽ được ước lượng sử dụng cửa sổ Parzen với các hàm nhân Gauss Cùng với các xác suất tiên nghiệm (priorprobability), biên quyết định có thể được tạo ranhằm cực đại biên, biên này không phụ thuộc vào các vector hỗ trợ (support vector).
2Tong, s and D Koller (2000) Restricted Bayes optimal classifiers In Proceedings
Hình 1.8 SVM chọn biên phân lớp nhằm cực đại khoảng cách đến các điểm huấn luyện Trong SVM, biên quyết định được xác định dựa trên các vector hỗ trợ Chúng ta cũng có thể thấy trên Hình 1.8, hai siêu mặt phăng song song với siêu mặt phẳng ở giữa, w.x+Z>=0, và mỗi siêu mặt phăng chứa một hoặcnhiều điểm dữ liệu Những điểmdữ liệu này gọi là các support vector, nó đóng vai trò quan trọng trong việc xác định siêu mặt phẳng phân lớp ở giữa hay còn gọi là biên, tất cả chúng đều có khoảng cách / từ biên.
Bài toán của SVM có thể phát biểu ban đầu là: cho một tập huấn luyện D={(xi, yi), (X2, , (xn, yn)}, tìm siêu mặt phẳng (w và b) cực đại Y sao cho thỏa các ràng buộc yj(w • Xj + b) > y, cho tất cả i = 1,2, , n (1.13)
Các giá trị đầu ray, có giá trị +1 hoặc -1 tương ứng với nhãn lớp, đồng thời xác định điểm dữ liệu Xi nằm ở phía nào của biên Nếu W-Xi+Ờ > Y thì yi=+1 và nếu W-Xi+Z? 1, cho tất cả i = 1,2, ,n (114)
Khi đó khoảng cách từ biên đến điểm dữ liệu gần nhất (vector hỗ trợ) sẽ là l/||w|| và độ rộng lề là 2/||w|| Do đó bài toán cực đại lề trở thành bài toán tìm w và b đê cực tiểu ||w||/2 sao cho thỏa ràngbuộc
1 - yi(w • Xị + b) < 0, cho tất cả i = 1,2, , n (1.15)
Một trong những tiếp cận để tìm lời giải cho bài toán này là sử dụng công thức Lagrange tối ưu hàm mục tiêu
^\(l-yi(wXi + &)), (1-16) trong đú Ấi, 1=1,2, ,ô là cỏc hệ số Largange Cỏc tham số chớnh cần tìm là w và b do đó tổng số thông số chính là íZ+l với d là số chiều của không gian đặc trưng đâu vào.
Tìm cực tiểu của ||w|| với ràng buộc (1.15) tương đương với tìm cực tiểu của Lp đối với w và b Lấy đạo hàm của Zp đối với b và w và cho bằng 0 ta được: ì-tyi = 0 w = 2 AiXiXi
Thay vào (1.16) ta có dạng đối ngẫu (dual form) của Largrange n n
(1-19) Ĩ=1 y=i cực đại đối với các Ằi sao cho n Ằi > 0 và ẦM = 0 (1.20) i = l
Dạng đối ngẫu có biểu diễn hàm tối ưu của tích vô hướng các mẫu Xi và
Xj Đây là điểm quan trọng để mở rộng cho máy học vector phi tuyến (sử dụng hàm nhân-kemel).
Như vậy ở trên chúng ta đã chuyển bài toán gốc sang bài toán đối ngẫu để tìm nghiệm dễ hơn bằng phương pháp số Bài toán tối ưu dạng này thỏa điều kiện Karush-Kuhn-Tucker, trong đó phát biểu rằng tại những điểm tương ứng với nghiệm thì tích giữa những biếnđối ngẫuvà các ràng buộc là bằng không Như vậy từ bài toán gốc ta có Í=1 yi(wX| + ỉ>) - 1 > 0 (1.23) ẰI > 0 (1.24) Ấí(yi(w-xi+b)-l) = o (1.25)
Thay w từ (1.22) vào (1.12) ta có phương trình đường biên có dạng n
Phương trình (1.25) cho giá trị hoặc 2i=0 hoặc yi(w • Xị + b) = 1 Tất cả các điểm dữ liệu tương ứng Ấi=o sẽ không xuất hiện trong (1.26) do đó không đóng góp vào việc phân loại cho các mẫu dữ liệu mới Những điểm dữ liệu thỏayi (w • Xi + b) = 1 sẽ nằm ởhai mặtphẳng lề cực đại song song với biên, nó tương ứng với các vector hỗ trợ (support vector). Sau khi huấn luyện mô hình, chúng ta chỉ cần giữ lại các vector hỗ trợ này để phân loại cho các mẫu mới.
Việc tìm giá trị của Ấ có thể sử dụng quy hoạch bậc hai (quadratic programmingproblem), sau khi tìmđược Ấchúng ta có thể xác định giá trị của b dựa vào các vector hỗ trợ, chú ý rằng với mỗi vector hỗ trợ ta cóyj/(xi)=l Thay (1.26) vào ta được y, I 2,4yk(Xfc • Xi) + b ) = 1, (1.27)
LÝ THUYẾT QUYẾT ĐỊNH BAYES
Lý thuyết quyết định Bayes
Phần trên giới thiệu luật quyết định sử dụng mô hình thống kê cơ bản dựa vào xác suất lỗi với một đặc trưng và hai lóp Trong phần này chúng ta sẽ xem xét mô hình tổng quát hơn Việc tổng quát hóa được xem xét trên các yếu tố sau:
Số đặc trưng lớn hơn;
Số lóp lớn hơn, thayvì hai lớp như trên;
Sử dụng hàm tổn hao hay rủi ro tổng quát hơn, thay vì chỉ dựa vào xác suất lỗi;
- Cho phép các hành động khác hơn thao tác chọn lớp (ví dụ như từ chối).
Với số đặc trưng lớn hơn chúng ta sẽ thay đại lượng vô hướng X bang vector đặc trưng đầu vào d chiều X eRẨ Các hành động có thể tổng quát hơn như “từ chối” thay vì chọn một lớp.
Giả sử bài toán phân loại có c lớp được ký hiệu bởi (01, (02, , (Oc và gọi 21, 22, , 2a là tập các hành động được thực hiện Hàm tổn hao X2j|ớôĩ) mụ tả tổn hao phải gỏnh nếu hành động 2ỹ được thực hiện khi lớp (Oi xuất hiện Cho X là một biến ngẫu nhiên, vàp(x\(Oi) là hàm mật độ xác suất có điều kiện của X đối với (Oi Tương tự như phần trên, P((Oi) là xác suất tiên nghiệm tương ứng với lớp Cời Khi đó xác suất hậu nghiệm P(ứ}|x) được xác định dựa vào công thức Bayes như sau: p(íu‘|x) Too • (2 - 7)
Giả sử một mẫu xuất hiện với vector đặc trưng X và chúng ta thực hiện hành động Ảj khi lớp (Oi xuất hiện, khi đó tồn hao sẽ là ?ụj\(oì) Do P(ứí|x) là xác suất lớp (Oi xuất hiện với mẫu được cho X, do đó tổn hao kỳ vọng khi thực hiện hành độngẢj là: c i=i Đại lượngẨ(2j|x) cũng được xem là rủi ro có điều kiện, chúng ta có thể chọn hành động sao cho rủi ro có điều kiện này là nhỏ nhất. a) Trường hợp hai lớp
Chúng ta minh họa cho kết quả trên với bài toán phân lớp có hai lớp Giả sử hành động 21 tương ứng với việc chọn (O1 và 22 tương ứng với việc chọn (02 Từ phương trình (2.8), tổn hao khi thực hiện mỗi hành động với mẫu có đặc trưng X được xác định bởi:
R(A|x) = XuPGơilx) + ri2P(!|x) + /22P("2|x) trong đó Yji = y(2j |ú)ị) Theo luật quyết định, hành động được chọn có rủi ro nhỏ nhất Do đó (O1 được chọn khi Ấ(2i|x) < Ấ(22|x) (ngược lại chọn (01) hay yilP(o1|x) + /12P(ứ>2|x)
Sử dụng xác suất tiên nghiệm và mật độ xác suất có điều kiện ta được ynPixl^JPGuJ + y P(xK)P(fi^) /)//?(x|íaỊ2), thành phần còn lại độc lập với X và có thể được xem là ngưỡng, ớ 712~722 p(&>2)
721-711 p&l)' Khi đó luật quyêt định đơn giản là “Chọn (Oi nếu tỉ số likelihood lớn hơn ngưỡng ớ, ngược lại thì chọn ty?”. b) Phăn tích lôi trong bài toán phân lớp Đối với bài toánphân lớp, hành động ứng với an được gọi là đúng khi i=j Một trong những hàm lỗi đơn giản là zero-one, nó gán lỗi bằng không với hành động đúng và bằng một cho các trường hợp khác, nghĩa là
Từ (2.14) chúng ta thấy tổn hao tỉ lệ nghịch với xác suất hậu nghiêm, P(ấ;|x) là nhỏ nhất khi P(ứẠ|x) lớn nhất Như vậy luật quyết định để tối
Chọn Cởi nếu P(ứ}|x)> P(ứỳ|x), với mọi ỉ*j.
Luật quyết định ở phần 2.1 là một trường hợp đặc biệt của luật quyết định này.
Bộ phân lớp, hàm phân biệt và biên quyết định
Phần trên giới thiệu về lý thuyết quyết định Bayes, trong phần này chúng ta tìm hiểu về xây dựng bộ phân lớp Bộ phân lớp có thể được biểu diễn bằng nhiều cách khác nhau, trong đó sử dụng hàm phân biệt (discriminant function) là mộttrong nhũng phương pháp phô biên nhât
Mô hình tiêu biểu của bộ phân lóp dựa trên thống kê được minh họa trong Hình 2.4 Nó được xem như một mạng bao gồm vector các đặc trưng đầu vào X và tập c hàm phân biệt gi(x), z'=l,2, , c Bộ phân lớp gán một mẫu với vector đặc trưng X thuộc lóp cơi nếu
Hình 2.4 Mô hình phân lớp thống kê tiêu biểu, bao gồm vector đầu vào X, c hàm phân biệt gi(x).
Với trường hợp tối thiểu rủi ro, hàm phân biệt gí(x) có thể được chọn là #i(x) = —/?(Ấi|x) vì Ẩ(Ấi|x) nhỏ nhất dẫn đến gj(x) lớn nhất Trong trường hợp tối thiểu tỉ lệ lỗi, hàmgj(x) có thể được chọn làgz(x) P(ứ}|x) Như vậy không nhất thiết phải có duy nhất một dạng hàm phân biệt Hơn nữa nếu chúng ta thay hàm phân biệt gz(x) bởi/(g;(x)), vớif là hàm đơn điệu tăng, thì đặc tính của bộ phân lóp cũng không đổi Do đó trong một số trường hợp chúng ta có thể đơn giản hóa bộ phân lớp bằng cách chọn một số hàm biến đổi phù hợp Một số hàm phân biệt khác có thể chọn như gi(x) = p(x|ự>()P(ựằ() (2.15)
Cho dù chúng ta có nhiều dạng hàm phân biệt khác nhau, nhưng luật quyết định tạo ra từ bộ phân lóp đó vẫn tương tự nhau Luật phân lớp sẽ cho phép chia không gian đặc trưng thành các vùng, /21, /22, , /2c Các vùng này phân tách nhau bằng biên quyết định (decision boundary) (Hình 2.5) Neu gi(x)> gỹ(x) với mọi zVj, thì mẫu X thuộc vùng /2i, và luật quyết định là gán mẫu với đặc trưng X thuộc lớp Cời.
Xét trường hợp bộ phân lớp nhị phân, đây có thể được xem là một trường hợp đặc biệt của bộ phân lớp đa lớp, tuy nhiên chúng ta có thể xét riêng vì ở khía cạnh nào đó các bộ phân lớp đa lóp cũng có thể tách thành tổ hợp các bộ phân lớp nhị phân Luật phân lớp (2.14) trở thành gán mẫu X vào lớp CO! nếu gi(x)>g2(x) Nếu ta định nghĩa hàm g(x) bởi
Khi đó luật quyết định trở thành gán mẫu X vào lớp (Oi nếu g(x)>0; ngược lại gán mẫu X thuộc lớp CỜ2 Như vậy đối với bộ phân lóp nhị phân ta chỉ cần tính một hàm phân biệtg(x) và luật quyết định dựa vào dấu của hàm phân biệt này.
Hình 2.5 Biên quyết định trong trường hợp bộ phân lóp nhị phân, có hai lớp (Oi và (02 Biên quyết định sẽ phân chia không gian đặc trưng thành hai vùng R1 và Ã2 Nếu mẫu với đặc trưng X thuộc vùng R1, thì nó thuộc lóp CỞI Tương tự nếu mẫu với đặc trưng X thuộc vùng Ri, thì nó thuộc lớp CO2
(Nguồn Richard o Duda et al., Pattern Classification4)
Hàm phân biệt đối với phân phối chuẩn
Cấu trúc của bộ phân lớp Bayes được xác định bởi hàm mật độ có điều kiệnp(x|ft)/) và xác suất tiên nghiệm P(ữ)i) Trong số các hàm mật độ khác nhau đã được nghiên cứu thì hàm mật độ phân phôi chuân (Gauss), một hoặc nhiều biến, được quan tâm nhiều nhất Điều này có thể là do khả năng phân tích của nó, hơn nữa mật độ phân phối chuẩn đa biến cũng phù hợp cho nhiều bài toán Hàm mật độ phân phối chuẩn đơn biến liên tục được định nghĩa như sau:
2 X / ]' p(x|á)f) (2.18) trong đó /Zi và ơì lần lượt là giá trị kỳ vọng và độ lệch chuẩn, được tính bởi
/Zj = Fm.[x]= í xp(xỊa>í)dx và
Như vậy, mật độ phân phối chuẩn đơn biến bao gồm hai thông số là kỳ vọng và độ lệch chuẩn Trong trường hợp đa biến d chiều, hàm mật độ phân phối chuẩn có dạng p(x|ú,i) = (ĩn)^\^ exp [-2 (x í2 2n trong đó |L{ và lần lược là vector kỳ vọng (d chiều) và ma trận hiệp phương sai (khích thước • Ivvvvv QflQAAfl 4 gAAAAft X WwvW A 3AAAAA 13 ô 0000/ằ X * iruroKKrO
75% 112.750000 6.480008 3 • -3r(KKnrO c 3 * 4 AAAAA Xvww 4 OAAAAA X * iMJvvw max 4CA AAAAAA 4.488888 o WWW X • 3vWW 7 CAAAAA
Hình 2.11 Mô tả tổng quan về tập dữ liệu
Hình 2.12 Phân phối dữ liệu ở mỗi lóp cho từng cặp đặc trưng.
Kết quả cho biết một số thông tin thống kê cơ bản bao gồm tổng số mẫu (count), giá trị trung bình (mean), độ lệch chuẩn (std), giá trị nhỏ nhất (min), tứ phân vị thứ nhất (Q1,25%), tứ phân vị thứ nhì (Q2, 50%), tứ phân vị thứ ba (Q3, 75%), và giá trị lớn nhất (max) tương ứng cho từng đặc trưng.
• Trực quan hóa dữ liệu sử dụng Seaborn:
Việc trực quan hóa dữ liệu có thể được thực hiện sử dụng thư viện seaborn Mô tả phân phối dữ liệu trên các cặp đặc trưng được hiện bằng các lệnh: _ sns.paỉrplot(dataframe, hue='Species') sns.lmplot(x= 'SepalLengthCm ',y='SepalWidthCm hue="Specỉes", dataaframe, fit regse, palette='brỉght')
Species Irĩs-setosa Iris-versicolor Iris-virginìca
Hình 2.13 Biểu diễn dữ liệu giữa hai biến SepalLength và Sepal
Width (đơn vị đo cm) Kết quả được mô tả như trong Hình 2.12 Nó biểu thị cái nhìn cơ bản về tập dữ liệu bao gồm mối quan hệ các đặc trưng, khả năng gom cụm, các ngoại lai (outliers), v.v Các ô nằm ngoài đường chéo là các biểu đồ phân tán (scatter plot) của từng cặp đặc trưng Còn các ô nằm trên đường chéo là phân phối một biến (univariate distribution) tương ứng cho các lớp.
Trong một số trường hợp, chúng ta có thể sử dụng histogram thay cho mật độ phân phối Trong Seaborn, chúng ta có thể cho giá trị thông số 'diagJdncT bằng ‘hisf để thấy mô tả histogram trên các phần tử đường chéo thay vì phân phối. sns.paỉrplot(dataframe,hue= 'Species',diag_kind='hist',palette=' bright') _
Phần trên chúng ta plot trên tất cả các cặp đặc trưng Trong trường hợp số đặc trưng lớn thì rất khó trực quan Nếu tập dữ liệu nhiều hơn năm đặc trưng và chúng ta muốn xem mối quan hệ giữa cặp đặc trưng quan trọng thì có thể sử dụng hàm Implot của Seaborn Ket quả được mô tả trong Hình 2.13.
Một dạng plot khác cũng khá phổ biến dùng để xem phân phối dữ liệu trên một đặc trưng là violin plot Nó có thể dùng để xem phân phối dữ liệu của mỗi lớp tương ứng cho đặc trưng được chọn. ns violinplot(x= 'Species ',y= 'SepalLengthCm',
Kêt quả khi thực hiện lệnh trên được mô tả trong Hình 2.14. ris-setosa iris-versicolor ris-virginĩca
Hình 2.14 Violin plot của tập dữ liệu Iris với đặc trưng SepalLength
Kiểm tra giá trị null sử dụng Heatmap bằng các lệnh sau: sns heatmap(dataframe isnull(),yticklabelsse, cbarse,cmap
Hình 2.15 Heatmap kiểm tra giá trị null
• Phân chia tập dữ liệu:
Chúng ta sẽ cần tính xác suất của dữ liệu tương ứng mỗi lớp, do đó bước đầu tiên chúng ta cần tách các mẫu dữ liệu của từng lớp Một trong các phương pháp thực hiện là tạo đối tượng từ điển (dictionary), trong đó khóa là nhãn của lớp và danh sách tất cả các mẫu là giá trị tương ứng củakhóa trong từđiển Hàm thực hiện tách dữ liệu được định nghĩa như sau: def class seperation(dataset): class diet = dict() for Ỉ in range(len(dataset)): vector = dataset[i] class-Value = vector[-1] if (classRvalue not in class-diet): class-diet[classRvalue] = list() class-diet[classvalue] append(vector) return class diet class _dict=class_seperation(dataframe.values) _
Chúng ta chia tập dữ liệu thành hai tập con bao gồm tập huấn luyện (training set) và tập kiểm thử (testing set) Tập dữ liệu Iris thu được có
150 mẫu cho ba lớp, số mẫu ở mỗi lớp là như nhau, 50 mẫu Chúng ta có thể chia ngẫu nhiên 20% cho tập kiêm thử và 80% cho tập huân luyện Việc phân chia này được thực hiện bằng cách sử dụng hàm train test-Split của skleam với thông số test_size=Q.2 tương ứng 20% tập dữ liệu cho tập kiểm thử: deftraỉn_test_seperatỉon(dataset): class diet train =dict() class_dict_test=dict() for label in dataset: data train, dataJest=trainJest_split(dataset[label],test_s ize=0.2) class diet-train[label 7 =1ist() class dietJest[label] =list() class dietJrain [label].append(datajrain) class diet test[label].append(dataJest) return class jlict train, class jlict test class-diet train, class_dictjest=train test_seperation(classjli Ct)
• Tính các đại lượng thống kê:
Chúng ta cần tính các đại lượng thống kê cơ bản tương ứng cho mỗi lớp từ tập huấn luyện Trước tiên là đại lượng mean tương ứng với mỗi đặc trưng được tính bởi công thức: sưm(x) mean(x) = —, trong đó N là tổng số phần tử của X Hiện thực bằng ngôn ngữ Python như sau: defmean(x):
Tương tự đại lượng thống kê thứ hai, độ lệch chuẩn (standard deviation), được tính bởi công thức: stdev(x) = fo * -^ôn(x)) 2
Hiện thực bằng ngôn ngữ Python bời _ defstdev(x): avg = mean(x) variance = sum([(xi-avg)**2 forxi in x]) /float (len(x)-l)
Sau đó các đặc trưng thông kê cho môi đặc trưng của môi lớp được tính sử dụng hai hàm feature statistics và statistics by class như sau:
# Tính mean, độ lệch chuân, và sô phản tử tương ứng từng đặc t rưng def feature statistics(dataset): statistics = [(mean(feature), stdev(feature), len(feature)) forf eature in dataset] return statistics
ƯỚC LƯỢNG DẠNG THAM SỐ
Giới thiệu
Ở chương hai chúng ta đã tìm hiểu cách xây dựng bộ phân lớp tối ưu dựa trên mô hình thống kê nếu xác suất tiên nghiệm P(ứJi) và mật độ xác suất có điều kiện />(x|ứí) cho mỗi lớp được xác định Tuy nhiên, trong phần lớn các ứng dụng nhận dạng mẫu, các đại lượng này không có sẵn Trong một số trường hợp chúng ta có thông tin rất mơ hồ về nó cùng với tập dữ liệu mẫu hay tập huấn luyện.
Một trong các tiếp cận phổ biến là chúngta ước lượng các đại lượng P(ứí) và/?(x|ứí) từ tập dữ liệu huấn luyện được thu thập, sau đó nó được sử dụng để xây dựng bộ nhận dạng Trong hai đại lượng trên thì xác suất tiên nghiệm P(ứí) có thể được ước lượng dễ dàng đối với các bài toán nhận dạng dựa trên mô hình có giám sát Riêng mật độ xác suất có điều kiện/>(x|ứí) tương đối phức tạp hơn, đặc biệt trong trường hợp số mẫu dữ liệu nhỏ và sô chiêu lớn Nêu dạng của phân phôi được biêt (ví dụ như phân phối Gauss) khi đó hàm mật độ xác suất được xác định khi các thông số của phân phối (ví dụ như kỳ vọng gi và ma trận hiệp phương sai Zj) được xác định Bài toán ước lượng hàm mật độ xác suất đơn giản trở thành bài toán ước lượng các tham sô của nó (ví dụ bài toán ước lượng kỳ vọng Pi và ma trận hiệp phương sai Zj). Đối với bài toán ước lượng tham sô, có hai phương pháp phô biên trong thống kê là ước lượng hợp lý cực đại hay viết tắt là MLE (maximum likelihood estimation) và ước lượng Bayes (BE hay Bayesian estimation) Mặc dù kết quả của hai phương pháp ước lượng tham số này thường gần giống nhau trong nhiều ứng dụng, nhưng cách tiếp cận của nó khá khác nhau Phương pháp MLE giả thiết rằng các tham số mặc dù không biết nhưng nó được cố định ở đâu đó, và mục tiêu của ước lượng là tìm các tham số này sao cho cực đại xác suất đạt được mẫu thu thập Trong khi đó tiếp cận BE xem các tham số này là các biến ngẫu nhiên với phân phối cho trước Cùng với các mẫu thu thập sẽ tạo thành mật độ hậu nghiệm để dần hiệu chỉnh độ chính xác về các tham số cần được ước lượng Chúng ta sẽ thấy rằng, tiếp cận này sẽ làm hàm mật độ xác suất hậu nghiệm của tham số được nhọn hơn (có độ tập trung cao hơn) xung quanh đại lượng chính xác khi số mẫu tăng Chi tiết về hai phương pháp ước lượng này được trình bài chi tiết ở các phần sau.
Ước lượng hợp lý cực đại (Maximum likelihood estimation, MLE)
MLE là một trong các phương pháp ước lượng được quan tâm rất nhiều do khả năng hội tụ củanó khi số mẫu huấn luyện tăng và đơn giản hơn một số phương pháp ước lượng khác như BE.
MLE yêu cầu đầu tiên có tập dữ liệu huấn luyện Tập mẫu này có thể được tách thành các tập con tương ứng cho từng lớp Giả sử có c lớp thì khi đó sẽ có c tập con được ký hiệu là D1, z>2, 2>c với các mẫu trong mỗi tập Z)i được tạo ra một cách độc lập từ mật độ phân phối xác suất p(x|ứí); các mẫu này được xem là các biến ngẫu nhiên phân phốiđồng nhất độc lập (independent identically distributed - i.i.d.) Giả sử rằng p(x|ứí) có dạng tham số hóa, có nghĩa là dạng của phân phối này được biết và được xác định chính xác bởi một vector tham số 0j Ví dụ nếu như p ( x |úa) có dạng phân phổi Gauss, p(x\ah)~N()ii, Sj), thì tham số 0/ bao gồm hai thành phần ỊAz và Si Chúng ta có thể sử dụng p(x|ứí;
0z) để thể hiện sự phụ thuộc của p(x| Cữì) với 0/ Chú ý 0i trong trường hợp này không phải là biến ngẫu nhiên Bài toán ước lượng mật độ xác suất trở thành ước lượng các tham số 0i tương ứng cho từng lớp từ tập dữ liệu huấn luyện. Để đơn giản, chúng ta giả sử rằng việc ước lượng các tham số 0Z cho mỗi lớp (ới với tập dữ liệu Di là độc lập nhau; cách thực hiện giống như nhau Do đó việc ước lượng các tham số này có thể phátbiểu thành dạng chung là “ước lượng tham số 0 của hàm mật độ phân phốip(x; 0) từ tập dữ liệu huấn luyện D”.
Giả sử tập dữ liệu huấn luyện D có n mẫu được thu nhận từ phân phôi đông nhât độc lập (i.i.d), Xi, X2, , Xn Khi đó ta có p(D;0) = p(x1,x2, ,xn; e) n _
Xác suất này được xem là likelihood của 0 đối với tập dữ liệu D và có thể ký hiệu bằng hàm LỌ), ví dụ Lự); 0), gọi là hàm likelihood.
Mục tiêu của MLE là tìm tập tham số 0 sao cho cực đại hàm likelihood này, nghĩa là
0 (3.2) trong đó L(P; 9) là tích của các hàm p(x7; 0) Tuy nhiên tích các hàm nhỏ có thể dẫn đến tình trạng không ổn định số học (numerical instability) Một trong cách khắc phục tình trạng này là phát biểu lại bài toán Chúng tathấy rằng hàm logarit là hàm đơn điệu tăng, nghĩa là nếu
0 làm cho likelihood đạt cực đại thì cũng sẽ làm cho log-likelihood đạt cực đại, do đó sử dụng hàm này để phát biểu lại bài toán là một trong những tiếp cận thường được sử dụng Chúng ta định nghĩa hàm log- likelihood bởi
Khi đó bài toán trở thành tìm tham số 0 sao cho cực đại hàm log- likelihood này, nghĩa là
Hình 3.1 Minh họa cho log-likehood (11) với tập dữ liệu được cho như trên Chúng ta thấy rằng với phân phối có //2=2.5 cho giá trị log- likelihood (-16.7) lớn hơn hai trường họp với phân phối có //i=5(-29.4) và //3=1 (-39.0).
Ví dụ 3.1: Xét ví dụ với tập dữ liệu có 10 mẫuD={ 1.5,2.3,2.4,2.9, 3.0, 3.4, 3.5, 4.3,4.4,4.7} Giả sử phân phối dữ liệu dạng Gauss với độ lệch chuẩn bằng 1 Chúng ta tìm tham số còn lại của phân phối Gauss (//) để thể hiện tính họp lý nhất của dữ liệu (maximum likelihood) Xét ba giá trị khác nhau của // là //1=5, //2=2.5, và //3=1, khi đó log- likelihood tương ứng ba trường hợp này (xem đoạn code chươnẹ trình bên dưới) là -29.4, -16.7, và -39 Minh minh họa các phân phổi như trong Hình 3.1, chúng ta thấy rằng log-likelihood trong trường hợp //=2.5 lớn hơn hai trường hợp còn lại và nó thể hiện đúng hơn về phân phối của tập dữ liệu so với hai trường hợp còn lại Điều đó có nghĩa là phân phối hợp lý hơn cho tập dữ liệu sẽ có giá trị của log-likelihood lớn hơn. from scipy.stats import norm defcompute_log_likelihood(D, mu, sd):
11 += np.log(norm.pdf(x, mu, sd)) return 11
Tổng quát ta phải tìm lời giải toàn cục cho (3.4) Việc tìm lời giải này có thể được thực hiện theo cáchtiếp cận truyền thống dựa trên phép tính vi phân Giả sử thông số 0 là vectơ gồm có K thành phần, 0=(Ớ1,
01, , 0 k ) t và phép tính gradient được định nghĩa bởi r d der
Khi đó 0 là nghiệm của phương trình vez = 0, (3.6) trong đó ve/ được tính bởi n
0 được kỳ vọng là cực đại toàn cục Tuy nhiên nghiệm của (3.6) có thể là cực đại cục bộ hoặc cực tiểu Trong trường hợp có nhiều giá trị cực trị được tìm thấy, chúng ta có thể kiểm tra riêng từng cực trị để đảm bảo
0 chỉ là một ước lượng dựa trên tập dữ liệu thu thập được với số lượng hạn chế và nó được kỳ vọng là bang với giá trị thông số thực sự của phân phối từ đó các mẫu dữ liệu tạo ra.
Tóm lại để ước lượng hàm mật độ phân phối dựa trên MLE, chúng ta cân thực hiện bôn bước chính sau:
- Chọn mô hình hoặc dạng phân phối, với các tham số có thể được cập nhật.
- Xây dựng hàm mục tiêu dựa trên likelihood, ví dụ như log- likelihood.
- Tối ưu hàm mục tiêu để tìm ra các tham số của mô hình.
3.2.2 Trường hợp phân phối chuẩn
Phần này trình bày phương pháp MLE được áp dụng cho trường hợp phân phối cụ thể, đó là phân phối Gauss Phân phối này có hai tham số là số bình quân (mean) p và ma trận hiệp phương sai 2 Hàm mật độ phân phối có dạng p(x; p.S) trong đó d là số chiều của dữ liệu Lấy logarit của (x; p,z) ta được lnp(x;n,l) = - |ln[(27r)d|Z|]
-lcx-n/s-^x-n) (3.9) a) Trường hợp không biết p Để đơn giản, chúng ta xét trường họp đầu tiên, chỉ có p là không biết và cần được xác định từ tập dữ liệu D Từ (3.7) và (3.9) ta được n n
Nhân s vào 7=1hai vế và thực hiện một số thao tác, ta được kết quả ước lượng của p là n p = (3.12) j=l
Như vậy, MLE của số bình quân của quần thể (population mean) bang số bình quân mẫu Nó chính là trung bình cộng của các mẫu huấn luyện.
F _ b) Trường hợp không biêt p và E
Trong trường hợp tổng quát hơn, cả mean và ma trận hiệp phương sai đều không biêt Trước tiên chúng taxét trường hợp một chiêu (í/=l), khi đó (3.8) và (3.9) trở thành ì 1
1 1 lnp(x;0) = -^ln[27TỚ2] ^-(x-ới)2, z Zí?2
(3.14) trong đó O=[01, zyT, ỡ\=p, và 6Ù=Ơ2 Đạo hàm của nó là v0p(x; 0) (3.15)
Thay (3.15) vào (3.6) và (3.7) ta có r 1
Như vậy MLE của 01 và 01 thỏa các phương trình n nẽỵ — Xj = 0
Thay ẽỵ = ft và ể2 = ở2 chúng ta được MLE cho p và ơ2 lần lượt là n
Trong trường hợp dữ liệu nhiêu chiêu (1), quá trình cũng được thực hiện tương tự và chúng ta cũng đạt được MLE p và £ lần lượt cho và zỉà n p nZX' (3-21) j=l và n Ỉ = ỉy(x;-P)(x7-P)r (3.22) j=l
Như vậy, trong trường hợp này ước lượng của vectơ số bình quân (mean) cũng là số bình quân của tập mẫu (sample mean) và ước lượng của ma trận hiệp phương sai cũng là trung bình cộng của n ma trận (Xj - p)(xy - p)r.
3.3 Ước lưựng không chệch (unbiased estimation)
Phương pháp ước lượng Bayes
Phần này trình bày phương pháp ước lượng phổ biến thứ hai, đó là ước lượng Bayes (BE) Mặc dù kết quả củaphương pháp này gần giống như kêt quả của MLE Tuy nhiên tiêp cận của hai phương pháp này khác nhau Phương pháp MLE xem các đại lượng cần ước lượng là cố định, trong khi phương pháp này xem các đại lượng cần ước lượng là các biến ngẫu nhiên theo một phân phối nào đó Phương pháp BE sẽ chuyển từ phân phối đó thànhphân phối xác suất hậu nghiệm.
Từ công thức Bayes, để tính xác suất hậu nghiệm tương ứng mỗi lóp, ta cần tính các đại lượng xác suất tiên nghiệm P(ứí) và mật độ xác suất có điều kiện p(x|ứx) Các đại lượng này được xác định dựa vào thông tin từ tập mẫu D Do đó, để nhấn mạnh vai trò của tập mẫu, công thức Bayes có thể được viết thành
Sy=1p(x|ù>j,ữ)P() để xấp xỉ về phân phối đúng p(x) p(x|Z>) có thể được tính dựa trên xác suất kết hợp (jointprobability)p(x,0|P) như sau p(x|D) = p(x,e|D)de (3.27)
Trong đó tích phân được thực hiện trên toàn bộ không gian thông số 0.Chúng ta có p(x,0|Z))=p(x|0J))p(0[Z>), hơn nữa X và D được chọn một cách độc lập nhau, do đóp(x|0J))=p(x|0) Như vậy (3.27) sẽ trở thành p(x|D)= p(x|0)p(0|D)d0 (3.28)
Neu p(Q\D) có phương sai rất nhỏ và số bình quân (mean) là 0 thì p(x\D) từ (3.28) cú thể được xấp xỉ làp(xịD) ô p(x|O) Trong trường hợp tổng quát, giá trị của 0 không chắc chắn, chúng ta có thể ước lượng pịxịD) dựa trên trung bìnhp(x|0) trêntất cả các giá trị có thể của 0 Tích phân (3.28) cũng có thể được tính thông qua một số mô hình, ví dụ nhưMonte-Carlo.
Ước lượng Bayes đối với trường hợp phân phối Gauss
Trong phần này, chúng ta xem xét trường hợp dữ liệu có phân phối Gauss với một tham số chưa xác định là số bình quân p, /?(x|p)~7V(p, 2). a) Xét trường hợp một chiều
Khi đó vectơ đặc trưng X trở thành vô hướng X, phân phối có dạng p(x|p)~N(/z,ơ2), (3.29) trong đó p là đại lượng cần xác định Chúng ta cũng giả sử rằng thông tin về p được biết với hàm mật độ xác suất tiên nghiệm p(p) là p(p)~N(p0,ơ02), (3.30) trong đó po và ơĩ) được xác định trước Chú ýrằng p(p) có thể có dạng hàm mật độ phân phối khác thay vì Gauss Với dạng Gauss trên, nó thể hiện giá trị dự đoán tốt nhất của p là po và độ lệch chuẩn ơò thể hiện sự không chắc chắn của dự đoán trên.
Với giá trị p được chọn từ hàm mật độ phân phối p(p\ tập mẫu
D={x\, X2, yXn} được chọn ngẫu nhiên từ hàmmật độ phân phốip(x\p). Theo công thức Bayes ta có
7=1 trong đó a là hệ số phụ thuộc tập mẫu D nhưng độc lập với //, nó đóng vai trò chuẩn hóa Thayp(x\p)^N(p,ơ1) và p(g)~N(/z0, ơq ) vào (3.31) ta được p(mI0) trong đó các thành phần không phụ thuộc p được tích hợp vào các hệ số >ơ), có nghĩa độ chắc chắc của ước lượng Pn=po rất thấp, khi đó ước lượng của Pn hướng về tập dữ liệu thu thập, nghĩa là
Pn ~ xn Trong các trường hợp còn lại, khi số mẫu đủ lớn thì đóng góp của po và ơĩ) sẽ giảm dần và jUnsẽ hội tụ về số bình quân mẫu, xn.
Sau khi ước lượngp(p\D), công việc còn lại là ước lượng hàm mật độ xác suất có điều kiệnp(x\D) Từ (3.28) ta có p(x|D) = p(x\ịì)p(p\D)dp (3.39)
Thay (3.29) và (3.33) vào (3.39) ta được p(x|D) trong đó hệ số A độc lập với X và được định nghĩa bởi lơ2 + ơn
Từ (3.40), chúng ta có thể thấy rằngp(x\D) là một phân phối chuẩn với mean là Pn và phương sai là ơ2 + ơn, p(x\D)~N(pn,ơ2 + ơn) Hơn nữa, chúng ta cũng dễ dàng thấy rằng X có thể được xem là tổng của hai biến ngẫu nhiên với mật độ phân phối p(p|D)~N(pn,ơ^) và p(w)~/V(0, ơ2), do đó hàm mật độ phân phối của nó có dạng p(x|D)~N(jzn,a2 + ơ£).
Sau khi xác địnhp(x\D) cho từng lớp ta được p(x| (ơị, D) cùng với xác suất tiên nghiệm P(ứÀ) sẽ có đủ thông tin để xây dựng bộ phân lóp. b) Xét trường hợp nhiều chiều
Phần này tổng quát hóa trường hợp một chiều ở trên, nghĩa là ma trận hiệp phương sai s được biết nhưng vectơ bình quân (mean) p không biết Như phần trước, các phân phối dạng Gauss như sau p(x\fi)~N(ji,Z) và p(n)~N(n0,I0), (3.42) trong đó go, So, và 2 giả sử là đã được xác định Với tập mẫu D={xi,
X2,xn}, tương tự như (3.31) ta có n p(n|D) = a||p(x7|p)p(p)
0 M-0 trong đó các thành phần độc lập g được tích hợp trong hệ số ai Rõ ràng (3.43) có dạng hàm mũ của biểu thức bậc hai p(n|D) = a2exp (p-nn)TZn1(u-|in) (3.44)
Như vậy/?(|A |Z>) có dạng phân phối Gauss dạngp(g|P)~7V(gM, En) Đồng nhất (3.43) và (3.44) ta được
M-n — TỉE xn 4" Io Ro> trong đó xnlà bình quân mẫu (sample mean) Áp dụng tính chất
Nhận thấy rằng X được xem như là tổng của hai biến ngẫu nhiên với mật độ phân phối pQi|P)~JV(pw, En) và p(w)~N(O, E) Do đó hàm mật độ phân phối p(x|Z>) sẽ là p(x|D)^(nn,Sn + E) (3.51)
Ngoài ra, chúng ta cũng có thể xác định p(xịD) dựa vào p(x|o) f p(xlịi)p(ụlD)dụ.
Ước lượng tham số Bayes: Tổng quát
Phần trên giới thiệu phương pháp ước lượng Bayes trong trường hợp phân phối Gauss Tiếp cận này có thể được tổng quát cho các trường hợp phân phối khác đã được biết dạng của nó Quá trình được tóm lược như sau:
- Dạng của hàm mật độ xác suất có điều kiện (hay likelihood) p(x|0) được biết, nhưng vectơ tham số của nó, 0, chưa biết và ta cần phải xác định.
- Thông tin về tham số 0 chỉ được biết qua hàm mật độ xác suất tiên nghiệm p(9).
- Thông tin còn lại liên quan đến 0 là tập dữ liệu D={xi, X2, , xw} bao gồm các mẫu được rút trích độc lập từ hàm mật độ phân phối chưa biết p(x).
Bài toán trở thành tính mật độ xác suất hậu nghiệm p(Q\D), từ đó chúng ta tínhp(x|D) theo công thức (3.28) Sử dụng công thức Bayes ta có p(D|e)p(0) p(O|D) = J, (3.52) trong đó p(ữ) = Ị p(D|e)p(0)d6 (3.53) đóng vai trò là hệ số chuẩn hóa, nó là tích phân đối với tham số 0 Trong trường hợp phân phối được giả thiết là phân phối Gauss như trên hoặc dữ liệu với số chiều nhỏ thì việc xác định có thể được thực hiện Tuy nhiên khi phân phối là bất kỳ và/hoặc dữ liệu với số chiều lớn, việc tính tích phân này trở nên phức tạp hơn Một số tiếp cận để giải quyết bài toán này bao gồm:
Sử dụng tích phân số.
- Xấp xỉ các hàm được sử dụng để tính hậu nghiệm bởi các hàm đơn giản hơn (variational Bayes).
Sử dụng các phương pháp Monte Carlo, cụ thể là Markov Chain Monte Carlo (MCMC).
3.6.1 Xấp xỉ xác suất hậu nghiệm bằng phương pháp lưới Đẻ đơn giản về mặt ký hiệu, phần còn lại của mục 3.6 này chúng ta có thể xem tập dữ liệu D là cố định, khi đó công thức (3.52) có thể viết đơn giản lại dưới dạng p(0) = —V—> (3.54) trong đó p(0) = p(0|P) là hậu nghiệm, ớ(0) = p(P|0) là likelihood, và z = p(D) được xem là hằng số (đối với 0).
Công thức Bayes trên cho chúng ta thấy mối quan hệ đó là sự kết hợp mật độ phân phối xác suất tiên nghiệm và likelihood vào mật độ phân phối xác suất hậu nghiệm của tham số 0, từ đó áp dụng cho bộ phân lóp Tuy nhiên, nó không chỉ giới hạn như vậy mà khả năng ứng dụng có thể được mở rộng hơn nếu xác suất hậu nghiệm được xác định, chẳng hạn như sử dụng trong kiểm định, dự đoán, so sánh các mô hình, v.v.
Với ý niệm trên chúngta sử dụng xác suất hậu nghiệm để ước lượng chính tham số 0 hoặc đại lượng y(0) nào đó dựa trên tính bất định (uncertainty) được đặc trưng bởi xác suất hậu nghiệm này Chẳng hạn như hằng số z ở công thức (3.54), nó là tích phân của hậu nghiệm không chuẩn trên tất cả các giá trị có thể của tham số 0. z = ứ(0)p(O)d0 = p(O)dỡ, (3.55) trong đó p(0) = I?(0)p(0) là hậu nghiệm không chuẩn (unnormalized posterior).
Ví dụ ứng dụng so sánh hai mô hình Mỉ và M2 Từ tập dữ liệu Đ đã cho, kiểm tra xem dữ liệu ủng hộ mô hình nào mà chúng ta đang giả định Một tiếp cận là tính hệ số Bayes (Bayes factor):
Chúng ta có p(P|M) = f p(DịeM,M)p(eM,M)dẹM = ZM, khi đó (3.56) trở thành Ri=Z\p(M\)l R2=Z2p(M2) Như vậy để tính hệ số Bayes chúng ta cần phải tính tích phân của hậu nghiệm trên các tham số của mô hình.
Tương tự, nếu chúng ta quan tâm đến xử lý trên tập con của tham số eqt từ tập tham số 0 = {8qt, O/cqt} Quá trình này có thể được thực hiện nếu mật độ phân phối xác suất hậu nghiệm toàn bộ 8 đã biết:
Các đại lượng khác nhìn chung có thể được suy ra từ giátrị kỳ vọng của các hàm phụ thuộc tham số/(8) với xác suất hậu nghiệm: p ffrtni = //WpWde ' / fWpWde pư J fp(e)de ỊpWd9 (358>
Chú ý, ta có được (3.58) là vì J p(8)d8 = 1 và p(8) oc p(8).
Ví dụ bài toán xét sự phụ thuộc của các biến hoặc các quan sát khác vào các tham số mô hình chúng ta Nếu chúng ta biết tham số của mô hình của chúng đúng là 8*, thì bài toán trở nên rất đơn giản Trong trường hợp tham số mô hình 8 bất định, chúng ta cần phải “lề hóa” (marginalize) trên sự bất định này (tính tích phân) Cách khác để giải quyết bài toán này sử dụng đại lượng gọi là dự đoán hậu nghiệm (posterior predictive), P(Pnew\D), đó là xác suất “thấy” tập dữ liệu mới
Dnew dựa trên tập dữ liệu đã tồn tại P: p(Dnew|D) = [ p(DnewỊe)p(eỊĐ) de r- _ ={(x/, yz)|z-l,2, ,H}, trong đóxE là mẫu nhập và y, là ngõ xuất kỳ vọng tương ứng của nó Hàm loss được sử dụng phổ biến làmean square error (MSE), được định nghĩa bởi n n
L(w,b) =^/(ei) =|^||yí -Oj||z, (5.12) i=l i=l trong đó w là các trọng số kết nối giữa các tầng, b là các bias, và Oz là giá trị nhận được thực sự từ mô hình tương ứng với mẫu nhập X/. Đối với bài toán hồi qui, ngoài hàm loss phổ biến là mean squared error (MSE), hàm này ảnh hưởng rất nhiều bởi các outliers, một trong những cách giảm ảnh hưởng của các outliers là sử dụng hàm Huber, được định nghĩa bởi nếu |e| < 8 ngược lại '
Hình 5.9 So sánh hàm lỗi Huber (đường liền, #=1) và hàm square
(đường đứt) Hình 5.9 minh họa hai hàm Huber và hàm square Chúng ta có thể thấy rằng với giá trị lớn của lỗi (ứ) thì hàm Huber ít bị ảnh hưởng hon hàm mũ. Đối với bài toán phân lóp, bên cạnh các hàm MSE, tiếp cận dựa trên xác suất cũng được sử dụng khá phổ biến Giả sử chúng ta có c lớp
(ữi, ữ)2, , CŨQ, Với mẫu huấn luyện (x, y) G 2), trong đó X E là mẫu nhập và y=[yi, y2, yc] là vector ngõ xuất kỳ vọng tưong ứng của X, mỗi yi đóng vai trò như xác suất mà mẫu X thuộc lớp Cời Trong nhiều ứng dụng, với mỗi mẫu xe Cởi thìyi=l và57=0 với mọi tej.
Gọi o=[ơi, 02, , ơc] là vector ngõ xuất được tạo ra bởi mạng nơ- ron, trong đó Oi thể hiện xác suất mẫu nhập X thuộc lớp Cởi Một trong nhũng phương pháp có thể tạo ra xác suất như vậy là sử dụng hàm truyền softmax tại tâng ra của mạng Như vậy ngõ ra kỳ vọng y và ngõ ra thực sự o ứng với mỗi mẫu nhập đều là xác suất, do đó một tiếp cận cho hàm loss trong trường hợp này nên lượng hóa sự khác biệt giữa hai phân phối xác suất Một trong những tiếp cận phổ biến đo sự khác biệt giữa 2 phân phối xác suất là sử dụng phân kỳ Kullback-Liebler (KL- divergence), được xác định bởi: c í-(y||o) = y'y(log^■ = W(y,o) - H(ỳ), (5.14)
4—< Oi i=l trong đó H(y) và 2/(y, o) là entropy và cross-entropy, được định nghĩa bởi c H(y) = -^yjogy;, i = l và
Rõ ràng rằng entropyH(y) không phụ thuộc vào thông số của mô hình, do đó thông số của mô hình mạng để cực tiểu KL-divergence cũng sẽ cực tiểu cross-entropy Vì vậy trong thực tế, cross-entropythường được sử dụng làm hàm loss trong việc huân luyện mạng với hàm truyên ở tầng ra là softmax.
Tìm giá trị tối ưu dựa trên giảm gradient
Gradient là đạo hàm bậc nhất của hàm mục tiêu, nó chỉ ra hướng đi lên dốc nhất của hàm mục tiêu tại điểm được tính Giảm gradient là một trong những phương pháp tìm cực tiểu hàm mục tiêu dựa trên các bước lặp, nó theo hướng ngược của gradient để xuống dốc đi đến điểm cực tiểu của hàm mục tiêu Các điểm cực trị (bao gồm cực tiểu) của hàm số có đạo hàm tại đó bằng 0 Tuy nhiên, việc giải phương trình đạo hàm bằng 0 để tìm cực tiểu thường khá phức tạp khó khả thi, nguyên nhân bao gôm sự phức tạp của dạng đạo hàm, sô diêm dữ liệu lớn, hoặc sô chiều dữ liệu lớn Hướng tiếp cậnphổ biến là xuất phát từ mộtđiểm gần với nghiệm bài toán, sau đó dùng phương pháp lặp để tiến về nghiệm cần tìm.
Vídụ 5.2' Xét hàm sốy(x)=(x-3)2+3cos(x-2) Hàm này đơn giản, có thể dễ dàng xác định giá trị nhỏ nhất bằng cách lấy đạo hàm và tìm nghiệm với đạo hàm bằng 0, tuynhiên trong ví dụ này sử dụng cách tìm giá trị nhỏ nhất dựa trên giảm gradient Quá trình thực hiện bao gồm các bước sau:
- Khởi động giá trị ban đầu cho Xo
- Trong khi điều kiện dừng chưa thỏa, thực hiện
Cập nhật xt+1 = xt — a - lx=xt, trong đó a là hệ sô, Xt xj A/ là giá trị cũ, và X/+1 là giá trị cập nhật mới.
Hình 5.10 Minh họa cho phương pháp giảm gradient để tìm cực tiểu của hằxnf(xy=(x-3)2+3cos(x-2) Quá trình cập nhật các giá tri X được minh họa như trong Hình 5.10 với giá trị ban đau x=-2.5 Từ Hình 5.10, chúng ta thấy từ giá trị khởi động ban đầu, qua quá trình lặp nó tiến dần về giá trị cực tiểu của hàm.
Ví dụ trên là minh họa cho trường hợp hàm đon biến đơn giản Nó có thể tổng quát hóa cho cho bài toán huấn luyện mạng, đó là tìm các trọng số đế tối ưu hàm loss, L Để đơn giản, chúng ta tập trung vào việc tìm trọng số mạng w, còn các độ dịch (bias) được thực hiện tương tự. Quá trình được tóm tắt như sau:
- Khởi động các trọng số mạng, w.
- Lặp lại quá trình o Tính giá trị ngõ ra của mạng o ứng với mẫu nhập x; o Tính Awt bởi
△ wt = ỠL(w) ỡw (5.17) o Cập nhật wt+1 = wt - aAwt, (5.18) trong đó a là hệ số học Hệ số này xác định khoảng cách di chuyển trong không gian tìm kiếm dựa trên gradient ở mỗi lần lặp lại; Đến khi điều kiện dừng thỏa. Điều kiện dừng có thể dựa vào số lần lặp (epochs) vượt ngưỡng định nghĩa trước hoặc độ bão hòa, nghĩa là sai biệt giữa Wt+1 và Wt, I|wt+i-Wt|I, nhỏ hơn một ngưỡng nào đó.
5.5.2 Giảm gradient sử dụng momentum
Trong giải thuật giảm gradient sử dụng momentum, việc cập nhật trọng số được thực hiện với bước di chuyển dựa trên gradient tích lũy trước và gradient hiện tại Quá trình cập nhật trọng số mạng được thể hiện bởi:
Wt+I = wt-Vt, (5.19) trong đó
Biến v lưu vết của các gradient trước Hệ số Y biểu thị mức độ momentum đóng góp vào quá trình cập nhật, giá trị của nó thay đổi giữa
0 và 1 Giải thuật này hạn chế được ảnh hưởng của tối ưu cục bộ, và cho tốc độ hội tụ tốt hơn thuật toán giảm gradient đơn giản Giải thuật này tạo gia tốc trong quá trình di chuyển, giúp vượt qua các điểu tối ưu cục bộ Tuy nhiên, khi đến đích nó cần có thời gian để giảm gia tốc trước khi dừng hẳn.
5.5.3 Giảm gradient dựa trên mini-batch và stochastic
Thay vì xử lýtrên toàn bộ tập dữ liệu huấn luyện một lần, chúng ta có thể chia tập dữ liệu thành các tập con ứng với mỗi tập con, gradient tương ứng từng mẫu dữ liệu sẽ được tính và được sử dụng để cập nhật các trọng số của mạng Phương pháp này cập nhật theo từng bó (batch) do đó nó còn được gọi là giảm gradient dựa trên mini-batch Trong trường hợp đặc biệt khi số batch bằng một, nó trở thành stochastic gradient descent (SGD) Điểm mạnh của mini-batch hay SGD là khả năng xử lý với dữ liệu lớn, khi đó việc tính toán gradient trên toàn bộ dữ liệu trở nên phức tạp Hơn nữa các phương pháp học này còn hỗ trợ việc học online, ở đó qua trình cập nhật trọng số mạng được thực hiện cho mỗi gói dữ liệu huấn luyện được nhận mới Hạn chế của phươnẹ pháp này là nó có thể bị zig-zag trên đường tiến vể điểm hội tụ vấn đe này có thể là do từng batch dữ liệu huấn luyện không đại diện cho toàn bộ tập dữ liệu.
5.5.4 Giảm gradient với hệ số học thích nghỉ (AdaGrad) Ý tưởng chính của AdaGrad là thay vì sử dụng cùng hệ số học cho tất cả các đặc trưng của tập dữ liệu, chúng ta có thể sử dụng các hệ số học khác nhau với các đặc trưng khác nhau Quá trình cập nhật trọng số được mô tảbởi vt = Vt-1 + (Vwt)2,
(5.22) Điểm nổi trội củaAdaGrad là không cần điều chỉnh hệ số học bằng tay, phần lớn các hiện thực cho nó bàng 0.01 Hạn chế của giải thuật này là tổng bình phương biến thiên sẽ lớn dần theo thời gian cho đến khi nó làm cho hệ số tốc độ học cực nhỏ, dẫn đến việc cập nhật trọng số không thực hiện được.
5.5.5 RMSProp Đây cũng là giải thuật dựa trên giảm gradient, tuy nhiên không giống AdaGrad, lịch sử gradient được tính toándựa vào trung bình giảm dần theo hàm mũ Nó giúp hạn chế việc tăng nhanh mẫu số trong trường hợp đặc trưng dày Quá trình cập nhật được mô tả như sau:
V^[g2]t + 6 v 7 trong đó gt = Vwt là gradient Giải thuật này giải quyết được vấn đề tốc độ học giảm dần của AdaGrad, tuy nhiên nó có thể gặp vấn đề tối ưu cục bộ Một trong các tiếp cận cải tiến là kết hợp Momentum với RMSprop như Adam
Adam (adaptive momentum estimation) là một tiếp cận khác tính hệ số học thích nghi, nó là sự kết hợp củamomentum và RMSprop Bên cạnh duy trì giá trị trung bình giảm dần theo hàm mũ của bình phương gradient như RMSprop (vt), Adam cũng duy trì giá trị trung bình giảm dần theo hàm mũ của gradient (mì) nhưmomentum Quá trình cập nhật trọng số mạng được thể hiện bởi: mt = ft * vt + (1 - ft)Vwt, vt = ft * Vt-1 + (1 - ft)(Vwt)2 wt+1 = wt - n
Minh họa cho việc tìm lời giải tối ưu dựa trên Adam được chỉ ra trong Hình 5.11 Chúng ta thấy rằng giải thuật xác định đường đi và bước đi đến điểm tối ưu toàn cục hiệu quả hơn sau một vài epoch đầu tiên.
Hình 5.11 Minh họa cho quá trình tìm nghiệm tối ưu dựa trên Adam
Lan truyền ngược
Một trong những giải thuật phổ biến để tìm trọng số mạng dựa trên giảm gradient là lan truyền ngược (backpropagation), nó cho phép tính các gradient một cách hiệu quả.
5.6.1 Đồ thị tính toán Đồ thị tính toán là một đồ thị có hướng không có chu trình (DAG- directed acyclic graph), có thể được sử dụng mô tả dòng dữ liệu trong mô hình mạng Mỗi nút trong đồ thị tương ứng là một toán hạng và có thể kèm theo một phép toán Phép toán bao gồm các phép toán trong đại số tuyến tính (như cộng (+) hay nhân (x)), hàm truyền (ơ), hay hàm loss Toán hạng có thể thuộc các kiểu bao gồm vô hướng, vector, hay ma trận Khi một nút có chứa cả toán hạng và phép toán, thường phép toán hay toán tử được ghi trước theo sau là toán hạng.
Ví dụ 5.3' Hình 5.12 là đồ thị tính toán một mạng được mô tả bởi hàm y = ơ(Wx + b), trong đó X là vetor đầu vào, y là giá trị đầu ra, hàm truyền là ơ, và hàm loss là MSE Các toán hạng có thể là các vector hoặc ma trận.
Hình 5.12 Đồ thị tính toán
Từ đồ thị trên chúng ta có: u = w * X
CÓ bốn phép toán trong đồ thị Phép đầu tiên là phép nhân với hai toán hạng đầu vào là X và w, kết quả sẽ được lan truyền sang nút chứa toán tử cộng với toán hạng xuất là v, tiếp theo là xử lý bởi hàm truyền ơ, kết quả đầu ra y được tiếp tục xử lý bởi hàm loss MSE.
5.6.2 Jacobian và luật dây chuyền (chain rule)
Mạng nơ-ron bao gồm nhiều tham số (trọng số và độ dịch), do đó gradient của hàm mục tiêu cần được tính trên nhiều biến Giả sử x=[xi,
X2, ,Xm] và J7=y(x), khi đó gradient của y đối với X được định nghĩa bởi vxy = dy dy
Tổng quát hóa của gradient đối với hàm có trị trả về vector được gọi là
Jacobian Giả sử hàmf có dạng f : DV71 -> Rn và y=flx) Jacobian Jx(y) được định nghĩa bởi Ịdyi
/x(y) = dxỵ đỳi dyn' dxr dyn
Trong huấn luyện mạng nơ-ron dựa trên giảm gradient, luật dây
1 • 4 ô 42>4ô4M44M • Ê ụ chuyên thường được sử dụng đê tính vi phân không trực tiêp của các biến thông qua các hàm trung gian Giả sử z=/(y)=/(g(x)), khi đó luật dây chuyền có thể được minh họa bởi dz dz dy £ = (5.28) dx dy dx Đối với hàm của vector z=y(y) và y=g(x), ta có vxz = Jx(y)Vyz (5.29)
Ngoài ra, nếu z là hàm đa biển z=flu,v) với u=g(x) và v=h(x) thì vi phân của z đối với X được định nghĩa bởi dz dz du dz dv dx du dx du dx' (5.30)
Trong trường hợp các vector 11 và v, z=/(u,v) với u=g(x) và v=7ỉ(x), khi đó ta có vxz = Jx(u)vuz + Jx(v)Vvz (5.31)
5.6.3 Giải thuật lan truyền ngưực
Giải thuật lan truyền ngược là một trong các giải thuật phổ biến tìm các thông số của mạng để tối ưu hàm mục tiêu cho trước Trong đồ thị tính toán, hàm mục tiêu thường là hàm ở ngõ ra cuối cùng Tại mỗi lớp, giả sử w là trọng số của nút cần tính và Wnext là trọng số tương ứng của nút theo sau nó theo đồ thị tính toán và đã được tính, khi đó
7 ,~77Ấ 7 4 next, 7- 7,7 gradient của hàm lôi đôi với trọng sô w được xác định bởi
Hình 5.13 Tính gradient tại một nút Trong trường hợp một nút có nhiều nút con theo sau, chúng ta sử dụng phép tổng của các số hạng tương ứng với gradient của các nút con.
Ví dụ được mô tả ở Hình 5.12, hàm mục tiêu là hàm loss được định nghĩa bởi MSE, L = MSE(y,ỹ) = ||y — ỹ||2, các tham số của mạng bao gồm w và b Như vậy việc tìm các thông số dựa trên giảm gradient cần phải tính VWL và VbL Hình 5.14 minh họa quá trình tính gradient của hàm mục tiêu đối với các biến Các nút tương ứng các tham số của mạng kết nối hàm loss thông qua các nút trung gian Do đó việc tính gradient của L đối với các tham số thường sử dụng luật dây chuyền (chain rule) và tính thông qua các biến trung gian Quá trình thực hiện từ ngõ xuất đến ngõ nhập, trước tiên ta thấy rằng gradient hàm mục tiêu đối với biến y là
Gradient của L đối với các biến trung gian v và u lần lượt được xác định bởi
VvL = Jv(y)VyL và VUL = Ju(v)VvL.
Gradient của L đối với thông số b và w lần lượt là
V|jL = Jb(v)VvL và VWL = Jw(u)VuL.
Hình 5.14 Quá trình tính gradient của hàm mục tiêu đối với các biến
Cụ thể hơn, với đồ thị ở Hình 5.12, giả sử tất cả các biến là các đại lượng vô hướn£ (1 chiều) và ÓT là hàm sigmoid, khi đó gradient của L đối với trọng so w và b được xác định bởi ầbt = VbL = h(v)VvL = Jử(v)Jv(y)VyL
= Jw(u)v UL = Jw(ư)Ju(v)VvL
Trong trường họp tổng quát với các biến vector (nhiều chiều) và ơ là hàm element-wise sigmoid, Jacobian Jv(y) có dạng cụ thể Dựa trên tính chất vi phân của hàm sigmoid ở phần 5.3.1, chúng ta thấy rằng
- Ịy^1 “ yà nếu 1 = j dVj l 0 ngược lạiJacobian có dạng ma trận đường chéo
Giả sử s=[si, S2, Sn] là vector được định nghĩa bởi 5i=yi(l-yi), VvL có thể được biểu diễn đơn giản bởi
VvL = s o vy£, trong đó X o y là tích element-wise của X và y.
Sau khi có được VvL, tiếp theo chúng ta tính VUL và VbL Do
V = u + b nên chúng ta dễ dàng thấy rằng /u(v) = /b(v) = In/ trong đó In là ma trận đơn vị kích thước nxn Do đó chúng ta có
Cuối cùng là ma trận trọng số w Chú ý rằng u=Wx và w là dạng ma trận Ma trận w được xem là cấu thành từ các vector W1, W2, Wn, trong đó là hàng thứ ỉ của ma trận w Một trong các kỹ thuật hiệu quả là xử lý từng vector riêng biệt và tính gradient của nó sử dụng công thức
Do Ui = wf X và các Ui độc lập các Wj với i^j, nên Jacobian Jwi(u) sẽ có giá trị 0 ngoại trừ cột thứ i và bằng X Như vậy ta được gradient
Phần trên trình bày một mô hình giảm gradient cho một nút mạng khá đơn giản Tiếp theo chúng ta xem xét trường hợp mạng nơ-ron có nhiều tầng (MLP-Multilayer perceptron), các thông số trong mỗi tầng k được định nghĩa bởi 0k bao gồm trọng số w và độ dịch b Một mạng nơ-ron K tầng được minh họa như trong Hình 5.15.
Với một vector đầu vào X, mô hình có thể được xem là ánh xạ từ đầu vào tới đầu ra y có dạng y = /(x) = /Ko °/'2°/'1(x), (5.34)
Hình 5.15 Mô hình mạng nơ-ron truyền thẳng đơn giản có 4 tầng trong đó/k là biểu thị cho hàm tương ứng với tầng k và X£+i=/ẩ:(xẠ Để xác định thông số trong mỗi tầng, chúng ta cần tính gradient của hàm lỗi đối với các thông số ở tầng đó
“/ớfc(xk+í)/xfc+1(xk+2) (XK)k K(y)VyL (5.35)
Chúng ta thấy rằngviệc tính gradient VXk+1L có thể được thực hiện theo phương pháp hồi qui, nó được tính bởi VXk+2L nhân với Jacobian /x (xfc+2)- Ỷ tưởng giải thuật lan truyền ngược được mô tả trong Giải thuật 5.1 _ _
Giải thuật 5.1 Giải thuật lan truyên ngược cho mạng MLP với K tầng _
9 Vetz, = Jgk (xk+ĩ)uk+ll trong đó Xj>i=y
10 Cập nhật trọng số Ok sử dụng các kỹ thuật giám gradient
Trong các bài toán phân lớp, thường thì hàm truyền softmax được sử dụng ở tầng cuối cùng và hàm loss là cross-entropy c
L = H(y, o) = - V ỹi log Oi, i = l trong đó
Chỳ ý rằng ỉ,i ỹi = 1ằ do đú ta cú
Lây vi phân trên từng thành phânyk ta được dL f eyk ĩỹĩc~ ~ỹk + Ỹ]ẽỹĩ ~ °k ~ ỹk'
Như vậy ta có gradient của L đối với y
Giải thuật ELM
Đối với mạng một lớp ẩn, thaỵ vì sử dụng các thuật toán lặp dựa trên giảm gradient, một tiếp cận đê tìm trọng sô mạng không sử dụng quá trình lặp là giải thuật ELM (extreme learning machine) Kiên trúc tiêu biểu của mạng neural một lớp ẩn với d nút ở lớp nhập, N nút ở tầng ẩn và c nút ở lóp xuất có thể được mô tả như trong Hình 5.16.
Giả sử WOT =[ Wmi, W, , Wmd\ là vector trọng số của các kết nối từ lóp nhập đến nút ẩn thứ m, bm là độ dịch (bias) của nó và ai =[ơn, ữi2, , ứiv]T là vector trọng số của các kết nối từ lớp ẩn đến nút xuất thứ i Thì vectorngõ xuấtOj tương ứng với vector nhập Xỹ được xác định bởi
(5.36) trong đó ơ(-) là hàm kích hoạt của các nút ẩn Cho tập mẫu D =
{(Xj,ỹj) I j = 1,2 , n}, quá trình huấn luyện mạng là tìm ra các trọng số, bao gồm w, a và b, để tối ưu một hàm mục tiêu: n m=l
Giải thuật ELM dựa trên ý tưởng là thay vì xác định tất cả các trọng số mạng bằng các quá trình lặp lại, trọng số lớp nhập và độ dịch có thể được chọn ngẫu nhiên và trọng số lớpxuất được xác định bằng các bước đom Rõ ràng một mạng với N nút ẩn có thể xấp xỉ Nmẫu phân biệt với lỗi bằng 0, nghĩa là tồn tại các trọng số w, a và b sao cho
N Ỷj = ' a* mơ(wm * Xý "b bm) >J ~ 1'2, ,N. m=l
Phương trình này có thể được viết lại như sau:
Trong đó Y = [ỹi, ỹ2, ,ỹn]T, A=[ ai, a2, , là ma trận ngõ xuất lớp ẩn được định nghĩa bởi av], và H còn được gọi
Người ta đã chứng minh được rằng ma trận H là khả đảo nếu số mẫu trong tập huấn luyện bằng số nút ẩn và hàm kích hoạt khảvi phân Trong trường hợp số nút ẩn nhỏ hơn số mẫu huấn luyện thì ma trận trọng số lớp xuất A sẽ được xác định bởi ma trận giả đảo của H với sự chọn lựa ngẫu nhiên của trọng số nhập và độ dịch  = H+Y, (5.41) trong đó H+ là ma trận giả đảo của H Như vậy, thuật giải ELM có thể được tóm tắt như sau:
Gán các giá trị ngẫu nhiên cho trọng số nhập và độ dịch (bias) các nút ẩn;
Tính ma trận ngõ xuất lóp ẩn H;
- Xác định trọng số xuất bàng cách sử dụng phương trình (5.41). Như vậy, các trọng số của mạng có thể được xác định bởi những bước đơn giản và không cần sự tính toán bởi các bước lặp như các thuật toán giảm gradient Nó có thể khắc phục những nhược điểm như chọn lựa hệ số tốc độ học, epochs, khởi động giá trị ban đầu,v.v Đặc biệt thuật toán này cho thời gian huấn luyện rất nhanh Một số cải tiến của ELM đã được đề xuất để tính ma trận giả đảo một cách hiệu quả.
5.8 Mạng nơ-ron tổng chập (convolutional neural networks)
Mạng kết nối đầy đủ đã mang lại hiệu quả trong nhiều ứng dụng khác nhau Tuynhiên trong xử lý ảnh, kích thước đầuvào rất lớn Chẳng hạn như một ảnh màu có kích thước 224x224 thì tổng số đầu vào là 224x224x30,528 Với ngõ ra chỉ cần 10 nút thì cần hơn 1.5 triệu thông số Nếu số ảnh dùng để huấn luyện quá nhỏ so với số thông số, nó sẽ dễ dàng dẫn đến tình trạng quá khớp (overfitting) ngay cả khi mạng chỉ có một lớp ẩn vấn đề này được xử lýbằng cách chia sẻ trọng số của các kết nối.
Một trong những tiếp cận trong chia sẻ trọng số kết nối là sử dụng mạng tổng chập (CNN), nó giảm đáng kể số trọng số của mạng Có ba dạng tầng phổ biến trong mạng CNN làtầng chập c (convolution), tầng gom cụm (pooling), và tầng chuẩn hóa (normalization).
2V zJk 7 (Nhạn dạng đôi tượng)
Tầng ần thứ ba Lảm nổi các phần cùa đối tượng)
Tầng ẩn thứ hai (Làm nồi các góc và đường viền) í Tầng ẩn thứ nhất (Làm nổi các cạnh)
Hình 5.17 Minh họa chức năng các tầng mạng tổng chập
Dựa trên giả thiết rằng các đặc trưng nhận dạng của ảnh thường được hình thành từ các phần nhỏ kết nối nhau trong ảnh, các tầng chập sẽ làm nổi bật các phần nhỏ của đặc trưng này Ví dụ, tầng chập đầu tiên nhận dạng các phần nhỏ của các cạnh trong ảnh, các tầng chập tiếp theo sẽ nhận dạng các đặc trưng có cấu trúc phức tạp hơn dựa trên sự kết hợp các phần đơn giản ở tầng trước, chẳng hạn như các đường viền, mát, mũi, v.v Ý tưởng này giúp đơn giản hóa việc tính toán, chẳng hạn như việc làm nổi bật các cạnh nhỏ trong ảnh sẽ không quan tâm vị trí của cạnh đó trong ảnh, do đó chúng ta có thể sử dụng một nút duy nhất được huấn luyện để đảm nhận việc này Ví dụ nếu chúng ta muốn làm nồi cạnh trong vùng có kích thước 5x5 trong ảnh có kích thước 224x224 thì sử dụng tổng chập với cửa sổ có kích thước 5x5, do đó số điểm ảnh kết nối đến nút đó chỉ 25 thay vì sử dụng toàn bộ 224x224 điểm ảnh. Chúng ta có thể xem mỗi nút ở tầng convolution như là một bộ lọc trên một vùng không gian nhỏ của ảnh Có nhiều đặc trưng được quan tâm khắp nơi trong ảnh (ví dụ bộ lọc làm nổi cạnh ngang trong phần nhỏ của ảnh, mà phần cạnh ngang này nằm rải rác khắp nơi trong ảnh), do đó bộ lọc này sẽ được áp dụng trên nhiều vị trí trong ảnh.
Quá trình tính tổng chập đơn giản được thực hiện bằng cách nhân các giá trị mức xám trong vùng cửa sổ nhỏ được xử lý với các bộ lọc,được mã hóa bởi ma trận trọng số w và độ dịch b, sau đó tính tổng của nó Giả sử cửa sổ có tâm tại điểm ảnh Xij, khi đó giá trị đầu ra (còn gọi là đáp ứng của bộ lọc) tương ứng, nj, được xác định bởi
Cửa sổ sẽ được trượt trong ảnh dọc theo các chiều và áp dụng cùng bộ lọc này tại mỗi vị trí, các giá trị đáp ứng ry sẽ được đưa qua một hàm truyền và tạo thành bản đồ kích hoạt (activation map) của bộ lọc Hình 5.18 minh họa cho quá trình này Thông thường hàm truyền được sử dụng ở bước này là dạng ReLU Quá trình huấn luyện là tìm các trọng số của bộ lọc w và độ dịch b. Ảnh kết quả có kích thước có thể khác kích thước ảnh đầu vào, tùy thuộc vào 2 thông số chính là khoảng đệm (padding) và sải bước (stride) Khoảng đệm chỉ ra số hàng và số cột đệm thêm vào ở các biên để đảm bảo bộ lọc có thể trượt Sải bước cho biết tổng số điểm ảnh mà cửa sổ trượt bỏ qua khi trượt theo các chiều của ảnh Thông thường, để kích thước ảnh kết quả bằng kích thước ảnh đầu vào thì khoảng đệm bằng một nửa kích thước cửa sồ và sải bước bằng 1. Ảnh đầu vào
Tầng pooling thường đi kèm với tầng convolution, nó nhận dữ liệu đầu vào là từ ngõ ra của tầng convolution, và tạo ngõ ra có kích thước thường nhỏ hơn sử dụng hàm pooling, hàm này sẽ được áp dụng trên các vùng nhỏ của ảnh đầu vào Chẳng hạn hàm max-pooling trên các vùng không chồng lấp kích thước 2x2, hàm này sẽ tạo giá trị đầu ra là giá trị lớn nhất của 4 giá trị ngõ vào trong vùng cửa sổ 2x2 Có 3 thông số chính khi định nghĩa tầng pooling:
Hàm pooling, thông thường hàm max được sử dụng, tuy nhiên một số ứng dụng có thể sử dụng các hàm khác như hàm tính trị trung bình.
- Kích thước của vùng hay kích thước cửa sồ Nếu kích thước lớn quá thì có thể làm mất thông tin.
Sải bước giữa các vùng, tương tự như sải bước được sử dụng ở tang convolution Thông thường thì các vùng không chồng chéo nhau, do đó bước sải sẽ bằng một nửa kích thước cửa sổ.
Trong mô hình mạng sâu (có nhiều tầng), vấn đề có thể xảy ra là gradient bão hòa hay bùng nổ Một trong những giải pháp để khắc phục là thêm một tâng mở rộng đê chuân hóa các đặc tính thông kê của các nút ẩn, chẳng hạn như có giá trị trung bình bằng không và phương sai bằng một Hiện có một số dạng chuẩn hóa, bao gồm batch normalization, layer normalization, hoặc instance normalization.
5.8.4 Kiến trúc mạng CNN đơn giản
Kiến trúc mạng CNN tiêu biểu bao gồm các tầng convolution và pooling, kết thúc với các tầng fully-connected Một ví dụ kiến trúc mạng đơn giản trong bài toán phân lớp ImageNet vào một trong 1000 lớp được trình bài trong Hình 5.19 Mạng này lấy ý tưởng từ mạng VGG, đây là mạngkhá đơn giản chỉ gồm các tầng convolution vàtầngpooling Đầu vào của mạng ở tầng đầu tiên là ảnh màu (3 kênh) kích thước 224x224, đầu vào của các tầng tiếp theo là đầu ra của tầng trước nó. Tầng đầu tiên là convolution, bao gồm 64 bộ lọc, mỗi bộ lọc xử lý luôn
3 kênh màu Bộ lọc có kích thước 3x3 và sải bước bằng 1, vì vậy mỗi vùng 3x3 của ảnh là một đầu vào của bộ lọc, khoảng đệm zero (zero padding) đã được sử dụng, do đó kích thước ảnh đầu ra cũng bằng kích thước ảnh đầu vào (224x224) tương ứng cho mỗi bộ lọc Đầu ra của tầng đầu tiên sẽ được đưa vào tầng max-pooling, ở đó nó chia ảnh 224x224 thành các ô vuông kích thước 2x2 không chồng nhau (sải bước bằng 2), do đó tầng này sẽ tạo ra ảnh đầu ra có kích thước 112x112 tương ứng với 64 kênh.
1 X 1 X 4096 1x1x1000 f — $ convolutional ♦ ReLU fO maxpodlno fW connected * ReLU
Mạng hồi qui (Recurrent Neural Networks-RNN)
Tạo mô hình mạng và in ra tông kêt kiên trúc của mạng băng Model
# creating the model model = Model (inputs=input, outputs =output) model.summaryO
5.9 Mạng nơ-ron hồi qui (Recurrent Neural Networks-RNN)
Mạng CNN j5ồu ồợp trổííg xử lý dữ ỉíệư ảah, đổi với dữỉiệư tưầỉĩ tự như trong ngôn ngữ tự nhiên, chuỗi ảnh trong video, chuỗi giá trong thị trường chứng khoán, v.v thì mạng nơ-ron hồi qui (RNN-recurrent neural networks) có thể được sử dụng.
X a) Đơn vị cơ bản của RNN b) Phân rã của một RNN cơ bản Hình 5.20 Cơ bản của RNN
Một ví dụ đơn giản là trong dự đoán chuỗi thời gian, dựa vào chuỗi dữ liệu ở thời diêm trước đó đe dự đoán giá trị dữ liệu ở thời điểm tiếp theo Như vậy, ở môi nút, dữ liệu đâu ra không những phụ thuộc vào dữ liệu đâu vào mà còn phụ thuộc trạng thái hiện tại của nó Một nút đơn giản của mô hình mạng RNN được minh họa trong Hình 5.20a, nó tương tự như nút cơ bản trong mạng hồi qui, ngoại trừ có kết nối vòng từ ngõ xuât đên ngõ nhập Hình 5.20b mô hình trải ra của mạng CNN, đầu vào là một dải Xi, X2, , x„ và đầu ra là dải yi, y2, , y„.
Tổng quát, mỗi nút thực hiện chức năng giống như một ô nhớ lưu giữ trạng thái trước đó, tại mỗi thời điểm t (cũng có thể gọi là frame trong xử lý video), nơ-ron sẽ nhận dữ liệu đầu vào là Xí và trạng thái ẩn ở thời điểm trước, h/-7, và tạo ra trạng thái ẩn h/ ht = f (xt, ht_t) = /(wx • xt + wh ht-i + bh), (5.43) trong đó/là hàm truyền phi tuyến nhưsigmoid hay tanh, Wx và Wh là các ma trận trọng số, và bh là độ dịch Ngõ xuất của nơ-rontại thời điểm t là hàm của trạng thái tại thời điểm t được mô tả bởi yt = fl(wy • ht + by) (5.44) trong đó g là hàm truyền, ví dụ như hàm softmax xấp xỉ xác suất, Wy là vector trọng số, và by là độ dịch.
Dựa trên đặc trưng đầu vào, đầu ra, một số kiểu mạng RNN phổ biến bao gồm:
Mô hình này nhận dữ liệu đầu vào là dải Xi, X2, , Xn và tạo đầu ra là dải yi, y2, , yn Mô hình này khá hiệu quả trong dự đoán chuỗi thời gian, nhận dữ liệu đầu vào là chuỗi dữ liệu quá khứ và dự đoán kết quả tương lai Ví dụ như dự đoán giá cổ phiếu, mô hình sẽ sử dụng dữ liệu từ các ngày trước là đầu vào, đầu ra là các ngày được dịch về tương lai ít nhất một ngày. c) Vector-to-sequence d) Encoder-Decoder
Hình 5.21 Một số mô hình RNN cơ bản
Mô hình này tương tự như mô hình sequence-to-sequence, tuy nhiên nó bỏ qua các đầu ra ngoại trừ đầu ra cuối cùng.
Chúng ta có thể đưa đầu vào tương ứng với điểm thời gian đầu tiên của mô hình mạng, các đầu vào còn lại là 0, mạng sẽ tạo ra dãy xuất Ví dụ, mô hình này có thể nhận đầu vào là một ảnh, đầu ra là chuỗi các từ chú thích hay tiêu đề của ảnh đó.
Mô hình được minh họa trong Hình 5.2Id, trong đó phần encoder nhận dữ liệu đầu vào mã hóa tạo ra các đặc trưng trung gian Phần decoder có đầu vào từ các đặc trưng trung gian này và tạo ra dữ liệu đầu ra.
5.9.2 Hiện thực cơ bản sử dụng TensorFlow
Phần này trình bày hiện thực cơ bản RNN sử dụng TensorFlow Đẻ đơn giản, ta bắt đầu với RNN có 2 bước thời gian, vector nhập có kích thước là 3, và hàm truyền là tanh, và yt=ht, như Hình 5.22.
Hình 5.22 Một mạng RNN đơn giản với vector nhập có kích thước là 3, hai bước thời gian _ num_inputs=3 num_neurons=5
X1 =tf.placeholder(tf.float32,[None,num_inputs]) x2=tf.placeholder(tf float3 2, [None,num_inputs])
Wx=tf.Variable(tf.random_normal(shape=[num_inputs, num_neurons] ,dtype=tf.float32))
Wy=tf.Variable(tf.random_normal(shape=[num_neurons, num_neurons],dtype=tf.float32)) b=tf Variable(tf.zeros([ 1 ,num_neurons]),dtype=tf.float32) y 1 =tf.tanh(tf.matmul(x 1, Wx)+b) y2=tf.tanh(tf.matmul(yl,Wy)+tf.matmul(x2,Wx)+b)
Mạng này trông giông như mạng truyên thăng 2 tâng với các đặc điểm:
(1) trọng số và độ dịch được chia sẻ bởi hai tầng; (2) dữ liệu nhập được đưa vào mỗi tầng và lấy dữ liệu ra ở mỗi tầng Cách hiện thực nàykhông hiệu quảnếu mạng có số bước thời gian lớn vấn đề này được giải quyết thông qua hàm statỉcrnn như sau: _ num_steps=2
X=tf.placeholder(tf.float32, [None,num_steps, num inputs])
Xseqs=tf.unstack(tf.transpose(X,perm=[ 1,0,2])) asic_cell=tf.nn.mn_cell.BasicRNNCell(num_units=num_neurons) output_seqs, states=tf.nn. static_mn(basic_cell,Xseqs,dtype=tf float3 2) outputs=tf transpose(tf.stack(output_seqs),perm=[ 1,0,1])
Hàm statỉc_rnn() có hạn chế là định nghĩa tĩnh, giống như nó định nghĩa tĩnh từng cell (dựa trên BasicRCNNCell) mà không dùng vòng lặp; đòi hỏi phải lưu trữ tất cả các giá trị tensor trong quá trình truyền thẳng, để có thể tính gradient trong quá trình truyền ngược Hạn chế này có thể được khắc phục thông qua hàm dynamic_rnn()\ outputs, states=tf.nn.dynamic_mn(basic_cell,x, dtype=tf.float32, sequence_length=seq length) _ _
Hàm dynamỉc_rnn() có một ưu điểm khác là chấp nhận một tensor dạng
[None, num steps, num_inputs] cho tất cả các dữ liệu nhập và tạo ra một tensor cho tất cả dữ liệu xuất có dạng [None, num steps, num neurons}, không can dùng các hàm trung gianstack() vàunstack()
Trong trường hợp dữ liệu nhập có độ dài thay đổi (ví dụ như câu trong xử lý ngôn ngữ tự nhiên), chúng ta nên định nghĩa trong thông số sequence length khi gọi hàm đynamỉc_rnn() hay static_rnn() Thông số này cũng là tensor một chiều cho biết độ dài của dãy nhập. seq_length=tf.placeholder(tf.float32,[None])
X=tf.placeholder(tf.float32, [None,num_steps, num inputs]) basic_cell=tf.nn.mn_cell.BasicRNNCell(num_units=num_neurons) outputs, states=tf.nn.dynamic_mn(basic_cell,x, dtype=tf.float32, sequence_length=seq length) _ Để chạy mô hình chúng cần có dữ liệu nhập, ví dụ như sau x_batch=np array( [
[[4,5,6],[0,0,0]], instance 2, padded with zero vetor
]) seq_len_batch=np.array([2,1,2,2]) init = tf.global_variables_initializer() with tf.Session() as sess: init.run() outputs_val,states_val=sess.run(
[outputs,states] ,feed_dict= {X:X_batch, seq_length: seq_len_batch}
Giải thuật lan truyền ngược có thể được sử dụng để huấn luyện RNN giống như các mô hình mạng nơ-ron khác Giả sử ngõ nhập bao gồm dãy có độ dài n, hàm truyền tanh để cập nhật trạng thái, softmax cho ngõ xuất, và hàm loss là cross-entropy Do mạng có nhiều ngõ xuất tương ứng với mỗi bước thời gian, do đó cần phải cực tiểu lỗi L là tổng của các lỗi lt tại mỗi bước thời gian r. n
Chỉnh hóa mô hình (regularization)
Đến thời điểm này, chúng ta đã làm quen với việc huấn luyện mô hình dựa vào cực tiểu hàm lỗi trên tập huấn luyện Trong thực tế, mục tiêu ta cần hướng tới là cực tiểu lỗi trên các mẫu mới Chúng ta hy vọng rằng tập dữ liệu huấn luyện đại diện cho tập dữ liệu của bài toán cần giải quyết, do đó lỗi nhỏ trên tập dữ liệu huấn luyện cũng sẽ dẫn đến lỗi nhỏ trên các mẫu mới Tuy nhiên, trong thực tế đôi khi mô hình được huấn luyện có lỗi rất nhỏ trên tập huấn luyện, nhưng lại cho lỗi lớn trên các mẫu mới, ví dụ như vấn đề quá khớp (overfitting).
Một cách tiếp cận kinh điển là chia tập dữ liệu thành 2 tập, huấn luyện và kiểm chứng Mô hình được huấn luyện với tập huấn luyện, sau đó đánh giá mô hình trên tập kiểm chứng, nếu như mô hình cho kết quả rất xấu trên tập kiểm chứng so với tập huấn luyện, khi đó vấn đề quá khớp có thể xảy ra.
Quá khớp là vấn đề chung đối với các mô hình học máy, tuy nhiên đối với các mạng học sâu nó đặc biệt được chú ý hơn, do nó có nhiều thông số hơn các mô hình khác Một loạt các kỹ thuật đã được áp dụng để giảm ảnh hưởng vấn đề quá khớp trong các mạng học sâu, thường là cân bằng giữa lỗi huấn luyện cao và sự tổng quát hóa mô hình.
Các tiếp cận đã trình bày ở trên có hàm mục tiêu là hàm lỗi, quá trình huấn luyện sẽ tìm các trọng số để tối thiểu hàm mục tiêu Tuy nhiên, thực tế đã chỉ ra rằng các trọng số có giá trị tuyệt đối nhỏ có khuynh hướng tổng quát hóa tốt hơn các trọng số có giá trị tuyệt đối lớn Với nhận định này, chúng ta có thể thêm đại lượng trị tuyệt đối trong việc tối ưu hàm mục tiêu Giả sử w là vetor của tất cả các trọng số (bao gồm độ dịch)trong mô hình, và Lo là hàm lỗi đã được định nghĩa ở phần trên Chúng ta có thể định nghĩa hàm mục tiêu mới như sau:
Kết nối tắt (residual connection) và mạng nơ-ron ODE (Ordinary Differential Equations)
trong đó a là hệ số cân bằng giữa việc cực tiểu hàm lỗi gốc Lo và L2- norm của trọng số Thay vì sử dụng L2-norm, chúng ta cũng có thể sử dụng Li-norm của trọng số trong một số ứng dụng, khi đó hàm mục tiêu mới có dạng
Dropout là một kỹ thuật giảm vấn đề quá khớp bằng cách thay đổi ngẫu nhiên kết nối mạng Đối với stochastic gradient descent, tại mỗi bước chúng ta lấy mẫu ngẫu nhiên một tập nhỏ các mẫu dữ liệu huấn luyện Đối với dropout, chúng ta chọn ngẫu nhiên một phần nhất định (ví dụ một nửa) tất cả các nút ẩn và xóa nó cùng với tất cả các kết nối với nó Sau đó, thực hiện lan truyền xuôi và lan truyền ngược cho tập dữ liệu huấn luỵện “minibatch” sử dụng mạng mới này để cập nhật trọng số (bao gôm độ dịch) Sau khi xử lý minibatch xong, chúng ta phục hồi lại tất cả các nút và các cạnh đã xóa Quá trình được lặp lại cho các minibatch tiếp theo với tập ngẫu nhiên các nút khác được xóa.
5.11 Kết nổi tắt (residual connection) và mạng nơ-ron ODE (Ordinary Differential Equations)
5.11.1 Vấn đề gradient biến mất hoặc bùng nể
Khi huấn luyện các mô hình rất sâu, gradient có xu hướng trở nên rất nhỏ (vanishing gradient problem - gradient biến mất) hoặc rất lớn (exploding gradient problem - gradient bùng nổ) do lỗi truyền qua các tầng có thể thu nhỏ hoặc khuếch đại (vân đê này cũng tôn tại trong các mạng RNNtrên các chuỗi dài) Để làm rõ hom vấn đề này, chúng ta xem xét công thức tính gradient (5.35), trong đó
Neu JXfc = J là giống nhau qua các tầng, khi đó VXkL = JK~kVyL Gọi
X là bán kính phổ của ma trận J, nó là giá trị tuyệt đối lớn nhất của eigenvalue Neu giá trị này lớn hơn 1, thì gradient có thể rất lớn, còn nếu nó nhỏ hơn 1 thì gradient có thể bị suy biến về không (rất nhỏ). vấn đề bùng nổ gradient có thể được cải thiện bằng cách cắt bớt gradient (gradient clipping), trong đó biên độ của gradient có thể được giới hạn khi nó trở nên quá lớn Chúng ta có thể sử dụng công thức:
( 1, thresold \ I ■ - I ||0|| ]g> / (5.60) trong đó g là vector gradient, thresold là ngưỡng, g có norm không bao giờ vượt qua ngưỡng thresoldvà có hướng cùng hướng với vector g. Đối với vấn đề suy giảm gradent, việc giải quỵết phức tạp hơn. Một số tiếp cận đã được đề xuất bao gồm: (1) thay đổi hàm truyền sao cho tại mỗi tầng gradient của nó không bị quá lớn hay quá nhỏ, hoặc
Mạng kết nối tắt là một trong những giải pháp để khắc phục tình trạng suy giản gradient Mạng bao gồm nhiều khối residual được minh họa như trong Hình 5 27 và được định nghĩa bởi:
Hình 5.27 Mạng kết nối tắt trong đó Fk được xem tổ hợp các tầng của mạng bình thường Như vậy, mô hình này có số thông số cũng tương đương như số nút của mạng không có kết nối tắt Tuy nhiên việc huấn luyện nó hiệu quả hơn do gradient có thể tính trực tiếp ngõ xuất đến tầng thứ k nào đó Đe minh họa cho vấn đề này, xét ngõ xuất có thể được dẫn từ bất kỳ tầng thứ k nào trước đó sử dụng công thức
Chúng ta có thể tính gradient của hàm loss đối với các thông số tại tầng thứ k bởi
= /Ớfc(xk+1)VXK+1L + đại lượng khác.
Như vậy gradient tại tầng k phụ thuộc trực tiếp vào gradient tại tầng X+1 theo cách độc lập với độ sâu của mạng Mô hình mạng phổ biến cho kiến trúc này là ResNet.
Nếu xét theo thời gian, phưong trình (5.61) có thể được viết dưới dạng x(t + 1) = F(x(t)) = x(t) + /(x(t)).
NÓ có thể được biểu diễn dưới dạng
(5.63) x(t + 1) = x(t) + At#(x(t)), (5.64) trong đó #(x(t)) = /(x(t))/At Như vậy một khối residual có nghiệm được xác định dựa trên phương pháp Euler Quá trình cập nhật lan truyền ngược với thời gian liên tục (continuous-time backpropagation) của mạng residual có thể được minh họa bởi:
Truyền thẳng (forward): x(t + tì) = x(t) + hg(x(t), 0),
_ dg(x(t), 0) a(t) = x(t + h) + /ia(t + h) , Đối với các thông số: de - ha(t + h) dg ,
Với bước thời gian At nhỏ, ta có dx(t) dt △ t->0 ãt = g(x(t)) (5.68)
So sánh hai mô hình mạng residual và mạng ODE được minh họa trong Hình 5.28 Mạng residual (bên trái) hình thành một dải rời rạc hữu hạn những sự thay đổi trạng thái, mạng ODE (bên phải) hình thành một trường vector thể hiện biến đồi liên tục trạng thái.
Bắt đầu từ x(0)=x ở tầng nhập, chúng ta có thể xác định tầng xuất x(í) là nghiệm của bài toán giá trị ban đầu (initial value problem - IVP) tại thỏi điểm t Giá trị này có thể được tính bởi bộ giải phương trình vi phân (hộp đen) Lời giải bài toán giá trị ban đầu của (5.68) tương ứng với tích phân: t x(t) = x(t0) + I (5.69)
Hình 5.28 So sánh mô hình mạng residual và mạng ODE
Bộ giải ODE được xem là hộp đen, gradient được tính sử dụng phương pháp độ nhạy liên kê (adjoint sensitivity method) Xem xét hàm loss L mà đầu vào của nó là nghiệm của bộ giải ODE:
Quá trình cập nhật lan truyền ngược với thời gian liên tục (continuous- time backpropagation) của mạng ODE có thể được minh họa bởi:
Truyền ngược (backward), gọi a(t) = da(t) dg(x(t), t, e) dt ỡx(t) Đối với các thông số:
(5.71) ỠL tof z s7,ớơ(x(t),ớ) , £ Ị a(t)rJỈ™L2dt' (5.72)
Chứng minh (5.71) và (5.72) có thể dựa trên chain rule Đối với (5.71), với sự biến đổi trạng thái liên tục theo thời gian của x(/), ta có t+e x(t + e) = x(t) + ị ỡ(x(t), t, 0)dt (5.73) t và từ chain rule ta có ỞL dL ỡx(t + 6) a f = ỡx(t) = ỡx(t + e) ớx(t)
Theo định nghĩa của đạo hàm ta có da(t) • a(t + e) — a(t)
Chúng ta có thể ràng buộc trên điểm thời gian cuối cùng ÍN, từđó có thể tính gradient của trạng thái ẩn tại bất kỳ thời điểm nào, bao gồm cả thời điểm đầu to: a(t0) _ ,, f'° daft) _ rcô dg(x(t),t,e)
Chúng ta có thể tổng quát hóa (5.71) để được gradient đối với 0 và t. Đặt X(t) = [x(t), 0(t), t]T, ta có ỠO(t) dt = 0, dt
Z.X dL Z.X dL ae^->'~dẽụj’a^t-> '~dĩ'
Phần tử đầu tiên là tương ứng với (5.71) Phần tử thứ hai có thể được sử dụng để tính gradient với thông số Nếu cho aớ(tjv) = 0, khi đó ta có f0
1 Trình bày một hàm lỗi có thể được sử dụng trong hồi qui tuyến tính?
2 Trình bày ưu điểm và hạn chế giải thuật lặp trong huấn luyện mạng nơ-ron?
3 Trình bày một công thức tổng quát ước lượng thông số mạng dựa trên giảm gradient?
4 Cho hàm sau f(x1,x2) = %1(1 + eX2)ựx2 + x1ex2.
Xây dựng đồ thị tính toán DAG cho biểu thức trên?
5 Trình bày ưu điểm và hạn chế của hàm truyền sỉgmoỉd và tanh?
6 Trình bày cách thức mà giải thuật giảm gradient dựa trên momentum hoạt động?
7 Giả sử mạng MLP với một lóp ẩn được mô tả như sau: xeRrf biến dữ liệu nhập; z=Wix+bi e R*; h=ReLU(z) G R^; p=w2h+b2 e Rc;
L= CrossEntropy(ỵ, o), trong đó d là kích thước ngõ nhập, N là số nút ẩn, và c là số lớp;
W1 eR^, bi eR;V, b2eRc, W2eRCx;V là các trọng số, s là hàm softmax Chứng minh rằng gradient đối với các trọng số có dạng như sau: fdL\T
VbiL “ bv -U1’ trong đó gradient của hàm loss đối với 2 tầng được xác định bới:
H là hàm Heaviside và 0 là tích element-wise.
MỘT SỐ KỸ THUẬT MỞ RỘNG TRONG ƯỚC LƯỢNG MẬT Độ XÁC SUẤT
Phương pháp dựa trên băng tầng giới hạn
Xem xét hàm g(x)‘ -> 1K với biến đổi Fourier được định nghĩa bởi ổ(ứ)) = J g(x)e~^xdx (6.1)
Biến đổi Fourier ngược của ờ(ío) được xác định bởi g(x) = ị G(cú)e^ơ)Xdx (6.2)
Cho V(á)c) tập các hàm g(x) cỏ băng thông giới hạn sao cho
&G(m) = 0,V|m|>íy} và W(á)c) là tập tất cả các G thỏa w(mc) ± [ố: R -ằ c I I G(ứ))ej(ÚXdứ),
-J-f ữ(a>) b*(úú)dơ), trong đó b* là liên hợp phức của b Norm được
2 7T định nghĩa bởi I |ữ| I =< a, a > Dễ dàng thấy rằng
9 M Hazewinkel, “Parseval equality,” Encyclopedia of Mathematics New York,
Như vậy p(x) ± g2(x) Wg G V(íoc) (6.6) thỏa mãn các tính chất của hàm mật độ xác suất (pdf) Gọi U(íờc) là tập tất cả các pdf đó ư(ùjc) = {g2(x): K -> R+| 0 e V() >)2 ± L(G), i = l trong đó bí(w) ig-jcox
GGW(ú>c) (6.10) khi đó ước lượng hàm mật độ phân phối củap(x) có thể được xác định bởi
(6.11) Định lý 6.1 Cho tập dữ liệu D={xi, X2, , Xn} gồm n mẫu độc lập từ pdf, p(x) G u(ú)c); tần số cắt pc = thì ước lượng cực đại likelihood của p(x) trên U(íưc) là sin(7r/c(x - Xj)) ĩt( x — Xi) (6.12) với c = [cx, c 2 , , cn ] T G Rn và c = arg max
Chứng minh' Từ (6.5), (6.9) và (6.10) ta có
101 Gelfand and s Fomin, Calculus of Variations New York, NY, USA: Dover, 2000
Bài toán ràng buộc (6.16) có thể được chuyển về bài toán không ràng buộc sử dụng hệ số Lagrange có dạng sau
Lời giải của (6.17) có thể được tìm bằng cách lấy đạo hàm hàm mục tiêu đối với G sử dụng phép tính biến phân (calculus of variations)10 và cho bằng không, ta được n ổ=ỉyqbí(ú)), (6.18) níu i
< G(a)),bi((i)) > (6.19) Để tìm Ci chúng ta thay G từ (6.18) vào (6.19) và nhân hai vế cho
< ổ (ứ)), hi(óo) > ta được h7(a>), hi(o>) > = n2k,
7ĩ(Xi-Xj) (6.21) được viêt lại
Nêu ta định nghĩa ma trận s bởi
Snn. sử dụng (6.18) và ràng buộc |ổ| cTSc = n2.
= 1 ta CÓ Đồng thời tồng tất cả các ràng buộc từ (6.20) ta được cTSc = n3k.
Từ (6.24) và (6.25) ta suy ra k=l/n Thay giá trị này vào (6.20) và thực hiện một số thao tác biến đổi đơn giản ta được ly -1 1
Hệ phương trình trên (pn(c) = 0) có tính chất —> 0, vì vậy Pn(c) đơn điệu tăng và không liên tục tại mỗi điểm Ci=o Như vậy, nó sẽ có 2" nghiệm và mỗi nghiệm nằm trong orthant tương ứng với vector orthant c0 = signfc)' Mỗi nghiệm có thể được tìm bằng phương pháp số với điểm bắt đầu được chọn trong orthant tương ứng Mỗi 2W nghiệm này tươngứng với cực đại cục bộ của likelihood L(G) Cực đại toàn cục của
L(G) có thể được tìm bằng cách so sánh tất cả cực đại cục bộ.
Thay (6.18) vào (6.8) và sau đó thay (6.26) vào kết quả tađược giá trị log-likelihood tại mỗi điểm cực đại cục bộ có thể được tính bởi i = l cjsij (6.27)
Như vậy cực đại toàn cục C có thê được tìm sử dụng biêu thức (6.13) Sau khi tìm được C, từ (6.9), (6.11) và (6.18) ta được (6.12) ■
Nghiệm của (6.13) có thể được tìm sử dụng tiếp cận tính toán đầy đủ, nghĩa là tìm 2” lời giải của pn(c) = 0 và so sánh giá trị của n(l/cf ) cho mỗi lời giải Một tiếp cận khác đơn giản hơn là sử dụng định lý chỉ ra rằng nghiệm của (6.13) nằm trong orthant tương ứng với vector c0 = ±[1,1, ,l]Tnếu p(x) G U(íờc) và p(x) > 0 Vx G R11 Do đó chúng ta có thể bắt đầu từ các điểm thuộc orthant tương ứng với c0 = ±[1,1, ,1]T và sau đó tìm nghiệm C của pn(c) = 0.
11 R Agarwal, z Chen and s V Sarma, "A Novel Nonparametric Maximum Likelihood Estimator for Probability Density Functions," in IEEE Transactions on
Pattern Analysis and Machine Intelligence, vol 39, no 7, pp 1294-1308,1 July 2017,
Việc chứng minh sự hội tụ dựa trên tiêu chí độ phân kỳ Kullback- Leibler và MISE (Mean Integrated Square Error) được trình bày bởi R Agarwal và các cộng sự3.
• Tổng quát hóa cho trường họp nhiều chiều
Xét trường hợp không gian nhiều chiều X 6 và pdfp(x) với biến đổi Fourier p(Tx‘V|w|*/
2.2 Tính yt = /*Giá trị đầu ra kỳ n v n n n vọng*/
Phương pháp dựa trên SVM
Chúng ta có thể sử dụng SVM để xấp xỉ hàm mật độ phân phối của tập dữ liệu Giả sử tập dữ liệu huấn luyện gồm n mẫu trong không gian d chiều z>={xi, X2, , xw}, các mẫu Xj e IRd là độc lập được lấy từ phân phối cópdf/?(x) Theo phương pháp cửa sổ Parzen, ước lượng của p(-) từ tập dữ liệu D có dạng n z x 1 xX-XŨ i = l
(6.30) Độ dài cạnh hn và kích thước Vn là hàm của kích thước mẫu n và tỉ lệ nghịch với n, chẳng hạn hn = ^=, trong đó hi có thể được chọn từ thực nghiệm Chúng ta xem xét mô hình SVM được huấn luyện để xấp xỉ Pn(x) từ tập dữ liệu không giám sát D Ý tưởng là sử dụng mô hình cửa so Parzen để tạo ra các giá trị đầu ra kỳ vọng đối với mỗi mẫu, sau đó áp dụng SVM trong bài toán hồi qui để xấp xỉ hàm mật độ xác suất. Quá trình này được mô tả trong Giải thuật 6.1.
Giải thuật 6.1 Xâp xỉ pdf băng SVM _ Đầu vào:
Tập dữ liệu p={xi, X2, , X m } bao gồm n mẫu độc lập và cùng phân phối chưa biết p(x);
3 Cho Psvm={(x/[y/)|z-l,2, /Tập dữ liệu huân luyện có giám sát cho SVM/
4 Huấn luyện SVM với mô hình hồi qui sử dụng tập Dsvm ;
5 p(-)=Hàm được tính bởi SVM;
Bước đầu là thiết lập giá trị phù hợp cho hn N2L Vn tương ứng Bước
2 là lặp lại trên mỗi mẫu thuộc tập huấn luyện không giám sát D vàtính giá trị kỳ vọng tương ứng với mẫu đó Tại mỗi bước lặp, bước 2.1 lấy ra tập con Di từ tập huấn luyện bằng cách loại bỏ Xj ra khỏi tập huấn luyện D Bước 2.2 sẽ tính giá trị kỳvọng sử dụng cửa sổ Parzen để tạo ray/ Từ mỗi bộ (X/, yì) chúng ta tạo ra tập dữ liệu huấn luyện có giám sát Dsvm cho mô hình SVM.
Phương pháp dựa trên mạng nơ-ron
Với khả năng xấp xỉ hàm của mạng nơ-ron, chúng ta có thể sửdụng nó để xấp xỉ hàm mật độ phân phối Một mạng MLP với ít nhất một tầng ẩn sẽ được sử dụng để ước lượng pdf p(x) từ tập dữ liệu D như trong 6.2 Quá trình xấp xỉ tương tựnhư tiếp cận SVM như đã trình bày ở trên, Quá trình tìm hàm xấp xỉ được trình bày trong Giải thuật 6.2.
Giải thuật 6.2 Xâp xỉpdf băng mạng nơ-ron _ Đâu vào:
Tập dữ liệu p={xi, X2, , XM} bao gồm n mẫu độc lập và cùng phân phối chưa biết /?(x);
Mạng nơ-ron net; Đầu ra: ước lượng p(x) cùa pdfp(x) từ mạng nơ-ron net.
2 For z-1 to n do; /Lặp* trên tập mẫu Đ/*
2.2 Tính yt = -^SxGDí^={xi, X2, , XM} bao gồm n mẫu độc lập và cùng phân phối chưa biết p(x);
Mạng nơ-ron net', Đầu ra: mạng nơ-ron xấp xỉ pdfp(x). _
1 Tính Sịj = sirtCfc(Xi —Xj);
2 Tính C thỏa điều kiện pn(c) = 0;
3 Tạo ra tập mẫu huấn luyện không gán nhãn Đu, bao gồm cả D;
4 For mỗi mẫu Xi từ Dư,
Tính yi = ậ(Xj), trong đó ậ(Xj) được tính theo (6.28); /*Giá trị đầu ra kỳ vọng*/
5 Cho Dminn={(xi\yì)\i=ỉ,2,/Tập dữ liệu huấn luyện có giám sát cho mạng nơ-ron/
6 Huấn luyện net với sử dụng tập Dminn,
7 p(-)=Hàm được tính bởi net',
Các bước đầu tiên là tính ma trận D và C, sau đó là hàm ậ(Xj) Trong bước 3, tập dữ liệu huấn luyện không nhãn được tạo ra, bao gồm các mẫu từ tập dữ liệu huấn luyện ban đầu và tập các mẫu được lấy mẫu bổ sung trong miền dữ liệu của mật độ phân phối Bước 4 là gán nhãn cho các mẫu dữ liệu dùng trong huấn luyện và tạo ra tập dữ liệu huấn luyện có giám sát nhưng trong bước 5 Tập dữ liệu này sẽ được dùng để huấn luyện mô hình mạng nơ-ron được lựa chọn Cuối cùng là trả về mô hình mạng được huấn luyện tạo ra hàm mật độ xác suất.
Không giống phương pháp được trình bày bởi giải thuật 6.2, phương pháp này cho ước lượng sử dụng tính chất cực đại likelihood của băng tần giới hạn, đồng thời hàm ước lượng p(-) sau khi được tìm sẽ không còn phụ thuộc vào tập dữ liệu huấn luyện ban đầu mà chỉ phụ thuộc vào tập thông số của mô hình mạng Hiệu quả của phương pháp này đã được mô tả bởi Huynh và đồng nghiệp5.
Các mô hình tạo sinh trong học sâu
6.4.1 Giới thiệu Ở trên chúng ta đã tìm hiểu qua các mô hình ước lượng phân phối dữ liệu từ tập dữ liệu huấn luyện, đây là dạng của mô hình tạo sinh (generative model) Ý niệm của mô hình tạo sinh là từ tập dữ liệu được lấy mẫu, chúng ta ước lượng mật độ phân phối của nó Nghĩa là chúng ta xác định phân phối xác suất kết (joint probabilitydistribution) p(x,y) với X là đầu vào và y là đầu ra hay nhãn của nó Có hai dạng cho bài toán này là:
(1) Với X vày được cho, chúng ta xác định xác suất p(x,y) Dạng này cùng cho bài toán phân lớp “tạo sinh” (generative classifier) Từ tập dữ liệu huấn luyện được lấy mẫu từ phân phối chưa biết p(x) chúng ta huấn luyện mô hình để trả về một phân phối xấp xỉ của nó p(x).
(2) Vớiy được cho, chúng ta tạo ra mẫu x~p(-,y). Đối với các tiếp cận máy học truyền thống dựa trên phương pháp Bayes, mô hình tạo sinh thường là ở dạng (1) Trong khi đó với các mô hình học sâu, chúng ta cũng thường quan tâm đến bài toán ở dạng (2); cách mà dữ liệu được tạo ra Một số mô hình có thể giải quyết bài toán cả ở dạng (1) và dạng (2).
Các mô hình tạo sinh có nhiều tru điểm bao gồm:
• Nó có thể tích hợp vào học tăng cường theo nhiều cách khác nhau141516.
• Huấn luyện và lấy mẫu từ các mô hình tạo sinh cho phép đánh giá khả năng biểu diễn phân phối xác suất với số chiêu cao một cách rất hiệu quả.
• Các mô hình tạo sinh có thể được huấn luyện với dữ liệu bị thiếu và có thể đưa ra dự đoán về các đầu vào bị thiếu.
• Nhiều mô hình tạo sinh (chẳng hạn như GAN-generative adversarial network) cho phép làm việc với đầu ra đa phương thức (multimodal), ví dụ với một đầu vào có thể tương ứng với nhiều kết quả khác nhau ở đầu ra chấp nhận được.
• Trong một số bài toán có yêu cầu tạo mẫu thực tế từ một phân phối Một số ví dụ liên quan đến bài toán tạo mẫu bao gồm:
Hình 6.1 Kết quả của mô hình tạo sinh14 15 1617.
14 Finn, c and Levine, s (2016) Deep visual foresight for planning robot motion arXiv preprint arXiv:1610.00696
15 Finn, c., Goodfellow, I., and Levine, s (2016) Unsupervised learning for physical interaction through video prediction NIPS
16 Ian Goodfellow (2016) Tutorial: Generative Adversarial Networks NIPS
17 Ledig, c., Theis, L., Huszar, F., Caballero, J., Aitken, A p., Tejani, A., Totz J., Wang, z., and Shi, w (2016) Photo-realistic single image super-resolution using a generative adversarial network CoRR, abs/1609.04802.
Tạo ảnh siêu phân giải: mục tiêu là tạo ra ảnh có độ phân giải cao từ ảnh có độ phân giải thấp Nó yêu cầu bổ sung thêm thông tin từ ảnh gốc để có ảnh có độ phân giải cao hơn Một ví dụ kết quả của mô hình tạo sinh được chỉ ra trong Hình 6.1 Hình bên trái nhất là ảnh gốc được giảm độ phân giải, sau đó các phương pháp khác nhau được sử dụng để tạo ảnh có độ phân giải cao.Phương pháp bicubic là phương pháp nội suy không dựa vào thống kê cho ảnh kết quả bị nhòe hơn SRResNet là mạng nơ- ron được huấn luyện dựa trên MSE, SRGAN là phương pháp dựa trên mô hình GAN cho ảnh nét hơn.
Tạo ra các tảc phẩm nghệ thuật', sử dụng kỹ thuật tương tác để hoàn chỉnh tác phẩm nghệ thuật từ các cảnh thô trong trí tưởng tượng ban đầu của người dùng.
6.4.2 Phân loại các mô hình tạo sinh dựa trên học sâu
Phân loại của các mô hình tạo sinh dựa trên học sâu và cực đại likelihood được mô tả trong hình 6.2.
Hình 6.2 Các mô hình tạo sinh sâu dựa trên cực đại likelihood.
Nhánh bên trái của Hình 6.2 bao gồm các mô hình với hàm mật độ p(x; 0) được định nghĩa một cáchtường minh Hàm này có thể đưa vào biểu thức tính likelihood và áp dụng các kỹ thuật tối ưu để tìm ra thông số của nó Khó khăn lớn nhất là làm sao thiết kế mô hình để có thể mô tả được độ phức tạp của của phân phối dữ liệu được tạo ra đồng thời đảm bảo được khả năng dễ tìm của nó Có hai tiếp cận theo hướng này là:
(1) Xây dựng mô hình sao cho cấu trúc của nó đảm bảo khả năng dễ tìm Tiêu biểu cho tiếp cận này là các mô hình FVBN (Fully visible belief networks), trong đó áp dụng cỊuy tắc chuỗi xác suất để phân tích phân phối xác suất trên vector d chiều, X, thành tích của các phân phối xác suất một chiều d p(x) = ]_Jp(xi|x1,x2, ,xi>1) (6.31) i=l
Hạn chế của tiếp cận này là họ các mô hình với khả năng dễ tìm là khá hạn• chế.
(2) Tiếp cận thứ hai là sử dụng các hàm mật độ dễ tìm để xấp xỉ các hàm mật độ khác dựa trên tiêu chí cực đại likelihood Tiếp cận này có thê được chia tiếp thành hai nhóm là xấp xỉ xác định (deterministic approximations) và xấp xỉ ngẫu nhiên (stochastic approximation) Tiêu biêu cho xâp xỉ xác định là các phương pháp xâp xỉ biến phân (variational approximation), trong đó nó định nghĩa một chặn dưới của log-lỉkelỉhood £(x;0) < logp(x;0) (6.32)
Quá trình huấn luyện sẽ cực đại £(x; 0) để đảm bảo giá trị của ỉog- likehood lớn Tiếp cận phồ biến nhất dựa trên xấp xỉ biến phân này là VAE (variational auto-encoder)18.
18 Rezende, D J., Mohamed, s., and Wierstra, D (2014) Stochastic backpropagation and approximate inference in deep generative models In ICML’2014 Preprint: arXiv: 1401.4082
Trong VAE, hàm mật độ xác suất không dễ tìm (intractable density function) với biến ẩn (latent variable) z được định nghĩa Từ đó phân phối xác suất đối với X có thể được xác định bởi p(x) = p(x; 0) = I p(x, z; 0) dz
Tuy nhiên, tích phân trên không thể tính một cách trực tiếp, còn nếu dùng các phương pháp xấp xỉ thì độ chính xác không cao Một phương pháp khác đê ước lượng mật độ xác suât là dựa vào công thức Bayes p(x; 0) p(x|z; 0)p(z) p(z|x;0) (6.34) trong đó p(z|x; 0) cũng không thể tính một cách trực tiếp mà được xấp xỉ thông qua hàm mật độ dễ tìm hơn q(z|x; ) ~ p(z|x; 0) Cụ thể ta có logp(x; 0) = logp(x|z; ỡ)p(z) p(z|x; e) p(x|z; 9)p(z)q(z|x; ) °8 p(z|x; 0)q(z|x; ),p(z|x; 0)) không dễ tính, tuy nhiên nó là đại lượng không âm cho nên logp(x;0) > Ez~q(Z|x)[logp(x|z; 0)]
- D kl (ợ(z|x; 4>),p(z)) (6.36) Đại lượng £z~q(Z|x)[logp(x|z; 0)] - DKL(q(z\x; 0),p(z)) còn được gọi là ELBO (evidence lower bound). Đối với xấp xỉ ngẫu nhiên, một trong những tiếp cận phổ biến là dựa trên chuỗi Markov (Markov chain approximation) Nó là quá trình tạo mẫu bằng cách lặp lại lấy mẫu x'~q(x'|x) với xác suất chuyển trạng thái ợ(-) Chi tiếp về tiếp cận này có thể tham khảo tại quyển sách Deep learning của I Goodfellow và các đồng nghiệp19.
Nhánh thứ hai trên Hình 6.2 bao gồm các mô hình với hàm mật độ p(x; 0) được định nghĩa không tường minh Ở nhánh này bao gồm các mô hình các tiếp cận truyền thống dựa trên xác suất chuyển trạng thái trong chuỗi Markov và tiếp cận phổ biến gần đây GAN (generative adversarial network).
6.4.3 Cơ bản về mô hình GAN
Mô hình GAN có thể khắc phục một số nhược điểm của các mô hình tạo sinh khác bao gồm:
- Khả năng tạo dữ liệu đầu ra một cách song song thay vì tuần tự như tiếp cận FVBN.