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

Báo cáo môn học Đề tài ứng dụng convolutional neural networks (cnn) vào phân loại ảnh

22 0 0
Tài liệu được quét OCR, nội dung có thể không chính xác
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 đề Ứng Dụng Convolutional Neural Networks (CNN) Vào Phân Loại Ảnh
Tác giả Nguyễn Văn Khụi, Nguyễn Thị Hường, Đặng Tuần Khỏi, Nguyễn Trường Sơn
Trường học Đại Học Quốc Gia Hà Nội
Chuyên ngành Khoa Học Tự Nhiên
Thể loại báo cáo
Năm xuất bản 2022
Thành phố Hà Nội
Định dạng
Số trang 22
Dung lượng 5,04 MB

Nội dung

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 1

BAO 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 3

CHUONG 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 5

Mang 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 6

Trong 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 7

Dù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 8

ReLU 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 9

Fully 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 10

Cá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 11

Color 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 đó

Ngày đăng: 26/12/2024, 17:14

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

TÀI LIỆU LIÊN QUAN