1. Trang chủ
  2. » Luận Văn - Báo Cáo

báo cáo xử lý ngôn ngữ tự nhiên vietnamese image captioning

25 2 0
Tài liệu đã được kiểm tra trùng lặp

Đang tải... (xem toàn văn)

Tài liệu hạn chế xem trước, để xem đầy đủ mời bạn chọn Tải xuống

THÔNG TIN TÀI LIỆU

Thông tin cơ bản

Tiêu đề Xử Lý Ngôn Ngữ Tự Nhiên
Tác giả Trần Anh Vũ, Nguyễn Xuân Huy, Đinh Tiến Vũ, Bùi Minh Tuấn, Trịnh Xuân Tùng
Người hướng dẫn PGS.TS Lê Thanh Hương
Trường học Đại Học Bách Khoa Hà Nội
Chuyên ngành Công Nghệ Thông Tin Và Truyền Thông
Thể loại Báo cáo
Năm xuất bản 2023
Thành phố Hà Nội
Định dạng
Số trang 25
Dung lượng 5,19 MB

Nội dung

Kiến trúc mô hình Mô hình s g m 3 thành ph n chính: ẽ ồ ầ- Encoder: mô hình Pretrained CNN ResNet hỗ trợ trích rút đặc trưng củ ảnh đầa u vào - Decoder: mạng RNN LSTM đưa ra caption dự đ

Trang 1

ĐẠI HỌC BÁCH KHOA HÀ NỘI TRƯỜNG CÔNG NGHỆ THÔNG TIN VÀ TRUYỀN THÔNG

Nhóm sinh viên thực hiện: Trần Anh Vũ 20183674

Nguyễn Xuân Huy 20183555

Bùi Minh Tuấn 20183654

Trịnh Xuân Tùng 20183663

Giáo viên hướng dẫn: PGS.TS Lê Thanh Hương

HÀ N I, 02/2023 Ộ

Trang 2

Mục l c

MỤC L C 2

DANH M C HÌNH ẢNH 3

CHƯƠNG 1 GIỚI THIỆU BÀI TOÁN 4

CHƯƠNG 2 MÔ HÌNH ĐỀXUẤ T 5

2.1 Mô hình Pretrained CNN LSTM 5

2.2 Mô hình ViT – GPT 7

CHƯƠNG 3 MÔ TẢ TẬP DỮ LIỆU 15

3.1 Mô tả bộ dữ u raw liệ 15

3.2 Tiền xử lý dữ u chung liệ 15

3.3 Tiền xử lý dữ u cho các mô hình liệ 17

CHƯƠNG 4 THỰC NGHIỆM 17

4.1 Mô tả mô hình thử nghiệm 17

4.2 Độ đo đánh giá 19

4.3 Đánh giá kết quả 21

CHƯƠNG 5. KẾT LUẬN VÀ HƯỚNG PHÁT TRI N 24CHƯƠNG 6 TÀI LIỆU THAM KHẢO 24

Trang 3

Danh m c hình ảnh

Hình 1: Ví d Image Captioning 4ụ Hình 2: Ki n trúc mô hình Pretrained CNN - LSTM 5ế Hình 3: Ki n trúc Encoder - ResNet101 6ế Hình 4: Ki n trúc Decoder - LSTM 6ế

Hình 5: Decoder khi thêm dữ liệu Attention 7

Hình 6: Ki n trúc Attention 7ế Hình 7: Ki n trúc mô hình ViT - GPT 2 8ế Hình 8: Ki n trúc mô hình ViT 9ế Hình 9: Ki n trúc GPT 2 11ế Hình 11: Token Embedding và Positional Encoding 11

Hình 12: Self Attention 13

Hình 13: Masked Self Attention 14

Hình 14: Visualize Cross Attention 15

Hình 15: Phần trăm độ dài caption trong tập dữ liệu 16

Hình 16: Phần trăm độ dài caption sau khi lo i b outliner 16ạ ỏ Hình 17: Khai báo mô hình ViT - GPT 2 18

Hình 18: ROUGE-N Precision 19

Hình 19: ROUGE-N Recall 19

Hình 20: ROUGE-N F1 20

Hình 21: Longest Common Sequence 20

Hình 22: ROUGE-L Precision, Recall và F1 21 Hình 23: Thu t toán Beam Search 22ậ

Trang 4

Chương 1 Giới thiệu bài toán Image Captioning (chú thích ảnh/thêm mô tả cho nh) là mả ột ứng dụng thú vị và phát triển nhanh chóng của công nghệ học sâu trong những năm gần đây Dựa trên một hình ảnh làm

dữ liệu đầu vào, chú thích ảnh tạo ra văn bản ngắn gọn mô tả nội dung của bức ảnh đó Kỹ thuật này càng tr ở nên đặc biệt hơn, khi nó kết hợp cả Computer Vision (thị giác máy tính) và NLP (Xử lý ngôn ngữ tự nhiên)

Hình 1: Ví d Image Captioning ụ

Trang 5

Chương 2 Mô hình đề xuất

Báo cáo này s t p trung vào hai ẽ ậ hướng chính:

- Decoder: mạng RNN (LSTM) đưa ra caption dự đoán

- Attention: m ng linear h ạ ỗ trợ tìm ra các vùng quan trọng trong đặc trưng ảnh nhằm phục vụ tốt hơn trong quá trình dự đoán của Decoder

Hình 2: Kiến trúc mô hình Pretrained CNN - LSTM

2.1.2 Encoder

Mô hình pretrain ResNet được sử dụng làm Encoder cho mô hình, mô hình có dạng như hình vẽ dưới:

Trang 6

Hình 3: Kiến trúc Encoder - ResNet101

Đầu vào c a mô hình s là m t ảnh kích thước (256x256x3) Ảnh s đi qua đến h t ủ ẽ ộ ẽ ếtầng gần cuối mà không xuống 2 tầng cuối cùng nhằm giữ lại các đặc trưng cần thiết mà không làm m t mát nhiấ ều thông tin, đầu ra c a encoder là m t ma trủ ộ ận đặc trưng kích thước (14x14x1024)

2.1.4 Attention

Attention s dử ụng trong mô hình như là một mạng để tìm ra vùng nh quan tr ng, kả ọ ết hợp v i tớ ừ đầu vào h ỗ trợ cho quá trình d ự đoán cho Decoder

Trang 7

Hình 5: Decoder khi thêm d ữ liệu Attention

Về cơ bản, Attention là m t m ng Linear, vộ ạ ới đầu vào là ma trận đặc trưng của ảnh

và state được sinh ra từ Decoder, cấu trúc mạng Attention sẽ như hình dưới

Hình 6: Kiến trúc Attention

2.2 Mô hình ViT GPT

Với s phát tri n m nh c a Transformers trên cự ể ạ ủ ả hai lĩnh vực CV và NLP, mô hình ViT GPT là s c i ti– ự ả ến c a mô hình pretrained CNN LSTM truy n th ng Encoder s ủ – ề ố ửdụng Vision Transformer, trong khi đó Decoder sử dụng GPT 2 giúp c i thi n v hi u suả ệ ề ệ ất

và chất lượng c a mô hình Image captioning nh khủ ờ ả năng ử x lý song song và hi u ng ể ữcảnh tốt hơn

Trang 8

Hình 7: Kiến trúc mô hình ViT - GPT 2

Trang 9

Hình 8: Kiến trúc mô hình ViT

Vision Image Transformer là s k t h p c a 1 phự ế ợ ủ ần ki n trúc c a Transformer và các ế ủkhối MLP (Multilayer Perceptron) Lớp Multi-Layer Perceptrons (MLP) mlà ột lớp ch a ứmột hàm Gaussian Error Linear Unit hai lớp

Với đầu vào là một hình ảnh, đầu ra sẽ được mã hoá theo kiến trúc tổng thể của mô hình ViT được đưa ra như sau theo cách thức từng bước:

- Chia hình ảnh thành các mảng (patch) với kích thước từng mảng cố định 16 x 16

- Làm phẳng các mảng hình ảnh

- Tạo các feature embedding có chiều thấp hơn từ các mảng hình ảnh phẳng này bao gồm thứ tự các mảng Đưa các patches này về d ng vector b ng cách flattend các patches ạ ằnày ra Thực ch t Linear Projection là m t l p Dense vấ ộ ớ ới đầu vào là flattend vector của các patches, đầu ra s ẽ là embeeding vector tương ứng với t ng patch.ừ

𝑧𝑖= 𝑊 ∗ 𝑥𝑖+ 𝑏 Trong đó:

Trang 10

o 𝑥𝑖: flattend vector của patch thứ i

o 𝑧𝑖: output tương ứng của 𝑥𝑖 khi qua Linear Projection

2.2.2 Decoder

GPT-2 là một mô hình tổng quát, được tạo bởi OpenAI, được đào tạo trên 40GB Internet để dự đoán từ tiếp theo

GPT-2 s d ng ki n trúc transformer chử ụ ế ỉ dành cho b gi i mã (ộ ả Decoder) M i l p cỗ ớ ủa

bộ gi i mã ch bao g m m t l p ả ỉ ồ ộ ớ Masked Self-Attention, theo sau là m ng th n kinh chuyạ ầ ển

tiếp ngu n c p d ệồ ấ ữli u X p ch ng nhi u lớp như vậy lên nhau tạo thành một kiến trúc ế ồ ềtransformer sâu, ch dành cho b gi i mã ỉ ộ ả

Trang 11

Hình 9: Kiến trúc GPT 2

Chi tiết kh i Decoder: ố

- Mã hoá đầu vào: Bắt đầu bằng từ đầu vào, mô hình tìm kiếm cách embedding từ đầu vào trong ma tr n embedding c a nó ậ ủ

Do mô hình GPT x lý song song, vì vử ậy ngoài mã hoá t , mô hình c n k t h p ừ ầ ế ợthêm mã hóa v trí ị – ộ m t tín hiệu cho bi t th tế ứ ự ủ c a các t trong chuừ ỗi đối v i các ớtransformer blocks Một ph n cầ ủa mô hình được đào tạo là một ma tr n ch a mậ ứ ột vectơ mã hóa vị trí cho m i trong s 1024 v ỗ ố ị trí trong đầu vào

Hình 10: Token Embedding và Positional Encoding

Trang 12

- Sau khi mã hoá, các vector t s ừ ẽ đi qua self attention Có th ể hiểu self attention là một mô hình giúp học được mối tương quan ữ gi a các t trong m t câu v i nhau ừ ộ ớSelf Attention s t o 3 ma tr n Query, Key và Value, c ẽ ạ ậ ụ thể

từ khác (sử dụng key)

• Key: đại diện cho các từ sẽ xét tương quan với từ đang xét (Query)

• Bước 2: Tính attention weights Nhân 2 ma trận key, query vừa được tính ở trên với nhau để với ý nghĩa là so sánh giữa câu query và key để học mối tương quan Sau đó thì chuẩn hóa về đoạn [0 1] bằng hàm softmax 1 có nghĩa -

là câu query giống với key, 0 có nghĩa là không giống

• Bước 3: Tính output Nhân attention weights với ma trận value Điều này có nghĩa là chúng ta biểu diễn một từ bằng trung bình có trọng số (attention weights) của ma trận value

Trang 13

Hình 11: Self Attention

Masked Self-Attention: Do GPT là mô hình sinh chuỗi, vì vậy không thể xét quan

hệ của từ đang xét với các từ trong tương lai, do đó Masked Self Attention được

sử dụng Về cơ bản, nó luôn cho điểm các mã thông báo trong tương lai là 0 để mô hình không th ể đạt đến các từ trong tương lai

Trang 14

Hình 12: Masked Self Attention

- Feed Forward Network: Xử lý vector từ sau khi đã học xong mối tương quan với các từ còn lại trong câu Kết quả cuối cùng của tầng này là ma trận vector từ kích thước (độ dài chuỗi x size) (size tuỳ thuộc vào mô hình, cụ thể GPT 2 small sẽ có size = 768)

2.2.3 Cross Attention Layers

Mạng này được xây dựng với mục đích học ra được mối tương quan của các thành phần trong nh tả ới từ sinh ra ti p theo Kiế ến trúc c a m ng này khá giủ ạ ống với Self attention

mô t phía trên, v i key và query là các vector ả ở ớ đặc trưng của từng thành phần trong ảnh,

và value là các vector đặc trưng của các từ trong caption:

Trang 15

Hình 13 Visualize Cross Attention:

Chương 3 Mô t t p d u ả ậ ữ liệ3.1 Mô tả bộ dữ liệu raw

Dữ liệu được sử dụng trong project là kết hợp của 2 bộ dữ liệu:

- UIT-ViIC1

- Vietnamese Image Captioning Dataset 2

C hai b d u ả ộ ữ liệ đã được chú thích th công b ng ti ng Vi t v i các hình nh t b ủ ằ ế ệ ớ ả ừ ộ

dữ liệu MS-COCO

3.2 Tiền xử lý d ữ liệu chung

Do c hai b dả ộ ữ liệu đều cùng một bộ ữ liệ d u là MS-COCO, cho nên c n phầ ải hợp nhất hai bộ dữ liệu l i v i nhau, tìm nh ng nh trùng và h p nh t các captions cạ ớ ữ ả ợ ấ ủa ảnh đó,

đầu ra c a pha này s là Metadata củ ẽ ủa ảnh và caption, c ụ thể:

- Images: List các thông tin của ảnh, bao gồm ảid nh và tên file

- Annotations: List các thông tin caption, bao gồm id c a caption, image id và ủcaption

Sau đó, do dữ liệu vẫn còn khá nhi u lề ỗi sai chính tả trong quá trình nh p li u, vì vậ ệ ậy cần phải xem xét và x lý t ng captions m t Nhóm s d ng tokenizer c a VNCoreNLP ử ừ ộ ử ụ ủ

1

https://sites.google.com/uit.edu.vn/uit-nlp/datasets-projects#h.p_Uj6Wqs5dCpc4

2 https://drive.google.com/drive/folders/1uWgMETh2TjD9skVLEoJ6XwoDnJMvcP_9

Trang 16

và thu được m t t p tộ ậ ừ điển, sau đó từ ậ ừ điển đó nhóm tiến hành xem xét xem các từ t p tkhông h p l và tiợ ệ ến hành s a các t đó trong danh sách các captions ử ừ

Khảo sát phần trăm độ dài caption khi s d ng tokenizer c a VNCoreNLP: ử ụ ủ

Hình 14: Phần trăm độ dài caption trong t p d ậ ữ liệu

Nhóm ti n hành lo i b các caption có s t > 30 tế ạ ỏ ố ừ ừ, để tránh các dữ liệu outlier có thể ảnh hướng đế ế k t qu c a mô hình ả ủ

Tỷ l phệ ần trăm số từ trong 1 caption sau khi đã loại bỏ các dữ liệu outlier

Hình 15: Phần trăm độ dài caption sau khi lo i b outliner ạ ỏ

Cuối cùng nhóm th c hi n chia t p d ự ệ ậ ữ liệu thành 3 t p train, validation và test, trong ậ

đó

Trang 17

- Tập Validation: 10% dữ liệu: 786 nh, 3980 captions ả

- Tập test: 10% d ữ liệu: 786 nh, 3987 captions ả

3.3 Tiền xử lý d ữ liệu cho các mô hình

3.3.1 Mô hình Pretrained CNN LSTM –

Ảnh sẽ được resize lại về kích thước 256 x 256 Nếu ảnh chỉ có 1 channel màu, ta tiến hành chuyển v d ng 3 channel màu b ng cách hợp nh t 3 channel màu gi ng nhau ề ạ ằ ấ ốCaption sẽ được tokenize bằng thư viện VNCoreNLP, sau đó từ tokenize captions, nhóm s xây d ng b tẽ ự ộ ừ điển mà nh ng t xuất hi n trong từ ữ ừ ệ điển xu t hi n ít nh t 5 lấ ệ ấ ần, những từ nào xuất hiện ít hơn sẽ coi là unknown Cuối cùng các caption được tokenize s ẽđược encoded để phục vụ cho quá trình huấn luyện về sau, những caption có độ dài ngắn hơn 30 sẽ được thêm padding ở cuối

3.3.2 Mô hình ViT – GPT 2

Về nh ta x ả ử lý tương tự như mô hình Pretrained CNN – LSTM

Caption sẽ được tokenize và encode theo pretrained “NlpHUST/gpt2-vietnamese” của HuggingFace B t ộ ừ điển của mô hình cũng từ pretrained “NlpHUST/gpt2-vietnamese” của HuggingFace Cũng tương tự như mô hình Pretrained CNN – LSTM, những caption

có độ dài ngắn hơn 30 sẽ được thêm padding ở cuối

Trang 18

Decoder mô hình s d ng Pretrained Embedding Word2Vec v i embedding ử ụ ớsize=300

Cài đặt hyperparameter:

- Batch size: 32

- Encoder learning rate: 1e-4

- Decoder learning rate: 4e-4

- Optimizer: Adam

- Loss function: Cross Entropy Loss

Chiến lược huấn luyện:

- Pha 1: Đóng băng Encoder, chỉ huấn luy n Decoder ệ

- Pha 2: Huấn luyện toàn b mô hình ộ

4.1.2 Mô hình ViT – GPT2

Encoder và Decoder c a mô hình s d ng lủ ử ụ ần lượt hai mô hình pretrained pretrained

“google/vit-base-patch16-224-in21k” và “NlpHUST/gpt2-vietnamese” c a HuggingFace ủ

Cả hai mô hình được kết hợp với nhau qua class VisionEncoderDecoderModel của HuggingFace:

Hình 16: Khai báo mô hình ViT - GPT 2

Hyperparameter của mô hình được set mặc định theo Trainer Argument HuggingFace, c ụ thể ộ ố m t s hyperparameter:

Trang 19

- Learning rate: 5e-5

- Optimizer: Adam

- Batch size: thay đổi giá tr batch size mị ặc định thành 32

Mô hình hu n luy n sấ ệ ử ụ d ng API c a HuggingFace ủ

4.2 Độ đo đánh giá

ROUGE (Recall-Oriented Understudy for Gisting Evaluation) là một độ đo đánh giá chất lượng cho các mô hình tóm tắt văn bản và d ch máy, b ng cách tính tị ằ ỉ l n-Gram ệtrùng nhau giữa d ữ liệu d đoán với t p d liệự ậ ữ u g c (ROUGE- ố N)

ROUGE-N có công th c tính Precision, Recall và F1 ứ như ở dưới:

Trang 20

Hình 20: Longest Common Sequence

ROUGE-L có công thức tính Precision, Recall và F1như ở hình dưới:

Trang 21

Hình 21: ROUGE-L Precision, Recall và F1

Trong báo cáo này, nhóm sử d ng F1 c a ROUGE-1, ROUGE-2 và ROUGE-ụ ủ L đểlàm độ đo đánh giá mô hình

4.3 Đánh giá kết quả

4.3.1 Beam Search

Beam Search là thu t toán ph bi n trong nhi u bài toán sinh chuậ ổ ế ề ỗi văn bản như dịch máy ho c tóm tặ ắt văn bản, là m t thu t toán tìm kiộ ậ ếm giúp gia tăng độ chính xác c a quá ủtrình sinh chu ỗi

Ý tưởng của Beam Search là tại mỗi bước dự đoán, thay vì chỉ chọn ra 1 k t qu có ế ảxác su t l n nh t và ch phát triấ ớ ấ ỉ ển trên k t quế ả đó như thuật toán Greedy Search, ta s ẽ chọn

Trang 22

ra k t qu có xác su t cao nh t và phát tri n vik ế ả ấ ấ ể ệc tìm ki m t ế ừ k k t qu ế ả đó Trong đó k là

tham số tương ứng với s lượng ng viên ố ứ

Giá trị k càng l n, khớ ả năng sinh chu i tỗ ốt là cao hơn nhưng nó cũng tốn nhi u b ề ộnhớ và năng lực tính toán hơn

Hình 22: Thu t toán Beam Search ậ

Ở ví dụ trên, v i k = 2, thay vì xét m t k t quớ ộ ế ả là nice, Beam Search xét 2 k t qu là ế ảnice và dog, và từđó mở ng thêm ph m vi tìm ki rộ ạ ếm

4.3.2 Kết quả huấn luyện

4.3.2.1 Mô hình Pretrained CNN LSTM –

Kết qu hu n luy n: ả ấ ệ

- Pha 1: Huấn luyện trong 20 epoch, mô hình h i t epoch 11 ộ ụ ở

Trang 23

- Pha 2: Bắt đầu t mô hình t t nhừ ố ất trong pha 1, hu n luy n thêm 20 epoch, mô hình ấ ệhội tụ sau 7 epoch (epoch 18)

Đánh giá trên tập test với beam search khác nhau:

Beam size ROUGE-1 ROUGE-2 ROUGE-L Inference time

Đánh giá trên tập test:

Beam size ROUGE-1 ROUGE-2 ROUGE-L Inference time

là tốt hơn so với mô hình LSTM thu n Tuy nhiên, mô hình Pretrained CNN ầ – LSTM lại

có ưu điểm khi th i gian x ờ ử lý nhanh hơn nhiều so v i mô hình ViT GPT 2 ớ –

Trang 24

Chương 5 Kết lu ận và hướ ng phát tri n

Nhóm đã tìm hi u và xây dể ựng được 2 mô hình Image Captioning theo hai hướng s ửdụng mạng hồi quy và sử dụng Transformer Đồng thời nhóm cũng đã thực nghiệm mô hình trên t p d u ti ng viậ ữ liệ ế ệt

Kết qu ả thu được chưa đạt k t qu cao do giế ả ới hạn v bề ộ d ữ liệu và tài nguyên GPU,

và các tham s ố chưa được hiệ chỉu nh nhiều để ối ưu kết quả t

Hướng phát triển:

- Xây dựng bộ dữ liệu l n ớ hơn

- Tối ưu tham số cho mô hình

Chương 6 Tài liệu tham khảo

[1] Kelvin Xu, et al Show, Attend and Tell: Neural Image Caption Generation with Visual Attention arXiv:1502.03044v3 [cs.LG] 19 Apr 2016

[2] Dosovitskiy, Alexey, et al "An image is worth 16x16 words: Transformers for image recognition at scale." arXiv preprint arXiv:2010.11929 (2020)

[3] Radford, Alec, et al "Language models are unsupervised multitask learners." OpenAI blog 1.8 (2019): 9

Tài liệu Internet:

https://medium.com/@kalpeshmulye/image-captioning-using-hugging-face vision-encoder-decoder-step-2-step-guide-part-2-95f64f6b73b9

https://medium.com/@kalpeshmulye/image-captioning-using-hugging-face transformers/

Trang 25

https://ankur3107.github.io/blogs/the-illustrated-image-captioning-using https://huggingface.co/blog/how- -generateto

- https://towardsdatascience.com/the-ultimate-performance-metric- -nlp-in111df6c64460

Ngày đăng: 14/06/2024, 16:34

TỪ KHÓA LIÊN QUAN

TÀI LIỆU CÙNG NGƯỜI DÙNG

TÀI LIỆU LIÊN QUAN

w