https://stanford.edu/~shervine/l/vi CS 230 – Học sâu Super VIP Cheatsheet: Học sâu 1 Mạng nơ ron tích chập Dịch bởi Phạm Hồng Vinh và Đàm Minh Tiến Afshine Amidi và Shervine Amidi Ngày 17 tháng 5 năm 2020 1.1 Mục lục r Kiến trúc truyền thống của một mạng CNN – Mạng neural tích chập (Convolutional neural networks), còn được biết đến với tên CNNs, là một dạng mạng neural được cấu thành bởi các tầng sau: 1 Mạng nơ ron tích chập 1.1 Tổng quan . . . . . . . . . . . . . . . . . . . . . . . 1.2 Các kiểu tầng . . . . . . . . . . . . . . . . . . . . . 1.3 Các siêu tham số của bộ lọc . . . . . . . . . . . . . . 1.4 Điều chỉnh siêu tham số . . . . . . . . . . . . . . . . 1.5 Các hàm kích hoạt thường gặp . . . . . . . . . . . . 1.6 Phát hiện vật thể (object detection) . . . . . . . . . . 1.6.1 Xác nhận khuôn mặt và nhận diện khuôn mặt 1.6.2 Neural style transfer . . . . . . . . . . . . . . 1.6.3 Những kiến trúc sử dụng computational tricks . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2 Mạng nơ-ron hồi quy 2.1 Tổng quan . . . . . . . . . . . . 2.2 Xử lí phụ thuộc dài hạn . . . . . 2.3 Học từ đại diện . . . . . . . . . 2.3.1 Giải thích và các kí hiệu 2.3.2 Word embeddings . . . 2.4 So sánh các từ . . . . . . . . . 2.5 Mô hình ngôn ngữ . . . . . . . . 2.6 Dịch máy . . . . . . . . . . . . . 2.7 Chú ý . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 7 7 8 9 9 9 10 10 10 11 3 Mẹo và thủ thuật 3.1 Xử lí dữ liệu . . . . . . . . 3.2 Huấn luyện mạng neural . . 3.2.1 Định nghĩa . . . . . 3.2.2 Tìm trọng số tối ưu 3.3 Tinh chỉnh tham số . . . . 3.3.1 Khởi tạo trọng số . 3.3.2 Tối ưu hội tụ . . . . 3.4 Chính quy . . . . . . . . . 3.5 Thói quen tốt . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 11 11 12 12 12 12 12 13 13 13 Đại học Stanford Tổng quan . . . . . . . . . . . . . . . . . . . . . . . . . . . 1 1 1 2 2 3 3 5 5 Tầng tích chập và tầng pooling có thể được hiệu chỉnh theo các siêu tham số (hyperparameters) 6 được mô tả ở những phần tiếp theo. 1.2 Các kiểu tầng r Tầng tích chập (CONV) – Tầng tích chập (CONV) sử dụng các bộ lọc để thực hiện phép tích chập khi đưa chúng đi qua đầu vào I theo các chiều của nó. Các siêu tham số của các bộ lọc này bao gồm kích thước bộ lọc F và độ trượt (stride) S. Kết quả đầu ra O được gọi là feature map hay activation map. Lưu ý: Bước tích chập cũng có thể được khái quát hóa cả với trường hợp một chiều (1D) và ba chiều (3D). r Pooling (POOL) – Tầng pooling (POOL) là một phép downsampling, thường được sử dụng sau tầng tích chập, giúp tăng tính bất biến không gian. Cụ thể, max pooling và average pooling là những dạng pooling đặc biệt, mà tương ứng là trong đó giá trị lớn nhất và giá trị trung bình được lấy ra. 1 mùa đông 2019 https://stanford.edu/~shervine/l/vi CS 230 – Học sâu Max pooling Từng phép pooling chọn Kiểu giá trị lớn nhất trong khu vực mà nó đang được áp dụng r Stride – Đối với phép tích chập hoặc phép pooling, độ trượt S ký hiệu số pixel mà cửa sổ sẽ di chuyển sau mỗi lần thực hiện phép tính. Average pooling Từng phép pooling tính trung bình các giá trị trong khu vực mà nó đang được áp dụng r Zero-padding – Zero-padding là tên gọi của quá trình thêm P số không vào các biên của đầu vào. Giá trị này có thể được lựa chọn thủ công hoặc một cách tự động bằng một trong ba những phương pháp mô tả bên dưới: Minh họa Nhận xét - Bảo toàn các đặc trưng đã phát hiện - Được sử dụng thường xuyên Valid - Giảm kích thước feature map - Được sử dụng trong mạng LeNet Giá trị Same Pstart = j Pend = l P =0 r Fully Connected (FC) – Tầng kết nối đầy đủ (FC) nhận đầu vào là các dữ liệu đã được làm phẳng, mà mỗi đầu vào đó được kết nối đến tất cả neuron. Trong mô hình mạng CNNs, các tầng kết nối đầy đủ thường được tìm thấy ở cuối mạng và được dùng để tối ưu hóa mục tiêu của mạng ví dụ như độ chính xác của lớp. Full I e−I+F −S Sd S k 2 I e−I+F −S Sd S 2 m Pstart ∈ [[0,F − 1]] Pend = F − 1 Minh họa - Sử dụng padding - Không sử dụng padding Mục đích để làm cho feature map - Bỏ phép tích chập cuối nếu số chiều không khớp 1.3 Các siêu tham số của bộ lọc có kích thước l m I S - Kích thước đầu ra thuận lợi về mặt toán học - Còn được gọi là ’half’ padding - Padding tối đa sao cho các phép tích chập có thể được sử dụng tại các rìa của đầu vào - Bộ lọc ’thấy’ được đầu vào từ đầu đến cuối Tầng tích chập chứa các bộ lọc mà rất quan trọng cho ta khi biết ý nghĩa đằng sau các siêu tham số của chúng. r Các chiều của một bộ lọc – Một bộ lọc kích thước F × F áp dụng lên đầu vào chứa C kênh (channels) thì có kích thước tổng kể là F × F × C thực hiện phép tích chập trên đầu vào kích thước I × I × C và cho ra một feature map (hay còn gọi là activation map) có kích thước O × O × 1. 1.4 Điều chỉnh siêu tham số r Tính tương thích của tham số trong tầng tích chập – Bằng cách ký hiệu I là độ dài kích thước đầu vào, F là độ dài của bộ lọc, P là số lượng zero padding, S là độ trượt, ta có thể tính được độ dài O của feature map theo một chiều bằng công thức: Lưu ý: Việc áp dụng K bộ lọc có kích thước F × F cho ra một feature map có kích thước O × O × K. Đại học Stanford O= 2 I − F + Pstart + Pend +1 S mùa đông 2019 https://stanford.edu/~shervine/l/vi CS 230 – Học sâu Trong ví dụ bên dưới, ta có F1 = F2 = 3 và S1 = S2 = 1, nên cho ra được R2 = 1+2 · 1+2 · 1 = 5.. Lưu ý: Trong một số trường hợp, Pstart = Pend , P , ta có thể thay thế Pstart + Pend bằng 2P trong công thức trên. r Hiểu về độ phức tạp của mô hình – Để đánh giá độ phức tạp của một mô hình, cách hữu hiệu là xác định số tham số mà mô hình đó sẽ có. Trong một tầng của mạng neural tích chập, nó sẽ được tính toán như sau: CONV POOL 1.5 r Rectified Linear Unit – Tầng rectified linear unit (ReLU) là một hàm kích hoạt g được sử dụng trên tất cả các thành phần. Mục đích của nó là tăng tính phi tuyến tính cho mạng. Những biến thể khác của ReLU được tổng hợp ở bảng dưới: FC Minh họa Kích thước đầu vào I ×I ×C I ×I ×C Nin Kích thước đầu ra O×O×K O×O×C Nout (F × F × C + 1) · K 0 (Nin + 1) × Nout Số lượng tham số - Một tham số bias với mỗi bộ lọc Lưu ý - Trong đa số trường hợp, S < F - Một lựa chọn phổ biến cho K là 2C - Phép pooling được áp dụng lên từng kênh (channel-wise) - Trong đa số trường hợp, S = F Các hàm kích hoạt thường gặp ReLU Leaky ReLU ELU g(z) = max(0,z) g(z) = max(z,z) với 1 g(z) = max(α(ez − 1),z) với α 1 Độ phức tạp phi tuyến tính có thể thông dịch được về mặt sinh học - Đầu vào được làm phẳng - Mỗi neuron có một tham số bias - Số neuron trong một tầng FC phụ thuộc vào ràng buộc kết cấu p1 r Trường thụ cảm – Trường thụ cảm (receptive field) tại tầng k là vùng được ký hiệu Rk × Rk của đầu vào mà những pixel của activation map thứ k có thể "nhìn thấy". Bằng cách gọi Fj là kích thước bộ lọc của tầng j và Si là giá trị độ trượt của tầng i và để thuận tiện, ta mặc định S0 = 1, trường thụ cảm của tầng k được tính toán bằng công thức: Rk = 1 + j=1 Đại học Stanford (Fj − 1) .. . pn với pi = exi n X exj j=1 1.6 j−1 Y Khả vi tại mọi nơi r Softmax – Bước softmax có thể được coi là một hàm logistic tổng quát lấy đầu vào là một vector chứa các giá trị x ∈ Rn và cho ra là một vector gồm các xác suất p ∈ Rn thông qua một hàm softmax ở cuối kiến trúc. Nó được định nghĩa như sau: p= k X Gán vấn đề ReLU chết cho những giá trị âm Si Phát hiện vật thể (object detection) r Các kiểu mô hình – Có 3 kiểu thuật toán nhận diện vật thể chính, vì thế mà bản chất của thứ được dự đoán sẽ khác nhau. Chúng được miêu tả ở bảng dưới: i=0 3 mùa đông 2019 https://stanford.edu/~shervine/l/vi CS 230 – Học sâu Phân loại hình ảnh Phân loại cùng với khoanh vùng - Phân loại một - Phát hiện một vật tấm ảnh - Phát hiện nhiều vật thể Lưu ý: ta luôn có IoU ∈ [0,1]. Để thuận tiện, một hộp giới hạn Bp được cho là khá tốt nếu IoU(Bp ,Ba ) > 0.5. trong cùng một tấm ảnh thể trong ảnh - Dự đoán xác suất Phát hiện - Dự đoán xác suất - Dự đoán xác suất của một vật thể của vật thể và định vị nó của các vật thể và định vị chúng CNN cổ điển YOLO đơn giản hóa, R-CNN YOLO, R-CNN r Anchor boxes – Hộp mỏ neo là một kỹ thuật được dùng để dự đoán những hộp giới hạn nằm chồng lên nhau. Trong thực nghiệm, mạng được phép dự đoán nhiều hơn một hộp cùng một lúc, trong đó mỗi dự đoán được giới hạn theo một tập những tính chất hình học cho trước. Ví dụ, dự đoán đầu tiên có khả năng là một hộp hình chữ nhật có hình dạng cho trước, trong khi dự đoán thứ hai sẽ là một hộp hình chữ nhật nữa với hình dạng hình học khác. r Non-max suppression – Kỹ thuật non-max suppression hướng tới việc loại bỏ những hộp giới hạn bị trùng chồng lên nhau của cùng một đối tượng bằng cách chọn chiếc hộp có tính đặc trưng nhất. Sau khi loại bỏ tất cả các hộp có xác suất dự đoán nhỏ hơn 0.6, những bước tiếp theo được lặp lại khi vẫn còn tồn tại những hộp khác. r Phát hiện – Trong bối cảnh phát hiện (detection) vật thể, những phương pháp khác nhau được áp dụng tùy thuộc vào liệu chúng ta chỉ muốn định vị vật thể hay phát hiện được những hình dạng phức tạp hơn trong tấm ảnh. Hai phương pháp chính được tổng hợp ở bảng dưới: • Bước 1: Chọn chiếc hộp có xác suất dự đoán lớn nhất. Phát hiện hộp giới hạn (bounding box) • Bước 2: Loại bỏ những hộp có IoU > 0.5 với hộp đã chọn. Phát hiện landmark - Phát hiện hình dạng và đặc Phát hiện phần trong ảnh mà có sự xuất hiện của vật thể điểm của một đối tượng (vd: mắt) - Nhiều hạt r YOLO – You Only Look Once (YOLO) là một thuật toán phát hiện vật thể thực hiện những bước sau: • Bước 1: Phân chia tấm ảnh đầu vào thành một lưới G × G. Hộp có tọa độ trung tâm (bx ,by ), chiều cao bh và chiều rộng bw • Bước 2: Với mỗi lưới, chạy một mạng CNN dự đoán y có dạng sau: Các điểm tương quan (l1x ,l1y ), ..., (lnx ,lny ) y = pc ,bx ,by ,bh ,bw ,c1 ,c2 ,...,cp ,... | r Intersection over Union – Tỉ lệ vùng giao trên vùng hợp, còn được biết đến là IoU, là một hàm định lượng vị trí Bp của hộp giới hạn dự đoán được định vị đúng như thế nào so với hộp giới hạn thực tế Ba . Nó được định nghĩa: IoU(Bp ,Ba ) = Đại học Stanford {z lặp lại k lần T ∈ RG×G×k×(5+p) } với pc là xác suất dự đoán được một vật thể, bx ,by ,bh ,bw là những thuộc tính của hộp giới hạn được dự đoán, c1 ,...,cp là biểu diễn one-hot của việc lớp nào trong p các lớp được dự đoán, và k là số lượng các hộp mỏ neo. Bp ∩ Ba Bp ∪ Ba • Bước 3: Chạy thuật toán non-max suppression để loại bỏ bất kỳ hộp giới hạn có khả năng bị trùng lặp. 4 mùa đông 2019 https://stanford.edu/~shervine/l/vi CS 230 – Học sâu r Siamese Network – Siamese Networks hướng tới việc học cách mã hóa tấm ảnh để rồi định lượng sự khác nhau giữa hai tấm ảnh. Với một tấm ảnh đầu vào x(i) , đầu ra được mã hóa thường được ký hiệu là f (x(i) ). r Triplet loss – Triplet loss ` là một hàm mất mát được tính toán dựa trên biểu diễn nhúng của bộ ba hình ảnh A (mỏ neo), P (dương tính) và N (âm tính). Ảnh mỏ neo và ảnh dương tính đều thuộc một lớp, trong khi đó ảnh âm tính thuộc về một lớp khác. Bằng các gọi α ∈ R+ là tham số margin, hàm mất mát này được định nghĩa như sau: `(A,P,N ) = max (d(A,P ) − d(A,N ) + α,0) Lưu ý: khi pc = 0, thì mạng không phát hiện bất kỳ vật thể nào. Trong trường hợp đó, Các dự đoán liên quan bx , ..., cp sẽ bị lờ đi. r R-CNN – Region with Convolutional Neural Networks (R-CNN) là một thuật toán phát hiện vật thể mà đầu tiên phân chia ảnh thành các vùng để tìm các hộp giới hạn có khả năng liên quan cao rồi chạy một thuật toán phát hiện để tìm những thứ có khả năng cao là vật thể trong những hộp giới hạn đó. 1.6.2 Lưu ý: mặc dù thuật toán gốc có chi phí tính toán cao và chậm, những kiến trúc mới đã có thể cho phép thuật toán này chạy nhanh hơn, như là Fast R-CNN và Faster R-CNN. 1.6.1 Neural style transfer r Ý tưởng – Mục tiêu của neural style transfer là tạo ra một ảnh G dựa trên một nội dung C và một phong cách S. Xác nhận khuôn mặt và nhận diện khuôn mặt r Các kiểu mô hình – Hai kiểu mô hình chính được tổng hợp trong bảng dưới: Xác nhận khuôn mặt - Có đúng người không? - Tra cứu một-một Nhận diện khuôn mặt - Đây có phải là 1 trong K người trong cơ sở dữ liệu không? - Tra cứu một với tất cả r Tầng kích hoạt – Trong một tầng l cho trước, tầng kích hoạt được ký hiệu a[l] và có các chiều là nH × nw × nc r Hàm mất mát nội dung – Hàm mất mát nội dung Jcontent (C,G) được sử dụng để xác định nội dung của ảnh được tạo G khác biệt với nội dung gốc trong ảnh C. Nó được định nghĩa như dưới đây: Jcontent (C,G) = r Ma trận phong cách – Ma trận phong cách G[l] của một tầng cho trước l là một ma trận [l] Gram mà mỗi thành phần Gkk0 của ma trận xác định sự tương quan giữa kênh k và kênh k0 . Nó được định nghĩa theo tầng kích hoạt a[l] như sau: r One Shot Learning – One Shot Learning là một thuật toán xác minh khuôn mặt sử dụng một tập huấn luyện hạn chế để học một hàm similarity nhằm ước lượng sự khác nhau giữa hai tấm hình. Hàm này được áp dụng cho hai tấm ảnh thường được ký hiệu d(image 1, image 2). Đại học Stanford 1 [l](C) ||a − a[l](G) ||2 2 5 mùa đông 2019 https://stanford.edu/~shervine/l/vi CS 230 – Học sâu [l] nH [l] Gkk0 = r Inception Network – Kiến trúc này sử dụng những inception module và hướng tới việc thử các tầng tích chập khác nhau để tăng hiệu suất thông qua sự đa dạng của các feature. Cụ thể, kiến trúc này sử dụng thủ thuật tầng tích chập 1 × 1 để hạn chế gánh nặng tính toán. [l] nw XX [l] [l] aijk aijk0 i=1 j=1 ? ? ? Lưu ý: ma trận phong cách cho ảnh phong cách và ảnh được tạo được ký hiệu tương ứng là G[l](S) và G[l](G) . r Hàm mất mát phong cách – Hàm mất mát phong cách Jstyle (S,G) được sử dụng để xác định sự khác biệt về phong cách giữa ảnh được tạo G và ảnh phong cách S. Nó được định nghĩa như sau: [l] Jstyle (S,G) = 1 1 ||G[l](S) − G[l](G) ||2F = (2nH nw nc )2 (2nH nw nc )2 nc X [l](S) Gkk0 [l](G) − Gkk0 2 k,k0 =1 r Hàm mất mát tổng quát – Hàm mất mát tổng quát được định nghĩa là sự kết hợp của hàm mất mát nội dung và hàm mất mát phong cách, độ quan trọng của chúng được xác định bởi hai tham số α,β, như dưới đây: J(G) = αJcontent (C,G) + βJstyle (S,G) Lưu ý: giá trị của α càng lớn dẫn tới việc mô hình sẽ quan tâm hơn cho nội dung, trong khi đó, giá trị của β càng lớn sẽ khiến nó quan tâm hơn đến phong cách. 1.6.3 Những kiến trúc sử dụng computational tricks r Generative Adversarial Network – Generative adversarial networks, hay còn được gọi là GAN, là sự kết hợp giữa mô hình khởi tạo và mô hình phân biệt, khi mà mô hình khởi tạo cố gắng tạo ra hình ảnh đầu ra chân thực nhất, sau đó được đưa vô mô hình phân biệt, mà mục tiêu của nó là phân biệt giữa ảnh được tạo và ảnh thật. Lưu ý: có nhiều loại GAN khác nhau bao gồm từ văn bản thành ảnh, sinh nhạc và tổ hợp. r ResNet – Kiến trúc Residual Network (hay còn gọi là ResNet) sử dụng những khối residual (residual blocks) cùng với một lượng lớn các tầng để giảm lỗi huấn luyện. Những khối residual có những tính chất sau đây: a[l+2] = g(a[l] + z [l+2] ) Đại học Stanford 6 mùa đông 2019 https://stanford.edu/~shervine/l/vi CS 230 – Học sâu 2 r Ứng dụng của RNNs – Các mô hình RNN hầu như được sử dụng trong lĩnh vực xử lí ngôn ngữ tự nhiên và ghi nhận tiếng nói. Các ứng dụng khác được tổng kết trong bảng dưới đây: Mạng nơ-ron hồi quy Dịch bởi Trần Tuấn Anh, Đàm Minh Tiến, Hung Nguyễn và Nguyễn Trí Minh Các loại RNN 2.1 Hình minh hoạ Ví dụ Tổng quan r Kiến trúc của một mạng RNN truyền thống – Các mạng neural hồi quy, còn được biến đến như là RNNs, là một lớp của mạng neural cho phép đầu ra được sử dụng như đầu vào trong khi có các trạng thái ẩn. Thông thường là như sau: Một-Một Mạng neural truyền thống Tx = Ty = 1 Một-nhiều Sinh nhạc Tx = 1, Ty > 1 Tại mỗi bước t, giá trị kích hoạt a<t> và đầu ra y <t> được biểu diễn như sau: a<t> = g1 (Waa a<t−1> + Wax x<t> + ba ) và Nhiều-một y <t> = g2 (Wya a<t> + by ) Phân loại ý kiến Tx > 1, Ty = 1 với Wax , Waa , Wya , ba , by là các hệ số được chia sẻ tạm thời và g1 , g2 là các hàm kích hoạt. Nhiều-nhiều Ghi nhận thực thể tên Tx = Ty Nhiều-nhiều Dịch máy Tx 6= Ty Ưu và nhược điểm của một kiến trúc RNN thông thường được tổng kết ở bảng dưới đây: Ưu điểm - Khả năng xử lí đầu vào với bất kì độ dài nào - Kích cỡ mô hình không tăng theo kích cỡ đầu vào - Quá trình tính toán sử dụng các thông tin cũ - Trọng số được chia sẻ trong suốt thời gian Đại học Stanford r Hàm mất mát – Trong trường hợp của mạng neural hồi quy, hàm mất mát L của tất cả các bước thời gian được định nghĩa dựa theo mất mát ở mọi thời điểm như sau: Hạn chế - Tính toán chậm L(b y ,y) = - Khó để truy cập các thông tin từ một khoảng thời gian dài trước đây Ty X L(b y <t> ,y <t> ) t=1 - Không thể xem xét bất kì đầu vào sau này nào cho trạng thái hiện tại r Lan truyền ngược theo thời gian – Lan truyền ngược được hoàn thành ở mỗi một thời 7 mùa đông 2019 https://stanford.edu/~shervine/l/vi CS 230 – Học sâu điểm cụ thể. Ở bước T , đạo hàm của hàm mất mát L với ma trận trọng số W được biểu diễn như sau: Loại cổng Cổng cập nhật Γu T X ∂L(T ) ∂L(T ) = ∂W ∂W t=1 2.2 Vai trò (t) Được sử dụng trong Dữ liệu cũ nên có tầm quan GRU, LSTM trọng như thế nào ở hiện tại? Cổng relevance Γr Bỏ qua thông tin phía trước? GRU, LSTM Cổng quên Γf Xoá ô hay không xoá? LSTM Cổng ra Γo Biểu thị một ô ở mức độ bao nhiêu? LSTM Xử lí phụ thuộc dài hạn r Các hàm kích hoạt thường dùng – Các hàm kích hoạt thường dùng trong các modules RNN được miêu tả như sau: Sigmoid Tanh 1 g(z) = 1 + e−z ez RELU e−z − g(z) = z e + e−z r GRU/LSTM – Gated Recurrent Unit (GRU) và Các đơn vị bộ nhớ dài-ngắn hạn (LSTM) đối phó với vấn đề vanishing gradient khi gặp phải bằng mạng RNNs truyền thống, với LSTM là sự tổng quát của GRU. Phía dưới là bảng tổng kết các phương trình đặc trưng của mỗi kiến trúc: g(z) = max(0,z) r Vanishing/exploding gradient – Hiện tượng vanishing và exploding gradient thường gặp trong ngữ cảnh của RNNs. Lí do tại sao chúng thường xảy ra đó là khó để có được sự phụ thuộc dài hạn vì multiplicative gradient có thể tăng/giảm theo hàm mũ tương ứng với số lượng các tầng. Gated Recurrent Unit (GRU) (GRU) Bộ nhớ dài-ngắn hạn (LSTM) (LSTM) c̃<t> tanh(Wc [Γr ? a<t−1> ,x<t> ] + bc ) tanh(Wc [Γr ? a<t−1> ,x<t> ] + bc ) c<t> Γu ? c̃<t> + (1 − Γu ) ? c<t−1> Γu ? c̃<t> + Γf ? c<t−1> a<t> c<t> Γo ? c<t> r Gradient clipping – Là một kĩ thuật được sử dụng để giải quyết vấn đề exploding gradient xảy ra khi thực hiện lan truyền ngược. Bằng việc giới hạn giá trị lớn nhất cho gradient, hiện tượng này sẽ được kiểm soát trong thực tế. Các phụ thuộc r Các loại cổng – Để giải quyết vấn đề vanishing gradient, các cổng cụ thể được sử dụng trong một vài loại RNNs và thường có mục đích rõ ràng. Chúng thường được kí hiệu là Γ và bằng với: Chú ý: kí hiệu * chỉ phép nhân từng phần tử với nhau giữa hai vectors. Γ = σ(W x<t> + U a<t−1> + b) Với W, U, b là các hệ số của một cổng và σ là hàm sigmoid. Các loại chính được tổng kết ở bảng dưới đây: Đại học Stanford r Các biến thể của RNNs – Bảng dưới đây tổng kết các kiến trúc thường được sử dụng khác của RNN: 8 mùa đông 2019 https://stanford.edu/~shervine/l/vi CS 230 – Học sâu RNN hai chiều (Bidirectional, BRNN) (BRNN) 2.3 2.3.2 RNN sâu (Deep, DRNN) (DRNN) Word embeddings r Word2vec – Word2vec là một framework tập trung vào việc học word embeddings bằng cách ước lượng khả năng mà một từ cho trước được bao quanh bởi các từ khác. Các mô hình phổ biến bao gồm skip-gram, negative sampling và CBOW. r Skip-gram – Mô hình skip-gram word2vec là một task học có giám sát, nó học các word embeddings bằng cách đánh giá khả năng của bất kì target word t cho trước nào xảy ra với context word c. Bằng việc kí hiệu θt là tham số đi kèm với t, xác suất P (t|c) được tính như sau: Học từ đại diện exp(θtT ec ) P (t|c) = Trong phần này, chúng ta kí hiệu V là tập từ vựng và |V | là kích cỡ của nó. |V | X 2.3.1 Giải thích và các kí hiệu exp(θjT ec ) j=1 r Các kĩ thuật biểu diễn – Có hai cách chính để biểu diễn từ được tổng kết ở bảng bên dưới: Chú ý: Cộng tổng tất cả các từ vựng trong mẫu số của phần softmax khiến mô hình này tốn nhiều chi phí tính toán. CBOW là một mô hình word2vec khác sử dụng các từ xung quanh để dự đoán một từ cho trước. Word embedding Biểu diễn 1-hot r Negative sampling – Nó là một tập của các bộ phân loại nhị phân sử dụng logistic regressions với mục tiêu là đánh giá khả năng mà một ngữ cảnh cho trước và các target words cho trước có thể xuất hiện đồng thời, với các mô hình đang được huấn luyện trên các tập của k negative examples và 1 positive example. Cho trước context word c và target word t, dự đoán được thể hiện bởi: P (y = 1|c,t) = σ(θtT ec ) Chú ý: phương thức này tốn ít chi phí tính toán hơn mô hình skip-gram. - Lưu ý ow - Tiếp cận Naive, không có thông tin chung r GloVe – Mô hình GloVe, viết tắt của global vectors for word representation, nó là một kĩ thuật word embedding sử dụng ma trận đồng xuất hiện X với mỗi Xi,j là số lần mà từ đích (target) i xuất hiện tại ngữ cảnh j. Cost function J của nó như sau: - Lưu ý ew - Xem xét độ tương đồng của các từ J(θ) = r Embedding matrix – Cho một từ w, embedding matrix E là một ma trận tham chiếu thể hiện 1-hot ow của nó với embedding ew của nó như sau: |V | X f (Xij )(θiT ej + bi + b0j − log(Xij ))2 i,j=1 f là hàm trong số với Xi,j = 0 =⇒ f (Xi,j ) = 0. Với tính đối xứng mà e và θ có được trong mô ew = Eow (final) hình này, word embedding cuối cùng ew Chú ý: học embedding matrix có thể hoàn thành bằng cách sử dụng các mô hình target/context likelihood. Đại học Stanford 1 2 được định nghĩa như sau: (final) ew 9 = ew + θw 2 mùa đông 2019 https://stanford.edu/~shervine/l/vi CS 230 – Học sâu Chú ý: Các phần tử riêng của các word embedding học được không nhất thiết là phải thông dịch được. 2.6 Dịch máy r Tổng quan – Một mô hình dịch máy tương tự với mô hình ngôn ngữ ngoại trừ nó có một mạng encoder được đặt phía trước. Vì lí do này, đôi khi nó còn được biết đến là mô hình ngôn ngữ có điều kiện. Mục tiêu là tìm một câu văn y như sau: 2.4 So sánh các từ y= r Độ tương đồng cosine – Độ tương đồng cosine giữa các từ w1 và w2 được trình bày như sau: similarity = arg max P (y <1> ,...,y <Ty > |x) y <1> ,...,y <Ty > w1 · w2 = cos(θ) ||w1 || ||w2 || r Tìm kiếm Beam – Nó là một giải thuật tìm kiếm heuristic được sử dụng trong dịch máy và ghi nhận tiếng nói để tìm câu văn y đúng nhất tương ứng với đầu vào x. • Bước 1: Tìm top B các từ y<1> Chú ý: θ là góc giữa các từ w1 và w2 . • Bước 2: Tính xác suất có điều kiện y<k>|x,y<1>,...,y<k-1> • Bước 3: Giữ top B các tổ hợp x,y<1>,...,y<k> r t-SNE – t-SNE (t-distributed Stochastic Neighbor Embedding) là một kĩ thuật nhằm giảm đi số chiều của không gian embedding. Trong thực tế, nó thường được sử dụng để trực quan hoá các word vectors trong không gian 2 chiều (2D). Chú ý: nếu độ rộng của beam được thiết lập là 1, thì nó tương đương với tìm kiếm tham lam naive. r Độ rộng Beam – Độ rộng beam B là một tham số của giải thuật tìm kiếm beam. Các giá trị lớn của B tạo ra kết quả tốt hơn nhưng với hiệu năng thấp hơn và lượng bộ nhớ sử dụng sẽ tăng. 2.5 r Chuẩn hoá độ dài – Đến cải thiện tính ổn định, beam search thường được áp dụng mục tiêu chuẩn hoá sau, thường được gọi là mục tiêu chuẩn hoá log-likelihood, được định nghĩa như sau: Mô hình ngôn ngữ 1 Objective = α Ty r Tổng quan – Một mô hình ngôn ngữ sẽ dự đoán xác suất của một câu P (y). r Mô hình n-gram – Mô hình này là cách tiếp cận naive với mục đích định lượng xác suất mà một biểu hiện xuất hiện trong văn bản bằng cách đếm số lần xuất hiện của nó trong tập dữ liệu huấn luyện. r Độ hỗn tạp – Các mô hình ngôn ngữ thường được đánh giá dựa theo độ đo hỗ tạp, cũng được biết đến là PP, có thể được hiểu như là nghịch đảo xác suất của tập dữ liệu được chuẩn hoá bởi số lượng các từ T . Độ hỗn tạp càng thấp thì càng tốt và được định nghĩa như sau: PP = T Y ! T1 1 P|V | t=1 (t) h log p(y <t> |x,y <1> , ..., y <t−1> ) i t=1 Chú ý: tham số α có thể được xem như là softener, và giá trị của nó thường nằm trong đoạn 0.5 và 1. r Phân tích lỗi – Khi có được một bản dịch tồi b y , chúng ta có thể tự hỏi rằng tại sao chúng ta không có được một kết quả dịch tốt y ∗ bằng việc thực hiện việc phân tích lỗi như sau: Trường hợp P (y ∗ |x) > P (b y |x) P (y ∗ |x) 6 P (b y |x) Nguyên nhân sâu xa Lỗi Beam search lỗi RNN Biện pháp khắc phục Tăng beam width (t) y ·b yj j=1 j - Thử kiến trúc khác - Chính quy - Lấy nhiều dữ liệu hơn Chú ý: PP thường được sử dụng trong t-SNE. Đại học Stanford Ty X 10 mùa đông 2019 https://stanford.edu/~shervine/l/vi CS 230 – Học sâu r Điểm Bleu – Bilingual evaluation understudy (bleu) score định lượng mức độ tốt của dịch máy bằng cách tính một độ tương đồng dựa trên dự đoán n-gram. Nó được định nghĩa như sau: bleu score = exp 1 n n X pk 3.1 với pn là bleu score chỉ trên n-gram được định nghĩa như sau: pn = Xử lí dữ liệu r Data augmentation – Các mô hình học sâu thường cần rất nhiều dữ liệu để có thể được huấn luyện đúng cách. Việc sử dụng các kỹ thuật Data augmentation là khá hữu ích để có thêm nhiều dữ liệu hơn từ tập dữ liệu hiện thời. Những kĩ thuật chính được tóm tắt trong bảng dưới đây. Chính xác hơn, với hình ảnh đầu vào sau đây, đây là những kỹ thuật mà chúng ta có thể áp dụng: countclip (n-gram) n-gram∈y b X Mẹo và thủ thuật Dịch bởi Hoàng Minh Tuấn, Trần Tuấn Anh và Đàm Minh Tiến ! k=1 X 3 count(n-gram) n-gram∈y Hình gốc b Lật Xoay - Lật đối với một trục mà ý nghĩa của hình ảnh được giữ nguyên - Xoay với một góc nhỏ - Mô phỏng hiệu chỉnh đường chân trời không chính xác Cắt ngẫu nhiên Chú ý: một mức phạt ngắn có thể được áp dụng với các dự đoán dịch ngắn để tránh việc làm thổi phồng giá trị bleu score. 2.7 Chú ý r Attention model – Mô hình này cho phép một RNN tập trung vào các phần cụ thể của đầu vào được xem xét là quan trọng, nó giúp cải thiện hiệu năng của mô hình kết quả trong thực tế. 0 0 Bằng việc kí hiệu α<t,t > là mức độ chú ý mà đầu ra y <t> nên có đối với hàm kích hoạt a<t > và c<t> là ngữ cảnh ở thời điểm t, chúng ta có: c <t> = X α <t,t0 > <t0 > a X với t0 α <t,t0 > =1 - Hình ảnh không t0 có bất kỳ sửa Chú ý: Các attention scores thường được sử dụng trong chú thích ảnh và dịch máy. đổi nào Dịch chuyển màu r Attention weight – Sự chú ý mà đầu ra y <t> nên có với hàm kích hoạt a<t được tính như sau: α<t,t 0 > exp(e<t,t = 0 0 > với α<t,t 0 exp(e<t,t 00 > - Các sắc thái của RGB bị thay đổi một chút ) - Captures noise có thể Chú ý: độ phức tạp tính toán là một phương trình bậc hai đối với Tx . ? Mất mát thông tin Thay đổi độ tương phản >) t00 =1 ? ngẫu nhiên có thể được thực hiện trên một hàng > Tx X Đại học Stanford Thêm nhiễu - Lấy nét ngẫu nhiên trên một phần của hình ảnh - Một số cách cắt xảy ra khi tiếp xúc với ánh sáng nhẹ ? 11 - Bổ sung nhiễu - Chịu được sự thay đổi chất lượng của các yếu tố đầu vào - Các phần của hình ảnh bị bỏ qua - Mô phỏng khả năng mất của các phần trong hình ảnh - Thay đổi độ sáng - Kiểm soát sự khác biệt do phơi sáng theo thời gian trong ngày mùa đông 2019 https://stanford.edu/~shervine/l/vi CS 230 – Học sâu r Chuẩn hóa batch – Đây là một bước của hyperparameter γ,β chuẩn hóa tập dữ liệu {xi }. 2 là trung bình và phương sai của tập dữ liệu ta muốn chuẩn hóa, nó Bằng việc kí hiệu µB , σB được thực hiện như sau: • Bước 1: Lấy một loạt dữ liệu huấn luyện và thực hiện lan truyền xuôi (forward propagation) để tính toán mất mát xi − µ B xi ←− γ p +β 2 + σB • Bước 2: Lan truyền ngược mất mát để có được độ dốc (gradient) của mất mát theo từng trọng số • Bước 3: Sử dụng độ dốc để cập nhật trọng số của mạng. Thường hoàn thành sau một lớp fully connected/nhân chập và trước lớp phi tuyến tính và mục đích cho phép tốc độc học cao hơn và giảm thiểu sự phụ thuộc vào khởi tạo 3.2 3.2.1 Huấn luyện mạng neural Định nghĩa r Epoch – Trong ngữ cảnh huấn luyện mô hình, epoch là một thuật ngữ chỉ một vòng lặp mà mô hình sẽ duyệt toàn bộ tập dữ liệu huấn luyện để cập nhật trọng số của nó. r Mini-batch gradient descent – Trong quá trình huấn luyện, việc cập nhật trọng số thường không dựa trên toàn bộ tập huấn luyện cùng một lúc do độ phức tạp tính toán hoặc một điểm dữ liệu nhiễu. Thay vào đó, bước cập nhật được thực hiện trên các lô nhỏ (mini-batch), trong đó số lượng điểm dữ liệu trong một lô (batch) là một siêu tham số (hyperparameter) mà chúng ta có thể điều chỉnh. r Hàm mất mát – Để định lượng cách thức một mô hình nhất định thực hiện, hàm mất mát L thường được sử dụng để đánh giá mức độ đầu ra thực tế y được dự đoán chính xác bởi đầu ra của mô hình là z. 3.3 3.3.1 Khởi tạo trọng số r Khởi tạo Xavier – Thay vì khởi tạo trọng số một cách ngẫu nhiên, khởi tạo Xavier cho chúng ta một cách khởi tạo trọng số dựa trên một đặc tính độc nhất của kiến trúc mô hình. r Cross-entropy loss – Khi áp dụng phân loại nhị phân (binary classification) trong các mạng neural, cross-entropy loss L(z,y) thường được sử dụng và được định nghĩa như sau: h Tinh chỉnh tham số i r Transfer learning – Huấn luyện một mô hình deep learning đòi hỏi nhiều dữ liệu và quan trọng hơn là rất nhiều thời gian. Sẽ rất hữu ích để tận dụng các trọng số đã được huyến luyện trước trên các bộ dữ liệu rất lớn mất vài ngày / tuần để huấn luyện và tận dụng nó cho trường hợp của chúng ta. Tùy thuộc vào lượng dữ liệu chúng ta có trong tay, đây là các cách khác nhau để tận dụng điều này: L(z,y) = − y log(z) + (1 − y) log(1 − z) Kích thước tập huấn luyện 3.2.2 Mô phỏng Giải thích Tìm trọng số tối ưu r Lan truyền ngược – Lan truyền ngược (backpropagation) là một phương thức để cập nhật các trọng số trong mạng neural bằng cách tính toán đầu ra thực tế và đầu ra mong muốn. Đạo hàm tương ứng với từng trọng số w được tính bằng quy tắc chuỗi. Nhỏ Trung bình Sử dụng phương thức này, mỗi trọng số được cập nhật theo quy luật: Lớn Cố định các tầng huấn luyện trọng số trên hàm softmax Cố định hầu hết các tầng ∂L(z,y) w ←− w − α ∂w r Cập nhật trọng số – Trong một mạng neural, các trọng số được cập nhật như sau: Đại học Stanford 12 mùa đông 2019 https://stanford.edu/~shervine/l/vi CS 230 – Học sâu 3.3.2 Tối ưu hội tụ LASSO r Tốc độ học – Tốc độ học (learning rate), thường được kí hiệu là α hoặc đôi khi là η, cho biết mức độ thay đổi của các trọng số sau mỗi lần được cập nhật. Nó có thể được cố định hoặc thay đổi thích ứng. Phương thức phổ biến nhất hiện nay là Adam, đây là phương thức thích nghi với tốc độ học. - Giảm hệ số về 0 - Tốt cho việc lựa chọn biến Ridge Làm cho hệ số nhỏ hơn Elastic Net Đánh đổi giữa việc lựa chọn biến và hệ số nhỏ r Tốc độ học thích nghi – Để cho tốc độ học thay đổi khi huấn luyện một mô hình có thể giảm thời gian huấn luyện và cải thiện giải pháp tối ưu số. Trong khi tối ưu hóa Adam (Adam optimizer) là kỹ thuật được sử dụng phổ biến nhất, nhưng những phương pháp khác cũng có thể hữu ích. Chúng được tổng kết trong bảng dưới đây: Phương thức Momentum Giải thích - Làm giảm dao động - Cải thiện SGD Cập nhật của w Cập nhật của b w − αvdw b − αvdb dw w − α√ sdw db b ←− b − α √ sdb ... + λ||θ||1 λ∈R ... + λ||θ||22 λ∈R h ... + λ (1 − α)||θ||1 + α||θ||22 i λ ∈ R,α ∈ [0,1] - 2 tham số để tinh chỉnh - lan truyền Root Mean Square RMSprop - Thuật toán tăng tốc độ học bằng kiểm soát dao động - Ước lượng Adaptive Moment Adam - Các phương pháp phổ biến - 4 tham số để tinh chỉnh w − α√ vdw sdw + b ←− b − α √ r Dừng sớm – Kĩ thuật chính quy này sẽ dừng quá trình huấn luyện một khi mất mát trên tập thẩm định (validation) đạt đến một ngưỡng nào đó hoặc bắt đầu tăng. vdb sdb + Chú ý: những phương pháp khác bao gồm Adadelta, Adagrad và SGD. 3.4 Chính quy r Dropout – Dropout là một kỹ thuật được sử dụng trong các mạng neural để tránh overfitting trên tập huấn luyện bằng cách loại bỏ các nơ-ron (neural) với xác suất p > 0. Nó giúp mô hình không bị phụ thuộc quá nhiều vào một tập thuộc tính nào đó. Thói quen tốt r Overfitting batch nhỏ – Khi gỡ lỗi một mô hình, khá hữu ích khi thực hiện các kiểm tra nhanh để xem liệu có bất kỳ vấn đề lớn nào với kiến trúc của mô hình đó không. Đặc biệt, để đảm bảo rằng mô hình có thể được huấn luyện đúng cách, một batch nhỏ (mini-batch) được truyền vào bên trong mạng để xem liệu nó có thể overfit không. Nếu không, điều đó có nghĩa là mô hình quá phức tạp hoặc không đủ phức tạp để thậm chí overfit trên batch nhỏ (mini-batch), chứ đừng nói đến một tập huấn luyện có kích thước bình thường. Ghi chú: hầu hết các frameworks deep learning đều có thiết lập dropout thông qua biến tham số ’keep’ 1 − p. r Kiểm tra gradien – Kiểm tra gradien là một phương thức được sử dụng trong quá trình thực hiện lan truyền ngược của mạng neural. Nó so sánh giá trị của gradien phân tích (analytical gradient) với gradien số (numerical gradient) tại các điểm đã cho và đóng vai trò kiểm tra độ chính xác. r Weight regularization – Để đảm bảo rằng các trọng số không quá lớn và mô hình không bị overfitting trên tập huấn luyện, các kỹ thuật chính quy (regularization) thường được thực hiện trên các trọng số của mô hình. Những kĩ thuật chính được tổng kết trong bảng dưới đây: Đại học Stanford 3.5 13 mùa đông 2019 https://stanford.edu/~shervine/l/vi CS 230 – Học sâu Công thức Bình luận Gradien số Gradien phân tích df f (x + h) − f (x − h) (x) ≈ dx 2h df (x) = f 0 (x) dx - Đắt, Mất mát phải được tính hai lần cho mỗi chiều - Được sử dụng để xác minh tính chính xác của việc triển khai phân tích - Đánh đổi trong việc chọn h không quá nhỏ (mất ổn định số) cũng không quá lớn - Kết quả ’Chính xác’ - Tính toán trực tiếp - Được sử dụng trong quá trình triển khai cuối cùng (xấp xỉ độ dốc kém) ? Đại học Stanford ? ? 14 mùa đông 2019