Chương 1: Giới thiệu: Tổng quan về nội dung, mục tiêu và cấu trúc luận văn. Chương 2: Cơ sở lý thuyết: Kiến thức nền tảng có liên quan đến đề tài. Chương 3: Các hướng tiếp cận và công trình liên quan. Chương 4: Phương pháp thí nghiệm: Trình bày các mô hình và thí nghiệm.
Chương 5: Kết quả thực nghiệm: So sánh và đánh giá những thay đổi của các thí nghiệm. Chương 6: Kết luận: Tổng kết kết quả đúc kết được trong quá trình nghiên cứu và hướng nghiên cứu tiếp theo trong tương lai. 5 Chương 2 Cơ sở lý thuyết Trong những năm trở lại đây, mạng học sâu (deep neural networks) đang trở thành một hướng đi lớn cho việc giải quyết các bài toán về trí thông minh nhân tạo nói chung và các bài toán xử lý ảnh nói riêng. Các mô hình tính toán với độ phức tạp cao trước đây không hiện thực hoá được nay lại trở nên dễ dàng ứng dụng với sự phát triển mạnh mẽ của các thiết bị phần cứng.
Deep learning đang dần thống trị các lĩnh vực từ thị giác máy tính, xử lý ngôn ngữ tự nhiên hay khoa học dữ liệu. Mạng học sâu cũng được ứng dụng trong bài toán tái định danh với nhiều công trình nổi tiếng gần đây như tại [2], [3], [5], [7], .1 Mạng neuron nhân tạo Mạng neuron nhân tạo là một đồ thị tính toán gồm các neuron là các nút tính toán được liên kết với nhau. Mỗi neuron bao gồm nhiều tín hiệu đầu vào và một tín hiệu đầu ra. Đầu ra được lấy tổ hợp tuyến tính của các dữ liệu đầu vào, sau đó sẽ qua một hàm kích hoạt phi tuyến.
Một neuron được biểu diễn như hình sau: 6 CHƯƠNG 2. CƠ SỞ LÝ THUYẾT Hình 2.1: Sơ đồ tính toán một nút neuron Hàm kích hoạt có tác dụng phi tuyến hóa đầu ra của neuron. Một số hàm kích hoạt tiêu biểu là Sigmoid, T anh, ReLU ,. Hàm kích hoạt phải thỏa mãn các tính chất: (1) là hàm đồng biến (đạo hàm không âm) trên không gian số thực để giữ được đặc tính so sánh của dữ liệu đầu vào và (2) có đạo hàm trên toàn bộ không gian số thực để phục vụ cho việc tối ưu bằng gradient descent.
Các trọng số của neuron sẽ được điều chỉnh trong quá trình học sao cho hợp lý nhất. Với mỗi nút neuron, khả năng biểu diễn tính toán có thể nhỏ nhưng liên kết nhiều nút lại với nhau sẽ giúp tăng khả năng biểu diễn chung của toàn mạng. Từ đó, mạng neuron có khả năng biểu diễn mọi hàm số phức tạp.2 Gradient descent và lan truyền ngược Mục tiêu của gradient descent là điều chỉnh bộ tham số w để tối thiểu hóa hàm mục tiêu L. Ý tưởng chính của phương pháp là thay đổi w một lượng tỉ lệ nghịch với đạo hàm của L.1) ∂w Ở công thức trên thì α là một hằng số, gọi là hệ số học (learning rate) thể hiện cho mức độ thay đổi trong việc cập nhật trọng số sau mỗi bước.
CƠ SỞ LÝ THUYẾT Hình 2.2: Sơ đồ tính toán hai nút neuron Đối với mô hình như 2.2, khi áp dụng gradient descent để tinh chỉnh mạng nhằm tối thiểu hóa hàm mục tiêu, ta cần tính toán được các giá trị đạo hàm của hàm mục tiêu theo từng bộ tham số bao gồm: ∂L ∂L ∂y = × (2.3) ∂w1 ∂y ∂o1 ∂w1 Với những hệ tính toán nhiều lớp, cần phải có cách để tính đạo hàm của hàm mục tiêu trên từng tham số cần tối ưu. Lan truyền ngược đã được được áp dụng để giải quyết vấn đề này trong quá trình học: 1. Bước lan truyền thuận: Dữ liệu được đưa vào mạng, tính toán và cho ra kết quả. Các dữ kiện cần thiết cho bước tính đạo hàm sẽ được lưu lại để phục vụ tính toán.
Bước lan truyền ngược: đạo hàm của hàm mục tiêu trên từng tham số trong mạng sẽ được tính toán bằng công thức đạo hàm của hàm hợp (chain-rule). Sở dĩ gọi bước này là lan truyền ngược, vì đạo hàm của một nút lớp trước sẽ được tính toán dựa trên đạo hàm đã tính của các nút phía sau gần hàm mục tiêu hơn. Bước cập nhật: Từng tham số trong mạng sẽ được cập nhật theo công thức đã trình bày ở 2.3 Kiến trúc mạng học sâu tích chập Đối với các bài toán về thị giác máy tính, dữ liệu ở dạng ảnh số chứa đến hàng triệu điểm ảnh (pixel). Nếu đưa trực tiếp toàn bộ lượng thông tin này vào các tầng kết nối đầy đủ (fully-connected layers), ta cần một tài nguyên tính toán vô cùng lớn và vấn đề học quá khớp (overfitting) sẽ dễ gặp phải với lượng tham số không tưởng.
Trên dữ liệu ảnh số, mối tương quan các điểm ảnh gần nhau sẽ nhiều hơn các điểm ảnh nằm xa nhau, từ đó phép toán tích chập - convolution được định nghĩa để trích xuất đặc trưng trên từng vùng của ảnh. Với ảnh hoặc tensor có nhiều kênh I , ví dụ ảnh màu là ảnh gồm ba kênh RGB, và kích thước cI × wI × hI , ta có phép tích chập như sau: cI X H = I ⊗ K ⇔ H[z] = I[c] ⊗ K[z, c] (2.4) c=1 Trong đó: • IcI ×wI ×hI là ảnh hoặc tensor đầu vào với cI kênh và kích thước wI × hI. • KcH ×cI ×wK ×hK là kernel của phép chập với cH là số chiều của tensor đầu ra. • HcH ×wH ×hH là tensor đầu ra của phép tích chập.
Trong mạng neuron, một lớp tính toán tích chập là một phép tích chập đa kênh với kernel là bộ tham số. Mỗi kênh trong tensor đa kênh được gọi là một feature map, nói cách khác ảnh đa kênh được gọi là một bộ feature map. Mỗi giá trị ở đầu ra sẽ không được tính trên toàn bộ đầu vào, mà chỉ được tính từ một vùng quan sát (receptional field). Điều này thỏa mãn giả thiết rằng thông tin từ các điểm ảnh nằm gần nhau sẽ có ý nghĩa hơn các điểm ảnh nằm xa nhau.
Với ý tưởng này, lớp tích chập giảm đáng kể lượng trọng số trong một lớp, đồng thời giữ được tính cục bộ hóa của dữ liệu. CƠ SỞ LÝ THUYẾT Hình 2.3: Ví dụ mình hoạ cho tích chập Mạng học sâu có sử dụng các lớp tích chập làm thành phần chính được gọi là Convolutional Neural Networks (CNN). Các mạng CNN tỏ ra hiệu quả cho các bài toán xử lý ảnh số. Nhiều kiến trúc CNN tỏ ra vượt trội hơn so với các phương thức xử lý ảnh truyền thống.
Ngoài ra, CNN cũng được ứng dụng nhiều lĩnh vực khác như xử lý tín hiệu số, ảnh đa khoa,. Các kĩ thuật và mô hình biến thể cũng ra đời để cải thiện và ứng dụng CNN trong nhiều bài toán khác nhau.4 Một số lớp tính toán trong CNN 2.1 Lớp Pooling Trong quá trình tính toán, lớp pooling có thể được dùng cho việc thu giảm kích thước các feature map. Điều này giúp giảm bớt khối lượng tính toán cho lớp tiếp theo, đồng thời chỉ giữ lại những đặc trưng đại diện cần thiết. Mô tả trực quan của phép pooling được thể hiện ở hình dưới.4: Mô tả trực quan lớp pooling 10 CHƯƠNG 2.
CƠ SỞ LÝ THUYẾT Phép pooling gần giống phép convolution ở chỗ mỗi điểm ảnh ở đầu ra sẽ tương ứng với một vùng quan sát ở đầu vào. Tuy nhiên, sự khác biệt của hai phép tính toán là: • Mục tiêu của lớp convolution là trích xuất đặc trưng còn lớp pooling là lấy mẫu đại diện để thu giảm kích thước feature map. • Lớp convolution có tham số thể học được còn lớp pooling không có tham số. Các giá trị đại diện trên từng vùng được lấy theo một hàm lấy mẫu cố định như trung bình, phần tử lớn nhất,.
• Vùng quan sát của phép convolution thường chồng lấp (lệch nhau một điểm ảnh) còn phép pooling thì có vùng quan sát riêng biệt cho mỗi điểm ảnh ở đầu ra.2 Lớp BactchNorm Dữ liệu khi đi qua các lớp tính toán sẽ được ánh xạ từ phân phối đầu vào sang một phân phối khác ở đầu ra. Vì phân phối dữ liệu qua từng lớp là khác nhau, nếu như toàn bộ tham số trong mạng được tối ưu theo một hệ số học (learning rate), quá trình học sẽ là không công bằng giữa các lớp. Để giải quyết vấn đề này, dữ liệu qua mỗi tầng tính toán được chuẩn hóa về phân phối có giá trị trung bình mean = 0 và độ lệch chuẩn đơn vị bằng 1. Việc biến đổi này có thể được thực hiện bằng biến đổi tuyển tính, tức là chỉ chuẩn hoá trung bình và độ lệch chuẩn để giữ nguyên dạng phân phối đầu vào.
xi − x BatchN orm(xi ) = (2.5) σx Trong đó: • xi là dữ liệu đầu vào. • x là giá trị kỳ vọng của phân phối chứa xi. Tham số này được lấy bằng cách tính trung bình của tất cả các giá trị được truyền qua lớp. • σx là độ lệch chuẩn của phân phối chứa xi.
Tham số này được lấy bằng cách tính độ lệch chuẩn của tất cả các giá trị được truyền qua lớp.3 Lớp BNNeck Hầu hết các mô hình đạt kết quả cao thường kết hợp cả triplet loss và ID loss như được thể hiện trong hình 2. Tuy nhiên, việc kết hợp 2 loại hàm mục tiêu này đôi khi gây nên sự không nhất quán với mục tiêu ban đầu của mỗi hàm mục tiêu.5: ID loss kết hợp triplet loss Mục tiêu của ID loss là tách vector đặc trưng của mỗi lớp theo những hướng khác nhau trong không gian con. Vì vậy việc sử dụng khoảng cách cosin sẽ phù hợp hơn khoảng cách euclid. Còn mục tiêu của triplet loss (2.1) là tối thiểu hoá khoảng cách các phần tử trong lớp và tối đa hoá khoảng cách các phần tử ở các lớp khác nhau.
Triplet loss sử dụng khoảng cách euclid. Trong quá trình học, có thể giá trị của một loss giảm đi lại làm tăng giá trị của hàm loss kia. Kết quả học của 2 hàm losses được thể hiện trực quan trọng hình 2. CƠ SỞ LÝ THUYẾT Hình 2.6: So sánh ảnh hưởng của các hàm losses [1] BNNeck thêm một lớp BN nằm ở trước lớp FC và đầu vào của lớp BN này là vector đặc trưng.
Gọi vector ft và fi lần lượt là vector trước và sau lớp BN. Vector ft sẽ được dùng cho việc học triplet còn vector fi sẽ qua thêm một lớp FC để dùng ID Loss. Sau quá trình huấn luyện, fi sẽ được dùng làm vector đặc trưng và kiểm thử mô hình.6 (g), ft không chỉ gom cụm phân bố của các lớp mà còn học được những đặc tính từ ID loss.7: Sơ đồ BNNeck 13 CHƯƠNG 2.5 Chiến lược huấn luyện mạng học sâu 2.