Cơng trình WAP[13] được xây dựng dựa trên kiến trúc nền tảng như đã trình bày. Encoder ở cơng trình WAP được hiện thực bằng việc sử dụng bộ rút trích đặc trưng của mạng VGG-16[3] thông qua việc loại bỏ lớp phân loại của cơng trình gốc.
Trái với việc hiện thực Encoder tương đối đơn giản thì ở cơng trình này, nhóm tác giả hiện thực Decoder tương đối phức tạp như có thể thấy ở Hình [13]. Deocder được hiện thực với nền tảng chính là mạng hồi quy RNN mà cụ thể là biến GRU[20].
Bên cạnh đó, nhóm tác giả cịn hiện thực thêm lớp tập trung (Attention Layer)
tự trong biểu thức tại thời điểm nhất định, cụ thể là thông tin lịch sử giải mã của toàn biểu thức cho đến thời điểm ấy. Lớp tập trung đưa ra quyết định về trọng số của mỗi vùng trên bản đồ đặc trưng qua đó tổng hợp bản đồ đặc trưng thành một vec-tơ đặc trưng duy nhất thơng qua việc lấy trung bình có trọng số, gọi là vec-tơ ngữ cảnh.
Vec-tơ ngữ cảnh sau đó được mạng RNN giải mã và lớp xuất biểu diễn thành kí tự tương ứng.
Hình [13] mơ tả khái qt q trình nhận dạng biểu thức b−a theo kiến trúc đề xuất của cơng trình WAP[13].
2.3 MultiScale WAP
Hình 14: Sơ đồ thiết kế mơ hình MultiScale WAP.
Là cơng trình kế thừa WAP[13], Multiscale WAP[14] cũng sử dụng kiến trúc nền tảng đã trình bày. Ở cơng trình này nhóm tác giả đề xuất cải tiến nhằm cố gắng giải quyết vấn đề đa dạng về kích thước kí tự trong biểu thức bằng cách sử dụng mơ hình cơ chế tập trung đa phân giải. Nhóm tác giả đề xuất sử dụng 2 lớp tập trung thay vì một như đã làm ở cơng trinh WAP. Điểm quan trọng ở đây chính là việc 2 lớp tập trung sẽ sử dụng 2 đặc trưng ảnh riêng biệt với độ phân giải khác nhau.
Để phục vụ cho nhu cầu sử dụng 2 lớp Attention với 2 độ phân giải khác nhau thì ngồi việc cắt bỏ lớp phân loại cuối cùng ở kiến trúc mạng rút trích đặc trưng ảnh khi hiện thực mô-đun Encoder, ta cần thêm một nhánh rút trích đặc trưng với độ phân giải cao hơn (các tác giả gọi là nhánh B) với kiến trúc tương tự như nhánh rút trích đặc trưng chính (nhóm tác giả gọi là nhánh A cho dễ phân biệt) nhưng được lược bỏ một lớp pooling, nhờ vậy mà nhánh B sẽ rút trích cho ra được đặc trưng với độ phân giải cao hơn so với nhánh A. Ta có thể xem lại kiến trúc mạng rút trích đặc trưng được sử dụng làm Encoder cho MultiScale WAP ở Hình [8].
đó chính là việc phải hiểu đúng dịng chảy dữ liệu cũng như biểu đồ tính tốn của tồn bộ mơ hình. Do mơ tả trong bài báo gốc thường ngắn gọn nên thông tin mô tả cũng thường được rút gọn tối giản, vì vậy để đạt được mục tiêu tái lập lại các cơng trình, ta cần phải đọc thật kĩ bài báo gốc, hệ thống hóa và ánh xạ các cơng thức tốn học sang đồ thị tính tốn của mạng học sâu, từ đó xây dựng mơ hình chính xác với ngun gốc nhất. Việc tìm hiểu và nắm vững các cơ chế được các tác giả sử dụng để xây dựng những cơng trình này cũng góp phần hỗ trợ trong q trình tái hiện thực hóa lại mơ hình.
Ngồi ra, việc nghiên cứu về các bộ siêu tham số cũng vơ cùng khó khăn vì số lượng siêu tham số trên thực tế khi hiện thực một kiến trúc, mơ hình là cực kì lớn so với số lượng được nhắc đế và bàn luận trong các bài báo gốc. Với việc hiện thực cơng trình WAP, nhờ có mã nguồn tuy cũ nhưng bằng nhiều nỗ lực khai thác dữ liệu từ mã nguồn ta có thể có thêm thơng tin về cài đặt siêu tham số cho mơ hình. Cịn với cơng trình MultiScale WAP thì ta chỉ có thể dựa hồn tồn vào những thơng tin được bài báo cung cấp cũng như tham khảo những kinh nghiệm thực tế được cộng đồng chia sẻ qua mạng internet về các kỹ thuật được sử dụng.
Bên cạnh đó, để huấn luyện cả 2 mơ hình WAP và MultiScale WAP, một kỹ thuật phổ biến với những bài tốn có đặc điểm dữ liệu đầu ra là dạng chuỗi kí tự chính là kỹ thuật Thầy ép11 cũng được áp dụng giúp tăng thời gian hội tụ, giảm thời gian huấn luyện mơ hình.
3 Phương pháp đề xuất
Cùng mục tiêu giải quyết vấn đề về kích thước kí tự bất đồng nhất, tác giả luận văn đề xuất kết hợp sử dụng đặc trưng đa phân giải với kiến trúc nền tảng được kế thừa và dựa trên 2 cơng trình WAP[13] và MultiScale WAP[14].
Để rút trích được đặc trưng đa phân giải với sự kết hợp giữa các đặc trưng toàn cục và các đặc trưng cục bộ, ta tham khảo và kế thừa ý tưởng được đề xuất bởi [10] bằng cách biến đổi kiến trúc mạng InceptionV2[5]. Nhóm tác giả của [10] đề xuất dung hợp các đặc trưng với độ phân giải thấp, vùng quan sát lớn12 và biểu diễn mang tính tồn cục với các đặc trưng phân giải cao, vùng quan sát nhỏ và biểu diễn mang tính cục bộ. Phương pháp được sử dụng để dung hợp các đặc trưng với nhau là phép nối13 theo phương sâu.
Để giải quyết bài tốn nối 2 đặc trưng có độ phân giải khác nhau, nhóm tác giả đã sử dụng phép nội suy14 để đưa các đặc trưng có độ phân giải thấp, kích thước nhỏ về cùng kích thước với các đặc trưng có kích thước lớn. Khái qt về ý tưởng đề xuất cho bộ rút trích đặc trưng đa phân giải được thể hiện ở Hình [15].
Như ta thấy trên Hình [15], có 3 bộ đặc trưng được bộ rút trích đặc trưng trả về đầu ra, với tên gọi x1, x2, x3 với mỗi đặc trưng sẽ có độ phân giải và mức độ kết hợp giữa cục bộ và toàn cục giảm dần, với x3 gần như không mang thông tin biểu diễn đặc trưng ảnh có sự kết hợp và cục bộ.
11
Thuật ngữ tiếng Anh: Teacher forcing
12Thuật ngữ tiếng Anh: Receptive field
13
Thuật ngữ tiếng Anh: concatenation
Hình 15: Bộ rút trích đặc trưng đa phân giải được đề xuất bởi [10]. Ảnh được rút trích từ bàibáo gốc của các tác giả. báo gốc của các tác giả.
Mỗi mũi tên từ trên xuống chỉ thị cho việc rút trích đặc trưng trung gian từ một bước nhất định của mơ hình. Ở đây ta thấy có sự rút trích đặc trưng trung gian ở 3 mốc trong mơ hình x1, x2, x3 mà ta sẽ gọi tên lần lượt là 3b,4d và 5b mang ý nghĩa chỉ định thứ tự lớp trong toàn bộ mạng mà đặc trưng này được rút ra.
Hãy nhớ lại về InceptionNet[4], [5], mạng được cấu thành bởi việc xếp chồng các khối Inception lên với nhau. Ở InceptionNet, mạng được chia nhỏ thành 5 bậc với mỗi bậc sẽ một số khối Inception xếp chồng lên nhau. Để tiện trao đổi và thảo luận, các bậc được đặt tên theo số, với lớp càng gần đầu vào sô càng nhỏ, và mỗi khối Inception được đặt tên thứ tự theo bảng chữ cái, với lớp gần đầu vào nhất sẽ là a. Như vậy, đặc trưngx1 chính là đặc trưng đầu ra của block Inception thứ 2 của bậc thứ 3.
Hiểu rõ về quy cách gọi tên cũng như ý nghĩa của chúng, ta thống nhất sẽ gọi các biến thể của mạng rút trích đặc trưng đa phân giải và các biến thể của ý tưởng đề xuất ứng dụng chúng bằng các tên 3b, 4d và 5b.
Với ý tưởng về việc xây dựng bộ rút trích đặc trưng đa phân giải như đã trình bày (gọi tên là InceptionFusion và gọi tắt là IF), tác giả luận tham khảo và tiếp thu, qua
đó nghiên cứu về việc ứng dụng ý tưởng đó để phục vụ cho bài tốn nhận dạng biểu thức toán học viết tay. Với việc mạng rút trích đặc trưng đa phân giải có thể coi là một mạng rút trích đặc trưng độc lập, kèm theo lợi thế về cách thiết kế chương trình khung theo kiến trúc nền tảng, việc ứng dụng ý tưởng kết hợp với WAP hay MultiScale WAP trở nên dễ dạng hơn với việc chỉ thay thế mô-đun Encoder với biến thể hiện thực InceptionFusion.
Như vậy, việc kết hợp ý tưởng InceptionFusion vào WAP tạo ra WAP + IF với các biến thể 3b, 4d, 5b tương ứng với các biến thể của InceptionFusion mà ta đã đề cập từ trước.
Tương tự, kết hợp ý tưởng InceptionFusion và MultiScale WAP tạo ra MultiScale WAP + IF với các biến thể 5b+4d, 5b+3b và 4d+3b.
Như vậy, phương pháp đề xuất nghiên cứu, thử nghiệm và đánh giá cho luận văn này là nỗ lực cải tiến 2 cơng trình WAP[13] và MultiScale WAP[14] bằng cách kết hợp đặc trưng
Chương 4 Kết quả thực nghiệm1 Dữ liệu 1 Dữ liệu
Dữ liệu được sử dụng để thực hiện huấn luyện cũng như đánh giá các hệ thống, mơ hình là bộ dữ liệu được rút trích từ cuộc thi CROHME 2019. Dữ liệu được công bố và cho
phép tải về bởi ban tổ chức cuộc thi[23], [24].
Qua nhiều lần tổ chức thì tập dữ liệu CROHME cũng dần tăng trưởng và ở phiên bản 2019 tập dữ liệu được phân loại thành 5 tập con gắn liền với các giai đoạn phát triển là: Data2012, Data2013, Train2014, Test2014, Test2016. Bảng [3] cho ta thấy số lượng biểu thức ở mỗi tập dữ liệu con và việc tập dữ liệu sẽ được sử dụng vào mục đích huấn luyện (Train) hay đánh giá (Test) mơ hình.
Tập dữ liệu Số lượng biểu thức Phân loại dữ liệu
Train2014 8834 Train
Test2013 671 Train
Test2012 488 Train
Test2016 1147 Test
Test2014 984 Test
Bảng 3: Các tập dữ liệu con của CROHME 2019, số lượng biểu thức và phân loại của chúng. Dữ liệu CROHME được cung cấp ở dạng các file XML khai báo tọa độ tập hợp các điểm của mỗi nét (stroke) trong biểu thức, tổ hợp các nét sẽ tạo thành các ký tự trong biểu thức. Mỗi biểu thức trong tập dữ liệu sẽ được biểu diễn bởi 1 file XML tương ứng.
Tuy trong dữ liệu được cung cấp có trường giá trị nhãn của biểu thức nhưng việc khảo sát và nghiên cứu tập dữ liệu cho thấy nhãn biểu thức được cung cấp còn nhiều giá trị nhiễu mà đặc trưng là các định danh LATEXnhằm hỗ trợ việc định dạng font chữ (ví dụ như ‘mathrm‘). Do vậy đối với dữ liệu sử dụng cho đề tài thì ta sẽ tiến hành việc xử lý và chuẩn hóa nhãn dữ liệu, cụ thể là ta sẽ rút trích nhãn và tái dựng lại nhãn của biểu thức từ cây cú pháp biểu thức. Bên cạnh đó ta cũng giớn hạn được tập các ký tự xuất hiện trong nhãn (Xem chi tiết ở Phụ lục 3).
Ở phiên bản 2019, ban tổ chức đã định nghĩa chuẩn định dạng ảnh đầu vào cho bài toán cũng như hướng dẫn trực quan hóa dữ liệu nét thành dữ liệu ảnh. Mỗi biểu thức sẽ được trực quan hóa thành ảnh trắng đen với kích thước 310×310. Hình [16] trực quan
hóa một số ảnh ví dụ cho tập dữ liệu. Vì vậy dữ liệu ảnh đầu vào cho mỗi hệ thống, mơ hình được thử nghiệm đều sẽ được cố định về kích thước 310×310, từ đó bỏ qua yếu tố
sử dụng ảnh đa kích thước làm dữ liệu đầu vào ở một số cơng trình[13], [14].
Để phục vụ việc huấn luyện và tối ưu siêu tham số thì tập dữ liệu huấn luyện được chia thành tập TrainSubset và tập Valid theo tỷ lệ 80−20.
Hình 16: Một số ảnh trích xuất từ tập dữ liệu CROHME 20192 Môi trường 2 Môi trường
Tất cả thí nghiệm trong luận văn này được thực hiện trên máy chủ có 1 bộ xử lý đồ họa
GTX 1080Ti phiên bản 12GB.
Toàn bộ code cho luận văn này đều được hiện thực thông qua ngôn ngữ Pythonphiên bản 3.7 với sự hỗ trợ của các gói thư viện như liệt kê ở Bảng [4]
Tên gói thư viện Phiên bản numpy 1.20.3 pandas 1.2.5 Pillow 8.3.1 kornia 0.5.11 matplotlib 3.4.3 scikit-learn 0.24.2 scikit-image 0.19.2 scipy 1.7.1 pytorch 1.9.1 mlflow 1.22.0
Bảng 4: Các gói thư viện và phiên bản tương ứng. 3 Độ đo
Các hệ thống được nghiên cứu, thử nghiệm sẽ được đánh giá dựa trên chỉ số Tỷ lệ biểu thức đúng (ExpRate)15. Đây chính là độ đo được ban tổ chức của CROHME 2019 sử dụng làm độ đo đánh giá chính cho các bài dự thi.
Độ đo được định nghĩa bằng tổng số lượng những biểu thức được nhận dạng đúng hoàn tồn chia chotổng số lượng biểu thức có trong tập dữ liệu đánh giá.
ExpRate = Số biểu thức nhận dạng đúng HOÀN TOÀN
Số biểu thức trong tập dữ liệu (1) 4 Kết quả
Ở đề mục này ta sẽ trình bày và thảo luận về những kết quả thí nghiệm thu được với những chủ đề chính theo thứ tự như sau:
• Tái lập các cơng trình tham khảoTrình bày kết quả thí nghiệm thu được khi ta tự hiện thực hóa tồn bộ đề xuất ở các cơng trình tham khảo[13], [14].
• Phương pháp đề xuất Trình bày kết quả thí nghiệm với phương pháp đã được đề xuất ở Chương 3 Mục 3.
• Và cuối cùng là đặt phương pháp đề xuất vào ngữ cảnh so sánh hiệu suất với các cơng trình tham khảo ở So sánh với các cơng trình tham khảo.
Mơ hình đại diện để báo cáo kết quả cho mỗi cơng trình, hướng tiếp cận sẽ được lựa chọn dựa trên kết quả đánh giá tốt nhất với độ đo ExpRate trên tập Valid.
15
4.1 Tái lập các cơng trình tham khảo
Cơng trình CROHME 2019 CROHME 2014 CROHME 2016
MultiScale WAP 65.73 41.36 41.76
WAP 53.93 20.83 20.58
Bảng 5: Kết quả huấn luyện, đánh giá từ việc tái lập các cơng trình tham khảo[13], [14]. Bảng [5] trình bày đánh giá dựa theo độ đo ExpRate của 2 cơng trình WAP[13] và MultiScale WAP[14] được tái lập trên các tập dữ liệu Valid (CROHME 2019) và
Test (CROHME 2014, CROHME 2016). Dựa vào các chỉ số đánh giá ta có thể thấy
rõ ràng được sự cải thiện về mặt điểm số rõ rệt giữa 2 cơng trình. Mặc dù khoảng cách điểm số trên tập Valid giữa 2 cơng trình chỉ khoảng10điểm ExpRate nhưng khi đánh giá kết quả trên tập Valid thì khoảng cách ấy tăng lên thành 20 điểm cách biệt. Qua đó cho ta thấy được việc thêm cơ chế tập trung đa phân giải16 đã tạo nên hiệu quả lớn, cải thiện hiệu năng của mơ hình.
Bên cạnh đó, một điểm khác ta có thể nhận thấy ở đây chính là việc điểm số chênh lệch giữa việc đánh giá trên tập Valid và tập Test là rất lớn, khoảng 24điểm ở MultiScale WAP và 33điểm ở WAP. Điều này cho thấy có một sự khác nhau lớn giữa phân phối của 2 tập dữ liệu. Sự khác biệt này cũng dễ hiểu vì CROHME là một cuộc thi về Khoa học Dữ liệu và cũng như các cuộc thi khác, để tăng tính cạnh tranh và độ khó cho cuộc thi, các nhà tổ chức thường tạo ra sự khác biệt này. Vấn đề này nên được nghiên cứu một cách chi tiết như một đề tài riêng lẻ để đánh giá mức độ khác nhau giữa 2 tập dữ liệu cũng như đánh giá việc chia dữ liệu thành các tập Train-Valid-Test.
CROHME 2014 CROHME 2016
Cơng trình Tái lập Cơng bố Tái lập Công bố MultiScale WAP 41.36 52.80 41.76 50.10
WAP 20.83 46.55 20.58 44.55
Bảng 6:Kết quả đánh giá các cơng trình tham khảo[13], [14] được tái lập so với kết quả đã được công bố ở bài báo gốc.
Bảng [6] đặt kết quả tái lập được vào trong ngữ cảnh so sánh với những công bố ở các paper gốc[13], [14] trên các tập dữ liệu test CROHME 2014 và CROHME 2016. Trong bảng, đánh giá cho mỗi cơng trình được thể hiện ở từng hàng, với mỗi cặp cột thể hiện đánh giá cho mỗi tập dữ liệu riêng biệt lần lượt làCROHME 2014vàCROHME 2016.
Hai tập dữ liệu này cũng là những tập dữ liệu được sử dụng cho việc đánh giá ở paper gốc của mỗi cơng trình. Mỗi cặp cột sẽ gồm cột "Tái lập" cho biết đánh giá mơ hình tái lập lại cơng trình và cột"Cơng bố" là điểm số được công bố ở paper gốc.