Tải bản đầy đủ (.pdf) (54 trang)

(Đồ án tốt nghiệp) Tìm hiểu bài toán tạo câu mô tả cho ảnh thời trang dùng học sâu

Bạn đang xem bản rút gọn của tài liệu. Xem và tải ngay bản đầy đủ của tài liệu tại đây (3.62 MB, 54 trang )

TRƯỜNG ĐẠI HỌC SƯ PHẠM KỸ THUẬT TP. HỒ CHÍ MINH
KHOA ĐÀO TẠO CHẤT LƯỢNG CAO

ĐỒ ÁN TỐT NGHIỆP

TÌM HIỂU BÀI TỐN TẠO CÂU MƠ TẢ CHO ẢNH
THỜI TRANG DÙNG HỌC SÂU

SVTH: VŨ NGUN HƯNG
MSSV: 16110110
Khóa: 2016-2020
Ngành: Cơng nghệ thơng tin
GVHD: TS. Nguyễn Thiên Bảo

TP. Hồ Chí Minh, tháng 7 năm 2020


LỜI CẢM ƠN
Trong thời gian thực hiện khóa luận tốt nghiệp, em đã nhận được rất nhiều sự
giúp đỡ, hỗ trợ từ phía thầy cơ và các anh chị khóa trước.
Trước tiên em xin gửi lời cảm ơn chân thành đến thầy Nguyễn Thiên Bảo đã tận
tình hướng dẫn, truyền đạt kiến thức, kinh nghiệm cho em trong suốt quá trình thực
hiện đề tài.
Xin gửi lời cảm ơn đến quý thầy cô Khoa Công nghệ Thông tin, Trường Đại học
Sư phạm Kỹ thuật Tp. Hồ Chí Minh, những người đã truyền đạt kiến thức quý báu
cho em suốt trong thời gian học tập vừa qua.
Một lần nữa, xin chân thành cảm ơn.

iv



MỤC LỤC
NHIỆM VỤ ĐỒ ÁN TỐT NGHIỆP ................................................................. i
PHIẾU NHẬN XÉT CỦA GIÁO VIÊN HƯỚNG DẪN ................................. ii
PHIẾU NHẬN XÉT CỦA GIÁO VIÊN PHẢN BIỆN ................................... iii
LỜI CẢM ƠN ................................................................................................ iv
DANH MỤC CÁC HÌNH ............................................................................. vii
DANH MỤC CÁC BẢNG ............................................................................. ix
DANH MỤC CÁC TỪ VIẾT TẮT ................................................................. x
TÓM TẮT NỘI DUNG ĐỀ TÀI .................................................................... xi
CHƯƠNG 1: MỞ ĐẦU ................................................................................... 1
1.1 Sự cần thiết của đề tài. ............................................................................. 1
1.2 Mục đích của đề tài .................................................................................. 1
1.3 Cách tiếp cận và phương pháp nghiên cứu ............................................... 2
CHƯƠNG 2: BÀI TỐN MƠ TẢ HÌNH ẢNH THỜI TRANG ...................... 3
2.1 Giới thiệu bài tốn ................................................................................... 3
2.2 Giải pháp cho bài toán ............................................................................. 3
CHƯƠNG 3: HỌC SÂU.................................................................................. 5
3.1 Giới thiệu về Học sâu (Deep learning) ..................................................... 5
3.2 Mạng nơ-ron nhân tạo (Artificial Neural Network) .................................. 5
3.2.1 Cấu trúc ............................................................................................. 6
3.2.2 Phương thức hoạt động ...................................................................... 9
3.2.3 Phương pháp huấn luyện ................................................................. 12
3.3 Mạng nơ-ron tích chập (Convolutional neural network) ......................... 15
3.4 Mạng nơ-ron hồi quy (Recurrent neural network-RNN) ......................... 19
3.5 Mạng bộ nhớ Dài-Ngắn (Long-Short term memory network)................. 22
CHƯƠNG 4: HỌC SÂU VÀ BÀI TOÁN MƠ TẢ ẢNH THỜI TRANG ...... 26
4.1 Kiến trúc mơ hình học sâu đối với bài tốn ............................................ 26

v



4.2 Bộ mã hóa (Encoder) ............................................................................. 27
4.3 Bộ giải mã (Decoder) ............................................................................. 27
4.4 Cơ chế Attention .................................................................................... 29
4.5 Cơ chế đánh giá ..................................................................................... 31
4.5.1 Các độ đo sử dụng ........................................................................... 31
CHƯƠNG 5: HIỆN THỰC VÀ ĐÁNH GIÁ MƠ HÌNH ............................... 35
5.1 Bộ dữ liệu FashionGen........................................................................... 35
5.2 Hiện thực ............................................................................................... 35
5.3 Kết quả và đánh giá................................................................................ 38
CHƯƠNG 6: KẾT LUẬN ............................................................................. 41
6.1 Tổng kết ................................................................................................. 41
6.2 Ưu nhược điểm ...................................................................................... 41
6.3 Hướng phát triển tương lai ..................................................................... 41
TÀI LIỆU THAM KHẢO ............................................................................. 43

vi


DANH MỤC CÁC HÌNH
Hình 3.1: Cấu trúc nơ-ron sinh học
Hình 3.2: Cấu tạo của một nơ-ron nhân tạo.
Hình 3.3: Đồ thị của hàm step (trái) và hàm Sigmoid (phải).
Hình 3.4: Cấu trúc cơ bản của mạng nơ-ron nhân tạo.
Hình 3.5: Cấu trục ANN cùng với các tham số.
Hình 3.6: Learning rate của Gradient Descent.
Hình 3.7: So sánh giữa BGD, MGD, SGD.
Hình 3.8: Recceptive field trong CNN.
Hình 3.9: Phép tích chập.
Hình 3.10: Padding và Stride.

Hình 3.11: Pooling layer trong CNN.
Hình 3.12: Kiến trúc một mạng CNN cơ bản.
Hình 3.13: Mơ hình các dạng bài tốn RNN.
Hình 3.14: Kết nối trong RNN.
Hình 3.15: Tổng quan mơ hình LSTM.
Hình 3.16: Cổng qn trong LSTM và cơng thức.
Hình 3.17: Cổng vào trong LSTM và cơng thức.
Hình 3.18: Tế bào trạng thái trong LSTM và cơng thức.
Hình 3.19: Cổng ra trong LSTM và cơng thức.
Hình 4.1: Mơ hình bài tốn mơ tả ảnh.
Hình 4.2: Kiến trúc bộ giải mã.
Hình 4.3: Mơ hình bài tốn áp dụng cơ chế Attention.
Hình 5.1: Ảnh bộ đồ được chụp ở nhiều góc đồ và kèm theo câu mơ tả.
Hình 5.2. Cấu trúc mạng nơ-ron tích chập Resnet50.

vii


Hình 5.3. Hình ảnh kèm câu mơ tả được sinh ra từ mơ hình và câu mơ tả
của các chun gia thời trang.
Hình 5.1. Mơ hình đề xuất đưa ra câu mơ tả chưa chính xác.

viii


DANH MỤC CÁC BẢNG
Bảng 5.1. Kết quả huấn luyện so sánh giữa Soft-attention và mơ hình đề xuất.

ix



DANH MỤC CÁC TỪ VIẾT TẮT
NN: Neural network
ANN: Artificial neural network
CNN: Convolutional neural network
RNN: Recurrent neural network
SCA: Spatial and Channel-wise Attention
LSTM: Long-Short term memory
BLEU: Bilingual Evaluation Understudy Score
ROUGE: Recall-Oriented Understudy for Gisting Evaluation
CIDEr Consensus-based Image Description Evaluation

x


TĨM TẮT NỘI DUNG ĐỀ TÀI
Nội dụng của khóa luận tốt nghiệp này trình bày các kiến thức liên quan đến lĩnh
vực học sâu (Deep learning) bao gồm mạng nơ-ron nhân tạo (Artificial Neural
Network), mạng nơ-ron tích chập (Convolutional Neural Network) được áp dụng
trong thị giác máy tính (Computer vision) và mạng nơ-ron hồi quy (Recurrent Neural
Network) trong tác vụ xử lý ngôn ngữ tự nhiên (Natural Language Processing), và
các giải pháp cho bài tốn tạo câu mơ tả ảnh thời trang sự dụng kiến trúc mã hóa-giải
mã (Encoder-Decoder) và cơ chế chú ý (Attention).
Mục tiêu chính của bài tốn là tạo ra câu mơ tả hình ảnh thời trang bằng ngôn
ngữ tự nhiên một cách tự động. Để làm được việc này, dữ liệu đầu vào là bức ảnh sẽ
được xử lý và trích xuất các thơng tin trong bức ảnh bằng mạng nơ-ron tích chập, sau
bước này ta nhận được các véc-tơ mang thông tin bức ảnh. Véc-tơ này sẽ áp dụng cơ
chế chú ý (Attention) để xác định các đối tượng, đặc tính quan trọng nhất trong bức
ảnh cần được sử dụng ở các bước sinh từ cho câu mơ tả.
Việc đánh giá mơ hình thơng qua các độ đo, các độ đo này nói lên được sự tương

quan giữa câu mô tả được sinh ra so với câu mơ tả gốc. Vì vậy, việc lựa chọn độ đo
phù hợp với bài toán cũng là một vấn đề quan trọng trong việc đánh giá

xi


Chương 1: Mở đầu

CHƯƠNG 1:
MỞ ĐẦU
1.1 Sự cần thiết của đề tài.
Thị giác máy tính (Computer vision) là một nhánh trong lĩnh vực trí tuệ nhân tạo
(Artificial Intelligence) và Khoa học máy tính (Computer science). Lĩnh vực này giúp
máy tính có khả năng thị giác như con người, giúp máy tính có thể nhận diện và hiểu
biết một hình ảnh mang tính điện tử. Thị giác máy tính được áp dụng mạnh mẽ trong
các tác vụ nhận diện hình ảnh. Trong đề tài này mục tiêu là giúp cho máy tính có thể
tạo câu mơ tả cho hình ảnh thời trang tĩnh.
Trong thời đại công nghệ số đang phát triển mạnh mẽ, dẫn đến việc thương mại
điện tử cũng phát triển không ngừng, số lượng mặt hàng sản phẩm ngày càng tăng và
thay đổi nhanh chóng, điều này dẫn đến việc mơ tả cho sản phẩm ngày càng khó khăn,
mất nhiều thời gian và chi phí. Giải pháp cho vấn đề trên là áp dụng thị giác máy tính
vào tác vụ mơ tả ảnh, máy tính sẽ giúp con người tạo ta câu mô tả cho sản phẩm một
cách trực quan, đầy đủ ý nghĩa, giúp giảm thiểu chi phí và thời gian cho con người.
Do đó, bài tốn tạo câu mơ tả ảnh thời trang là bài tốn có tính ứng dụng cao trong
thực tiễn và đang được nhiều người quan tâm. Nhưng để máy tính có thể nhìn vào
ảnh và hiểu rồi sau đó đưa ra câu mơ tả bằng ngôn ngữ tự nhiên là một điều không hề
dễ dàng. Nó địi hỏi các thuật tốn phù hợp, nguồn dữ liệu đầu vào phong phú và
chính xác, đặc biệt là việc gắn nhãn cho dữ liệu đầu vào và dữ liệu câu mô tả cho
từng ảnh thời trang.
Thấy được tầm quan trọng của bài tốn mơ tả hình ảnh thời trang, em chọn đề tài

“Tạo câu mô tả hình ảnh thời trang ứng dụng Học sâu” để làm khóa luận.

1.2 Mục đích của đề tài
Đề tài này tập trung vào các mục đích sau:
- Tìm hiểu về bài tốn mơ tả ảnh thời trang
- Các kiến thức về Mạng thần kinh nhân tạo (ANN- ANeural network), Học sâu,
các mơ hình mạng nơ-ron như mạng nơ-ron tích chập (Convolution Neural Network
- CNN), mạng nơ-ron hồi quy (Recurrent Neural Network – RNN).

1


Chương 1: Mở đầu

1.3 Cách tiếp cận và phương pháp nghiên cứu
Cách tiếp cận: Sử dụng các mạng nơ-ron nhân tạo như mạng nơ-ron tích chập,
mạng nơ-ron hồi quy, và áp dụng các cơ chế attention (spatial attention, chanel-wise
attention) cho hình ảnh thời trang.
Phương pháp nghiên cứu: Nghiên cứu tài liệu, các bài báo, bài báo cáo liên
quan đến mô tả ảnh, các lý thuyết về học sâu, mạng nơ-ron và cơ chế attention

2


Chương 2: Bài tốn mơ tả ảnh thời trang

CHƯƠNG 2:
BÀI TỐN MƠ TẢ HÌNH ẢNH THỜI TRANG
2.1 Giới thiệu bài tốn
Tạo câu mơ tả hình ảnh thời trang là một ứng dụng của bài tốn mơ tả hình ảnh

nói chung [1]. Tạo câu mô tả ảnh là một lĩnh vực trong ngành Trí tuệ nhân tao, u
cầu máy tính có thể hiểu được nội dung của hình ảnh và mơ tải lại bằng ngôn ngữ tự
nhiên. Để giải quyết vấn đề trên ta cần phải tạo một mơ hình máy tính, mà mơ hình
đó phải hiểu được ngữ cảnh, vị trị và các đối tượng chính của bức ảnh để tạo được
câu mô tả hợp lý, đầy đủ ngữ nghĩa. Không những thế, để tạo ra câu mô tả tối ưu, mơ
hình cần phải có sự hiểu biết về ngữ pháp của ngơn ngữ đích.
Một trong những nhiệm vụ chính quyết định độ hiệu quả của mơ hình là việc trích
xuất thơng tin từ hình ảnh đầu vào ở định dang thơ sang đinh dạng mà mơ hình có thể
học và sử dụng được, các thơng tin được trích xuất từ hình ảnh được gọi là features,
và chúng thường được biểu diễn dưới dạng vector. Để trích xuất dữ liệu ta sẽ sử dụng
các kỹ thuật dựa trên Học sâu[2], các feature được học từ dữ liệu huấn luyện và chúng
có thể xử lý được số lượng lớn hình ảnh. Mạng nơ-ron tích chập (CNN)[3] được sử
dụng phổ biết trong tác vụ trích xuất và học các feature. Sau đó mơ hình sẽ sử dụng
mạng nơ-ron hồi quy (RNN)[4] để tạo ra câu mơ tả hình ảnh phù hợp.

2.2 Giải pháp cho bài toán
Các phương pháp để giải quyết bài tốn mơ tả ảnh thời trang có thể được chia
làm ba nhóm chính sau đây.
Template-based: Phương pháp tiếp cận dựa trên mẫu gồm có các ơ trống với số
lượng cố định tương ứng với một từ trong câu mô tả[5]. Trong các cách tiếp cận này,
các đối tượng, thuộc tính, hành động khác nhau được mơ hình xác định và sau đó các
ơ trống trong mẫu được lấp đầy. Các phương pháp dựa trên mẫu có thể tạo ra câu mơ
chính xác về mặt ngữ pháp. Tuy nhiên, các mẫu được xác định trước và không thể
tạo câu mô tả có độ dài thay đổi.
Retrieval-based: Các câu mơ tả có thể được truy hồi từ không gian ảnh và không
gian đa phương thức[5]. Trong các cách tiếp cận dựa trên phương pháp truy hồi, câu
mô tả được lấy từ tập hợp các câu mơ tả hiện có. Các phương pháp này trước tiên tìm
các hình ảnh tương tự nhau về mặt hình ảnh cùng với câu mơ tả của chúng từ tập dữ

3



Chương 2: Bài tốn mơ tả ảnh thời trang

liệu huấn luyện. Những câu mô này được gọi là các câu mô tả ứng viên. Khi truy vấn
câu mô tả nội dung cho hình ảnh, câu mơ tả phù hợp nhất trong nhóm ứng viên sẽ
được chọn. Những phương pháp này tạo ra câu mô tả khái quát và cú pháp chính xác.
Tuy nhiên, chúng khơng thể tạo câu mơ tả cho từng hình ảnh cụ thể và chính xác về
mặt ngữ nghĩa.
Translation-based: Phương pháp phiên dịch có thể tạo ra câu mô tả từ cả không
gian ảnh và không gian đa phương thức[5]. Cách tiếp cận chung của phương pháp
này là phân tích nội dung của hình ảnh trước và sau đó tạo câu mơ tả từ nội dụng phân
tích được bằng mơ hình ngơn ngữ. Các phương pháp này có thể tạo câu mơ tả mới
cho từng hình ảnh chính xác hơn về mặt ngữ nghĩa so với các phương pháp trước đây.
Hầu hết các phương pháp dựa trên học sâu đều áp dụng Translation-based.
Ngồi ra cịn có thể phân loại các phương pháp mô tả ảnh thời trang dựa trên deep
learning theo các kỹ thuật học khác nhau: học có giám sát (Supervised learning), học
tăng cường (Reinforcement learning), và học không giám sát (Unsupervised
learning). Thông thường câu mô tả được tạo cho tồn bộ khung cảnh trong hình ảnh.
Tuy nhiên, câu mơ tả cũng có thể được tạo cho các vùng khác nhau trong hình ảnh
(Dense captioning). Các mơ hình mơ tả ảnh thời trang có thể sử dụng kiến trúc bộ mã
hóa-giải mã đơn giản (Encoder-Decoder) [6] hoặc kến trúc thành phần
(Compositional) [7]. Cịn có các phương pháp sử dụng cơ chế chú ý (Attention
mechanism) [2], dựa trên các khái niệm về ngữ nghĩa (Semantic concept) [8], và các
phương pháp đi theo nhiều hướng khác nhau trong bài tốn mơ tả hình ảnh. Một số
phương pháp cũng có thể tạo ra câu mơ tả cho cả đối tượng không xuất hiện trong tập
huấn luyện.

4



Chương 3: Học sâu

CHƯƠNG 3:
HỌC SÂU
3.1 Giới thiệu về Học sâu (Deep learning)
Học sâu là một phân nhánh của ngành học máy dựa trên một tập hợp các thuật
toán để cố gắng mơ hình dữ liệu trừu tượng hóa ở mức cao bằng cách sử dụng nhiều
lớp xử lý với cấu trúc phức tạp.
Học sâu là một kỹ thuật trong học máy, có liên quan đến các thuật tốn lấy cảm
hứng dựa trên cấu trúc và cơ chế hoạt động của bộ não và được gọi là mạng thần kinh
nhân tạo (Artificial Neural Network - ANN). Một quan sát có thể được biểu diễn bằng
nhiều cách như một vector của các giá trị cường độ cho mỗi điểm ảnh, hoặc một cách
trừu tượng hơn như là một tập hợp các cạnh, các khu vực có hình dạng cụ thể (nhận
dạng khn mặt, nhận dạng các món quần áo đang mặc…)
Có nhiều kiến trúc Học sâu khác nhau như mạng nơ-ron tích chập (Convolution
Neural Network - CNN), mạng nơ ron hồi quy (Recurrent Neural Network - RNN),
Deep belief network (DBN), được áp dụng vào các lĩnh vực như thị giác máy tính
(Computer vision), nhận diện giọng nói (Speech recognition), xử lý ngôn ngữ tự nhiên
(Natural language processing). Deep learning được chứng mình là đã tạo ra các kết
quả rất tốt đối với nhiều nhiệm vụ khác nhau.

3.2 Mạng nơ-ron nhân tạo (Artificial Neural Network)
Mạng nơ-ron nhân tạo (Artificial Neural Network-ANN) [9] là một mơ hình tốn
học được xây dựng dựa trên mạng nơ-ron sinh học với cấu tạo giống với não động
vật. Các hệ thống trên được học để thực hiện một nhiệm vụ nào đó nhưng khơng cần
phải lập trình một cách cụ thể cho từng loại nhiệm vụ. Ví dụ trong tác vụ nhận diện
hình ảnh, hệ thơng mạng nơ-ron nhân tạo có thể nhận biết được bức ảnh có chứa chiếc
xe hay khơng bằng cách phân tích các hình ảnh dữ liệu mẫu được gắn nhãn là “car”
và “not car” và sử dụng kết quả để xác định chiếc xe trong các hình ảnh khác

Một mạng nơ-ron nhân tạo bao gồm tập các nút được liên kết với nhau gọi là nơron nhân tạo (Artificial neurons). Mỗi liên kết giữa các nút giống như các khớp thần
kinh (Synapses) trong bộ não sinh học, có thể truyền tín hiệu giữa các nơ-ron. Các
nơ-ron nhân tạo có thể nhận tín hiệu và xử lý thơng tin sau đó nó gửi đến các nơ-ron
nhân tạo mà nó liên kết

5


Chương 3: Học sâu

Trong những năm gần đây, mạng nơ-ron nhân tạo đang được áp dụng nhiều trong
các lĩnh vực như Thị giác máy tính (Computer vision), Nhận diện giọng nói (Speed
recognition), dịch văn bản (Translation)…

3.2.1 Cấu trúc
3.2.1.1 Mạng nơ-ron sinh học (Biological Neural Networks)
Cấu tạo của bộ não sinh học bao gồm 100 tỷ nơ-ron, những nơ ron này liên kết
với nhau tạo thành mạng lưới, gọi là mạng thần kinh sinh học. Các nơ ron tương tác
với nhau thông qua sợi trục (Axon) tới các sợi nhánh (Dendrite) của nơ-ron khác.
Mỗi lần não bộ phản ứng, xung thần kinh từ não bộ sẽ được gửi đi thông qua sợi
nhánh. Các xung thần kinh sẽ được Nucleus tổng hợp lại, trên mỗi nơ ron có một
ngưỡng kích thích, nếu như vượt qua ngưỡng này thì các xung thần kinh sẽ được
truyền qua nơ-ron khác dọc theo sợi trục.

Hình 3.1: Cấu trúc nơ-ron sinh học

3.2.1.2 Mạng nơ-ron nhân tạo
Để máy tính có thể học thì con người đã phải mơ phỏng 1 bộ phận quan trọng
của con người – bộ não, thứ giúp chúng ta có nhận thức, suy nghĩ, phân biệt mọi vật
thể xung quanh và ghi nhớ nó, cũng bao gồm nhiều nơ-ron tương tác với nhau, gọi là

mạng thần kinh nhân tạo.
Cấu tạo của của một nơ-ron nhân tạo

6


Chương 3: Học sâu

Hình 3.2: Cấu tạo của một nơ-ron nhân tạo.

Nơ-ron nhân tạo nhận thông tin qua các liên kết, mỗi liên kết có một trọng số
(weight) (𝑤1 , 𝑤2 , 𝑤3 ) cho biết mức độ quan trọng của dữ liệu đối với kết quả đầu ra
(a). Các dữ liệu đầu vào (𝑥1, 𝑥2 , 𝑥3 ) được nhân với trọng số sau đó cộng lại với nhau,
nếu giá trị thu được vượt quá ngưỡng quy định (threshold) thì nơ-ron đó sẽ được kích
hoạt, nếu nơ-ron được kích hoạt đồng nghĩa với việc giá trị đầu ra bằng 1, và bằng 0
cho ra kết quả ngược lại. Các dữ liệu đầu vào được phân phối độ quan trọng bằng
trọng số weight tương ứng và kết quả đầu ra được quyết định dựa vào ngưỡng quy
định (threshold).

𝑦={

0 𝑖𝑓 ∑ 𝑥𝑖 𝑤𝑖 ≤ 𝑡ℎ𝑟𝑒𝑠ℎ𝑜𝑙𝑑
1 𝑖𝑓 ∑ 𝑥𝑖 𝑤𝑖 > 𝑡ℎ𝑟𝑒𝑠ℎ𝑜𝑙𝑑

Để thuận tiện trong việc tính tốn ta đặt 𝑏 = −𝑡ℎ𝑟𝑒𝑠ℎ𝑜𝑙𝑑 và (1) có thể viết lại
thành

𝑦={

0 𝑖𝑓 ∑ 𝑥𝑖 𝑤𝑖 + 𝑏 ≤ 0

1 𝑖𝑓 ∑ 𝑥𝑖 𝑤𝑖 + 𝑏 > 0

Với kết quả đầu ra dạng nhị phân 0 và 1, nhược điểm ở đây là với một sự thay
đổi nhỏ ở dữ liệu đầu vào cũng có thể làm đảo ngược kết quả nhị phân ở đầu ra dần
đến sự thay đổi lớn ảnh hưởng tới toàn hệ thống mạng. Để khắc phục nhược điểm
trên kết quả đầu ra được quyết định bằng một hàm sigmoid 𝜎(𝑥𝑖 𝑤𝑖 + 𝑏).
Ta có cơng thức của hàm sigmoid như sau:
𝜎(𝑧) =

1
1 + 𝑒 −𝑧

7


Chương 3: Học sâu

Đặt 𝑧 = 𝑥𝑖 𝑤𝑖 + 𝑏 thì cơng thức lúc này sẽ có dạng:

𝜎 (𝑧) =

1
1 + 𝑒 −(𝑥𝑖𝑤𝑖+𝑏)

Hàm sigmoid là hàm số có giá trị giới hạn trong khoảng [0,1]. Hàm cho ra kết
quả càng tiến về 0 khi nhận một giá trị càng nhỏ và càng tiến về 1 khi nhận một giá
trị càng lớn.

Hình 3.3: Đồ thị của hàm step (trái) và hàm Sigmoid (phải).


Hàm sigmoid cũng bị giới hạn trong khoảng [0,1] tuy nhiên hàm sigmoid là hàm
số liên tục nên sẽ cho ra các giá trị trung gian trải dài trong khoảng [0,1]. Với một sự
thay đổi nhỏ ở dữ liệu đầu vào chỉ gây ra những thay đổi nhỏ ở kết quả đầu ra. Tạo
sự ổn định cho mơ hình.
Tương đồng với mạng thần kinh sinh học, mạng thần kinh nhân tạo bao gồm các
nơ-ron nhân tạo liên kết với nhau tạo thành mạng lưới nơ-ron nhân tạo. Các nơ-ron
nhân tạo được sắp xếp theo tường lớp và các nơ-ron ở lớp phía sau liên kết với các
nơ-ron ở lớp trước đó. Mỗi nơ-ron nhận dữ liệu đầu vào là kết quả đầu ra của nơ-ron
liên kết trước đó và tiếp tục truyền dữ liệu đến các lớp tiếp theo.

8


Chương 3: Học sâu

Hình 3.4: Cấu trúc cơ bản của mạng nơ-ron nhân tạo.

Mạng nơ-ron nhân tạo được chia làm 3 lớp chính: Lớp đầu vào (Input layer), lớp
ẩn (Hidden layer), lớp đầu ra (Output layer), các thành phần ở mỗi lớp được gọi là
các nút (nodes).
Mỗi mơ hình mạng ln có một input layer và một output layer, hidden layer có
thể có hoặc khơng.
Lớp đầu vào (Input layer): Là lớp đầu tiên của mạng nơ-ron, đảm nhiệm việc
tiếp nhận dữ liệu đầu vảo của cả mạng lưới. Ở lớp này chỉ thể hiện dữ liệu đầu vào,
khơng có tính toán. Số lượng nút ở lớp đầu vào phụ thuộc vào số chiều của dữ liệu
đầu vào.
Lớp đầu ra (Output layer): Là lớp cuối cùng của mạng nơ-ron, lớp này chính
là kết quả đầu ra của cả mạng lưới. Số lượng nút ở lớp này phụ thuộc vào số lượng
kết quả muốn dự đoán.
Lớp ẩn (Hidden layer): Là các lớp ở giữa của mạng nơ-ron, đảm nhiệm phần

tính tốn chính của mạng lưới, số lượng lớp và số lượng nút ở mỗi lớp tùy thuộc vào
độ phức tạp của bài toán cần dự đoán.
Nút (Nodes): Mỗi nút ở lớp ẩn và lớp đầu ra đều liên kết với tất cả các nút ở lớp
trước đó với các trọng số 𝑤 riêng biệt. Mỗi nút có hệ số bias 𝑏 riêng.

3.2.2 Phương thức hoạt động
Mạng nơ-ron nhân tạo có thể coi là một hàm số, nhận dữ liệu đầu vào và cho ra
kết quả mong muốn. Quá trình này diễn ra từ lớp đầu vào cho đến lớp đầu ra, lớp đầu

9


Chương 3: Học sâu

vào tiếp nhận thông tin dữ liệu và truyền cho các lớp kế tiếp, dữ liệu tiếp tục được
truyền cho đến khi nhận được kết quả đầu ra. Quá trình này được gọi là quá trình lan
truyền thuận (Feedforward).

Hình 3.5: Cấu trục ANN cùng với các tham số.
(𝐿)

Để dễ nắm bắt, các tham số trong mạng được ký hiệu 𝑎𝑖

là kết quả đầu ra của

(𝐿)

nơ-ron thứ i của lớp thứ L, 𝑤𝑖𝑗 là trọng số weight của liên kết thứ j của nơ-ron thứ
(𝐿)


i của lớp thứ L, 𝑏𝑖

là bias của nơ-ron thứ i của lớp thứ L.

Phương trình để tính tốn kết quả đầu ra của nơ-ron thứ i trong lớp thứ L:
(𝐿)

𝑎𝑖

(𝐿)

= 𝜎 (𝑤𝑖

(𝐿)

∙ 𝑥 (𝐿) + 𝑏𝑖 )
(𝐿−1)

𝑎1
(𝐿)

𝑤𝑖

(𝐿)
= [𝑤𝑖1

(𝐿)

𝑤𝑖2


(𝐿)
𝑤𝑖3 ]

𝑥 (𝐿) = [𝑎2(𝐿−1) ]
(𝐿−1)

𝜎(𝑧) =

1
1 + 𝑒 −𝑧

𝑎3

Để q trình tính tốn được thuận tiện cũng như tận dụng được khả năng tính
tốn song trên máy tính, ma trận đại số được sử dụng để có thể tính tốn kết quả đầu
ra của các nơ-ron trong một lớp cùng lúc. Cụ thể các véc-tơ tham số weight của các
nơ-ron trong một lớp sẽ được sắp xếp theo véc-tơ cột theo thứ tự tạo thành ma trận
các tham số weight của một lớp, tương tự với các tham số bias cũng được sắp xếp
vào một véc-tơ cột.

Phương trình để tính tốn kết quả đầu ra của lớp thứ L:

𝑎(𝐿) = 𝜎(𝑤 (𝐿) ∙ 𝑥 (𝐿) + 𝑏(𝐿) )

10


Chương 3: Học sâu

(𝐿)


𝑤12

(𝐿)
𝑤 (𝐿) = [𝑤21

𝑤22

(𝐿)

𝑤32

𝑤11

𝑤31

(𝐿)

𝑤13

(𝐿)

(𝐿)

(𝐿)
𝑤23 ]

(𝐿)

𝑤33


(𝐿)

(𝐿−1)

(𝐿)

𝑎1

𝑏1

𝑥 (𝐿) = [𝑎2(𝐿−1)]

𝑏(𝐿) = [𝑏2(𝐿) ]

(𝐿−1)

(𝐿)

𝑎3

𝑏3

(𝐿)

𝑎1

𝑎(𝐿) = [𝑎2(𝐿) ] nhận được là một véc-tơ cột chứa kết quả đầu ra của các nơ-ron
(𝐿)


𝑎3
trong lớp thứ L.

Các bước thực hiện thuật toán lan truyền thuận:

𝑥1
Bước 1: Sắp xếp dữ liệu đầu vào theo vec-tơ cột 𝑥 = [𝑥2 ], các tham số weight
𝑥3
của nơ-ron theo vec-tơ hàng 𝑤 = [𝑤1 𝑤2 𝑤3 ] sau đó sắp xếp với các nơ-ron
𝑤11 𝑤12 𝑤13
trong một lớp theo vec-tơ cột thành ma trận 𝑤 = [𝑤21 𝑤22 𝑤23 ], các tham số
𝑤31 𝑤32 𝑤33
𝑏1
bias của nơ-ron theo vec-tơ cột 𝑏 = [𝑏2 ].
𝑏3
Bước 2: Thực hiện phép nhân ma trận 𝑤 và 𝑥 , sau đó cộng ma trận đã nhân được
với ma trận 𝑏 và tính 𝜎(𝑥 ) cho từng phần tử của ma trận. Công thức: 𝑎 =

𝜎 (𝑤 ∙ 𝑥 + 𝑏).
Bước 3: Chuyển sang lớp tiếp theo. Lấy kết quả đã tính của lớp trước làm dữ liệu
đầu vào và lặp lại Bước 2 cho đến khi tới lớp cuối cùng.

𝑥1
𝑤11
𝑥
𝑤
[ 2 ] ⟶ 𝜎 ([ 21
𝑥3
𝑤31


𝑤12
𝑤22
𝑤32
𝑦̂
= [ 1]
𝑦̂2

𝑤13
𝑥1
𝑎1
𝑏1
𝑤
𝑤23 ] ⋅ [𝑥2 ] + [𝑏2 ]) = [𝑎2 ] ⟶ 𝜎 ([ 11
𝑤21
𝑤33
𝑥3
𝑎3
𝑏3

𝑤12
𝑤22

𝑎1
𝑤13
𝑏1
𝑎
𝑤23 ] ⋅ [ 2 ] + [𝑏2 ])
𝑎3

11



Chương 3: Học sâu

3.2.3 Phương pháp huấn luyện
3.2.3.1 Hàm mất mát (Loss function)
Mạng nơ-ron nhân tạo dự đoán kết quả dựa vào dữ liệu và các tham số trọng số
weight và bias, vì vậy mục đích của việc huấn luyện mơ hình là tìm ra được các tham
số trên sao cho phù hợp với kết quả dự đoán mong muốn. Hàm mất mát trả về một
giá trị không âm thể hiện sự chênh lệch hai đại lượng 𝑦̂ (giá trị được dự đốn) và 𝑦
(giá trị chính xác của tập dữ liệu).
Sai số tồn phương trung bình (Mean square error) là hàm mất mát được sử dụng
phổ biến trong mạng nơ-ron nhân tạo để đánh giá độ chính xác của mơ hình. Hàm sẽ
tính khoảng cách trung bình(Euclidean distance) giữa hai véc-tơ 𝑦 và 𝑦̂ trên toàn bộ
dữ liệu. Sai số toàn phương cho kết quả cảng nhỏ đồng nghĩa với việc mức độ sai
lệch giữa mơ hình dự đốn và giá trị thực tế càng nhỏ, và giá trị này bằng 0 khi mơ
hình dự đốn hồn tồn trùng khớp với giá trị thực tế của dữ liệu.
Để tối ưu hóa độ chính xác của mơ hình thì hàm mất mát cần đạt được giá trị nhỏ
nhất có thể. Điều này phụ thuộc vào các tham số trọng số weight và bias. Vì thế ý
nghĩa của quá trình huấn luyện mơ hình chính là tìm ra các tham số trọng số weight
và bias phù hợp mà ở đó hàm mất mát đạt giá trị cực tiểu.
3.2.3.2 Gradient Descent
Trong các bài tốn tối ưu, chúng ta thường xun phải tìm giá trị cực tiểu (hoặc
cực đại) của một hàm số nào đó. Tuy nhiên việc tìm giá trị mà tại đó hàm số đạt giá
trị nhỏ nhất (global minimum) của các hàm mất mát đôi khi là rất phức tạp. Thay vì
đi tìm global minimum, người ta sẽ đi tìm các điểm cực tiêu (local minimum), và xét
ở một mức độ nào đó, đây có thể coi là nghiệm của hàm mất mát cần tìm. Các điểm
local minimum là nghiệm của phương trình đạo hàm bằng 0, theo lý thuyết ta có thể
tìm tồn bộ các điểm local minimum sau đó thế lần lượt vào hàm số để tìm ra global
minimum. Tuy nhiên, trong thực tế việc giải phương trình đạo hàm bằng 0 đôi khi là

bất khả thi, nguyên nhân có thể đến từ sự phức tạp của hàm số, số lượng chiều dữ
liệu.
Giải pháp ở đây là chúng ta sẽ khởi tạo một điểm trong đồ hàm số và sử dụng
phép toán lặp để tiến dần về điểm cực tiểu. Gradient descent là một trong những
phương pháp được sử dụng nhiều nhất.
Thuật toán Gradient descent:

12


Chương 3: Học sâu

1. Khởi tạo giá trị 𝑥 = 𝑥𝑡 bất kỳ.
2. Gán 𝑥𝑡 = 𝑥𝑡−1 − 𝜂 ⋅ 𝑓′(𝑥𝑡−1 ) với 𝜂(𝑙𝑒𝑎𝑟𝑛𝑖𝑛𝑔 𝑟𝑎𝑡𝑒) là hằng số không âm.
3. Tính 𝑓(𝑥𝑡 ), nếu 𝑓(𝑥𝑡 ) đủ nhỏ thì ngừng vòng lặp, người lại tiếp tục thực
hiện bước 2.
Tốc độ hội tụ của Gradient Descent không chỉ phụ thuộc và điểm khởi tạo ban
đầu mà còn phụ thuộc vào tham số learning rate, do đó việc lựa chọn learning rate rất
quan trọng, sẽ có ba trường hợp xảy ra:
 Learning rate nhỏ: Tốc độ hội tụ chậm, ảnh hưởng nhiều đến tốc độ của
thuật toán.
 Learning rate quá lớn: Dẫn đến việc thuật tốn khơng tìm được giá trị nhỏ
nhất do bước nhảy quá lớn.
 Learning rate hợp lý: Tìm được giá trị nhỏ nhất phù hợp sau một số lần
lặp vừa phải.

Hình 3.6: Learning rate của Gradient Descent.

Thuật tốn Gradient Descent đề cập ở trên còn còn được gọi với tên khác là Batch
Gradient Descent. “Batch” ở đây được hiểu là tất cả, nghĩa là ta sẽ sử dụng tồn bộ

dữ liệu để tính tốn. Phương pháp này sẽ gặp một vài hạn chế đối với tập dữ liệu có
kích thước lớn. Việc tính tốn lại đạo hàm cho tất cả các điểm sau mỗi vòng lặp trở
nên tốn kém và khơng hiệu quả.
Để giải quyết khó khăn nêu trên, Stochastic Gradient Descent và Mini-Batch
Gradient Descent [10] là cải tiến của Batch Gradient Descent được sinh ra. Hai thuật
toán này đơn giản hơn Batch Gradient Descent tuy nhiên lại rất hiệu quả.

13


Chương 3: Học sâu

Stochastic Gradient Descent: Chỉ dùng một điểm dữ liệu cho mỗi lần thực hiện
bước tính đạo hàm. Mỗi lần duyệt qua toàn bộ dữ liệu được gọi là một epoch. Đối với
BGD thì mỗi epoch tương ứng với 1 lần cập nhật 𝑥, đối với SGD thì mỗi epoch tương
ứng với N lần cập nhật 𝑥 với N là số điểm dữ liệu
Mini-Batch Gradient Descent: Dùng một phần dữ liệu cho mỗi lần thực hiện
bước tính đạo hàm. MGD sử dụng một lượng 𝑛 lớn hơn 1 và nhỏ hơn 𝑁. MGD sẽ
chia toàn bộ dự liêu ra làm các mini-batch mỗi mini-batch có n dữ liệu (ngoại trừ
mini-batch cuối cùng có thể có số dữ liệu nhỏ hơn n do N không chia hết cho n. Mỗi
lần cập nhật, thuật toán này lấy ra một mini-batch để tính đạo hàm và cập nhật giá trị
hàm mất mát.

Hình 3.7: So sánh giữa BGD, MGD, SGD.

Hình trên mơ tả giao động giá trị của hàm mất mát đối với 3 thuật toán Gradient
Descent. Ta thấy BGD giảm đều sau mỗi epoch và đạt được giá trị hàm mất mát tối
ưu. MGD cũng có xu hướng giảm nhưng xuất hiện giao động tuy nhiên vẫn đạt được
giá trị hàm mất mát tối ưu. SGD thì có độ giao động lớn và sau rất nhiều bước vẫn
chưa đạt được giá trị tối ưu cho hàm mất mát.


3.2.3.3 Lan truyền ngược
Lan truyền ngược là một phương pháp hiểu quả để tính toán độ dốc (gradient)
của hàm mất mát, nhờ giải thuật này mà thuật toán tối ưu với đạo hàm (gradient
descent) được tính tốn hiệu quả hơn và được sử dụng để huấn luyện mạng thần kinh
nhân tạo.

14


Chương 3: Học sâu

Phương pháp lan truyền ngược đưa ra một chỉ số trung gian là chỉ số lỗi (error) –
đạo hàm riêng của hàm mất mát theo z (Đầu ra của nơ-ron khi chưa qua xử lý của
hàm kích hoạt). Giá trị lỗi này thể hiện độ lệch (sai số) của mỗi nơ-ron so với khi hội
tụ vì càng gần điểm hội tụ, giá trị lỗi này càng nhỏ và sấp xỉ bằng 0 khi hội tụ. Khi
tìm được chỉ số lỗi của từng đầu ra, ta có thể dễ dàng tính được độ dốc của tất cả các
tham số.

3.3 Mạng nơ-ron tích chập (Convolutional neural network)
Thị giác máy tính là một lĩnh vực nghiên cứu đang phát triển rất mạnh trong Học
sâu. Nó giúp con người thực hiện các cơng việc như phân loại hình ảnh, phát hiện vật
thể, áp dụng cho xe tự động lái, hệ thông nhận diện khn mặt trong bảo mật, chẩn
đốn bệnh bằng hình ảnh trong y tế. Tuy nhiên để máy tính có thể hiểu và học được
từ các hình ảnh khơng phải là điều dễ dàng. Máy tính hiểu hình ảnh là một ma trận
𝑚 × 𝑛 đối với ảnh đơn sắc hoặc một ten-xơ (tensor) 𝑚 × 𝑛 × 3 đối với ảnh hệ màu
RGB mỗi điểm ảnh (pixel) mang giá trị trong khoảng [0, 255]. Nếu chúng ta áp dụng
mạng nơ-ron multilayer perceptron thì số lượng các liên kết và có rất nhiều các tham
số. Ví dụ đối với một bức ảnh có kích thước 64 × 64 × 3 làm dữ liệu đầu vào thì số
lượng nút ở lớp đầu vào (input layer) là 12288 nút và lớp ẩn (hidden layer) sẽ phải

kết nối đầy đủ (fully connected) với lớp dữ liệu đầu vào này, giả sử lớp ẩn kế tiếp có
1000 nút thì số lượng liên kết là 12288000, số lượng bias là 1000 vậy tổng số lượng
tham số là 12289000 và đây mới chỉ là liên kết giữa hai lớp đầu tiên, điều đó tạo nên
một mạng nơ-ron với số lượng liên kết rất lớn, tạo cản trở lớn trong q trình huấn
luyện mơ hình. Mặt khác dữ liệu hình ảnh mang một lượng lớn thơng tin về mặt cấu
trúc không gian trong bức ảnh, nhưng một mạng nơ-ron kết nối đầy đủ thì khơng thể
mang được loại thơng tin này.
Mạng nơ-ron tích chập (Convolutional neural network-CNN) [11] được sinh ra
để giải quyết vấn đề trên. Mạng nơ-ron tích chập được áp dụng nhiều trong các tác
vụ như phân loại hình ảnh, nhận diện, khoanh vùng đối tượng. CNN có thể nắm bắt
được các thơng tin về cấu trúc khơng gian của bức ảnh, ngồi ra cịn có các tính chất
như chia sẻ các tham số (Parameter sharing), liên kết khơng tồn bộ giữa các lớp
(Sparsity of connections) giúp cho số lượng kết nối và tham số được giảm đi đáng kể,
từ đó tăng hiệu suất của hệ thống mạng nơ-ron.
Mạng nơ-ron tích chập đưa ra các khái niệm chính sau đây:
Vùng tiếp nhận cục bộ (Local recceptive fields): Trong mạng nơ-ron kết nối
đầy đủ truyền thống, mỗi nơ-ron sẽ được liên kết với tất cả các nơ-ron ở lớp trước đó.

15


Chương 3: Học sâu

Tuy nhiên trong kiến trúc CNN, mỗi nơ-ron chỉ liên kết với một vùng nhất định ở lớp
trước đó, vùng này được gọi là vùng tiếp nhận cục bộ (Recceptive fields), thông
thường vùng tiếp nhận này sẽ có dạng hình vng.
Recceptive fields giúp giảm đáng kể số lượng liên kết nơ-ron giữa các lớp và giúp
hệ thống mạng nơ-ron mang được các thông tin về mặt cấu trúc không gian, giúp
phân tách dữ liệu ảnh, chọn ra được những vùng dữ liệu mang giá trị cao.


Hình 3.8: Recceptive field trong CNN.

Chia sẻ trọng số (Shared-weight): Mỗi nơ-ron trong mạng tính tốn một giá trị
đầu ra bằng cách áp dụng một số hàm cho các giá trị đầu vào đến từ một vùng tiếp
nhận (receptive field) trong lớp trước đó. Hàm được áp dụng cho các giá trị đầu vào
được chỉ định bởi một véc-tơ chứa các tham số được huấn luyện. Q trình học của
mạng chính là việc thực hiện các điều chỉnh tăng hoặc giảm các tham số này sao cho
độ chính xác trong kết quả dự đoán của mạng được gia tăng. Véc-tơ chứa các tham
số này được gọi là các bộ lọc (filter), các véc-tơ học được từ q trình huấn luyện có
khả năng phát hiện các đặc điểm của bức ảnh (feature detector) (Ví dụ: Ở mức độ
thấp có thể nhận diện các góc cạnh, ở mức độ cao hơn có thể nhận diện các đối tượng
cụ thể nào đó trong bức ảnh). Một đặc điểm khác biệt của CNN là nhiều nơ-ron chia
sẻ cùng một bộ lọc. Điều này làm giảm đáng kể số lượng các tham số vì ta chỉ cần sử
dụng một véc-tơ tham số được sử dụng trên tất cả các vùng tiếp nhận, thay vì mỗi
vùng tiếp nhận cần một véc-tơ tham số riêng.
Tích chập (Convolutional): Là các lớp sử dụng phép tốn tích chập lên dữ liệu
đầu vào và chuyển kết quả sang lớp tiếp theo, các dữ liệu này là các dữ liệu hai chiều
hoặc ba chiều được biểu diễn bằng các ma trận hoặc các ten-xơ.

16


×