Bạn đang xem bản rút gọn của tài liệu. Xem và tải ngay bản đầy đủ của tài liệu tại đây (5.44 MB, 22 trang )
<span class="text_page_counter">Trang 1</span><div class="page_container" data-page="1">
<b>ĐẠ</b>I H C QU C GIA HÀ N I <b>ỌỐỘTRƯỜNG ĐẠI H C KHOA H C T NHIÊN ỌỌỰ</b>
KHOA TOÁN <b>– CƠ – TIN HỌC </b>
------
H c viên <i>ọ</i> Mã h c viên <i>ọ</i>
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
</div><span class="text_page_counter">Trang 2</span><div class="page_container" data-page="2">2.2.<small> </small>P<b><small>HƯƠNG PHÁP TIỀN XỬ LÍ D Ữ LIỆU</small></b> ... 15
2.3. T<b><small> RÌNH BÀY VỀ CÁC PHƯƠNG PHÁP MƠ HÌNH ĐÃ SỬ</small></b>- <b><small> DỤNG</small></b> ... 15
<i><b>2.3.1. Mơ hình đơn giản gồm các lớp Convolutional (đạ</b></i>t accuracy 72%) ... 15
</div><span class="text_page_counter">Trang 3</span><div class="page_container" data-page="3">CNN cũng có lịch sử khá lâu đời. Kiến trúc gốc của mô hnh 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<b>ại ảnh</b>
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 tố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.
</div><span class="text_page_counter">Trang 4</span><div class="page_container" data-page="4"><small>Trang 4 </small>Để 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 <b>ấạ</b>
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. à
</div><span class="text_page_counter">Trang 5</span><div class="page_container" data-page="5"><small>Trang 5 </small>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 tồn vạ ẹn (affine layer). Cịn trong mơ hnh 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 nghn filter như vậy và k t h p k t qu c a chúng l i. Ngồ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ả.
</div><span class="text_page_counter">Trang 6</span><div class="page_container" data-page="6"><small>Trang 6 </small>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á trnh 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 tồ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.
</div><span class="text_page_counter">Trang 7</span><div class="page_container" data-page="7"><small>Trang 7 </small>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 tố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.
</div><span class="text_page_counter">Trang 8</span><div class="page_container" data-page="8"><small>Trang 8 </small>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à ln 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 . ể
</div><span class="text_page_counter">Trang 9</span><div class="page_container" data-page="9"><small>Trang 9 </small>Fully Connected Layer
Tầng cu cùng c a mơ hình CNN trong bài tố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 ự đố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, q trình hu n luy n mơ hình CNN cho bài tố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 ữ ự đốn của mơ hnh và nhãn chính xác, cũng như sử d ng thu t tốn backpropagation ụ ậcho q trình cập nhật tr ng s . ọ ố
1.4. M t s <b>ộ ố phương pháp tăng hiệu năng CNN</b>
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ệ ự đố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ư hnh dưới, đó là các hnh được tạo ra thêm từ một ảnh gốc ban đầu.
</div><span class="text_page_counter">Trang 10</span><div class="page_container" data-page="10"><small>Trang 10 </small>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 hnh, độ bão hòa.
</div><span class="text_page_counter">Trang 11</span><div class="page_container" data-page="11"><small>Trang 11 </small> 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.
</div><span class="text_page_counter">Trang 12</span><div class="page_container" data-page="12"><small>Trang 12 </small>Đ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 tố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 tố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ô hnh như giữa con người với nhau.
Một mơ hnh đã 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ó
</div><span class="text_page_counter">Trang 13</span><div class="page_container" data-page="13"><small>Trang 13 </small>Ưu điểm của transfer learning:
(1) C<i><b>ải thiệ</b></i>n accuracy và ti<i><b>ết kiệ</b></i>m chi phí hu<i><b>ấn luyệ</b></i>n
Ví d trong bài tố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).
<i><b>(2) Hiệu qu vả ới dữ liệu nhỏ</b></i>
Trong trường hợp bộ dữ liệu có kích thước q nhỏ và khó có thể tìm kiếm và mở rộng thêm th các mô hnh đượ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ô hnh được huấn luy n d báo tệ ự ốt hơn vớ ữ liệu mới v mô hnh đượ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 đó.
</div><span class="text_page_counter">Trang 14</span><div class="page_container" data-page="14"><small>Trang 14 </small>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.
</div>