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 3 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 đề Ứng Dụng Convolutional Neural Networks (CNN) Vào Phân Loại Ảnh
Tác giả Ngô 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,44 MB

Nội dung

Tuy nhiên, mãi đến năm 2012, khi một nhà khoa học máy tính người Ukraine Alex Krizhevsky đệ của Geoffrey Hinton xây d ng mô hình CNN AlexNet và s d ng ự ử ụGPU để tăng tốc quá trình hu n

Trang 1

ĐẠI H C QU C GIA HÀ N I Ọ Ố Ộ TRƯỜNG ĐẠI H C KHOA H C T NHIÊN Ọ Ọ Ự

KHOA TOÁN – CƠ – TIN HỌC

- -

BÁO CÁO MÔN H C

ĐỀ TÀI: ỨNG D NG CONVOLUTIONAL NEURAL Ụ

NETWORKS (CNN) VÀO PHÂN LO I Ạ ẢNH

H c viên Mã h c viên

Ngô Văn Khôi 20007916 Nguy n Th ễ ị Hường 20007918 Đặng Tuấn Khải 20007917 Nguyễn Trường Sơn 20007910

Hà N - ội 2022

Trang 2

Trang 2

MỤC LỤC

CHƯƠNG 1: LÝ THUYẾT 3

1.1 G I I THI UỚ Ệ 3

1.2 B ÀI TOÁN PHÂN LOẠI ẢNH 3

1.3. CẤU TRÚC MẠNG CNN 4

1.4 M t s ộ ố phương pháp tăng hiệu năng CNN 9

1.4.1.Data augmentation 9

1.4.2.Transfer learning 12

CHƯƠNG 2: ÁP DỤNG CHO BÀI TOÁN PHÂN LOẠI ẢNH CHÓ VÀ MÈO 15

2.1 T RÌNH BÀY VỀ D Ữ LIỆU 15

2.2. PHƯƠNG PHÁP TIỀN XỬ LÍ D Ữ LIỆU 15

2.3 T RÌNH BÀY VỀ CÁC PHƯƠNG PHÁP MÔ HÌNH ĐÃ SỬ- DỤNG 15

2.3.1 Mô hình đơn giả n gồm các l ớp Convolutional (đạt accuracy 72%) 15

2.3.1.1 Mô hình 15

2.3.1.2 Kết quả 16

2.3.2 Mô hình g m các lồ ớp Convolutional như trên nhưng s  d ng thêm k  thut data augmentation (đạt accuracy 85%) 18

2.3.2.1 Mô h nh 18 

2.3.2.2 Kết quả 19

2.3.3 Phương pháp transfer learning, s d ng pretrained model InceptionV3  20

2.3.3.1 Mô h nh 20 

2.3.3.2 Kết quả 22

Trang 3

Trang 3

CHƯƠNG 1: LÝ THUYẾT

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 đó, năm 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 tính người Ukraine Alex Krizhevsky (đệ của Geoffrey Hinton) xây d ng mô hình CNN (AlexNet) và s d ng ự ử ụGPU để tăng tốc quá trình hu n luy n deep nets ấ ệ để đạt được 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 v i sụ ớ ự hỗ trợ ủa cGPU để ả gi i quy t rất nhi u vế ề ấn đề trong Computer Vision

1.2 Bài toán 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 con người v i, chúng ta lại có bản năng tuyệ ời đểt v 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

Trang 4

Để biểu diễn m t bức ảnh 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 C u trúc m ng CNN ấ ạ

CNN bao g m t p h p các lồ ậ ợ ớp cơ bản như sau: convolution layer + nonlinear layer, pooling layer, fully connected layer Các l p 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 tầng 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 ềconvolution layer + nonlinear layer + pooling layer có thể được lặp đi lặp l i nhi u l n trong ạ ề ầnetwork Và sau đó được lan truy n qua t ng fully connected layer và h m ề ầ à softmax để tính xác suất ảnh đó thuộc lớp n o à

Trang 5

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) Còn trong mô hnh 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ờ ậy mà ta có đượ v 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 filter áp đặt lên một vùng nh cả ục bộ ủa neuron trước đó 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 dùng để chắt l c 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 m ng (traning) CNN 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 nh, CNNs s c ự ứ ạ ự ệ ụ ụ ớ ả ẽ ố

g ng tìm ra thông s tắ ố ối ưu cho các filter 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 ủ ủCNN 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

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 ảnh để tính 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 dướ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 2x2x1, feature map có kích thước 7x7x1 M i giá tr ỗ ị ở feature map được tính

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 ủ ộ ớ ả

Và để tính tất c 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 ủ

Tầng 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 ảnh Vì b filter quét qua toàn b bộ ộ ức ảnh, nên những đặc trưng này có thể ằm ở ị n v trí b t kì 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 filter 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

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, chấ ằ ỉ ở 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 Đ ều này có nghĩa i

là, filter đã 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 ố ợ

Nonlinear Layer

ReLU (Rectified Linear Units, f = max(0, x)) là hàm kích ho t ph bi n nh t cho CNN ạ ổ ế ấ

tính đến thời điểm hi n tệ ại, được gi i thi u bớ ệ ởi Geoffrey E Hinton năm 2010 Trước khi 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

và gi m th i gian hu n luyả ờ ấ ện đi đáng k ể

Trang 9

Trang 9

Fully Connected Layer

Tầng cu cùng c a mô hình CNN trong bài toán phân loối ủ ại ảnh là t ng 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 t 0-1, t ng 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ô hình 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 ụ ậcho quá trình cập nhật tr ng s ọ ố

1.4 M t s ộ ố phương pháp tăng hiệu năng CNN

Trang 10

Trang 10

Các phương thứ data augmentation cơ bảc n 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

Color shift (Chuyển đổi màu): 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ể ể hết cả ngày k

Information loss (M t thông 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 11

Trang 11

Geometry based: Đủ các thể loại xoay, l t, scale, padding, bóp hình, biến dạng hình, ậ Color based: giống như trên, chi tiết hơn chia làm (i) tăng độ ắc nét, (ii) tăng độ s sáng, (iii) tăng độ tương phản hay (iv) đổi sang ảnh negative - âm bản

Vấn đề của data augmentation: Tính phụ thuộc dữ liệu và ng d ng ứ ụ

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 u s có cách thộ ữ liệ ẽ ức riêng để augmentation sao cho ra kết quả t t nhố ất

Trang 12

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 dữ liệu ảnh tự nhiên như CIFAR10 và ImageNet th lại

tốt với thu t toán random-cropping, image mirroring, color shifting/whitenting Không ch ậ ỉ

có v y mà m t s augmentation method không t t cho m t s t p dậ ộ ố ố ộ ố ậ ữ liệu Đơn cử là horizontal flipping tốt cho CIFAR10 nhưng không tốt cho MNIST (b i vì 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 ần đầu năm 1993 và lsau đó viế ại nó dướt l 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ó

Trang 13

Trang 13

Ưu điểm của transfer learning:

(1) Cải thiện accuracy và tiết kiệm chi phí 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 hu n luyề ấ ện hơn để đạt được độ 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 áp dụng transfer learning

Từ đồ thị ta có th ể thấy s d ng transfer learning s mang lử ụ ẽ ại 3 lợi thế chính:

Có điểm khởi đầu c a accuracy tủ ốt hơn (higher start)

Accuracy có tốc đ tăng nhanh hơn (higher slope).ộ

Đườ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 cùng tác v phân lo i sứ ừ ới ụ ạ ẽ giúp các mô hnh được huấn luy n d báo tệ ự ốt hơn vớ ữ liệu mới v mô hnh được học trên cả 2 ngu n tri thi d ồ ức đó là dữ

liệu hu n luy n và d ấ ệ ữ ệu mà nó đã đượli c học trước đó

Trang 14

Trang 14

Kinh nghiệm sử d ng transfer learning ụ

Đối v i d ớ ữ liệu nhỏ: Train l i toàn b các layers s làm mạ ộ ẽ ất đi các đặc trưng đã được học

t model pretrained và d n t i mô hình d báo s không chính xác Chúng ta ch nên ừ ẫ ớ ự ẽ ỉtrain lại các fully connected layers cu ối

Đố ới v i dữ liệu l n và gi ng domain: Có th train l i model trên toàn bớ ố ể ạ ộ layers Nhưng

để quá trình huấn luyện nhanh hơn th chúng ta sẽ thực hiện bước khởi động (warm up)

và sau đó mới fine tuning lại mô hình

Đối v i dữ liệu l n và khác domain: Chúng ta nên hu n luy n l i model tớ ớ ấ ệ ạ ừ đầu vì pretrain-model không tạo ra được các đặc trưng tốt cho dữ liệ u khác domain

Trang 15

Trang 15

CHƯƠNG 2: ÁP DỤNG CHO BÀI TOÁN

PHÂN LO ẠI Ả NH CHÓ VÀ MÈO

2.1 Trình bày v dề ữ liệu

B dộ ữ liệu về ảnh chó và mèo chia thành t p train và t p validation T p train gậ ậ ậ ồm

2000 nh g m 1000 nh chó và 1000 nh mèo T p validation g m 1000 nh g m 500 nh ả ồ ả ả ậ ồ ả ồ ảchó và 500 ảnh mèo

Ma tr n thậ ể hiện bức ảnh g m 3 l p (vì là ồ ớ ảnh màu) nhưng số chiều c a củ ác ảnh thì khác nhau Giá tr t ng ô n m trong kho ng [0, 255] ị ừ ằ ả

2.2 Phương pháp tiền xử lí dữ liệ u

Thiết lập các data generators để đọc cái file nh, chuy n chúng thành d ng tensor ả ể ạfloat32, và truy n vào model ề

Trong quá trình truy n d n ề ẫ ảnh vào model, chúng ta normalize giá tr pixel v khoị ề ảng [0, 1], và chi u cề ủa ảnh được chuẩn hóa v d ng (150, 150, 3) ề ạ

2.3 Trình bày v ề các phương pháp mô hình đã sử ụng- d

2.3.1 Mô hình đơn giản gồm các lớp Convolutional (đạt accuracy 72%)

2.3.1.1 Mô hình

Mô hnh được s d ng bao g m 3 l p Convolutional theo sau là 1 l p Fully Connected ử ụ ồ ớ ớ

và s dử ụng đầu ra là hàm Sigmoid

Ngày đăng: 14/05/2024, 16:08

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

TÀI LIỆU LIÊN QUAN