Chương 1 - Giới thiệu đề tài: nhằm giới thiệu tổng quan về bài toán phân loại thuộc tính người đi bộ và phương pháp giải quyết. • Chương 2 - Cơ sở lý thuyết: trình bày những lý thuyết liên quan được sử dụng trong bài nghiên cứu. • Chương 3 - Tổng quan tình hình nghiên cứu: bao gồm các công trình nghiên cứu liên quan đến bài nhập dạng thuộc tính người đi bộ, phân tích các ưu và nhược điểm để có thể khắc phục và tăng cường trong phương pháp đề xuất. • Chương 4 - Phương pháp nghiên cứu: trình bày cụ thể mô hình đề xuất và cách thức mô hình hoạt động.
• Chương 5 - Kết quả thực nghiệm: phân tích đặc điểm của các bộ dữ liệu được sử dụng trong bài toán, các phương pháp đánh giá, kết quả đánh giá của mô hình đề xuất và so sánh với công trình gần đây. • Chương 6 - Kết luận: nêu ra các kết luận đúc kết được trong quá trình nghiên cứu và hướng phát triển tiếp theo trong tương lai. 4 Chương 2 Cơ sở lý thuyết Chương này sẽ giải thích về khái niệm, kiến trúc mạng nơ-ron đa tầng và mạng nơ-ron tích chập - CNN, phân tích một số pretrain model thường dùng cho việc phân loại các thuộc tính của người nói riêng và trên ảnh nói chung.1 Mạng nơ-ron đa tầng và mạng học sâu 2.1 Mạng nơ-ron đa tầng Mạng nơ-ron đa tầng là mạng sử dụng nhiều perceptron được sắp xếp thành các tầng khác nhau. Các perceptron ở tầng sau đều nối tới tầng trước (fully- connected).
Các thành phần của một mạng nơ-ron đa tầng gồm: • Tầng dữ kiện (input layer): Là tầng đầu tiên của mạng, thể hiện các dữ kiện đầu vào. • Tầng kết quả (output layer): Là tầng nằm ở vị trí cuối cùng, thể hiện kết quả đầu ra của mạng. CƠ SỞ LÝ THUYẾT Hình 2.1: Cấu tạo của mạng nơ-ron đa tầng. Tuy nhiên các phép tính của mạng nơ-ron đa tầng đều là tuyến tính, chính vì vậy gây ra những vấn đề sau: • Khó khăn trong việc xây dựng những mô hình phi tuyến phức tạp.
• Khi đi qua nhiều lớp, những vấn đề về trọng số sẽ xảy ra ví dụ như đầu ra của một perceptron nào đó quá lớn hoặc quá âm sẽ ảnh hưởng rất nhiều đến độ chính xác của bài toán hoặc thậm chí là máy tính không thể biểu diễn được. • Vì đầu ra sẽ được so sánh về ngưỡng nào đó, do đó, vấn đề về xác định xác suất sẽ rất khó thực hiện vì chúng ta chỉ thể hiện được mức độ hay nói cách khác là những giá trị rời rạc.2 Mạng nơ-ron học sâu Mạng nơ-ron học sâu sinh ra để khắc phục những vấn đề của mạng nơ-ron gặp phải. Bằng cách áp dụng các hàm activation khác nhau thay cho threshold và cách làm tuyến tính như mạng nơ-ron đa tầng thì mạng học sâu đã ra đời. Chúng ta cũng dễ thấy rằng, không có sự khác biệt quá nhiều giữa mạng nơ-ron đa tầng và mạng học sâu, như hình 2.2, hay có thể nói mạng nơ-ron đa tầng là một tập hợp con của mạng học sâu khi chúng ta chỉ cần thay đổi activation của từng hidden layers và layer đầu ra để thể hiện về tính phi tuyến và xác suất.
Như hình trên, chúng ta có thể thấy rằng, đi qua mỗi layer của mạng học sâu chúng ta có thể thêm vào đó các hàm activation khác nhau, hoặc thậm chí không cần thêm. Còn trong mạng nơ-ron đa tầng thì chỉ đơn thuần là các phép tính toán ma trận tuyến tính. Các hàm kích hoạt thường được sử dụng trong mạng học sâu: 6 CHƯƠNG 2. CƠ SỞ LÝ THUYẾT Hình 2.2: Mạng MLP và mạng học sâu với một lớp ẩn Hàm sigmoid : 1 σ(x) = 1 + e−x Hàm sigmoid nhận vào một giá trị thực x và trả về một giá trị trong khoảng (0, 1).
Nếu x là một số thực âm rất nhỏ thì kết quả của hàm sigmoid sẽ tiệm cận 0, và ngược lại nếu x là một số dương rất lớn thì kết quả sẽ tiệm cận 1.3 bên dưới là đồ thị biểu diễn cho hàm sigmoid.3: Đồ thị của hàm sigmoid. Đối với hàm sigmoid, việc tính toán vô cùng thuận lợi do kết quả đạo hàm của sigmoid rất "đẹp". Tuy nhiên, điều này không thể che lấp những khuyết điểm nghiêm trọng của sigmoid: • Hàm sigmoid bão hòa và triệt tiêu gradient (vanishing gradient) Trên hình 2.3, đường màu xanh thể hiện cho giá trị của hàm sigmoid và đường màu cam thể hiện cho giá trị của đạo hàm. Có thể nhận ra được, với những giá trị x rất lớn hoặc rất nhỏ, kết quả đạo hàm của hàm sigmoid rất gần với 0.
Điều này gây ra sự triệt tiêu gradient và hạn chế khả năng học 7 CHƯƠNG 2. CƠ SỞ LÝ THUYẾT của mạng. Cụ thể, nếu mạng được khởi động bằng những trọng số quá lớn hoặc quá nhỏ, giá trị đầu vào của hàm sigmoid bị bão hòa, giá trị của đạo hàm sẽ là một giá trị gần 0 và gradient sẽ bị triệt tiêu. Nếu mạng được khởi động bằng những trọng số "đẹp"(không quá lớn, không quá nhỏ), giá trị của đạo hàm cũng sẽ là một giá trị trong khoảng (0, 0.
Khi đi qua một mạng nhiều tầng, đạo hàm của các trọng số sẽ nhỏ dần và gradient vẫn sẽ bị triệt tiêu. • Hàm sigmoid không có tính chất zero-centered Hình 2.4: Một tầng ẩn của mạng neural nhiều lớp dùng hàm sigmoid. Ở ví dụ của mạng neuron như hình 2.4, đạo hàm riêng phần của hàm mất mát theo hai trọng số w1 và w2 sẽ được tính như sau: ∂L ∂z ∂L 0 ∇w1 = × = × a1 ∂z ∂w1 ∂z ∂L ∂z ∂L 0 ∇w2 = × = × a2 ∂z ∂w2 ∂z 0 0 Vì a1 và a1 là kết quả của một hàm sigmoid trước đó, do đó luôn nhận giá trị dương và dấu của các gradient sẽ phụ thuộc vào ∂L ∂z. Điều này có nghĩa là các gradient sẽ luôn cùng dương hoặc luôn cùng âm.
Việc cập nhật trọng số sẽ chỉ xảy ra về một phía, hạn chế sự linh hoạt của mạng và gây khó khăn cho việc hội tụ. Hàm tanh : ex − e−x tanh(x) = ex + e−x Hàm tanh nhận vào một số thực và trả về một giá trị trong khoảng (-1,1).5, đường màu xanh thể hiện giá trị của hàm tanh và đường màu 8 CHƯƠNG 2. CƠ SỞ LÝ THUYẾT đỏ thể hiện cho giá trị đạo hàm. Dễ dàng nhận thấy rằng hàm tanh cũng gặp phải vấn đề triệt tiêu gradient như hàm sigmoid.
Tuy nhiên, so với sigmoid, hàm tanh có tính chất zero-centered.5: Đồ thị của hàm tanh. Hàm ReLu : f (x) = max(0, x) ReLU gần đây được sử dụng rộng rãi vì tính đơn giản của nó. Quan sát công thức, dễ dàng nhận ra cách hoạt động của hàm ReLU là lọc ra các giá trị đầu vào nhỏ hơn 0. Đạo hàm của ReLU sẽ như sau: 1 if x > 0 f 0 (x) = (2.1) 0 else Như vậy, so với sigmoid và tanh, hàm ReLU sẽ không xuất hiện vấn đề triệt tiêu gradient.
Tốc độ tính toán của hàm ReLU cũng sẽ nhanh hơn so với hai hàm trước đó, vì vậy sẽ tăng tốc độ huấn luyện các mạng nơ-ron đa tầng. Tuy nhiên ReLU cũng tồn đọng một nhược điểm, với x có giá trị nhỏ hơn 0, qua hàm ReLU sẽ thu được kết quả bằng 0. Nếu giá trị của node bị chuyển thành 0 thì sẽ không có ý nghĩa ở lớp tiếp theo và các hệ số tương ứng từ node đấy cũng không được cập nhật với gradient. Hiện tượng này gọi là Dying ReLU.
Khi xây dựng một mạng nơ-ron đa tầng, hàm kích hoạt ReLU nên được sử dụng đầu tiên vì nó nhanh cho kết quả và thường có hiệu quả trong nhiều trường hợp. Hầu hết các mạng nơ-ron học sâu hiện nay đều có hàm kích hoạt ReLU trong các tầng 9 CHƯƠNG 2. CƠ SỞ LÝ THUYẾT ẩn, trừ hàm kích hoạt ở tầng đầu ra vì nó phụ thuộc vào từng bài toán. Hàm leaky ReLU : f (x) = max(0.01x, x) Leaky ReLU là một cố gắng trong việc loại bỏ Dying ReLU.
Thay vì luôn trả về giá trị bằng 0 cho các giá trị âm, leaky ReLU tạo một đường xiên có độ dốc nhỏ. Leaky ReLU cũng có một biến thể khác là PReLU: f (x) = max(αx, x) với α sẽ được chọn trong quá trình học. Các lớp thường sử dụng trong mạng học sâu: Lớp Convolution : Lớp này sẽ được trình bày chi tiết ở phần 2.2 Lớp Fully Connected : Là tầng kết nối đầy đủ, đây là lớp thường được sử dụng ở lớp gần cuối của mạng, sau khi rút trích được tất cả các đặc trưng ẩn để tối ưu hóa mục tiêu của mạng, ví dụ như độ chính xác của lớp. Lớp này sẽ được kết nối tất cả các đầu vào với mỗi nút của lớp tiếp theo.
Lớp này thường có trọng số học rất lớn, và có thời gian tính toán lâu thứ hai sau lớp convolution. Cũng chính vì lý do này, nên những lớp này thường chỉ được sử dụng ở những lớp cuối của mạng trước khi đi qua hàm sigmoid hoặc softmax. Lớp Dropout : Khi huấn luyện một mạng nơ-ron chúng ta thường gặp phải tình trang quá khớp (overfit ) - là hiện tượng mô hình chỉ hoạt động tốt trong tập dữ liệu huấn luyện, khi sử dụng tập dữ liệu kiểm thử hoặc kiểm tra thì kết quả thu được rất tệ. Trong học máy người ta thường sử dụng regularization để ngăn chặn overfit bằng cách thêm các yếu tố phạt vào hàm lỗi, còn trong mạng nơ-ron có một phương pháp mới để ngăn chặn overfit là sử dụng lớp dropout.
Ý tưởng của lớp này rất đơn giản, chúng ta sẽ loại bỏ vài nút của mạng để chúng không đóng góp vào quá trình huấn luyện như hình 2. Việc loại bỏ này thường được thực hiện bằng cách cài đặt một hệ số xác suất đề loại bỏ các nút, nếu nút nào bị loại bỏ sẽ được cập nhật các trọng số của nút đó về không.6: Mạng nơ-ron trước khi dropout Hình 2.7: Mạng nơ-ron sau khi dropout 10 CHƯƠNG 2. CƠ SỞ LÝ THUYẾT Lớp BatchNorm : Là một lớp rất hiệu quả trong quá trình huấn luyện một mô hình mạng nơ-ron. Mục tiêu của lớp này là muốn chuẩn hóa các đặc trưng - đầu ra của mỗi lớp sau khi đi qua hàm kích hoạt, về trạng thái zero-mean hay nói cách khác là hạn chế trạng thái non-zero-mean, với độ lệch chuẩn là 1.
Trạng thái non-zero-mean là hiện tượng dữ liệu không phân bố quanh giá trị không, mà dữ liệu có phần nhiều giá trị lớn hơn không, hoặc nhỏ hơn không. Kết hợp với vấn đề variance khiến dữ liệu trở nên có nhiều thành phần rất lớn hoặc rất nhỏ.