Một số mô hình học máy trong mô tả hình Ảnh Một số mô hình học máy trong mô tả hình Ảnh Một số mô hình học máy trong mô tả hình Ảnh
Trang 1ĐẠI HỌC QUỐC GIA HÀ NỘITRƯỜNG ĐẠI HỌC KHOA HỌC TỰ NHIÊN
KHOA TOÁN - CƠ - TIN HỌC
ĐÀO THỊ THU HỒNG
MỘT SỐ MÔ HÌNH HỌC MÁY TRONG MÔ TẢ HÌNH ẢNH
LUẬN VĂN THẠC SĨ KHOA HỌC
Hà Nội - 2024
Trang 2ĐẠI HỌC QUỐC GIA HÀ NỘITRƯỜNG ĐẠI HỌC KHOA HỌC TỰ NHIÊN
ĐÀO THỊ THU HỒNG
MỘT SỐ MÔ HÌNH HỌC MÁY TRONG MÔ TẢ HÌNH ẢNH
LUẬN VĂN THẠC SĨ KHOA HỌCChuyên ngành: Khoa học Dữ liệuMã số: 8904468.01QTD
NGƯỜI HƯỚNG DẪN KHOA HỌC
TS Cao Văn Chung
Hà Nội - 2023
Trang 3LỜI CAM ĐOAN
Tôi xin cam đoan luận văn về đề tài “MỘT SỐ MÔ HÌNH HỌC MÁY TRONGMÔ TẢ HÌNH ẢNH” là công trình nghiên cứu cá nhân của tôi trong thời gian qua Tất cảcác tham chiếu đều đã được ghi nguồn gốc rõ ràng Mọi số liệu, phân tích sử dụng trongluận văn và kết quả nghiên cứu là do tôi tự tìm hiểu, thực nghiệm một cách khách quan,trung thực và chưa được công bố bởi ai khác và dưới bất kỳ hình thức nào Tôi xinchịu hoàn toàn trách nhiệm nếu có sự không trung thực trong thông tin sử dụng trongcông trình nghiên cứu này
Hà Nội, ngày tháng năm 2023
Học viên
Đào Thị Thu Hồng
Trang 4LỜI CẢM ƠN
Để hoàn thành luận văn này, em xin gửi lời cảm ơn sâu sắc tới các thầy cô khoaToán - Cơ - Tin học, Đại học Khoa học Tự nhiên, Đại học Quốc gia Hà Nội đã cung cấpcho em các kiến thức quý báu trong suốt thời gian em học tập tại Khoa
Đặc biệt, em xin bày tỏ lòng biết ơn chân thành tới thầy giáo TS Cao Văn Chung,người đã định hướng nghiên cứu và chỉ bảo tận tình giúp em hoàn thành luận văn này
Do giới hạn về thời gian và trang thiết bị phục vụ nghiên cứu cũng như kiến thứccòn hạn chế nên trong luận văn của em không tránh khỏi những hạn chế và thiếu sót Emrất mong nhận được ý kiến đóng góp của quý thầy cô và bạn đọc để luận văn của emđược hoàn thiện hơn nữa
Cuối cùng, em xin kính chúc thầy cô thật nhiều sức khỏe và luôn luôn giữ tâmhuyết để tiếp tục dẫn dắt nhiều thế hệ học viên
Em xin chân thành cảm ơn
Học viên
Đào Thị Thu Hồng
Trang 51.3.1 Bài toán trích xuất đặc trưng 10
1.3.2 Trích xuất đặc trưng dữ liệu ngôn ngữ - Mã hóa từ 10
1.4 Một số dạng mô hình mạng nơ-ron nhân tạo 11
1.4.1 Mạng nơ-ron nhân tạo truyền thống 11
1.4.2 Mạng nơ ron tích chập 13
1.4.3 RNN và LSTM 15
1.4.4 Cơ chế chú ý và mạng Transformer 17
1.4.5 Mô hình Transformer cho thị giác máy tính 21
1.5 Phát hiện đối tượng 25
1.6 Các thang đo đánh giá mô hình 29
Trang 63.1.1 Dữ liệu COCO 50
3.1.2 Dữ liệu giao thông tại Việt Nam 51
3.2 Kết quả thực nghiệm trên bộ dữ liệu COCO 55
Trang 7A Ảnh dự đoán của các mô hình77
A.1 Một số hình ảnh được sinh mô tả bằng các mô hình CNN-LSTM 77A.2 Hình ảnh được sinh mô tả bằng các mô hình sử dụng thông tin phát hiện
vật thể và cơ chế chú ý 81A.3 Ảnh được sinh mô tả bởi các mô hình Transformer 85A.4 Sinh mô tả cho ảnh giao thông Việt Nam 89
Trang 8Danh sách từ viết tắt
Kí hiệuNội dung đầy đủ trong tiếng AnhNội dung đầy đủ trong tiếng Việt
ANNArtificial Neural NetworkMạng nơ-ron nhân tạoAtt layerAttention layerTầng của mạng nơ-ron với cơ chế chú ýBLEUBiLingual Evaluation UnderstudyĐộ đo BLEU đánh giá văn bản dịchCNNConvolution Neural NetworkMạng nơ-ron tích chập
GRUGated Recurrent UnitMạng nơ-ron với nút hồi tiếp có cổngIOUIntersect over UnionDiện tích phần giao chia cho phần hợp của 2
khung chữ nhậtLSTMLong Short Term MemoryMạng nơ-ron bộ nhớ dài-ngắnMETEORMetric for Evaluation of Translation
with Explicit Ordering
Độ đo Meteor đánh giá văn bản dịch máy
MLPMulti Layer PerceptronMạng nơ-ron nhân tạo nhiều tầngNLPNatural Language ProcessingXử lý ngôn ngữ tự nhiên
NMSNon-max suppressionLoại bỏ các vùng không (đối tượng) không tối
ưuR-CNNRegion-based Convolution Neural Net-
work
Phương pháp phát hiện đối tượng R-CNN
RNNRecurrent Neural NetworkMạng nơ-ron hồi quy (tái phát)RPNRegion Proposal NetworkMạng đề xuất vùng chứa đối tượngSSDSingle Shot Multibox DetectorMô hình phát hiện đối tượng SSDYOLOYou Only Look Once ModelMô hình phát hiện đối tượng YOLOViTVisual Transformer [10]Mô hình Visual Transformer tham khảo từ
[10]Swin Trans-
former
Shifted windows TransformerMô hình Visual Transformer tham khảo từ
[20]
Trang 9Một số tên viết tắt các mô hình
Kí hiệu viết tắtMô hình sinh mô tả tương ứng
ResNet50-LSTMMô hình ghép kiến trúc Resnet50 cho phần mã hóa và LSTM cho phần giải mãInceptionV3-
Mô hình ghép kiến trúc Xception
Yolo4-Att-LSTMYOLOV4 (mã hóa) - LSTM (giải mã) có thêm tầng chú ýEffB0-Yolo4-Att-
tầng chú ýEffB0-TransMô hình ghép kiến trúc EfficientNetB0 (mã hóa) - Transformer (giải mã)EffB0-Yolo4-TransMô hình ghép kiến trúc EfficientNetB0 + YOLOV4 (mã hóa) - Transformer
(giải mã)Xcept-Yolo4-TransMô hình ghép kiến trúc Xception + YOLOV4 (mã hóa) - Transformer (giải mã)Yolo4-TransMô hình khai thác chỉ từ YOLO4 (mã hóa) - Transformer (giải mã)
ViT-TransMô hình ghép kiến trúc ViT (mã hóa) - Transformer (giải mã)Swin-TransMô hình ghép kiến trúc Swin Transformer (mã hóa) - Transformer (giải mã)
Trang 10Danh sách hình vẽ
1.1 Một số ví dụ về mô tả ảnh từ tập dữ liệu COCO [7] 7
1.2 Mô hình sinh mô tả ảnh với kiến trúc mã hóa (Encoder) - giải mã (Decoder) 81.3 Ảnh số 9
1.4 Kết nối trong mạng ANN 12
1.11 Hoạt động của Self-attention 17
1.12 Tính vector trọng số trong cơ chế chú ý 18
Trang 112.7 Kiến trúc mạng cơ sở của EfficientNetB0 [36] 39
2.8 Mô hình sinh mô tả ảnh kết hợp Xception-Yolo-LSTM 43
2.9 Kiến trúc YoloV4 và vị trí kết xuất đặc trưng từ mạng CNN xương sốngđể sử dụng cho mô hình sinh mô tả ảnh 44
2.10 Kết xuất đặc trưng ảnh từ Yolo4 46
2.11 Kiến trúc Transformer cho sinh mô tả ảnh 47
3.1 Một số mẫu dữ liệu COCO 51
3.2 Một số mẫu dữ liệu ảnh giao thông Việt Nam 52
3.3 Thống kê các thành phần tham gia giao thông và số lượng ảnh tương ứngtrong bộ ảnh giao thông Việt Nam 54
3.4 Biến thiên của hàm mất mát trong quá trình huấn luyện của nhóm môhình I qua 10 epoch 56
Trang 123.5 Biến thiên của hàm mất mát trong quá trình huấn luyện của nhóm môhình II qua 10 epoch 623.6 Các vật thể chính do Yolo4 phát hiện và câu mô tả hình ảnh được sinh ra 663.7 Biến thiên của hàm mất mát trong quá trình huấn luyện của nhóm mô
hình III qua 10 epoch 673.8 Điểm và số lượng tham số của các mô hình trong ba nhóm 68
Trang 13Danh sách bảng
3.1 So sánh bốn mô hình sinh mô tả ảnh thuộc nhóm CNN-LSTM 553.2 So sánh sáu mô hình mô tả ảnh khai thác thông tin phát hiện vật thể và
cơ chế chú ý 583.3 Chi tiết số lượng tham số của ba mô hình 2, 3, 4 nhóm II 603.4 Chi tiết số lượng tham số của Yolo-LSTM, ViT-LSTM và Swin-LSTM 603.5 So sánh kết quả sáu mô hình sinh mô tả ảnh dùng Transformer 633.6 Chi tiết số lượng tham số của mô hình Yolo4-Trans và Swin-Trans 653.7 Kết quả thực nghiệm trên tập dữ liệu tự xây dựng 69
Trang 14MỞ ĐẦU
Sinh mô tả hình ảnh (image description - image captioning), theo nghĩa trong lĩnhvực thị giác máy tính, là một vấn đề nhận được nhiều sự quan tâm nghiên cứu trong thờigian gần đây Như tên gọi, đây là việc tự động tạo một mô tả (description) dạng ngôn ngữtự nhiên cho hình ảnh (image) bằng hệ thống chương trình máy tính Trong nhiều trườnghợp, mô tả của nó thường được gói gọn trong một câu Có thể thấy, đây là một công việccần sự liên kết giữa lĩnh vực thị giác máy tính (computer vision - CV) và xử lý ngôn ngữtự nhiên (natural language processing - NLP)
Vấn đề sinh mô tả cho hình ảnh có nhiều ứng dụng trong các lĩnh vực khác nhau,trước hết do lượng dữ liệu dạng ảnh số được thu thập và lưu trữ ngày càng nhiều, và đượcsử dụng rộng rãi trong nhiều lĩnh vực khác nhau Nhu cầu quản lý, khai thác tri thức từlượng dữ liệu này thúc đẩy việc nghiên cứu các bài toán lớn trong thị giác máy tính, trongđó có việc tạo mô tả hình ảnh Có thể kể ra một vài ứng dụng cụ thể của vấn đề này nhưlập chỉ mục – quản lý hình ảnh theo nội dung; xây dựng hệ thống trợ lý ảo dựa trên dữliệu hình ảnh; tạo báo cáo tự động từ dữ liệu ảnh trong các lĩnh vực chuyên sâu (y tế, môitrường, kỹ thuật ); điều khiển phương tiện tự lái hay giúp đỡ người khiếm thị v.v
Từ tiềm năng ứng dụng rộng rãi của vấn đề này, cũng như nhu cầu khai thác trithức của lượng dữ liệu ảnh khổng lồ, việc cố gắng để máy tính bắt chước khả năng diễngiải thế giới hình ảnh của con người đã là một mục tiêu lâu dài của các nhà nghiên cứutrong lĩnh vực trí tuệ nhân tạo Tuy nhiên, việc sinh mô tả hình ảnh không chỉ yêu cầumức độ hiểu biết cao về nội dung ngữ nghĩa của hình ảnh mà còn cần diễn đạt thông tin
Trang 15giống như con người Việc xác định sự hiện diện, thuộc tính và mối quan hệ của các đốitượng trong một hình ảnh không phải là dễ dàng Tổ chức một câu để mô tả thông tinnhư vậy làm cho nhiệm vụ này thậm chí còn khó khăn hơn Để đạt được mục tiêu này,nhiều nghiên cứu đã được thực hiện từ khá sớm và nhiều cách tiếp cận khác nhau đã đượcđề xuất.
Từ những năm 2000, một số cách tiếp cận để giải quyết bài toán này, bằng việcđưa ra những hạn chế về khuôn mẫu nội dung hình ảnh [3, 25]; hướng tiếp cận dựa trêntruy xuất (retrieval based - [2, 19]) và dựa trên khuôn mẫu (template based - [41, 32,40])
Tuy nhiên tất cả những hướng tiếp cận này đều cho kết quả rất hạn chế và vấn đềmô tả ảnh chỉ thực sự có những bước đột phá khi các mạng học sâu (mạng nơ-ron nhântạo) ra đời và được ứng dụng rộng rãi Như đã nói ở trên, vấn đề sinh mô tả cho hình ảnhcần sự kết hợp của hai lĩnh vực là thị giác máy tính và xử lý ngôn ngữ Chính vì thế mộtcách tự nhiên, nhiều tác giả đã tiếp cận vấn đề theo hướng kết hợp các mô hình học sâutrích xuất đặc trưng của hình ảnh như mạng nơ-ron tích chập (CNN) với các mô hình xửlý ngôn ngữ để kết xuất nội dung mô tả [29, 16, 6] Từ giữa thập niên 2010, với cảm hứngbởi sự thành công của các mô hình học sâu áp dụng cho bài toán dịch máy (translationmachine), nhiều nhà nghiên cứu đã tiếp cận vấn đề mô tả hình ảnh như một dạng dịchmáy, mà trong đó chúng ta cần “dịch” từ “ngôn ngữ hình ảnh” sang ngôn ngữ tự nhiên.Cũng từ điều này, kiểu kiến trúc mã hóa – giải mã (encoder-decoder) được sử dụng để xửlý các bài toán dạng từ chuỗi sang chuỗi (sequence – to – sequence), đã được áp dụng đểgiải quyết vấn đề sinh mô tả cho hình ảnh [18, 27]
Thú vị là, hướng tiếp cận kiểu mã hóa – giải mã đã trở thành chủ đạo trong cácnghiên cứu khoảng trên năm năm trở lại đây đối với bài toán mô tả hình ảnh [18, 21, 22,28] Trong giai đoạn gần đây, hầu hết các nghiên cứu giải quyết vấn đề này đều thực hiệncác thay thế khác nhau cho phần mã hóa với các kiến trúc học sâu sử dụng cho lĩnh vựcthị giác máy tính, và tương tự với phần giải mã, sử dụng các mô hình xử lý ngôn ngữ tựnhiên khác nhau
Nói riêng phần giải mã (decoder), thừa hưởng từ những tiến bộ của các nghiêncứu đối với bài toán xử lý ngôn ngữ, các mô hình dạng mạng nơ-ron tái phát (RNN), sau
Trang 16đó là các mạng bộ nhớ dài ngắn (LSTM) đã sớm được áp dụng cho phần giải mã [4, 16,38] Khi cơ chế chú ý (Attention) được đề xuất cho bài toán dịch máy, các nghiên cứu vềvấn đề sinh mô tả ảnh cũng đã cố gắng áp dụng cơ chế này cho phần giải mã dưới dạngcác tầng độc lập (attention layers - [34, 39]) Đặc biệt, khi các mô hình dạng transformerra đời, phần giải mã của các phương pháp sinh mô tả ảnh theo hướng mã hóa – giải mãđã đạt những tiến bộ rõ rệt.
Tuy nhiên, nhiều nghiên cứu cũng như kết quả thực nghiệm đã chỉ ra rằng, phầngiải mã chỉ đạt hiệu quả cao khi thông tin được gửi từ phần mã hóa là đầy đủ và tươngthích [22, 15] Để xây dựng phần mã hóa, rất nhiều hướng tiếp cận khác nhau đã đượcnghiên cứu và thử nghiệm Trước hết ta có thể thấy rằng, nhiệm vụ của phần mã hóa làtạo ra một biểu diễn số của nội dung hình ảnh, thường được gọi là vec-tơ nội dung, vec-tơngữ cảnh (context vector) gửi sang phần giải mã Biểu diễn này cần chứa được nhiềuthông tin nhất có thể từ nội dung hình ảnh Trong khoảng thời gian đầu của giai đoạn ứngdụng các mạng học sâu vào kiến trúc mã hóa – giải mã giải quyết vấn đề sinh mô tả ảnh,các mạng CNN đã được sử dụng cho phần mã hóa dựa trên việc các mạng này đã đượcsử dụng để trích xuất đặc trưng, là biểu diễn số của các nội dung trong ảnh như loại đốitượng, độ tin cậy của đối tượng đó Do đó các nghiên cứu giai đoạn này đơn giản lấyvec-tơ đặc trưng trích xuất từ ảnh qua một mạng CNN và coi đó như là vec-tơ nội dungđể gửi sang phần mã hóa Cùng với sự ra đời và sự tiến bộ về hiệu quả của các mô hìnhCNN, nhiều kiến trúc CNN đã được áp dụng cho phần mã hóa [15] Nói chung, tiếp cậntheo hướng này đạt những kết quả nhất định nhưng cũng có những hạn chế không thểvượt qua, đó là các câu mô tả bên cạnh chỉ ra các đối tượng thì còn cần có thông tin vềsự liên hệ giữa chúng, nhưng điều này khó có thể cung cấp bởi các mạng CNN vì đầu racủa các mạng này thường chỉ chứa thông tin về phân loại đối tượng cũng như xác suấtcủa chúng
Cũng trong khoảng thời gian này, một bài toán quan trọng khác của thị giác máytính là vấn đề phát hiện đối tượng (object detection) đã đạt được nhiều tiến bộ đáng kể.Bài toán phát hiện đối tượng không chỉ đưa ra các đối tượng trong hình ảnh, mà còn chỉra vị trí của chúng [43, 1] Để làm được điều này, các phương pháp phát hiện đối tượngcó thể chia thành hai phần, phần thứ nhất là bài toán phân lớp các đối tượng trong ảnh,phần này có thể xử lý bằng các mạng tích chập (CNN) Phần thứ hai là bài toán xác định
Trang 17vị trí Tùy theo cách thực hiện hai bài toán này, các phương pháp phát hiện đối tượngđược chia thành nhóm một giai đoạn (one stage) và nhóm hai giai đoạn (two stages) (xemthêm [43] và các tham chiếu trong đó) Với nhóm thứ nhất, giai đoạn tìm các vùng có khảnăng chứa đối tượng và giai đoạn nhận dạng các đối tượng trong những vùng đề xuất đólà hai giai đoạn tách rời, thực hiện bởi những công cụ khác nhau Trong lúc đó ở nhómthứ hai, các công việc nói trên được thực hiện đồng thời nhờ phương pháp chia lưới trênảnh đầu vào.
Rõ ràng, nếu lấy được tất cả thông tin đầu ra của mô hình phát hiện đối tượng đưavề một biểu diễn số, thì nội dung trong đó sẽ phong phú hơn nhiều so với chỉ dùng đặctrưng trích xuất qua CNN Một cách tự nhiên, một số nghiên cứu đã cố gắng sử dụng cácmô hình phát hiện đối tượng như là phần mã hóa cho các mô hình sinh mô tả ảnh theokiểu mã hóa – giải mã [9, 23, 42] Tiêu biểu cho hướng này có thể kể đến công bố [23],trong đó tác giả đã kết hợp thông tin trích xuất từ một mạng CNN, kết hợp với thông tintừ mô hình phát hiện đối tượng Yolo như là thông tin nội dung (context vector) để gửisang phần giải mã (sử dụng LSTM và cơ chế chú ý như tầng độc lập) Thực nghiệm chothấy hướng tiếp cận này cho kết quả vượt trội so với các mô hình chỉ sử dụng mạng CNN,khi kết hợp với cùng kiến trúc giải mã Có một điểm đáng chú ý ở đây là, mặc dù bảnthân phần phát hiện đối tượng đã sử dụng các mạng CNN, nhưng các mô hình dạng nàyvẫn cần kết hợp thông tin với một nhánh CNN khác Có thể giải thích một cách định tínhlà các mô hình phát hiện đối tượng được áp dụng ở đây chỉ nhằm vào một số đối tượngchính, do đó nhiều thông tin từ các mạng tích chập xương sống đã bị bỏ qua Tuy nhiênviệc phải sử dụng thêm một mạng CNN để có thông tin bổ sung vẫn là một hạn chế lớncủa hướng tiếp cận này
Một sự kiện khác xảy ra trong thời gian này cũng làm cho hướng tiếp cận khaithác thông tin từ các phương pháp phát hiện đối tượng không có quá nhiều nghiên cứu,đó là sự ra đời của các mô hình dạng transformer trong lĩnh vực thị giác máy tính Nhưđã nói ở trên, sự ra đời của mô hình transformer đã đem lại bước tiến bộ vượt bậc cho cácmô hình xử lý ngôn ngữ nói chung và mô hình dịch máy nói riêng Điều này trở thành sựcổ vũ cho nhiều nghiên cứu hướng vào việc tìm một phương pháp tương tự transformercho các vấn đề trong xử lý hình ảnh, thị giác máy tính Các ý tưởng đầu tiên sử dụng việckhai thác các bản đồ đặc trưng (feature maps) ở đầu ra của mạng CNN, sau đó áp dụng
Trang 18các cơ chế chú ý của transformer như multi head self attention lên các đặc trưng này [13,37] Các nghiên cứu này đã cho thấy những hiệu quả nhất định, nhưng nó vẫn phải dựatrên một kiến trúc CNN nào đó Đến tận 2021, trong [10], các tác giả mới đề xuất mộtmô hình thực sự áp dụng dạng transformer cho thị giác máy tính, trong đó có thể bỏ quacác kiến trúc dạng như CNN Trong nghiên cứu này, các tác giả đã chia ảnh thành cáckhối cùng kích thước, sau đó xử lý các khối này giống như là các đơn nguyên trong ngônngữ tự nhiên (token) bằng mô hình transformer Đề xuất này đã thực sự tạo ra bước độtphá trong vận dụng transformer vào các vấn đề thị giác máy và cho thấy tính hiệu quảcủa nó.
Tuy nhiên, hạn chế của phương pháp này là ở chỗ, khác với ngôn ngữ tự nhiên,nơi mà các đơn nguyên (token) có vai trò như nhau và có thể biểu diễn dễ dàng bởi cácvec-tơ số kích thước giống nhau, thì các thành phần trong ảnh có thể có kích thước rấtkhác nhau Ví dụ, cùng một loại đối tượng thì do vị trí xa hay gần, do ở điểm sáng hay tốicó thể có hình thái và kích thước khác xa nhau Điều này dẫn đến cơ chế chia ảnh thànhkhối cùng kích thước là không phù hợp Để cải thiện điều này, mô hình swin transformerđã ra đời, trong đó ý tưởng chính là sẽ chia ảnh theo nhiều độ phân giải khác nhau [20].Sau đó sử dụng cơ chế cửa sổ trượt để kết hợp các vùng lại và từ đó các đơn nguyên đượcđưa vào phần transformer sẽ đại diện cho các vùng có kích thước khác nhau Cải tiến nàyđã đem lại hiệu quả hơn hẳn so với các mô hình đề xuất trong [10]
Ở đây có một đặc điểm mà nếu nhìn theo góc độ kỹ thuật, chúng ta sẽ thấy rằngcơ chế chia vùng trong [10] hay cửa sổ trượt và chia nhiều độ phân giải như trong [20],là rất giống với cơ chế chọn vùng chứa đối tượng của các mô hình phát đối tượng dạngmột giai đoạn (one stage) như Yolo hay SSD Cũng vì điều này, việc huấn luyện các môhình transformer như trong [10] hay [20] là khá phức tạp và số tham số cũng như yêu cầukhối lượng tính toán lớn, đòi hỏi cấu hình thiết bị khá mạnh khi cài đặt và thực thi Chínhtừ những yêu cầu quá cao về cấu hình hệ thống và khối lượng tính toán như vậy, khi sửdụng các mô hình trong [10] hay [20] như là phần mã hóa cho các mô hình sinh mô tảảnh sẽ gặp nhiều khó khăn
Bên cạnh đó, nhiều lĩnh vực ứng dụng của vấn đề sinh mô tả ảnh lại đòi hỏi thờigian thực hiện nhanh, thậm chí tiệm cận thời gian thực, trong lúc đó cấu hình hệ thốnglại hạn chế, thậm chí cho phép nhúng trên thiết bị Điều này làm cho việc áp dụng các
Trang 19mô hình transformer quá lớn như trong [10] hay [20] lại càng khó hơn.
Từ tính thực tiễn, ý nghĩa về mặt khoa học cũng như sự thú vị của bài toán tạo môtả cho ảnh, luận văn này đã chọn đề tài nghiên cứu "Một số mô hình học máy trong mô tảhình ảnh" Nội dung chính của luận văn tập trung nghiên cứu một số mô hình học sâu tạomô tả bằng tiếng Anh cho ảnh số ở đầu vào
Từ gợi ý rằng các mô hình transformer cho thị giác máy thực hiện khá gần với cácmô hình phát hiện đối tượng, luận văn nghiên cứu và xây dựng một bộ mã hóa dựa trênchỉ một mô hình phát hiện đối tượng kết hợp với một số chỉ số đánh giá để tạo ra thôngtin nội dung cho phần giải mã Đây cũng là kết quả chính của luận văn này
Trong đề tài này, chúng ta tiếp cận bài toán sinh mô tả ảnh từ góc độ thị giác máytính, nên phần giải mã - phần gắn liền với xử lý ngôn ngữ tự nhiên - sẽ không được tìmhiểu sâu mà chỉ dừng lại ở việc thay thế các phương pháp xử lý ngôn ngữ đã có khác nhauđể tìm mô hình tốt nhất qua thực nghiệm
Ngoài phần mở đầu và kết luận, luận văn được chia thành ba chương nội dungcùng một phụ lục Chương 1 trình bày kiến thức cơ sở về các dạng mạng học sâu, về bàitoán thị giác máy liên quan cũng như các độ đo đánh giá kết quả ở phần ngôn ngữ
Chương 2 của luận văn giới thiệu chi tiết một số mô hình cụ thể giải quyết bàitoán sinh mô tả ảnh đại diện cho các hướng tiếp cận khác nhau đã được nghiên cứu Cácphân tích đánh giá định tính chi tiết cũng được trình bày trong chương này
Các thực nghiệm, so sánh kết quả và đánh giá dựa trên kết quả số nhằm xác minhnhững nhận xét về các mô hình trong Chương 2 sẽ được đưa ra trong Chương 3
Ngoài việc sử dụng tập dữ liệu ảnh công khai đa lĩnh vực, trong luận văn cũnggiới thiệu một bộ dữ liệu bao gồm 3000 hình ảnh trong lĩnh vực giao thông và các câumô tả do tác giả tự xây dựng, nhằm tăng tính khách quan khi thực nghiệm các mô hình
Cuối luận văn là phần kết luận, phần tài liệu tham khảo và một số kết quả mìnhhọa được trình bày trong phần phụ lục
Mặc dù đã rất cố gắng nhưng do hạn chế về thời gian, về điều kiện thực nghiệm,về kiến thức nên luận văn sẽ còn rất nhiều thiếu sót Vì vậy tất cả ý kiến đóng góp đềuthực sự quý báu để nội dung của luận văn được hoàn chỉnh hơn
Trang 20Chương 1
KIẾN THỨC CHUẨN BỊ
1.1Mô tả hình ảnh và hướng tiếp cận Mã hóa-Giải mã
Như đã trình bày ở phần Mở đầu, việc sinh mô tả hình ảnh (Image Captioning) trongphạm vi luận văn này, là bài toán có đầu vào là 01 ảnh tĩnh, hai chiều, định dạng RGB,đầu ra là 01 câu trong ngôn ngữ tự nhiên, tóm tắt nội dung ảnh bằng tiếng Anh Nó đềcập đến những đối tượng chính cũng như bối cảnh của bức ảnh Ví dụ như sau:
A cat sitting on top of a car near bushes Three people are tasting and sampling
wines together.Hình 1.1: Một số ví dụ về mô tả ảnh từ tập dữ liệu COCO [7]Luận văn tập trung nghiên cứu các phương pháp sinh mô tả ảnh dựa trên họcsâu và tiếp cận theo hướng kiến trúc Mã hóa (Encode) - Giải mã (Decode) Theo hướng
Trang 21tiếp cận này, chúng ta xây dựng mô hình gồm hai phần chính:
Hình 1.2: Mô hình sinh mô tả ảnh với kiến trúc mã hóa (Encoder) - giải mã (Decoder)
• Mã hóa: ảnh đầu vào được chuẩn hóa và đưa qua mô hình học sâu để kết xuất
vec-tơ ngữ cảnh (context vector) Các mô hình học sâu thường được sử dụng ở đâylà các mô hình phân loại sử dụng mạng tích chập (CNN), Visual Transformer, hoặcsự kết hợp của mạng tích chập (CNN) và một mô hình phát hiện đối tượng (ObjectDetection)
• Đầu ra của kiến trúc mã hóa nói trên có thể được đưa qua một mạng nơ-ron nhiềutầng (MLP) để tinh chỉnh dữ liệu và đưa về số chiều phù hợp
• Giải mã: là một mô hình xử lý ngôn ngữ như RNN, LSTM, Transformer – Ở khâu huấn luyện, phần giải mã nhận đầu vào là vec-tơ ngữ cảnh (context
vector) của ảnh và nội dung câu mẫu đã được mã hóa để học các tham số củamô hình
– Ở khâu dự đoán, phần giải mã nhận đầu vào là vec-tơ ngữ cảnh của ảnh và dự
đoán ra câu mô tả cho ảnh.Phần giải mã sẽ phải xử lý đầu vào và kết xuất đầu ra dạng ngôn ngữ (các câumẫu và câu dự đoán) Tuy nhiên các mô hình chỉ làm việc với các vec-tơ số Do đó cầnphương pháp chuyển đổi từ các thành tố của ngôn ngữ, thường là các từ trong câu, vềdạng vec-tơ số Đây gọi là các phương pháp mã hóa từ (tokenize) hoặc nói chung là quátrình "nhúng" các từ vào không gian số (word embedding)
Phần tiếp theo chúng ta sẽ nghiên cứu một cách cụ thể các nội dung nói trên
Trang 22I= Ii, j ∈ RH×W ×Cvới i = 1 H, j = 1 W ; H,W là chiều cao và chiều rộng; C là số kênh màu của ảnh.
Hình 1.3: Ảnh số dạng RGB.Dựa trên số kênh màu, ta có thể chia thành một số loại ảnh• Ảnh nhị phân (black-white): Ii, j∈ {0, 1};C = 1
• Ảnh đa mức xám (grey scale): Ii, j∈ [0 255]; C = 1.• Ảnh màu: Ii, j ∈ [0 255]C, trong đó mỗi kênh màu trong số C > 1 kênh biểu thị 01
màu cơ bản, có thể khác nhau tùy theo hệ màu sử dụng.Trong toàn bộ luận văn này, chúng ta xét ảnh đầu vào là ảnh màu dạng RGB, tức các màucơ bản là đỏ (red), lục (green) và xanh dương (blue)
Trang 231.3Trích xuất đặc trưng
1.3.1Bài toán trích xuất đặc trưng
Các mô hình mà chúng ta đề cập trong kiến trúc Mã hóa - Giải mã trong bài toán sinhmô tả ảnh đều làm việc với dữ liệu đầu vào dạng vector hoặc ma trận với một kích thướcxác định nào đó
Tuy nhiên, đầu vào và đầu ra thực tế của bài toán mô tả ảnh lại là dạng thô và cầnđưa nó về dạng dữ liệu chuẩn để có thể đưa vào mô hình Ví dụ với bài toán về ảnh, dữliệu thô là các bức ảnh với kích thước, mức độ sáng tối khác nhau Với bài toán về ngônngữ, dữ liệu thô là các câu độ dài khác nhau, được cấu thành bởi các từ khác nhau trongtừ điển
Việc xử lý dữ liệu thô cần đạt được hai mục đích chính Một là phải giữ được thôngtin quan trọng từ dữ liệu gốc Hai là phải chuẩn hóa kích thước, thường là giảm chiều vềkích thước xác định để việc tính toán trong các mô hình không quá lớn, khả thi để triểnkhai Toàn bộ quá trình thực hiện đó gọi là trích xuất đặc trưng (feature extraction)
Ví dụ với dữ liệu ảnh, người ta thường chuẩn hóa các ảnh về cùng kích thước, địnhdạng, sau đó áp dụng các kỹ thuật trích chọn đặc trưng như HOG, SIFT hoặc sử dụng cácmạng học sâu để kết xuất các đặc trưng của ảnh
Trong luận văn này chúng ta sẽ nghiên cứu kỹ các phương pháp sử dụng mạnghọc sâu để trích xuất đặc trưng ảnh
1.3.2Trích xuất đặc trưng dữ liệu ngôn ngữ - Mã hóa từ
Để xử lý bằng các mô hình sinh mô tả ảnh, ta cần cung cấp dữ liệu gồm các bộ ảnh - câumô tả tương ứng Các thành phần của câu mô tả được chuẩn hóa và mã hóa thành dạngvector Thông thường các thành phần cơ bản nhất của câu sẽ là các từ, nên trước hết tacần mã hóa các từ Kỹ thuật này gọi là "Tokenizing"
Trước tiên các câu mô tả này cần được tiền xử lý:
Trang 24• Làm sạch dữ liệu text để mô hình không phải học các trường hợp dị biệt như: loạibỏ dấu câu và các ký tự đặc biệt, chuyển tất cả chữ hoa sang chữ thường, loại bỏcác từ chứa chữ số Ví dụ câu “A man riding on a three-wheeled wheelchair” saukhi làm sạch sẽ trở thành "man riding on three wheeled wheelchair” Cuối cùng,các câu được thêm ký hiệu đánh dấu mở đầu và kết thúc, ví dụ quy ước là <start>và <end>.
• Từ dữ liệu text đã làm sạch ở bước trên, tách từ và xây dựng từ điển Các từ trongcâu mô tả sẽ được lấy từ đây
• Có thể tính toán độ dài tối đa của câu mô tả dựa trên tập câu mô tả mẫu, hoặc dùngmột tham số độ dài tối đa mong muốn cho câu
Tiếp theo, các dữ liệu dạng "từ" phải được đưa về dạng "số" Vì vậy, mỗi từ trongtừ điển đã xây dựng sẽ được ánh xạ với chỉ mục (index) duy nhất Sau đó, để phản ánhquan hệ ngữ nghĩa giữa các từ, nhiều phương pháp mã hóa khác nhau đã được sử dụng,ví dụ dựa trên việc đếm tần suất của từ trong câu và trong văn bản, vector hóa thông quamột mạng ANN đơn giản, hoặc vector hóa bằng các mô hình học
1.4Một số dạng mô hình mạng nơ-ron nhân tạo
1.4.1Mạng nơ-ron nhân tạo truyền thống
Để giải quyết bài toán phân loại trong trường hợp dữ liệu không tách được tuyến tính,có một giải pháp là ghép các mô hình phân loại tuyến tính thành nhiều tầng (layer) Đâychính là ý tưởng của mạng nơ-ron nhân tạo (ANN) đơn giản, hay mạng nơ-ron nhiều tầng(multi layers perceptron - MLP)
Mô hình phân loại tuyến tính có thể chia làm hai bước tổng hợp thông tin, tínhz = WTx+ b, và kích hoạt phân loại, tính đầu ra a = f (z); với W, b là các tham số, f làhàm kích hoạt Khi ghép các mô hình này thành các tầng, thì đầu ra của tầng trước (l − 1)
sẽ là đầu vào của tầng sau (l) Tầng đầu vào (input layer) được coi là tầng 0, đầu ra là
Trang 25output layer Ở giữa đầu vào và đầu ra, có thể có một hoặc nhiều tầng trung gian, gọi là
tầng ẩn (hidden layer) Lúc đó quá trình tính toán sẽ như trong hình 1.4
Hình 1.4: Kết nối giữa 02 tầng (layer) trong MLP (ANN) Hình minh họa từ Internet
Mỗi hình tròn trong các tầng thể hiện một điểm tính toán nào đó, gọi là một nút(node) hoặc một unit, chỉ số tầng là l Hàm kích hoạt thường được sử dụng cho MLP
có nhiều loại như ReLU, sigmoid, tanh (hình 1.5) Để tìm các tham số tối ưu của mô
Hình 1.5: Các hàm kích hoạt thông dụng Hình minh họa từ Internet
hình, chúng ta cực tiểu hóa hàm mất mát J(W, b) −→ minW,b, trong đó W là trọng số;blà bias Có một số dạng hàm mất mát khác nhau được sử dụng, như các hàm dựa trêntổng bình phương sai số (MSE) hoặc Cross Entropy
Để thực hiện việc cực tiểu hóa hàm mất mát J(W, b), người ta sử dụng cácphương pháp dựa trên đạo hàm (gradient), và cần thực hiện tính đạo hàm của nó theo
Trang 26từng tham số Tuy nhiên do các mạng học sâu có nhiều tầng, chúng ta không thể tínhtoán trực tiếp các đạo hàm này Việc xác định đạo hàm cần tính toán qua hai quá trình
là tính theo chiều tiến (feedforward) và tính kiểu truy hồi hay gọi là lan truyền ngược(backpropagation).
1.4.2Mạng nơ ron tích chập
Trong mạng nơ-ron truyền thống MLP, tất cả các nút tại các tầng đều được liên kết bởitham số, dẫn đến số tham số rất lớn Ngoài ra do mỗi nút đều nhân với một tham số độclập dẫn đến mạng không phản ánh được quan hệ giữa các thành phần dữ liệu và khôngphù hợp với một số dạng dữ liệu, ví dụ dữ liệu dạng lưới (grid) như ảnh số
Khắc phục này, người ta thay phép nhân ma trận - vec tơ trong MLP bằng phépnhân chập và tạo thành kiến trúc mạng nơ ron đặc biệt gọi là mạng nơ ron tích chập(Convolution Neural Network – CNN [24])
Về tổng thể, kiến trúc của CNN như trong hình 1.6
Hình 1.6: Kiến trúc CNN [24]
Tầng nhân chập hai chiều (2D Convolution layers)
Tầng này thực hiện phép nhân chập ma trận số hai chiều đầu vào IH×W với bộ lọc Fh×w
I′[i, j] = I ∗ F =
H
∑
iW
∑
jF[m, n] · I [i − m, j − n]
với các chỉ số chạy trong giới hạn phù hợp để công thức có nghĩa
Trang 27Ví dụ như hình sau, ma trận dữ liệu kích thước 5 × 5, ma trận bộ lọc có kích thước3 × 3 Để thu được nhiều đặc trưng khác nhau của ảnh, ta cần sử dụng nhiều bộ lọc khác
Hình 1.7: Phép nhân chập [24]nhau về kích thước (size) Khoảng cách khi di chuyển bộ lọc trên dữ liệu gọi là bước nhảy(stride) Ví dụ, di chuyển sang một điểm dữ liệu liền kề, stride=1 Để thu được kích thướcđầu ra mong muốn, ta có thể phải thêm vùng đệm (padding) bên ngoài ảnh gốc Giá trịbổ sung vào vùng đệm là 0
Tầng kích hoạt
Sau mỗi tầng nhân chập để tổng hợp đặc trưng, CNN cũng có một tầng kích hoạt đểphi tuyến hóa kiến trúc, tương tự như mạng nơ-ron truyền thống Hàm kích hoạt (xemhình 1.5) thường dùng là ReLU hoặc Leaky ReLU
Trang 28Tầng duỗi phẳng (Flatten) và kết nối đầy đủ (Fully connected)
Sau khi qua các tầng tích chập, cuối cùng ma trận dữ liệu được “duỗi thẳng” (flatten) vàcho qua các tầng kết nối đầy đủ (Fully connected) như trong MLP để phân loại, dự đoánđược đầu ra
1.4.3RNN và LSTM
Bài toán sinh mô tả ảnh có đầu ra là các câu Đây là một dạng dữ liệu chuỗi (sequentialdata) vì các từ trong câu có liên quan đến nhau và thứ tự các từ cũng quyết định ý nghĩacủa câu RNN và LSTM [33] là những mạng học sâu tiêu biểu chuyên cho việc xử lý dữliệu dạng chuỗi
Trong dạng dữ liệu chuỗi, các thành phần dữ liệu xt sẽ phụ thuộc lẫn nhau theothứ tự xuất hiện
P(x1, x2 , xm) =
m
∏
tP(xt|xt−1, , x1)
Trước hết ta xét mạng nơ-ron hồi quy (Recurrent Neural Network - RNN - Hình 1.9)Các nút mạng tạo thành một vòng lặp, chia sẻ bộ tham số và lặp lại các bước tính toán
Hình 1.9: Mạng RNN [33]ht = fW(ht−1, xt) và yt = gW(ht) Ví dụ, nếu ta sử dụng kích hoạt fW là hàm tanh, mạng
RNN lặp lại tính toán sau tại tất cả các nút với cùng bộ trọng số
ht = Whht−1+Wxxt và yt = Wyht.RNN phản ánh được quan hệ trong dữ liệu tuần tự nhưng phát sinh sự suy giảm hoặcbùng nổ đạo hàm (vanishing/exploding gradient) khi có sự phụ thuộc dài
Trang 29Để khắc phục vấn đề này, người ta thiết kế mạng LSTM (Long Short Term
Mem-ory) Trong LSTM, tại mỗi bước, thông tin ngữ cảnh được truyền đi gọi là tín hiệu Cellstate (đường ngang trên cùng của mỗi cell trong hình 1.10 - Ct) Thông tin cell state nàyđược truyền đi suốt, nên không bị suy giảm như trường hợp RNN Việc thông tin nào sẽ
Hình 1.10: Kiến trúc mạng LSTM [33]được bỏ qua, thông tin nào sẽ được truyền đi tiếp qua các state do các cổng quên và cổngnhớ, được xây dựng bằng các tầng ẩn bên trong mỗi cell quyết định Cụ thể như sau:
• Cổng quên (forget gate): nhận giá trị đầu vào là đầu ra của bước trước (ht−1) và đầuvào xt, đi qua hàm Sigmoid để trả về một giá trị trong khoảng [0,1] cho thấy mứcđộ quan trọng cần giữ lại của thông tin (0 là bỏ đi, 1 là giữ lại hoàn toàn)
ft = σ (Wx fxt+Wh fht−1+ bf)
• Cổng vào (input gate): it = σ (Wxixt+Whiht−1+ bi).• Cổng vào (output gate): ot = σ (Wxoxt+Whoht−1+ bo).• Cuối cùng, tính toán đầu ra ht Ct được đưa qua hàm tanh để quyết định thông tin
nào của trạng thái sẽ được dùng để tính toán đầu ra
˜ct = tanh(Wxcxt+Whcht−1+ bc)ct = ft∗ ct−1+ it∗ ˜ct và ht = ot∗ tanh(ct)
Trang 301.4.4Cơ chế chú ý và mạng Transformer
LSTM tuy giải quyết được vấn đề ghi nhớ ngữ cảnh dài của RNN nhưng thực ranó vẫn cùng cơ chế tính toán tuần tự Mỗi token đầu ra phụ thuộc vào ngữ cảnh của toànbộ câu tại bước trước Trong khi đó, trên thực tế mỗi đầu ra có thể chỉ phụ thuộc nhiềuvào một số đầu vào trong một số bước chứ không cần quan tâm toàn bộ câu Ví dụ trongdịch máy từ tiếng Anh sang tiếng Pháp, câu "I am a student" với "Je suis étudiant" thì từ"student" chỉ phụ thuộc vào từ "étudiant" chứ không phụ thuộc vào cả câu Vì vậy LSTMtrong một số trường hợp vừa thừa vừa thiếu thông tin cũng như hạn chế khả năng tínhtoán nhanh
Để giải quyết vấn đề này, người ta đưa ra cơ chế chú ý (Attention), bằng việc tạora vector trọng số cho mỗi phần của thành phần đầu vào Ví dụ trong bài toán dịch máy,các từ quan trọng trong câu đầu vào sẽ có trọng số cao hơn, đầu ra sẽ được tạo ra bằngcách kết hợp các từ, phụ thuộc vào sự chú ý của mô hình trong câu đầu vào Trong bàitoán mô tả ảnh, cơ chế chú ý sẽ giúp chú ý đến các vùng ảnh quan trọng
Self-attention là cơ chế trong đó tính toán trọng số của mỗi phần tử trong chuỗi
đầu vào với các phần tử còn lại trong chính chuỗi đó Điều này cho biết mức độ liên quangiữa các thành phần của câu Việc tính toán các trọng số được học trong quá trình huấnluyện
Hình 1.11: Self-attention với các ma trận trọng số cần học là Wq,Wk,Wv Mỗi từ trongchuỗi đầu vào được đại diện bởi ba giá trị (Query, Key, Value) Hình minh họa từ Internet
Trang 31Hình 1.12: Tính vector trọng số trong cơ chế chú ý cho toàn bộ các từ trong câu Hìnhminh họa từ Internet.
Transformer[37] là một kiến trúc xử lý dữ liệu chuỗi một cách song song, trong
đó sử dụng cơ chế chú ý để đạt được những kết quả cải tiến vượt bậc so với RNN cả vềtốc độ và kết quả dự đoán
Kiến trúc của Transformer gồm hai phần như hình 1.13: Phần mã hóa bên trái vàphần giải mã bên phải
• Phần mã hóa gồm sáu tầng Mỗi tầng gồm hai tầng con Đầu tiên là một khốimultihead self-attention Tiếp theo là một lớp kết nối đầy đủ truyền thẳng (fullyconnected layer) Mỗi tầng con này có một kết nối tắt và theo sau là một tầng chuẩnhóa (normalization layer) để tăng tốc hội tụ
• Phần giải mã cũng gồm sáu tầng Mỗi tầng, ngoài hai tầng con giống phần mã hóa,còn có thêm tầng con thứ 3 là lớp multihead attention xử lý đầu ra từ phần mã hóa.Đối với khối multihead attention xử lý dữ liệu bên giải mã, người ta dùng mặt nạ(mask) để mô hình chỉ chú ý đến phần chuỗi đầu ra được sinh bởi các bước trước,nghĩa là từ dự đoán tại vị trí i chỉ phụ thuộc vào các từ đã biết trước i Các tầngthuộc phần giải mã cũng có kết nối tắt và tầng chuẩn hóa để tăng tốc hội tụ
Tinh thần của Transformer là cơ chế chú ý để biết được quan hệ (mức độ chú ý)
Trang 32Hình 1.13: Kiến trúc mạng Transformer [37].
của các token bên mã hóa với nhau, các token bên giải mã với nhau (self attention) vàgiữa đầu ra của mã hóa với dữ liệu bên giải mã Việc này được thực hiện qua hàm chú ý(Attention function) và cách tổ chức Multihead Attention
Hàm chú ý (Scaled Dot-Product Attention function)
Đầu vào của hàm là các vector query, key đều kích thước dk, cùng với vector valuekích thước dv Cần tính tích vô hướng của query với tất cả các key, rồi chia √dk, sau đócho qua hàm Softmax để lấy được trọng số của các vector value Các vec-tơ từng loạiquery, key, value được ghép thành các ma trận tương ứng Q, K,V Ma trận trọng số chú ý
Trang 33được tính như sau:
Atttention(Q, K,V ) = So f tmax QKT
√dk
headi=Attention(QWiQ, KWiK,VWiV)Multihead(Q, K,V ) =Concat(head1, head2, headh)WO
(1.2)
trong đó các ma trận chiếu WiQ ∈ Rdmodel×dk, WiK ∈ Rdmodel×dk, WiV ∈ Rdmodel×dv, WO ∈Rhdv×dmodel
Mạng truyền thẳng (Feed-Forward Network)
Ngoài ra, trong mỗi tầng con còn có một mạng truyền thẳng kết nối đầy đủ (fullyconnected Feed-forward Network) Nó gồm hai tầng biến đổi tuyến tính mà giữa chúngcó một hàm kích hoạt ReLU:
FFN(x) = max(0, xW1+ b1)W2+ b2 (1.3)
Vì biến đổi tuyến tính chỉ tác động lên chiều cuối cùng của dữ liệu nên nó sẽ cótác dụng độc lập với mỗi vị trí của từ trong câu Vì vậy mạng truyền thẳng này còn đượcgọi là "Position-wise Feed-Forward Network"
Mã hóa thông tin vị trí (Positional Encoding)
Vì các từ (token) trong câu khi tách rời sẽ không có thông tin vị trí, nên cả phầnmã hóa và giải mã đều có một bước cộng thêm thông tin vị trí (Positional Encoding) vàocác dữ liệu đầu vào để đưa thêm vào yếu tố thời gian Việc mã hóa tạo ra vector cùngchiều dmodel với dữ liệu đầu vào để có thể cộng chúng lại với nhau
Để mã hóa thông tin vị trí này có nhiều cách, nhưng tác giả bài báo [37] chọn sử
Trang 34dụng hàm sin và cosin như sau:
PE(pos, 2i) = sin pos
10000
2idmodel
!và PE(pos, 2i + 1) = cos pos
10000
2idmodel
!(1.4)
trong đó k là vị trí của từ trong chuỗi đầu vào, i là biến biểu diễn vị trí cột trong vectormã hóa đầu ra (0 ≤ i < dmodel/2)
Vì Transformer hoạt động trên cơ chế chú ý giữa các thành phần dữ liệu độc lập(token) nên nó có thể thực hiện song song Đồng thời hàm chú ý được triển khai trêntrực tiếp từng token nên không làm mất mát thông tin như RNN khi truyền thông tin ngữcảnh Vì vậy, so với RNN, Transformer vừa nhanh hơn và vừa chính xác hơn
1.4.5Mô hình Transformer cho thị giác máy tính
Transformer ban đầu chủ yếu được dùng cho các mô hình xử lý ngôn ngữ Tuy nhiên,người ta đã cải tiến nó để có thể dùng được cho các mô hình với dữ liệu ảnh Ta xét mộtsố mô hình phân loại ảnh với kiến trúc Transformer dưới đây
ViT - Vision Transformer
Mô hình Vision Transformer (ViT) [10] ra đời năm 2021 dùng để phân loại ảnh, đã chothấy nó mang lại kết quả tốt hơn CNN
Mô hình ViT trên hình 1.14 có thể tóm tắt như sau:• Ảnh x ∈H×W ×Cđược chia thành các mảnh ảnh 2D gọi là các patch có dạng xP∈N×(P2·C),
với (H,W ) là độ phân giải của ảnh ban đầu, C là số kênh; (P, P) là độ phân giải củacác patch; N = HWP2 là số lượng patch, đóng vai trò như độ dài chuỗi đầu vào củaTransformer Các patch được làm phẳng về dữ liệu điểm ảnh và chiếu lên khônggian ít chiều hơn tạo thành các vector D chiều là kết quả nhúng (embedding) cácpatch ảnh
• Người ta thêm một CLS token vào đầu kết quả nhúng của ảnh
Trang 35z0 = [CLS; x1PE; x2PE; ; xPNE] + Epos E ∈(P2·C)×Dz′l = MSA(LN(zl−1)) + zl−1 l = 1 Lzl = MLP(LN(z′l)) + z′l l = 1 L
y= LN(z0L)
(1.5)
Cũng giống như các mô hình CNN phân loại ảnh phía trên, phần thực nghiệm tasẽ sử dụng đặc trưng kết xuất từ ViT để sử dụng cho bài toán sinh mô tả ảnh
Trang 36Swin Transformer
Mô hình ViT áp dụng cho ảnh có điểm hạn chế so với các mô hình Transformer cho xử lýngôn ngữ ở chỗ: các từ trong câu có thể được tách tường minh thành token dựa và khoảngtrắng; tuy nhiên các mảnh ảnh với kích thước cố định thì sẽ không "nhìn" trọn vẹn đượcmột vật thể do kích thước các vật thể trong ảnh rất khác nhau Điều này làm giảm độchính xác của Transformer cho ảnh so với ngôn ngữ Để giải quyết vấn đề này, người tamong muốn sử dụng các mảnh ảnh với kích thước khác nhau để cho các vật thể khácnhau Đó là ý tưởng của mô hình Swin Transformer [20] (Shifted windows Transformer)ra đời năm 2021 Nó được coi là bản nâng cấp của ViT
Hình 1.15: Kiến trúc của Swin Transformer (Swin-T) [20].Hình 1.15 mô tả kiến trúc của Swin Transformer Tiny (Swin-T):• Ảnh đầu vào có kích thước H ×W × 3 được chia thành các mảnh kích thước 4 × 4,
như vậy số token là H4 ×W4, số chiều là 4 × 4 × 3 = 48.• Giai đoạn 1: ma trận đặc trưng kích thước H4 ×W4 × 48 được đưa qua tầng Linear
Embedding để giảm số chiều về C Sau đó, nó được đưa tiếp qua hai khối SwinTransformer Đặc trưng đầu ra của Stage 1 có kích thước H4 ×W
4 ×C.• Giai đoạn 2: Khối Patch Merging có tác dụng nhập bốn mảnh ảnh liền nhau thành
một mảnh vuông mới Lúc này số token giảm còn H8 ×W8, số chiều là 4C Tiếp theolà một tầng Linear để giảm số chiều từ 4C về 2C rồi cho qua liên tiếp hai khối SwinTransformer Đặc trưng đầu ra của giai đoạn 2 có kích thước H8 ×W8 × 2C
Trang 37• Giai đoạn 3 và giai đoạn 4 triển khai tương tự như giai đoạn 2.Swin Transformer được xây dựng từ Transformer cho ngôn ngữ bằng cách thaythế khối Multihead Self Attention (MSA) bởi một modul dựa trên cửa sổ trượt Như môtả trong hình 1.15b, khối Swin Transformer bao gồm một modul MSA dựa trên cửa sổtrượt, tiếp theo là hai tầng MLP với hàm kích hoạt GELU ở giữa Các khối MLP và MSAđều được hỗ trợ bởi một tầng chuẩn hóa đằng trước (Linear Norm - LN) và một kết nốitắt.
Cơ chế tự chú ý dựa trên cửa số trượt không chồng lấn
Người ta chia ảnh thành các vùng không chồng lấn, mỗi vùng chứa M × M patchvà tính toán thông tin tự chú ý giữa các patch trên mỗi vùng cửa sổ Điều này làm giảmđộ phức tạp tính toán khi tính thông tin tự chú ý trên toàn bộ ảnh, đặc biệt hiệu quả vớiảnh kích thước lớn
Thực hiện MSA trên từng cửa sổ trượt làm thiếu đi kết nối giữa các cửa sổ vớinhau Để vừa giảm được độ phức tạp tính toán, vừa giữ được kết nối giữa các cửa sổ vớinhau, người ta sử dụng phương án như hình 1.16 sau:
Hình 1.16: Cách tạo cửa sổ trượt của Swin Transformer [20]Trong modul đầu tiên, chia cửa sổ từ góc trên bên trái, ví dụ ảnh 8 × 8 patch đượcchia thành 2 × 2 khối kích thước 4 × 4(M = 4) Modul tiếp theo đẩy cửa sổ một khoảng(M2,M2 Như vậy, các khối Swin Transformer được tính như sau:
Trang 38ˆzl= W − MSA(LN(zl−1)) + zl−1zl= MLP(LN(ˆzl)) + ˆzl
ˆzl+1= SW − MSA(LN(zl)) + zlzl+1= MLP(LN(ˆzl+1)) + ˆzl+1
(1.6)
với ˆzl, zl lần lượt là đầu ra của các modul (S)W-MSA và modul MLP tại khối l W-MSA(Window based Self-Attention) và SW-MSA (Shifted Window based Self-Attention) lầnlượt là multi-head self attention với cơ chế "cửa sổ không chồng lấn" (non-overlappingwindows) và "cửa sổ trượt" (shifted window)
Cơ chế phân chia ảnh theo cửa sổ trượt tạo ra kết nối giữa các vùng cửa sổ khôngchồng lấn ở tầng trước Nó đã cho thấy hiệu quả trong các tác vụ phân loại ảnh, phát hiệnvật thể, phân vùng ảnh
Có bốn phiên bản Swin là Swin-T (Tiny - siêu nhỏ), Swin-S (Small - nhỏ), Swin-B(Baseline - cơ bản), Swin-L (Large - lớn) Trong phần thực nghiệm ta sẽ sử dụng Swin-Bđể kết xuất đặc trưng ảnh Swin-B có C = 128, số lượng khối Swin Transformer của cácgiai đoạn lần lượt là 2, 2, 18, 2
1.5Phát hiện đối tượng
Phát hiện đối tượng (Object Detection) là bài toán kết hợp nhận dạng đối tượng (phânloại) và xác định vị trí của đối tượng đó trong ảnh (khoanh vùng) Tùy theo việc xử lýhai bài toán này mà ta có thể chia các phương pháp thành dạng hai bước (two stages) vàmột bước (one stage)
Để hiểu hơn về các mô hình hai bước, ta xét nhóm mô hình R-CNN (Region-basedCNN), gồm các mô hình R-CNN [12], Fast R-CNN [11], Faster R-CNN [31] Các bướcxử lý như hình 1.17
Bước 1 : Đề xuất các vùng có đối tượng (Region Proposal) trên ảnh Bước này sử dụng các
thuật toán như Selective Search, RPN (Region Proposal Network)
Trang 39Bước 2 : Đưa các vùng đề xuất qua một mô hình CNN phân loại ảnh để nhận dạng đối tượng
trong đó Cuối cùng tinh chỉnh khung khoanh vùng (bounding box regression)
Hình 1.17: Các bước trong phương pháp R-CNN [12].Mô hình dạng hai bước có độ chính xác khá cao, tuy nhiên nhược điểm là tốc độ chậm.Với yêu cầu cúa bài toán sinh mô tả ảnh là tốc độ thực hiện, các mô hình hai bước khôngđáp ứng được, do đó ta sẽ không nghiên cứu sâu trong luận văn này
Các mô hình phát hiện đối tượng một bước có tốc độ tốt hơn hẳn mô hình hai
bước, và độ chính xác là xấp xỉ Trong nhóm này, ta đi sâu tìm hiểu mô hình tiêu biểuYOLO (You Only Look Once) do nó được phát triển khá nhiều biến thể [30]
Với YOLO, việc tìm vùng đối tượng và việc phân lớp nhãn đối tượng được thựchiện cùng lúc, trên cùng thông tin đặc trưng CNN kết xuất từ ảnh như sau:
• Ảnh được đưa về kích thước chuẩn và được chia lưới S × S thành các ô lưới (gridcell) Sử dụng CNN kết xuất đặc trưng toàn ảnh và xét từng ô lưới
• Trên mỗi ô lưới, từ đặc trưng dự đoán B ô chứa vật thể (bounding box), mỗi ô chứagồm thông tin: (x, y) là tọa độ tương đối (qui chuẩn thuộc [0,1] theo hệ qui chiếucủa cell đó (góc trên bên trái cell làm gốc tọa độ); (w, h) là kích thước qui chuẩnthuộc [0,1] theo hệ qui chiếu của toàn bộ ảnh (góc trên bên trái ảnh là gốc tọa độ);và xác suất có vật thể trong ô (confidence)
• Dự đoán nhãn của đối tượng ứng với ô lưới P(C).• Kết hợp kết quả của hai bước trên, ta được các ô chứa và nhãn tương ứng Do sẽ có
ô chứa cùng nhãn chồng lấn nhau nên ta cần dùng NMS (Non-Max Suppression)để hợp nhất các ô như vậy
Trang 40Hình 1.18: Các bước xử lý của Yolo [30].
∑
j=01ob ji j (xi− ˆxi)2+ (yi− ˆyi)2
+ λcoord
S2
∑
i=0B
∑
j=01ob ji j (√
wi−pwˆi)2+ (phi−
qˆhi)2
(1.7)
với các giá trị mũ là giá trị thực từ dữ liệu huấn luyện; λ là tham số đánh trọng sốcho các thành phần; 1ob ji j nhận giá trị 1 nếu trong cell i có chứa vật thể và ô chứathứ j phát hiện ra vật thể đó
• Lỗi khi xác định ô chứa có vật thể hay không:
Lcon f idence=
S2
∑
i=0B
∑
j=01ob ji j (Ci− ˆCi)2+ λnoob j
S2
∑
i=0B
∑
j=01noob ji j (Ci− ˆCi)2 (1.8)
với ˆC là diện tích phần giao trên diện tích phần hợp của ô chứa dự đoán so với ôchứa thực tế (IOU);1ob ji j nhận giá trị 1 khi có vật thể trong cell; 1noob ji j ngược lại