8 Tổng kết
6.5 Kiến trúc mô hình Multi-head GATs Nguồn [36]
lượng head chúng tôi sử dụng tại mỗi lớp cũng khác nhau. Điều này giúp cho mô hình học đa dạng và tập trung được vào các nút liên quan đến nó nhất.
6.3.4 Huấn luyện
Dữ liệu đầu vào sau khi thực hiện mô hình hóa thành đồ thị sẽ được lưu dưới dạng một tệp tin pickle. Điều này nhằm giảm thời gian huấn luyện.
Việc huấn luyện sẽ được thực hiện dựa trên hàm lỗi (loss function) CrossEntropy, bộ tối ưu (optimizer) Stochastic gradient descent (SGD) với tốc độ học (learning rate) 0.01, weight decay
10−4 và momentum 0.927.
Về môi trường huấn luyện, do mô hình tương đối nhẹ nên việc huấn luyện mô hình có thể được thực hiện dễ dàng trên CPU. Cụ thể, mô hình được huấn luyện trên máy tính có cấu hình như sau:
• OS: Windows 10 Home Single Language 64-bit (10.0, Build 19042).
• Intel(R) Core(TM) i3-5005U CPU @ 2.00GHz x 4 Cores.
• RAM: 8GB.
6.4 Xây dựng ứng dụng
Bên cạnh việc đề xuất và hiện thực 3 mô-đun chính cho hệ thống, chúng tôi cũng tiến hành xây dựng một ứng dụng web service dùng RESTful API, ngoài mục đích đề mô, chúng tôi mong muốn đưa công trình gần hơn với ứng dụng thực tiễn.
Về back-end, chúng tôi xây dựng dựa trên framework Django. Đây là một framework web bậc cao mã nguồn mở, được viết bằng ngôn ngữ Python. Django cho phép xây dụng các ứng dụng web service dựa trên giao thức HTTP dùng RESRful API một cách dễ dàng và nhanh chóng.
Về front-end, chúng tôi sử dụng thư viện ReactJS. Đây là thư viện mã nguồn mở được viết bằng ngôn ngữ JavaScript của Facebook. Mục đích của việc tạo ra ReactJS là để tạo ra những ứng dụng website hấp dẫn với tốc độ nhanh và hiệu quả cao với những mã nguồn tối thiểu. Và mục đích chủ chốt của ReactJS đó chính là mỗi website khi đã sử dụng ReactJS thì phải chạy thật mượt thật nhanh và có khả năng mở rộng cao và đơn giản thực hiện.
Ứng dụng của chúng tôi gồm có 3 Page chính, tương ứng với 3 mô-đun là:
• Text-Page: Tương ứng với mô-đun Phát hiện vùng văn bản, page này cho phép nhận vào
một bức ảnh chụp hoặc scan văn bản hành chính và trả về kết quả là các hộp giới hạn (bounding box) tương ứng với từng vùng văn bản. Từ kết quả này, người dùng có thể dùng làm đầu vào cho page sau.
• OCR-Page: Tương ứng với mô-đun Nhận diện ký tự quang học, page cho phép nhận vào
một bức ảnh chụp hoặc scan văn bản hành chính (có thể kèm theo kết quả của Text-Page) và trả về ký tự ngữ nghĩa nhận diện được tương ứng với từng vùng văn bản. Nếu đầu vào không kèm kết quả của Text-Page, hê thống sẽ tự động chạy lại quá trình Phát hiện vùng văn bản.
• IE-Page: Tương ứng với mô-đun Trích xuất thông tin, page nhận đầu vào là một bức ảnh
chụp hoặc scan văn bản hành chính và kết quả của 2 page trước bao gồm thông tin về vị trí (kết quả của Text-Page) và thông tin về ngữ nghĩa (kết quả của OCR-Page), hệ thống sẽ trả về nhãn (label) cho từng thực thể (vùng văn bản). Nếu đầu vào chỉ có ảnh, hệ thống sẽ tự động chạy lại 2 mô-đun trước.
Chương 7
Thí nghiệm và đánh giá
Trong chương này chúng tôi sẽ trình bày phương pháp đánh giá, kết quả thu được và đưa ra nhận xét cho từng mô-đun dựa trên các thí nghiệm đánh giá trên tập dữ liệu do chúng tôi thu thập.
7.1 Phương pháp đánh giá
Hệ thống của chúng tôi được xây dưng dựa trên ba mô-đun hoàn toàn khác nhau là Phát hiện vùng văn bản, Nhận diện ký tự quang học và Trích xuất thông tin. Mỗi mô-đun có cách thức hoạt động khác nhau cũng như kết quả đầu ra khác nhau, do đó cần có phương pháp đánh giá khác nhau. Vì vậy, trong chương này chúng tôi sẽ trình bày từng phương pháp đánh giá cho từng mô-đun cũng như cho toàn bộ hệ thống.
7.1.1 Phát hiện vùng văn bản
Trong mô-đun này, chúng tôi tiếp cận theo hướng phân đoạn hình ảnh văn bản, nên chúng tôi sẽ đánh giá kết quả thông qua độ đo Dice (Dice-score) và DiceLoss. Đây là một độ đo rất phổ biến trong các bài toán phân đoạn.
Độ đo Dice được định nghĩa như sau:
Dice= 2× |X∩Y|
|X|+|Y| (7.1)
Trong đó:
• |X∩Y|thể hiện vùng trùng lặp (Area of Overlap), là tổng của giá trị tập các điểm ảnh
thuộc cùng một lớp của hai tậpXvàY.
• |X| là tổng các giá trị điểm ảnh trong tậpX.
• |Y| là tổng các giá trị điểm ảnh trong tậpY.
Độ đo Dice có giá trị thuộc[0,1], trong đó1thể hiện sự trùng lắp hoàn toàn, ngược lại0thể
hiện sự không trùng lặp của các giá trị điểm ảnh trong 2 tập.
Độ đo DiceLoss được tính dựa trên Dice-score, công thức cụ thể như sau:
DiceLoss= 1−Dice (7.2)
7.1.2 Nhận diện ký tự quang học
Chỉ số thông thường để đánh giá kết quả của mô hình dự đoán là độ chính xác, trong đó chỉ số chỉ ra kết quả khớp (1) hoặc không khớp (0) giữa kết quả chuỗi dự đoán và chuỗi tham chiếu (ground truth). Tuy nhiên, chuỗi dự đoán thường khó khớp hoàn toàn với chuỗi tham chiếu, đặc biệt nếu nội dung trong hình là một câu văn dài. Do đó chỉ số này không cung cấp đủ chi tiết để đánh giá hiệu quả hoạt động của các mô hình Nhận diện ký tự quang học, cần một chỉ số khác đánh giá ở mức từng ký tự, độc lập với độ dài chuỗi, nội dung của chuỗi cho mô-đun này.
Một cách trực quan, ở mức ký tự, chúng ta thấy chuỗi dự đoán và chuỗi tham chiếu khác nhau xuất phát từ việc có ký tự bị thay thế, có ký tự bị chèn thêm vào và có ký tự bị xóa đi. Do đó chúng tôi đề xuất sử dụng độ đo Character Error Rate (CER - Tỉ lệ sai số ký tự) làm phương pháp đánh giá cho mô-đun Nhận diện ký tự quang học.
CER= Sc+Dc+Ic Nc
(7.3) Trong đó:
• Sc : Số lượng ký tự bị thay thế (Substitutions).
• Dc : Số lượng ký tự bị xóa (Deletions).
• Ic : Số lượng ký tự bị chèn thêm (Insertions).
Độ đo Character Error Rate (CER) thể hiện tỉ lệ số ký tự sai sót giữa chuỗi dự đoán và chuỗi tham chiếu. Độ đo này được phát triển dựa trên khái niệm khoảng cách Levenshtein, trong đó cần số lượng tối thiểu các biến đổi ở mức ký tự (thay thế, chèn, xóa) cần thiết để chuyển chuỗi dự đoán thành chuỗi tham chiếu.
7.1.3 Trích xuất thông tin
Trong mô-đun này, mô hình thực hiện phân lớp đỉnh. Vì vậy, mô hình có thể đánh giá dựa trên các phương pháp đánh giá cơ bản cho bài toán phân lớp trong học máy hay học sâu đã được
chúng tôi trình bày trong Phần 2.2. Cụ thể, mô hình sẽ dùngAccuracy, Precision, Recall, F1-
Scoređể đánh giá mô hình. Ngoài ra, mô hình tốt nhất được chọn dựa trên phép nhân có trọng
số tương ứng với các phương pháp đánh giá Accuracy, Precision, Recall, F1-Score là 0.15,
0.25, 0.25, 0.35.
7.1.4 Toàn bộ hệ thống
Hệ thống của chúng tôi được xây dựng nhằm mục đích trích xuất thông tin từ văn bản hành chính. Kết quả cuối cùng dựa vào kết quả của quá trình phân loại nút trong mô-đun Trích xuất thông tin. Do đó chúng tôi tiến hành đánh giá lại toàn bộ hệ thống dựa vào kết quả cuối cùng và tốt nhất của mô-đun Trích xuất thông tin. Chúng tôi cũng sẽ tiến hành đánh giá hệ thống
thông qua các phương pháp đã được sử dụng trong mô-đun Trích xuất thông tin làAccuracy,
Precision, Recall, F1-Score.
7.2 Kết quả thí nghiệm7.2.1 Phát hiện vùng văn bản 7.2.1 Phát hiện vùng văn bản
Trong mô-đun Phát hiện vùng văn bản này, chúng tôi đã đề xuất sử dụng mô hình Unet với mạng cơ sở (backbone) Resnet-34. Thí nghiệm được thực hiện dựa trên hàm lỗi CrossEntropy và DiceLoss. Kết quả của thí nghiệm được trình bày bên trong Bảng 7.1.
Qua kết quả của thí nghiệm này, chúng tôi nhận thấy rằng việc huấn luyện với hàm lỗi DiceLoss cho kết quả tốt hơn. Vì vậy, chúng tôi đề xuất sử dụng Unet với mạng cơ sơ Resnet-34 được huấn luyện với hàm lỗi DiceLoss để phát triển cho mô-đun này.
Bảng 7.1: Kết quả thí nghiệm Phát hiện vùng văn bản được đánh giá dựa trên DiceLoss.
Mô hình Hàm lỗi Tập huấn luyện Tập kiểm thử Tập kiểm tra
Res-Unet CrossEntropy 0.1187 0.1303 0.1258
Res-Unet DiceLoss 0.1160 0.1259 0.1231
Theo như quan sát, mô hình phát hiện vùng văn bản nhìn chung khá tốt. Mặc khác, một số trường hợp còn bị phát hiện nhầm với con dấu và vẫn còn hiện tượng bị gộp các vùng văn bản với nhau. Kết quả sau khi trực quan hóa được thể hiện tại Hình 7.1.
(a) Kết quả vùng văn bản được trực quan hóa. (b) Mặt nạ dự đoán.