Dữ liệu đầu vào của bài toán là một bức ảnh.. Mô hình phân lớp sẽ phái dự đoán được lớp của ánh từ ma trận điểm ánh này, ví dụ như ảnh đó là con mèo, chó, hay là chim... Thông thường, mộ
Trang 1BAO CAO MON HOC
DE TAI: UNG DUNG CONVOLUTIONAL NEURAL
NETWORKS (CNN) VAO PHÂN LOẠI ANH
Hoc vién Ma hoc vién Ngô Văn Khôi 20007916
Nguyễn Thị Hường 20007918 Đặng Tuần Khái 20007917
Hà Nội - 2022
Trang 2
MỤC LỤC
IS: l9 0 0009 /,:diiiiốÝÝÝ 3 1.3 UW 000 0c 90 n0 ố ẽ C (((((3 4 1.4 Một số phương pháp tăng hiệu năng CÍNÌN Ă cc TH HH nu 9 1.4.1.Data augmenation - nén nh kg kh 9
3 080906 da 12
CHƯƠNG 2: ÁP DỤNG CHO BÀI TOÁN PHÂN LOẠI ÁNH CHÓ VÀ MÈO 15
PP ANH), 030.1905705 .ad.aaiIIII 15 2.2 PHƯƠNG PHÁP TIÊN XỬ LÍ DỮ LIỆU c t1 cv kh kg như 15 2.3 TRÌNH BÀY VỀ CÁC PHƯƠNG PHÁP - MÔ HÌNH ĐÃ SỬ DỤNG .c {se 15 2.3.1 Mô hình đơn gián gầm các lớp Convolufional (đạt accuracy 72%) 15
Trang 3CHUONG 1: LY THUYET
1.1 Giới thiệu
Convolutional Neural Networks (CNN) là một trong những mô hình deep learning
phô biên nhất và có ảnh hưởng nhiều nhất trong cộng đồng Computer Vision CNN được
dùng trong trong nhiều bài toán như nhân dạng ảnh, phân tích video, ảnh MRI, và hầu hết đều giải quyết tốt các bài toán này
CNN cũng có lịch sử khá lâu đời Kiên trúc gốc của mô hình CNN được giới thiệu
bởi một nhà khoa học máy tính người Nhật vào năm 1980 Sau d6, nim 1998, Yan LeCun
lần đầu huần luyện mô hình CNN với thuật toán backpropagation cho bài toán nhận dạng
chữ viết tay Tuy nhiên, mãi đến năm 2012, khi một nhà khoa học máy tinh nguoi Ukraine Alex Krizhevsky (dé cua Geoffrey Hinton) x4y dng m6 hinh CNN (AlexNet) va su dung
GPU dé tang téc qua trinh huan luyén deep nets dé dat duoc top 1 trong cuéc thi Computer
Vision thường niên ImageNet với độ lỗi phân lớp top 5 giảm hơn 10% so với những mô
hình truyền thống trước đó, đã tạo nên làn sóng manh mẽ sử dụng CNN voi sy hé tro cua GPU dé giai quyết rất nhiều van dé trong Computer Vision
1.2 Bai toan phân loại ảnh
Phân loại ánh là một bài toán quan trọng bậc nhất trong lĩnh vực Computer Vision
Chúng ta đã có rất nhiều nghiên cứu đề giải quyết bài toán này bằng cách rút trích các đặc trưng rất phô biến như SIFT, HOG nhưng những cách này tỏ ra không thực sự hiểu quả Ngược lại, đối với con người, chúng ta lại có bản năng tuyệt vời để phân loại được những đôi tượng trong khung cảnh xung quanh một cách dễ dàng
Dữ liệu đầu vào của bài toán là một bức ảnh Một ánh được biêu thị bằng ma trận các giá trị Mô hình phân lớp sẽ phái dự đoán được lớp của ánh từ ma trận điểm ánh này, ví dụ
như ảnh đó là con mèo, chó, hay là chim
Trang 4
Đề biểu diễn một bức anh 256x256 pixel trong máy tính thì ta cần ma trận có kính
thước 256x256, và tùy thuộc vào bức ảnh là có màu hay ảnh xám thì ma trận này sẽ có số
kênh tương ứng, ví dụ với ánh màu 256x256 RGB, chúng ta sẽ có ma trận 256x256x3 để biều diễn ảnh này
1.3 Cau trac mang CNN
CNN bao gém tap hop cac Iép co ban nhu sau: convolution layer + nonlinear layer,
pooling layer, fully connected layer Cac lop này liên kết với nhau theo một thứ tự nhất
định Thông thường, một ánh sẽ được lan truyền qua tang convolution layer + nonlinear
layer đầu tiên, sau đó các giá trị tính toán được sẽ lan truyền qua pooling layer, bộ ba convolurion layer + nonlinear layer + pooling layer có thê được lặp đi lặp lại nhiều lần trong network Va sau d6 duoc lan truyén qua tang fully connected layer va ham softmax dé tinh xác suất ánh đó thuộc lớp nào
Trang 5Mang CNN [a một tập hợp các lớp Convolution chồng lên nhau và sử dụng các hàm nonlinear activation như ReLU và tanh để kích hoạt các trọng só trong các node Mỗi một lớp sau khi thông qua các hàm kích hoạt sẽ tạo ra các thông tin trừu tượng hơn cho các lớp tiếp theo
Mỗi một lớp sau khi thông qua các hàm kích hoạt sẽ tạo ra các thông tin trừu tượng
hơn cho các lớp tiếp theo Trong mô hình mạng truyền ngược (feedforward neural network)
thì mỗi neural đầu vào (input node) cho mỗi neural đầu ra trong các lớp tiếp theo
Mô hình này gọi là mạng kết nôi đầy đủ (fully connected layer) hay mạng toàn vẹn (affine layer) Con trong m6 hinh CNNs thì ngược lại Các layer liên kết được với nhau
thông qua cơ chế convolution
Layer tiếp theo là kết quả convolution từ layer trước đó, nhờ Vậy mà ta có được các két nói cục bộ Như vậy mỗi neuron ở lớp ké tiếp sinh ra từ kết quả của ñlter ap đặt lên một
vùng ảnh cục bộ của neuron trước đó
Mỗi một lớp được sử dụng các filter khác nhau thông thường có hàng trăm hàng nghìn
filter như vậy và kết hợp kết quá của chúng lại Ngoài ra có một số layer khác như
pooling/subsampling layer ding dé chat loc lại các thông tin hữu ích hơn (loại bỏ các thông
tin nhiễu)
Trong quá trình huán luyện mang (traning) GNN tự động học các giá trị qua các lớp
filter dựa vào cách thức mà bạn thực hiện Ví dụ trong tác vụ phân lớp anh, CNNs sẽ có
gắng tìm ra thông số tôi ưu cho các fñlter tương ứng theo thứ tự raw pixel > edges > shapes
> facial > high-level features Layer cuối cùng được dùng đề phân lớp ảnh
Convolution Layer
Convolution layer là lớp quan trọng nhát và cũng là lớp đầu tiên của của mô hình
GNN Lớp này có chức năng chính là phát hiện các đặc trưng có tính không gian hiệu Quả
Trang 6Trong tầng này có 4 đối tượng chính là: ma trận đầu vào, bộ filters, và receptive field, feature map Conv layer nhận đầu vào là một ma trận 3 chiều và một bộ filters cần phải
học Bộ filters này sẽ trượt qua từng vị trí trên bức anh dé tinh tích chập (convolution) giữa
bộ filter và phần tương ứng trên bức ảnh Phần tương ứng này trên bức ảnh gọi là receptive field, tức là vùng mà một neuron có thê nhìn thấy đê đưa ra quyết định, và mà trận cho ra bởi quá trình này được gọi là feature map
Với ví dụ ở bên đưới, dữ liệu đầu vào ở là ma trận có kích thước 8x8x1, một bộ filter
có kích thước 2x2xI1, feature map có kích thước 7x7x1 Mỗi giá trị ở feature map duoc tinh
bằng tông của tích các phản tử tương ứng của bộ filter 2x2x1 với receptive field trên ảnh
Va dé tinh tat ca các giá trị cho feature map, cần trượt filter từ trái sang phải, từ trên xuống dưới Do đó, chúng ta có thẻ tháy rằng phép convolution bảo toàn thứ tự không gian của các điểm ảnh Ví dụ điềm góc trái của dữ liệu đầu vào sẽ tương ứng với bên một điềm bên góc trái của feature map
ma trận đầu vào ma trận đầu ra
receptive field filter/kernel
Tang convolution có chức năng chính là phát hiện đặc trưng cụ thể của bức ảnh Những đặc trưng này bao gồm đặc trưng cơ bản là góc, cạnh, màu sắc, hoặc đặc trưng phứC tạp hơn như texture của anh Vì bộ filter quét qua toàn bộ bức ảnh, nên những đặc trưng
này có thẻ nằm ở vị trí bat ki trong bức ảnh, cho dù ánh bị xoáy trái/phái thì những đặc
trưng này vẫn bị phát hiện
Ở minh họa dưới, chúng ta có một ñiter 5x5 dùng để phát hiện góc/cạnh với, filter
này chí có giá trị một tại các điểm tương ứng một góc cong
Trang 7Dùng filter ở trên trược qua ảnh của nhân vật Olaf trong trong bộ phim Frozen Chúng
ta thấy rằng, chi ở những vị trí trên bức ánh có dạng góc như đặc trưng ở filter thì mới có
giá trị lớn trên feature map, những vị trí còn lại sẽ cho giá trị thấp hơn Điều này có nghĩa
là, ñlter đã phát hiện thành công một dạng góc/cạnh trên dự liệu đầu vào Tập hơn nhiều
bộ filters sẽ cho phép phát hiện được nhiều loại đặc trưng khác nhau.và giúp định danh được đối tượng
hàm ReLU được áp dụng thì những hàm như sigmoid hay tanh mới là những hàm được Sử
dụng phô biến Hàm ReLU được ưa chuộng vì tính toán đơn gián, giúp hạn chế tình trạng
vanishing gradient, và cũng cho kết quả tốt hơn ReLU cũng như những hàm kích hoạt khác, được đặt ngay sau tảng convolution, ReLU sẽ gán những giá trị âm bằng 0 và giữ
nguyên giá trị của đầu vào khi lớn hơn 0
Trang 8ReLU cũng có một số vấn đề tiềm ân như không có đạo hàm tại điềm 0, giá trị của
hàm ReLU có thẻ lớn đến vô cùng và nếu chúng ta không khởi tạo trọng số cân thận, hoặc
khởi tạo learning rate quá lớn thì những neuron ở tàng này sẽ rơi vào trạng thai chét, tức là
8 2 2 | 0 34|70|47Ì 4 average pooling
và giám thời gian huán luyện đi đáng kẻ
Trang 9Fully Connected Layer
Tang cudi clung cua mé hinh CNN trong bai toan phan loai anh la tang fully connected layer Tàng này có chức năng chuyên ma trận đặc trưng ở tầng trước thành vector chứa xác suất Của các đôi tượng cần được dự đoán Ví dụ, trong bài toán phân loại số viết tay MNIST
có 10 lớp tương ứng 10 sé tir 0-1, tang fully connected layer sé chuyên ma trận đặc trưng của tầng trước thành vector có 10 chiều thê hiện xác suất của 10 lớp tương ứng
Và cuối cùng, quá trình huấn luyện mô hinh CNN cho bài toán phân loại ảnh cũng
tương tự như huấn luyện các mô hình khác Chúng ta cần có loss function đề tính sai số
giữa dự đoán của mô hình và nhãn chính xác, cũng như sử dụng thuật toán backpropagation
augmentation) đê phục vụ cho việc néu bạn có ít dữ liệu, thì bạn vẫn có thể tạo ra được nhiều dữ liệu hơn dựa trên những dữ liệu bạn đã có Ví dụ như hình dưới, đó là các hình
duoc tao ra thêm từ một ảnh góc ban dau
Trang 9
Trang 10Các phương thức data augmentation co ban cho Computer Vision:
Flip (Lật): lật theo chiều dọc, ngang miễn sao ý nghĩa của ánh (label) được giữ nguyên
hoặc suy ra được Ví dụ nhận dạng quả bóng tròn, thì lật kiểu gì cũng ra quả bóng Còn
với nhận dạng chữ viết tay, lật số 8 vẫn là 8, nhưng 6 sẽ thành 9 (theo chiều ngang) và không ra số gì theo chiều dọc
Random crop (Cắt ngẫu nhiên): cắt ngấu nhiên một phần của bức ảnh Lưu ý là khi cắt phải giữ thành phản chính của bức ảnh mà ta quan tâm Như ở nhận diện vật thé, néu ảnh được cắt không có vật thẻ, vậy giá trị nhãn là không chính xác
* Image without any + Flipped with respect toan + Rotation with a slight + Random focus on one
modification axis for which the meaning angle part of the image
of the image is preserve
4] jimage.jpg 904x367 149 KB
Color shift (Chuyén d6i mau): Chuyên đổi màu của bức ánh bằng cách thêm giá trị vào
3 kênh màu RGB Việc này liên quan tới ảnh chụp đôi khi bị nhiễu > màu bị ảnh hưởng
Noise addition (Thêm nhiễu): Thêm nhiễu vào bức ánh Nhiễu thì có nhiều loại như nhiễu ngẫu nhiên, nhiễu có mẫu, nhiễu cộng, nhiễu nhân, nhiễu do nén ảnh, nhiễu mờ do chụp không lấy nét, nhiễu mờ do chuyền động có thê kế hết cả ngày
Information loss (Mat thong tin): Một phần của bức hình bị mát Có thẻ minh họa trường hợp bị che khuát
Constrast change (Đôi độ tương phản): thay độ tương phản của bức hình, độ bão hòa
Trang 10
Trang 11Color shift Noise addition Information loss Contrast change
* Nuances of RGB is slightly + Addition of noise + Parts of image ignored * Luminosity changes
changed * More tolerance to quality « Mimics potential loss of * Controls difference in
Captures noise that can variation of inputs parts of image exposition due to time of
¢ Geometry based: Du cac thé loai xoay, lat, scale, padding, bóp hình, biến dạng hình,
¢ Color based: giéng nhw trén, chi tiét hon chia lam (i) tăng độ Sắc nét, (ii) tăng độ sáng,
(ii) tăng độ tương phản hay (iv) d6i sang anh negative - Am ban
Tùy thuộc vào dữ liệu (só lượng mẫu, tính balance/imbalance của mẫu, dữ liệu test,
v.v và ứng dụng tương ứng Nghĩa là mỗi bộ dữ liệu sẽ có cách thức riêng để augmentation
sao cho ra kết quả tốt nhát
Trang 11
Trang 12Điền hình là dữ liệu MNIST được cho là tốt với phương pháp elastic distortion, scale, translation, và rotation Trong khi đữ liệu ảnh tự nhiên như CIFARI10 và ImageNet thì lại tốt với thuật toán random-cropping, image mirroring, color shiftingAwhitenting Không chi
cé vay ma mét sé augmentation method không tốt cho một số tập dữ liệu Đơn cử là horizontal flipping tot cho CIFAR10 nhung không tốt cho MNIST (bởi vi flip là thành số
khác)
1.4.2.Transfer learning
Trong quá trình bùng nó của deep learning, các tài nguyên vẻ AI ngày càng dỏi dào Song song với quá trình phát triển đó, ngày càng có nhiều các pretrained model có chất lượng tốt và độ chính xác cao Hầu như mọi domain đều có thẻ tìm kiếm được các pretrained
model
Lý thuyết về transfer learning được Lorien Pratt thực nghiệm lần đầu năm 1993 va
sau đó viết lại nó dưới dạng một lý thuyết toán học vào năm 1998 đã hiện thực hóa ý tưởng
về chuyên giao tri thức giữa các mô hình như giữa con người với nhau
Một mô hình đã có khả năng tận dụng lại các tri thức đã huấn luyện trước đó và cái
thiện lại trên tác vụ phân loại của nó
TRAINING FROM SCRATCH
Trang 13Ưu diém cua transfer learning:
(1) Cai thigén accuracy va tiét kiém chi phi hu@n luyện
Ví dụ trong bài toán phân loại chó và mèo Nếu huần luyện từ đầu, chúng ta sẽ tôn nhiều epochs huan luyén hon dé dat duoc độ chính xác cao Tuy nhiên néu bạn biết tận dụng lại các pretrained model thì sẽ cần ít epochs huán luyện hơn đề đạt được một độ chính xác mong đợi Thậm chí độ chính xác có thê lớn hơn so với khi không ap dung transfer learning
higher slope higher asymptote
Tir dé thi ta c6 thé thay sir dung transfer learning sé mang lai 3 loi thé chính:
e Có điểm khởi đầu của accuracy tốt hơn (higher start)
e Accuracy C6 téc dé tang nhanh hon (higher slope)
e Đường tiệm cận của độ chính xác tối ưu cao hơn (higher asymptote)
(2) Hiếu qu¿ với d# liều nhỏ
Trong trường hợp bộ dữ liệu có kích thước quá nhỏ và khó có thể tìm kiếm và mở rộng thêm thì các mô hình được huán luyện từ chúng sẽ khó có thẻ dự báo tốt Tận dụng lại
tri thức từ các pretrained-model với cùng tác vụ phân loại sẽ giúp các mô hình được huấn
luyện dự báo tốt hơn với dữ liệu mới vì mô hình được học trên cá 2 nguàn tri thức đó là dữ
liệu huán luyện và đữ liệu mà nó đã được học trước đó