KIÊN THỨC NÊN TẢNG

Một phần của tài liệu Khóa luận tốt nghiệp Khoa học máy tính: Mô hình sáng tác thơ từ nội dung ảnh sử dụng mạng tạo sinh (Trang 39 - 67)

Ở chương này, chúng tôi sẽ trình bày những kiến thức nền tảng mà khoá luận

này sử dụng để xây dựng một mô hình phát sinh thơ từ hình ảnh. Lý thuyết về

kiến thức bao gồm: mạng nơ-rôn nhân tạo (Artificial Neural Networks), mạng nơ-

rôn tích chập (Convolution Neural Networks), mạng tạo sinh đối kháng (Generative

Adversarial Networks) và kiến thức về truy vẫn thông tin.

2.1 Tổng quan ve mạng nơ-rôn nhân tạo

Mạng nơ-rôn nhân tạo (Artificial Neural Network —- ANN) là mô hình xử lý thông

tin được mô phỏng dựa trên cách hoạt động của hệ thần kinh con người. Mặc dù

ngày nay mạng nơ-rôn chưa mô phỏng được bộ não con người một cách hoản hảo

nhưng nó lại được áp dụng phổ biến để giải quyết một van dé hay bài toán cụ thể. Thay vì dựa hoàn toàn vào cảm hứng về khoa học thần kinh, mạng nơ-rôn nhân tạo chủ yêu được nghiên cứu và phát triển dựa trên lĩnh vực toán học và kỹ thuật. Với cau trúc mạng gồm nhiều nơ-rôn (mỗi nơ-rôn là một chuỗi các phép toán) được kết nồi với nhau và xử lý thông tin bằng cách truyền theo các kết nối và tính giá trị mới tại các nơ-rôn, mạng nơ-rôn đã thực hiện được một số công việc gần giống với bộ não của con người như: học tập dựa trên kinh nghiệm (thông qua huấn luyện), có

Chương 2. KIEN THUC NEN TANG 23

khả năng lưu giữ kinh nghiệm, sự hiểu biết (tri thức) và sử dụng những tri thức san

có để giải quyết các bài toán (van dé) chưa biết.

2.1.1 Mạng lan truyền đa tầng thuận

Mạng lan truyền thuận đa tầng (Deep Feedforward Networks) là một trong những mô hình mạng nơ-rôn điển hình. Mục tiêu của mạng lan truyền thuận đa tầng là tìm ra một hàm số sao cho hàm số đó gần giống với hàm ƒ*. Giả sử trong một bộ phân lớp, ta có y = f*(x) là hàm sinh ra dữ liệu đầu ra từ dữ liệu đầu vào

x. Một mang lan truyền thuận được xác định bởi một ánh xạ 1 = ƒ(x,0). Giá trị của các tham số @ sẽ được học để tạo ra một hàm số sao cho gần giống với hàm ƒ* nhất.

Những mô hình mạng như thé này được gọi là lan truyền thuận bởi vì các thông tin

lan truyền qua hàm số đều được tính từ +, thông qua các phép tính trung gian trong

hàm ƒ và cuối cùng cho ra kết quả 1/35]. Mô hình không tồn tại loại kết nối truyền

ngược, tức là tại mỗi nơ-rôn trong một tang bat kỳ chỉ nhận liên kết từ các nơ-rôn ở tầng trước đó chứ nó không liên kết ngược lại với nơ-rôn ở tầng trước.

Mạng lan truyền thuận có vai trò rất quan trọng, đây là nền tảng của nhiều ứng dụng có vai trò quan trọng cũng như là bước ngoặt của một số mô hình học sâu (Deep Learning). Hai mô hình đặc biệt được phát triển dựa trên mạng lan truyền thuận sẽ được trình bày ở những phần sau đó là mạng nơ-rôn tích chập (Convolu- tion Neural Netwoks) dùng dé rút trích thông tin từ ảnh và mạng nơ-rôn truy hồi (Recurrent Neural Networks) được dùng trong các tác vụ liên quan đến xử lý ngôn

ngữ tự nhiên.

Mạng nơ-rôn lan truyền thuận được gọi là mạng vì chúng thường được biểu diễn đưới đạng hàm hợp (tức là kết hợp nhiều hàm khác nhau lại với nhau). Để hình dung

rõ hon, ta giả sử có 4 hàm ƒ+), f(2), ƒ(a) và f(4) kết nối với nhau tạo thành ham hợp f(x) = fea (Fay F(2) Fa (2)))) để mô tả kiến trúc mạng nơ-rôn (xem hình 2.1). Mỗi hàm ƒ thành phần tương ứng với một tang (không tính tang đầu vào) tương ứng

Chương 2. KIEN THUC NEN TANG 24

trong kiến trúc mạng. Các tầng này liên kết với nhau tạo thành một chuỗi, độ dài của chuỗi chính là độ sâu của mạng nơ-rôn. Kiến trúc của một mạng nơ-rôn gồm: một tầng đầu vào (Input layer), một hoặc nhiều tầng ẩn (Hidden layer) và một tầng đầu ra (Output layer). Cái tên "học sâu" mà chúng ta hay sử dụng ngày nay cũng bắt nguồn từ việc dùng một mạng nơ-rôn có nhiều tầng như ví dụ được trình bày ở

trên.

Output layer

Input layer

Hidden layer Hidden layer Hidden layer

HINH 2.1: Mang nơ-rôn lan truyền thuận với ba lớp ẩn.

Trong quá trình huấn luyện mạng nơ-rôn, ta cố gắng tìm và điều chỉnh hàm

ƒ(x,8) sao cho gần giống với hàm ƒ*(x) nhất có thể|35]. Để có thực hiện việc huấn

luyện cho mạng nơ-rôn, ta cần một tập dữ liệu và “dạy” cho mô hình mạng nơ-rôn theo phương pháp học có giám sát (Supervised learning). Với mỗi mẫu dữ liệu x,

đi kèm với nó là một nhãn y = f*(x). Với các mẫu dữ liệu trong tập dữ liệu huấn luyện, ta kỳ vọng tại tang đầu ra của mang nơ-rôn sẽ trả về giá trị gần với y tương ứng với mỗi điểm dữ liệu x. Vì dữ liệu huấn luyện chỉ cho biết kết quả đầu ra mà không cho cho biết tại mỗi tầng khác của mô hình mạng phải làm gì, nên bắt buộc thuật toán học phải tự quyết định xem tại mỗi tầng phải làm gì để đạt được kết quả

Chương 2. KIEN THUC NEN TANG 25

mong muốn. Cụ thé là tại mỗi tang, thuật toán hoc phải tìm cách làm cho hàm f xap

xỉ với hàm ƒ*. Do đó, các tang này có tên là tang ẩn.

2.1.2 Tang ẩn

Tang ẩn hay còn gọi là lớp ẩn. Một mạng nơ-rôn có thể có nhiều tầng ẩn, tuỳ vào mục đích và bài toán mà số tang sẽ thay đổi. Mỗi tang ẩn lại chứa một số lượng nhất định nơ-rôn nhằm rút trích một đặc trưng nào đó từ thông tin nhận được. Về bản chất thì mạng nơ-rôn xử lý dữ liệu hay tính toán đều thực hiện với dạng véc-tơ.

Từ tầng đầu vào cho tới tầng đầu ra của mạng đều là dạng véc-tơ. Mỗi phần tử của véc-tơ chứa thông tin của một nơ-rôn trong mạng dưới dạng số vô hướng. Để hình dung rõ hơn ta xem lại hình 2.1, có thể thấy rằng tại mỗi nơ-rôn của một tầng ẩn được kết nối đầy đủ với các nơ-rôn của tầng trước đó, tức là mỗi nơ-rôn sẽ nhận vào một véc-tơ và biến véc-tơ này thành số vô hướng thông qua một hàm số tương ứng của nơ-rôn đó. Các nơ-rôn trong cùng một tang có khả năng hoạt động song song với nhau. Sau khi có được kết quả từ hàm số tương ứng của nơ-ron, giá trị này tiếp tục được đưa qua hàm kích hoạt để trở thành giá trị kích hoạt (nơ-rôn cùng một tầng sẽ dùng chung một hàm kích hoạt). Lúc này giá trị của nơ-rôn mới sẵn sàng để truyền cho các nơ-rôn của tang tiếp theo. Một số hàm kích hoạt được dùng: sigmoid,

tanh, ReLU, leaky ReLU.

2.1.3 Tang dau ra

Ở tang đầu ra nhận được một véc-tơ tổng hợp lại các đặc trưng da được trích

xuất từ các tầng ẩn trước đó. Tầng đầu ra sẽ sử dụng một số hàm biến đổi để cho

ra kết quả thoả mãn với bài toán mà mạng nơ-rôn cần giải quyết. Hai hàm biến đổi được sử dụng phổ biến là hàm sigmoid và softmax.

Chương 2. KIEN THUC NEN TANG 26 2.2 Mạng nơ-rôn tích chap

2.2.1 Giới thiệu mạng nơ-rôn tích chập

Mạng nơ-rôn tích chập (Convolution Neural Networks - CNN) là một dạng

mạng nơ-rôn đặc biệt được phát triển để làm việc với hình ảnh lấy cảm hứng từ mạng nơ-rôn lan truyền thuận. Hình ảnh sẽ là vi du xuyên suốt trong toàn bộ các

ví dụ liên quan đến mạng tích chập của luận văn này. Vì đi lên từ mạng lan truyền thuận nên mạng tích chập cũng được biểu diễn dưới dạng hàm hợp. Ví dụ, ta có 3

ham f(1), f(2), f(3) tạo thành ham hợp f(X) = f(3)(f(2) (F(a) (X, W1), Wa), Ws). Trong

đó X là dữ liệu dau vào, các Wy, W2, W3 lần lượt là các trọng số tương ứng với các hàm ƒq), f(2), f(g). Kết quả của hàm ƒ() là đầu vào trực tiếp của f(z), kết qua của hàm f() là đầu vào trực tiếp của f(3). Quá trình học của mạng tích chập là cập nhật các trọng số W cho đến khi thoả mãn yêu cầu bài toán được đặt ra.

Sự khác biệt so với mạng nơ-rôn thông thường là các hàm thành phần của mạng tích chập nhận dữ liệu vào dưới dang tensor X € IRM**K thay vì véc-tơ. Trong đó

M, N lần lượt là chiều cao và chiều rộng của ảnh, K là số kênh màu. Nếu ảnh đầu vào là ảnh màu (thuộc 3 kênh màu RGB) thì X RMXX*3Š, còn nếu ảnh đầu vào là ảnh mức xám thì X € IR*XX*!, Các hàm thành phần của mạng nơ-rôn tích chập gồm có: hàm tích chập (convolution), hàm kích hoạt (activation), hàm chiết xuất (pooling), hàm chuẩn hoá (normalization) và hàm kết nối day đủ (fully connected).

Kết quả của mỗi hàm thành phần được gọi là ban đồ đặc trưng. Một mạng tích chập thường được chia thành 2 lớp dựa vào các hàm thành phần được nhắc đến ở trên: lớp tích chập (convolution) và lớp kết nối đầy đủ (fully connected). Ngoài ra, trong một mạng tích chập có thể có nhiều lớp tích chập kết nối với nhau.

Chương 2. KIEN THUC NEN TANG 27

Lớp đầu — —_> ..

vao

HÌNH 2.2: Kiến trúc mạng nơ-rôn tích chập.

Các Lớp kết nối đầy đủ

Nhãn đối tượng

2.2.2 Lớp tích chập

Lớp tích chập gồm có các hàm: tích chập, kích hoạt, chiết xuất, chuẩn hoá.

Ham tích chập (convolution)

Nếu như ở mạng nơ-rôn cơ bản, các nơ-rôn giữa các tầng phải kết nối đầy đủ với nhau dẫn đến số lượng tham số rất lớn thì ở mạng tích chập, mỗi nơ-rôn chỉ cần kết nối với một vài nơ-rôn cục bộ (một vùng cục bộ thay vì toàn bộ tắm ảnh) để giảm bớt số lượng tham số. Ta gọi bộ tham số ứng với liên kết của các nơ-rôn là bộ lọc

(filter hay kernel). Bộ lọc này sẽ được cập nhật trong quá trình học của mạng tích

chập. Chiều sâu của bộ lọc phải bằng chiều sâu của tensor đầu vào.

Phép tích chập được ký hiệu bằng dau sao (+) và có công thức tổng quát là:

ằ ằ KF 5 tv) f(x +u,y +0) (2.1)

—_ m,n

=—=20=—7

f(h,w) *k(m,n) =

Trong đó:

ƒ(h,u): ảnh có kích thước h x ¡0 k(m,n): bộ lọc có kích thước m x n xeEhyew

Chương 2. KIEN THUC NEN TANG 28

Kích thước ban dé đặc trưng kết quả được xác định bởi công thức sau:

Nin + 2p—k |

Nout = 1 (2.2)s T

Trong đó:

Nin: kích thước của tensor đầu vào Nout: kích thước của tensor đầu ra p: kích thước của viền đệm (padding)

k: kích thước của bộ lọc (kernel)

s: số bước nhảy (stride) của bộ lọc

Kernel Output

28 | 14 | 18 | 22

31 37 | 6 =u

73 46 | 3 | 23

62 57 | 33 | 16

HÌNH 2.3: Ví du minh hoa phép nhân tích chập với đầu vào là tensor

có kích thước 6x6, bộ lọc có kích thước 3x3 và sô bước nhảy là 1.

Hàm hoạt (activation)

Việc xuất hiện hàm kích hoạt ngay sau các giá trị của phép nhân tích chập là cần thiết. Vì phép nhân tích chập ban chat là một phép biến đổi tuyến tính, nếu không

có sự can thiệp của hàm kích hoạt thì tất cả nơ-rôn trong mạng đều trở nên tuyến

tính dẫn đến mạng nơ-rôn cũng trở thành hàm tuyến tính. Đây là điều không mong

muốn ở mạng nơ-rôn, vì thế tại hàm kích hoạt sẽ là hàm biến đổi phi tuyến, để khi

các giá trị đi qua hàm này đều sẽ thành giá trị phi tuyến. Một số hàm phi tuyến

thường gap là: sigmoid, tanh, ReLU (Rectified Linear Unit), Leaky ReLU... Trước khi

Chương 2. KIEN THUC NEN TANG 29

xuất hiện ham ReLU thì ham sigmoid va tanh được sử dung khá phổ biến. Nhung những năm trở lại đây, các nghiên cứu đã chỉ ra việc sử dụng hàm ReLU cho kết quả tốt hơn hai hàm trên. Cụ thể là hàm ReLU tính toán đơn giản (¢(x) ret = max(0,x)), tốc độ học nhanh (nhờ bỏ qua các giá trị âm).

Hàm chiết xuất (pooling)

Có thể nói chức năng chiết xuất là thành phần đóng vai trò cực kỳ quan trọng

trong mạng CNN. Nó thường được dùng trong việc giảm chi phi tính toán của mạng

bằng cách cô đọng những thông tin của nơ- rôn lân cận về một nơ-rôn. Điều này giúp giảm thiểu số lượng tham số đáng kể nhưng vẫn giữ lại được thông tin quan trọng. Một số hàm chiết xuất có thể kể đến là: max pooling (xác định thông tin có giá trị cao nhất), average pooling (trung bình cộng các giá trị thông tin)... Giống với nhân tích chập, phép chiết xuất cũng có bộ lọc trượt qua toàn bộ ảnh. Nhưng điểm khác

so với nhân tích chập là ở bộ lọc của chiết xuất không chứa tham số, nhiệm vụ của

bộ lọc là chọn ra giá trị thông tin cần cô đọng trong phạm vi của bộ lọc. Giả sử ta

có bản đồ đặc trưng kích thước 4x4 và bộ lọc kích thước 2x2 trượt qua bản dé đặc trưng với bước nhảy bằng 2. Cùng xem hình 2.4 để hình dung rõ hơn cách mà phép chiết xuất hoạt động.

Input Output

HINH 2.4: Vi du minh hoa vé max pooling.

Hàm chuẩn hoa (normalization)

Chương 2. KIÊN THUC NEN TANG 30

Chuẩn hoá dữ liệu giúp đẩy nhanh quá trình học của mạng, ngoài ra giúp ổn định các giá trị thông tin giúp mô hình hoc dé dang hơn.

2.2.3. Lớp kết nối day đủ

Lớp kết nối đầy đủ thực chất là một mạng nơ-rôn được kết nói đầy đủ từ các đặc trưng được rút trích từ lớp tích chập nhằm phân loại các đặc trưng với nhau. Sau cùng là hàm softmax đưa giá trị đầu ra của mạng nơ-rôn về không gian xác suất thuộc về lớp đối tượng.

2.2.4 Mạng nơ-rôn tích chập ResNet

Mạng ResNet (Residual Network) là một mạng nơ-rôn tích chập được công bồ

vào năm 2015 bởi He Kaiming ll, kiến trúc mạng này cũng đạt giải nhất trong cuộc

thi ILSVRC 2015.

Mạng ResNet được biết đến có thể giải quyết được các van dé liên quan đến hiện tượng Vanishing Gradient, một hiện tượng xảy ra đối với các mạng học sâu có nhiều lớp, khiến việc cập nhật trọng số không hiệu quả kéo theo sự giảm đi hiệu suất của mô hình. Để giải quyết vấn dé này, mạng Resnet dé xuất các kết nối tat (skip conection) đồng nhất để xuyên qua một hay nhiều lớp, tạo thành một khối gọi là Residual block. Các kết nối tắt giúp giữ thông tin không bị mất bằng cách kết nồi từ

lớp sớm trước đó tới lớp phía sau và bỏ qua một vài lớp trung gian, từ đó có thể hạn chế hiện tượng Vanishing Gradient.

ResNet hiện tai là kiến trúc được sử dung phổ biến, ResNet cũng là kiến trúc sớm nhất áp dụng batch normalization. Có rất nhiều biến thể của kiến trúc ResNet với số

lớp khác nhau như ResNet-18, ResNet-34, ResNet-50, ResNet-101, ResNet-152,... Với

tên là ResNet theo sau là một số chỉ kiến trúc ResNet với số lớp nhất định. Trong đó

có ResNet50 là kiến trúc mạng đáng chú ý, với kích thước chỉ khoảng 26 triệu tham

Chương 2. KIEN THUC NEN TANG 31

x

Weight layer

F(x) |

3

Weight layer identity

HINH 2.5: Hình minh họa một Residual block

số, ResNet50 hiệu quả trong việc giải quyết các bài toán liên quan đến phân lớp va cho kết quả cao hơn các mạng nổi tiếng như VGG16 và VGG19.

2.3 Mạng nơ-rôn hồi quy

2.3.1 Giới thiệu mạng nơ-rôn hoi quy

Mạng nơ-rôn hồi quy (Recurrent Neural Networks - RNN) cũng là một dạng đặc biệt của mạng nơ-rôn nhân tạo được đề cập ở phần trước. Mạng hồi quy sinh ra để giải quyết các bài toán phụ thuộc vào thông tin ngữ cảnh, có tính tuần tự. Vì vậy

nó được áp dụng trên những bài toán như: phân loại văn bản, dịch văn bản, tóm tắt văn bản, sinh ngữ... Bản chất của mạng hồi quy là tổng hợp và lan truyền thông tin theo trình tự xâu chuỗi nên đầu ra của mạng đáp ứng được tính khắt khe về trình

Chương 2. KIEN THUC NEN TANG 32

tự va ngữ nghĩa của các bài toán thuộc lĩnh vực xử lý ngôn ngữ tự nhiên (Natural

Language Processing - NLP). Các loại dữ liệu phù hợp mô hình mạng hồi quy có

thể kể đến là: văn bản, âm thanh, đữ liệu liên quan đến chuỗi thời gian khác.

Gọi là mạng hồi quy vì mạng nơ-rôn này thực hiện tác vụ trên các dữ liệu của

một chuỗi là như nhau. Vừa nhận thông tin đầu vào, vừa phụ thuộc vào các phép tính trước đó nên mạng truy hồi có khả năng tổng hợp và "nhớ" một lượng thông tin trước đó, đủ để bảo toàn thông tin có tính trình tự và có ngữ nghĩa. Trên thực tế thì mạng hồi quy chỉ nhớ được thông tin ngắn hạn, néu như yêu cầu bài toán đòi hỏi phải đáp ứng khả năng nhớ dài hạn thì mạng hồi quy không giải quyết được. Tức là nếu để mạng hồi quy làm việc với một câu dai (ví dụ câu dài khoảng 20 từ hoặc hon) thì việc tổng hợp thông tin càng ve cuối câu sẽ không còn nhớ được những thông tin ở đầu câu nữa. Vấn đề này sẽ được giải quyết trong phần mạng chuỗi nhớ ngắn dài được trình bày ở phần sau.

oO.) 0, On)

^ a A a

V V V V

W

G ) “,@-"ơ>@-"-@-*> > > >

a trải ra rN A ˆ

U U U U

xr x, x x,

HINH 2.6: Kiến trúc mang nơ-rôn hồi quy.

Hình 2.5 minh hoa cho cấu trúc của mạng nơ-rôn hồi quy. Ở hình bên trái mô tả

ngắn gọn tổng thể cầu trúc của mô hình. Mạng nơ-rôn hồi quy nhận đầu vào x, sau khi được tính toán tại nơ-rôn s thì cho ra kết quả o. Quá trình này được lặp lại trên

Một phần của tài liệu Khóa luận tốt nghiệp Khoa học máy tính: Mô hình sáng tác thơ từ nội dung ảnh sử dụng mạng tạo sinh (Trang 39 - 67)

Tải bản đầy đủ (PDF)

(108 trang)