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
báo cáo môn học đề tài ứng dụng convolutional neural networks cnn vào phân loại ảnh

Đ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

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

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

Trang 3

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

Trang 5 M ng CNN là 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 p theo ớ tiế

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 ilà, 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

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 thái chết, tức là luôn có giá trị < 0

Pooling Layer

Sau hàm kích hoạt, thông thường chúng ta s d ng t ng pooling M t s ử ụ ầ ộ ố loại pooling layer ph biổ ến như là max-pooling, average pooling, v i chớ ức năng chính là giảm chi u cề ủa tầng trước đó Với một pooling có kích thước 2x2, ch ng ta c n ph tú ầ ải rược filter 2x2 này trên nh ng vùng ữ ảnh có kích thước tương tự rồi sau đó tính max, hay average cho vùng ảnh đó

Ý tưởng đằng sau tầng pooling là vị trí tuyệt đối của những đặc trưng trong không gian nh không còn c n thiả ầ ết, thay vào đó vị trí tương đối giữ các đặc trưng đã đủ để phân loại đối tượng Hơn nữa, t ng pooling có kh ầ ả năng giảm chi u d ề ữ liệu, gi p h n ch overfit, ú ạ ế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

1.4.1.Data augmentation

Hiện nay trong deep learning thì vấn đề d u có vai trò r t quan tr ng Chính vì vữ liệ ấ ọ ậy những lĩnh vực có ít d ữ liệu cho vi c train model thì rệ ất khó để tạo ra được k t qu t t trong ế ả ốvi c dệ ự đoán Do đó người ta cần đến m t kộ ỹ thuật g i là ọ tăng cường dữ liệu (data 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 được tạo ra thêm từ một ảnh gốc ban đầu

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

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

Tài liệu cùng người dùng

  • Đang cập nhật ...

Tài liệu liên quan