8 Tổng kết
2.13 Biểu diễn đồ thị bằng danh sách kề Nguồn [15]
2.1.8.2 Mạng nơ-ron tích chập trên đồ thị
Ngày nay, mạng nơ-ron tích chập trên đồ thị đã và đang được phát triển rất mạnh mẽ và được ứng dụng nhiều trong các bài toán thực tế như trong Phân tích mạng xã hội, Hệ thống gợi ý,... Mạng nơ-ron tích chập trên đồ thị đã chứng minh được vị thế của mình với việc diễn giải dữ liệu trực tiếp trên đồ thị. Trong khi các mạng khác như Mạng nơ-ron nhân tạo, Mạng nơ-ron tích chập hay Mạng rơ-ron hồi quy không thể trích xuất trực tiếp thông tin từ dữ liệu không có cấu trúc như trên đồ thị.
Mạng nơ-ron tích chập trên đồ thị là một mạng nơ-ron có thể trích xuất được những sự liên kết hay phụ thuộc của đồ thị. Hiện nay, mạng nơ-ron tích chập trên đồ thị đang tồn tại hai hướng tiếp cận chính là Mạng nơ-ron tích chập đồ thị trên miền tần số (Spectral-based GCN) và Mạng nơ-ron tích chập đồ thị trên miền không gian (Spatial-based GCN). Mạng nơ-ron tích chập đồ thị trên miền tần số định nghĩa các phép tích chập dựa trên lý thuyết về quang phổ. Trong khi,
Mạng nơ-ron tích chập đồ thị trên miền không gian lại xây dựng phép tích chập bằng cách tổng hợp thông tin từ các đỉnh láng giềng. Một nhược điểm lớn nhất của cách tiếp cận dựa trên quang phổ (Spectral-based approach) là yêu cầu xử lý đồng thời cả đồ thị, điều này gây nhiều khó khăn với những đồ thị có kích thước lớn. Ngược lại, tiếp cận dựa trên không gian (Spatial-based approach) thực hiện phép tích chập trực tiếp trên đồ thị bằng cách tổng hợp thông tin từ các đỉnh láng giềng, cơ chế này giúp cho mô hình có thể thực hiện tính toán trên từng vùng nhỏ thay vì cả một đồ thị.
Mạng tích chập đồ thị trên miền tần số
Quang phổ nghe trông có vẻ phức tạp, nhưng nó đơn giản là một phép phân rã (decomposing) một tín hiệu (signal) thành nhiều thành phần. Các thành phần này thường trực giao, tức là độc lập tuyến tính với nhau. Trong mạng nơ-ron tích chập đồ thị trên miền tần số, quang phổ được ngầm định như một phép phân rã trị riêng (eigen-decomposition) của một đồ thị Laplacian (graph Laplacian). Nói một cách dễ hiểu, đồ thị Laplacian được xem như một ma trận liền kề được chuẩn hóa (normalize) một cách đặc biệt, trong khi phép phân rã trị riêng là một cách để tìm các thành phần trực giao tạo nên đồ thị. Để thực hiện các phép tính toán trong miền tần số (frequence), đầu tiên đồ thị phải được chuyển từ miền không gian sang miền tần số. Với xử lý ảnh thông thường, để chuyển một tín hiệu từ miền không gian sang tần số, chúng ta chỉ cần nhân nó với một ma trận Discrete Fourier Transform (DFT). Thay vào đó, đối với đồ thị, nó được biến đổi thông qua công thức:
L=VΛVT (2.11)
Trong đóV là ma trận vector riêng,Λlà ma trận trị riêng vàLlà đồ thị Laplacian.
Phép tích chập quang thổ được định nghĩa thông qua công thức:
X(l+1) =V(VTX(l)◦VTW(l)) (2.12)
Trong đóXkvàW(l)lần lượt là ma trận đặc trưng đỉnh (node feature) và trọng số tại lớp thứk,
vàV là ma trận trị riêng,◦là phép nhân vô hướng.
Mạng tích chập đồ thị trên miền không gian
Mạng tích chập đồ thị không gian thực hiện phép tích chập bằng cách tổng hợp thông từ các láng giềng thông qua cơ chế truyền thông điệp (message passing) và tổng hợp thông tin (aggregation).
Truyền thông điệp hoạt động bằng cách truyền các thông tin từ các đỉnh lân cận đến đỉnh trung tâm thông qua cạnh liên kết giữa hai đỉnh. Sau đó, các thông tin này được tổng hợp vào đỉnh trung tâm thông qua một hàm tổng hợp (aggregation function). Một cách toán học, cơ chế này được thể hiện bởi công thức:
h(k)
v =Uk(h(vk−1), X
u∈N(v)
Mk(h(vk−1), h(uk−1), xe
vu)) (2.13)
Trong đó,h(iy) là đặc trưng của đỉnhitại lớp thứy,N(v)là tập các đỉnh lân cận của đỉnh
trung tâm,xe
vulà đặc trưng cạnh nối giữa hai đỉnh vvà u.Uk vàMklần lượt là các hàm có thể
được huấn luyện.
2.1.9 Các hiện tượng thường gặp trong học máy, học sâu2.1.9.1 Hiện tượng Overfitting 2.1.9.1 Hiện tượng Overfitting
Trong học máy, một mô hình tốt là một mô hình có tính tổng quát, tức mô tả được đặc trưng, xu hướng của dữ liệu cả trong lẫn ngoài tập dữ liệu huấn luyện. Tuy nhiên trong quá trình huấn luyện mô hình, chúng ta quá mong muốn đạt được kết quả cao trong tập dữ liệu huấn luyện dễ dẫn đến việc xây dựng mô hình bị Overfitting.
Overfitting (Quá khớp) là một hiện tượng xảy ra trong quá trình huấn luyện một mô hình học máy, khi mà mô hình cố gắng mô tả tập dữ liệu huấn luyện (training data) hơn là trích xuất các đặc trưng từ chúng.
Về cơ bản, Overfitting xảy ra khi mô hình quá phức tạp để mô phỏng tập dữ liệu huấn luyện. Điều này đặc biệt xảy ra khi lượng dữ liệu training quá nhỏ trong khi độ phức tạp của mô hình quá cao. Trong mô hình mạng nơ-ron nhân tạo, độ phức tạp ở đây có thể được coi là số lượng lớp ẩn và số lượng nút bên trong từng lớp ẩn. Mạng quá "sâu", tức quá phức tạp trong khi tập dữ liệu huấn luyện nhỏ sẽ rất dễ dẫn đến Overfitting.
Việc quá khớp này có thể dẫn đến dự đoán nhầm nhiễu và chất lượng mô hình không còn tốt trên tập dữ liệu kiểm tra (test data) hoặc với dữ liệu mới (unseen data).
Để tránh hiện tượng Overfitting, có rất nhiều kỹ thuật được sử dụng, điển hình như [16]:
• Validation: Ngoài việc chia tập dữ liệu ban đầu thành tập huấn luyện và tập kiểm tra,
chúng ta chia một lượng dữ liệu tạo thành tập kiểm thử (validation data). Mục đích của tập kiểm thử chính là để đánh giá chất lượng của mô hình đối với dữ liệu ngoài tập huấn
luyện trong quá trình huấn luyện mô hình. Một khi chỉ số chất lượng này giảm, rất có thể mô hình đang dần bị Overfitting.
• Cross-validation: Là một cải tiến của validation với lượng dữ liệu trong tập kiểm thử là
nhỏ nhưng chất lượng mô hình được đánh giá trên nhiều tập kiểm thử khác nhau. Một cách thường đường sử dụng là chia tập huấn luyện ra k tập con không có phần tử chung, có kích thước gần bằng nhau. Tại mỗi lần kiểm thử , một trong số k tập con được lấy ra làm tập kiểm thử. Mô hình cuối được xác định dựa trên trung bình của các độ lỗi trên tập huấn luyện và tập kiểm thử.
• Dropout: Là một phương pháp tắt ngẫu nhiên các nút của các lớp ẩn trong mạng, tức cho
các nút đó giá trị không và tính toán như bình thường. Việc này không những giúp lượng tính toán giảm đi mà còn làm giảm việc Overfitting [17].
• l2 regularization: Hay còn gọi là Weight decay, là việc thêm vào hàm mất mát (loss
function) một số hạng dùng để đánh giá độ phức tạp của mô hình. Số hạng này càng lớn,
mô hình càng phức tạp. Số hạng này được tính chính bằngnorm 2của bộ trọng số, không
tính bias. Song song với việc tối ưu hàm mất mát, số hạng này cũng được tối ưu, giúp mô hình tránh bị Overfitting.
2.1.9.2 Hiện tượng Underfitting
Trái ngược với hiện tượng Overfitting là hiện tượng Underfitting, là khi mô hình xây dựng chưa có độ chính xác cao trong tập dữ liệu huấn luyện cũng như chưa thể tổng quát hóa với tổng thể dữ liệu. Khi hiện tượng Underfitting xảy ra, mô hình sẽ không phải là tốt với bất kì bộ dữ liệu nào trong bài toán đang xét.
Hiện tượng Underfitting chủ yếu xảy ra khi mô hình cố gắng tổng quát hóa các dữ liệu phức tạp bằng các mô hình học máy đơn giản. Ngoài ra, việc kết thúc sớm quá trình huấn luyện để tránh Overfitting, cũng sẽ dễ dẫn đến mô hình bị Underfitting.
Để tránh hiện tượng Underfitting, việc Tăng độ phức tạp của mô hình là điều tất yếu. Điển hình của việc này là tăng số lượng tham số của mô hình, hoặc thay đổi tính chất của mô hình từ tuyến tính sang phi tuyến. Song song với đó, việc điều chỉnh thời gian huấn luyện mô hình dựa trên các thông số, độ đo cũng rất quan trọng.
2.2 Các kiến thức cơ bản về phương pháp đánh giá2.2.1 Accuracy 2.2.1 Accuracy
Accuracy (độ chính xác) là phương pháp đánh giá cơ bản nhất và thường được sử dụng nhất. Cách đánh giá này được tính bằng tỉ lệ giữa tổng số dự đoán đúng trên tổng số điểm dữ liệu trong tập dữ liệu. Tỉ số này càng cao, thể hiện mô hình hoạt động càng tốt.
accuracy= Tổng số dự đoán đúng
Tổng số mẫu dữ liệu (2.14)
Ví dụ, trong tập kiểm thử có10mẫu dữ liệu. Khi qua mô hình dự đoán, kết quả trả về có8
mẫu đúng với nhãn, khi đó độ chính xác sẽ là0.8(8/10 = 0.8).
Tuy nhiên, phương pháp này chỉ cho chúng ta biết tổng số dự đoán đúng, mà không chỉ ra từng loại từng mẫu dữ liệu được dự đoán đúng hay sai như thế nào, tỉ lệ phân bố các mẫu dữ liệu vào từng loại ra sao. Điều này không tốt đối với dữ liệu mất cân bằng. Ví dụ, trong bài toán phát hiện giao dịch bất thường, ta có 100 mẫu dữ liệu của 2 lớp, gồm 99 mẫu thuộc lớp giao dịch bình thường, 1 mẫu thuộc lớp giao dịch bất thường. Mô hình dự đoán toàn bộ 100 mẫu thuộc lớp giao dịch bình thường. Khi đó độ chính xác đạt được là 0.99, một tỉ lệ rất cao nhưng trong bài toán này, hoàn toàn không có tác dụng.
2.2.2 Ma trận nhầm lẫn
Nhằm khắc phục được vấn đề của phương phápaccuracynói trên, một phương pháp đánh giá
mới được đề xuất nhằm đánh giá mô hình phân loại là Ma trận nhầm lẫn (confusion matrix). Phương pháp dùng bảng để mô tả hiệu suất của một mô hình phân loại trên tập dữ liệu đã biết kết quả đúng, giúp ta có cái nhìn trực quan về hiệu suất các mô hình.
Ma trận nhầm lẫn thể hiện rõ được từng điểm dữ liệu trong tập thực sự thuộc vào loại nào, được dự đoán rơi vào lớp nào. Cụ thể như Bảng (2.1):
Bảng 2.1: Ma trận nhầm lẫn (Confusion Matrix).
Total 100 Predicted: 0 Predicted: 1 Predicted: 2
Actual: 0 20 10 10
Actual: 1 10 20 0
Actual: 2 0 10 20
Ma trận bên trên chính là ma trận nhầm lẫn. Nó là một ma trận vuông có kích thước đúng
bằng số lượng lớp dữ liệu. Trong đó, hàng thứithể hiện tổng số điểm dữ liệuthực sựthuộc vào
lớpi, cột thứjthể hiện số lượng điểm dữ liệu đượcdự đoánthuộc về lớpj. Tổng của các phần
tử trong toàn ma trận chính là số mẫu dữ liệu. Các phần tử trên đường chéo chính là số điểm
được phân loại đúng của mỗi lớp. Từ đây, ta có thể tính đượcaccuracybằng cách lấy tổng các
phần tử trên đường chéo chính chia cho tổng các phần tử trong toàn ma trận.
2.2.3 Precision, Recall và F1-score
Độ chính xác (Precision) và Độ truy hồi (Recall) là phương pháp đánh giá hiệu quả mô hình phân lớp mà tập dữ liệu của các lớp chênh lệch nhau rất nhiều.
Cụ thể hơn, giả sử ta đang xét bài toán phân loại nhị phân gồm 2 lớp: ung thư (positive), không ung thư (negative). Khi đó:
• Precision được định nghĩa là tỉ lệ số điểm thực sự Positive trong số những điểm được
phân loại là Positive.
• Recall được định nghĩa là tỉ lệ số điểm được dự đoán đúng là Positive trong số những
điểm thực sự là Positive.
Bảng 2.2: Ma trận nhầm lẫn cho bài toán phân loại 2 lớp: Positive và Negative.
Predicted
Positive Negative
Actual Positive True Position (TP) False Negative (FN)
Negative False Positive (FP) True Negative (TN)
• Positive: Đối tượng được gán nhãn là Positive.
• Negative: Đối tượng được gán nhãn là Negative.
• True Positive (TP): Đối tượng thuộc lớp Positive được dự đoán đúng là Positive.
• False Negative (FN): Đối tượng thuộc lớp Positive được dự đoán sai là Negative.
• False Positive (FP) Đối tượng thuộc lớp Negative được dự đoán sai là Positive.
• True Negative (TN): Đối tượng thuộc lớp Negative được dự đoán đúng là Negative.
Khi đó, công thức tính Precision và Recall theo định nghĩa như trên được xác định là: P recision= TP
TP + FP Recall=
TP
TP + FN (2.15)
Precision cao đồng nghĩa với việc độ chính xác của các điểm thuộc lớp Positive tìm được là cao. Recall cao đồng nghĩa với việc tỉ lệ bỏ sót các điểm thực sự là Positive là thấp.
KhiP recision= 1, mọi điểm tìm được đều thực sự là Positive, tức không có điểm Negative
nào lẫn vào kết quả. Tuy nhiên,P recision= 1không đảm bảo mô hình đã tìm được tất cả các
điểm Positive. Nếu một mô hình chỉ tìm được đúng một điểm Positive mà nó chắc chắn nhất thì
ta không thể gọi nó là một mô hình tốt. Tương tự, khiRecall = 1, mọi điểm Positive đều được
tìm thấy. Tuy nhiên, đại lượng này lại không đo liệu có bao nhiêu điểm negative bị lẫn trong đó.
Nếu mô hình phân loại mọi điểm là positive thì chắc chắnRecall = 1, tuy nhiên dễ nhận ra đây
là một mô hình cực kì không tốt. Một mô hình tốt là một mô hình có sự hài hòa giữa 2 chỉ số này, và chúng phải cùng cao. Khi đó ta cần thêm một phương pháp đánh giá nữa đó là F1-score.
F1-score là hàm trung bình điều hòa của Precision và Recall, được tính bằng công thức: F1 = 2×precision×recall
precision+recall (2.16)
F1-score có giá trị nằm trong khoảng(0,1]. F1-score cao khi cả Precision và Recall đều cao.
Ngược lại, F1-score thấp khi ít nhất một trong hai phép đo Precision và Recall thấp. F1-score càng cao, bộ phân lớp càng tốt.
2.3 Công cụ và thư viện
2.3.1 Computer Vision Annotation Tool - CVAT
CVAT là một công cụ mã nguồn mở, online giúp gán nhãn dữ liệu liên quan đến ảnh và video. Một số tính năng của CVAT:
• Hỗ trợ gán nhãn trên ảnh và video.
• Hỗ trợ gán nhãn cho các bài toán object detection, object segmention,...
• Hỗ trợ Docker giúp tiện trong việc thiết lập và bảo trì.
• Hỗ trợ đa dạng cấu trúc (format) lưu trữ nhãn khác nhau như YOLO, CVAT, PASCAL,...
Trong phạm vi bài toán này, chúng tôi đã tận dụng CVAT để gán nhãn dữ liệu cho bài toán như sau:
• Phát hiện vùng văn bản: Gán hộp giới hạn (bounding box) bằng hình chữ nhật (rectangu-
lar) hoặc đa giác (polygon) cho các vùng văn bản.
• Nhận diện ký tự quang học: Được gán nhãn bằng cách tạo một thuộc tính nội dung cho
từng hộp giới hạn.
• Trích xuất thông tin: Bằng cách lựa chọn một trong các trường thông tin được cung cấp
sẵn để phân loại cho từng vùng văn bản thuộc trường thông tin tương ứng. Chi tiết được thể hiện trong Hình 2.14.
2.3.2 Pytorch
Pytorch là một thư viện (framework) mã nguồn mở cho deep learning dựa trên Python. Nó hỗ trợ các tính toán trên cả CPU và GPU, và hỗ trợ huấn luyện trên các hệ thống phân tán. Pytorch được thiết kế tập trung vào tính dễ sử dụng giúp người có kiến thức căn bản Python cũng có thể lập trình được giúp rút ngắn đáng kể thời gian hiện thực ý tưởng. Pytorch có khả năng lưu lại các lịch sử tính toán để xây dựng một sơ đồ tính toán giúp quá trình lan truyền ngược (backpropagation) được thực hiện một cách tiện lợi và nhanh chóng. Ngoài ra, Pytorch còn được hiện thực hoàn toàn bên dưới là ngôn ngữ C/C++ giúp các phép tính toán được xử lý nhanh hơn.