Ọ
Ệ
Ễ
Ệ Ư H C VI N CÔNG NGH B U CHÍNH VI N THÔNG
Ệ
KHOA CÔNG NGH THÔNG TIN I
Ứ
Ụ
Ạ
Ề
Ậ TÊN Đ TÀI: NG D NG M NG NEURAL TÍCH CH P
Ậ
Ạ
Ả
TRONG NH N D NG HOA QU
Ố
Ệ CHUYÊN NGÀNH :H TH NG THÔNG TIN
Ả
ƯỚ
GI NG VIÊN H
NG D N
Ễ Ẫ :PGS.TS. NGUY N QUANG HOAN
Ộ
HÀ N INĂM 2021
Ọ
Ệ
Ễ
Ệ Ư H C VI N CÔNG NGH B U CHÍNH VI N THÔNG
Ệ
KHOA CÔNG NGH THÔNG TIN I
Ứ
Ụ
Ạ
Ề
Ậ TÊN Đ TÀI: NG D NG M NG NEURAL TÍCH CH P
Ậ
Ạ
Ả
TRONG NH N D NG HOA QU
Ố
Ệ CHUYÊN NGÀNH :H TH NG THÔNG TIN
Ả
ƯỚ
GI NG VIÊN H
NG D N
Ễ Ẫ :PGS.TS. NGUY N QUANG HOAN
Ộ
HÀ N INĂM 2021
2
Ụ Ụ M C L C
3
M Đ UỞ Ầ
ế ạ ạ ạ ọ ọ ắ M ng neural nhân t o hay g i ng n g n là m ng neural (ti ng anh là
ề ấ ạ ổ ộ Artifical Neural Network) đang là v n đ khá n i trong cu c cách m ng công
ứ ệ ọ ổ ứ ứ ngh 4.0. Các nhà nghiên c u, các nhà khoa h c, t ụ ch c đã và đang ng d ng
ờ ố ề ệ ế ằ ơ ạ khá nhi u công ngh liên quan đ n m ng neural vào đ i s ng h ng ngày. Đ n
ố ượ ệ ạ ả ậ ạ gi n là vi c phân lo i, nh n d ng các đ i t ầ ng trên camera. Chúng góp ph n
ố ượ ệ ậ ạ ả ỏ ằ không nh cho vi c qu n lý, nh n d ng các đ i t ả ng nh m gi m thi u s ể ự
ệ ủ ườ khó khăn trong công vi c c a con ng i.
ề ệ ượ ỗ ợ ể ọ Ở ướ n c ta, n n nông nghi p đ c chú tr ng phát tri n. M i đ t thu
ạ ả ườ ả ạ ả ho ch nông s n, ng ằ i nông dân ph i làm thao tác phân lo i nông s n b ng
ủ ứ ệ ệ ấ ấ ơ ờ các bi n pháp th công nên r t m t th i gian, công s c. Đây là công vi c đ n
ư ả ạ ả ưở ố ớ ấ ớ ể ệ gi n nh ng l i nh h ng r t l n đ i v i quy mô phát tri n nông nghi p.
ẽ ủ ờ ự ệ ể ệ ạ ự ọ Hi n nay nh s phát tri n m nh m c a công ngh trong lĩnh v c h c
ệ ử ụ ụ ụ ạ ạ máy. Vi c s d ng các m ng neural nhân t o trong các máy móc ph c v nông
ứ ứ ệ ề ẫ ấ nghi p khá là hay, luôn h p d n các nghiên c u sinh nghiên c u v nó. Do đó,
ờ ự ỡ ừ ầ ự ể ướ ề ẫ nh s tìm hi u và s giúp đ t th y h ạ ọ ng d n, em ch n đ tài: “M ng
ứ ụ ệ ạ ả Couvolutional Neural Network và ng d ng trong vi c nhân d ng hoa qu ”.
ư ồ ộ Bài báo cáo g m 3 n i dung chính nh sau:
ươ ớ ệ ổ Ch ng I: Gi i thi u t ng quan
ươ ể ạ ạ Ch ng II: Tìm hi u m ng Couvolutional Neural Netwok và mô hình m ng
ươ Ứ ụ ậ Ch ạ ng III: ng d ng Couvolutional Neural Network cho bài toán nh n d ng
hoa qu .ả
4
ụ Danh m c ch vi ữ ế ắ t t t
Tên vi t
ế ắ t t ANN CNN ế Nghĩa ti ng viêt ạ ạ M ng neural nhân t o ậ ạ M ng neural tích ch p
ị ơ ỉ ReLU ế Nghĩa ti ng anh Artifical Neural Network Couvolutional Neural Netwok Rectified Linear Unit
Đ n v tính toán ch nh l uư
5
ụ ồ ị Danh m c đ th
6
ươ Ớ Ệ Ổ Ch ng I: GI I THI U T NG QUAN
ể ậ ạ ả I.1. Phát bi u bài toán nh n d ng hoa qu
ơ ả ệ ạ ậ ạ ộ Bài toán nh n d ng là m t bài toán khá c b n trong trí tu nhân t o,
ề ả ế ế ế ề ầ ọ h c sâu… Nó là n n t ng cho h u h t các lý thuy t liên quan đ n nhi u bài
ở ộ ư ớ ị ị ệ ậ ể toán m r ng khác nh phân l p, đ nh v , tách bi t v t th ,... Tuy nhiên, nhìn
ồ ạ ệ ấ ườ ẫ chung, bài toán này đã xu t hi n và t n t ế ỉ i hàng th k mà con ng ư i v n ch a
ả ế ợ ề tìm ra cách gi ệ ể ấ i quy t h p lý. Do đó, cũng có r t nhi u khó khăn trong vi c đ
ể ượ ứ ả ể ế máy móc hi u đ c các thông tin trong b c nh. Các khó khăn có th kê đ n
ể ả ư ự ự ề ạ ạ ướ ề ệ nh : s đa d ng đi m nh, s đa d ng v kích th ự c, đi u ki n ánh sáng, s
ẩ ấ ủ ể ự ủ ạ ạ ắ ậ n gi u c a các v t th , s đa d ng ch ng lo i, màu s c,…
ữ ộ ườ ợ ụ ể ủ ậ ạ ậ M t trong nh ng tr ng h p c th c a bài toán nh n d ng đó là nh n
ế ừ ủ ậ ạ ả ữ ạ d ng hoa qu . Bài toán này k th a nh ng khó khăn c a bài toán nh n d ng
ư ố ượ ữ ủ nói chung và kèm theo nh ng khó khăn riêng c a chính nó nh : s l ng
ố ạ ủ ề ạ ả ớ ị ướ ch ng lo i hoa qu theo mùa, mi n, đ a hình,… v i vô s lo i có kích th c,
ế ấ ể ừ ắ ố ố ỳ ế màu s c, k t c u gi ng nhau trong su t chu k phát tri n t lúc xanh đ n khi
ự ủ ề ề ệ ạ ả ạ ỡ ộ chín; s đa d ng v kích c , hình d ng c a cùng m t loài qu do đi u ki n khí
ữ ề ả ấ ỏ ể ử ậ h u, đ t đai, vùng mi n,… Do đó, đ x lý bài toán này đòi h i ph i có nh ng
ươ ế ậ ề ầ ợ ớ ph ng pháp ti p c n phù h p v i yêu c u đ ra.
ươ I.2.Ph ế ậ ng pháp ti p c n bài toán:
ả ừ ậ ạ ệ ề ấ Bài toán nh n d ng hoa qu t ễ lâu đã xu t hi n trên nhi u bài báo, di n
ề ướ ư ọ ả ế đàn, công trình khoa h c đã đ a ra nhi u h ng gi i quy t khác nhau. Trong
ả ể ế ấ ớ ươ ử ả ươ đó, s m nh t ph i k đ n ph ng pháp x lý nh (image processing). Ph ng
ấ ặ ầ ớ ủ ả ư ư ứ ệ ậ pháp này t p trung ph n l n vào vi c trích xu t đ c tr ng c a nh nh : m c
ể ả ắ ố ướ ể ạ ậ ừ ứ ả xám, đi m nh, tham s màu s c, kích th c hình d ng v t th ,… t b c nh
ủ ả ậ ươ ỉ ậ ộ ầ đ u vào c a hoa qu . Vì v y nên ph ng pháp này ch t p trung vào m t vài
ự ế ề ắ ầ ướ ứ ả b c nh đ u vào trong khi đó s bi n thiên v màu s c, kích th c hoàn toàn
ố ớ ả Ả ạ ưở ấ ủ ủ ế ệ khác nhau đ i v i các lo i hoa qu . nh h ng c a nó đ n hi u su t c a
ươ ượ ế ố ớ ấ ạ ụ ạ ph ng pháp không đ c cao nên áp d ng r t h n ch đ i v i các lo i hoa
qu .ả
7
ừ ữ ộ ố ế ề ụ ươ ọ T nh ng năm 2000, m t s bài báo vi t v áp d ng ph ng pháp h c
ớ ộ ừ ạ ậ máy (machine learning) vào bài toán nh n d ng v i đ chính xác cao. T đó,
ướ ả ả ế ế ậ ứ ụ ậ ọ h ng gi ụ i quy t t p trung vào ng d ng và c i ti n thu t toán h c máy, c
ụ ể ể ư ứ ử ư ể ệ ặ ọ ộ th là nghiên c u, th nghi m trích ch n đ c tr ng c th đ đ a vào b
ậ ạ ự ộ ế ố ượ ạ ả ươ nh n d ng t ạ đ ng. Trong ph m vi h n ch s l ng hoa qu , ph ng pháp
ạ ượ ữ ế ạ này đã đ t đ ả c nh ng k t qu đáng kinh ng c.
ươ ế ậ ượ ữ ọ ộ Ph ng pháp h c sâu cũng là m t trong nh ng cách ti p c n đ c áp
ữ ệ ử ụ ạ ụ ể ế ợ ử ụ d ng vào trong bài toán này. C th k t h p x lý d li u và s d ng m ng
ả
ươ
ậ
ạ
Hình .Mô t
2 ph
ng pháp trong bái toán nh n d ng
ể ờ ữ ệ ư ử ề ả neural nh : ANN, CNN,… Đi u này làm gi m đáng k th i gian x lý d li u.
ươ ề ố I.2.1.Ph ng pháp Machine Learning truy n th ng
ươ ệ ạ ấ ồ Ph ử ng pháp này g m 2 giai đo n chính là hu n luy n (training) và th
ệ ạ ầ ỗ ọ nghi m (testing). Trong m i giai đo n thì yêu c u chính và quan tr ng đó là
ủ ả ư ậ ạ ậ ặ ọ trích tr n đ c tr ng c a nh (Feature extraction) và thu t toán phân lo i, nh n
ả ầ ưở ấ ớ ế ế ả dang,… Hai thành ph n này nh h ầ ng r t l n đ n k t qu bài toán do đó c n
ế ế ẩ ố ớ ề ầ ậ ố ờ ườ ế thi ứ t k c n th n, t n nhi u công s c, th i gian, yêu c u đ i v i ng i thi t
ầ ử ả ắ ữ ư ể ặ ế k ph i n m v ng chuyên môn và hi u rõ đ c tr ng c n x lý.
ự ế ữ ệ ậ ượ ữ ệ ữ ỉ Trong th c t , d li u ta nh n đ ữ c ch là d li u thô, do đó nh ng d
ẩ ư ọ ọ ữ ệ ệ ể ể ả ử li u này ph i qua quá trình ch n l c, x lý. Đ có th có d li u chu n đ a đi
8
ữ ệ ệ ế ể ạ ấ ả ổ ỗ hu n luy n ph i có quá trình bi n đ i thành d ng d li u cho máy hi u. M i
ố ớ ừ ư ữ ườ ợ ụ ể ặ ữ ạ ữ ệ ẽ d lo i d li u s có nh ng đ c tr ng riêng đ i v i t ng tr ng h p c th .
ỳ ế ể ả ủ ả ầ ộ ợ Do đó c n tu bi n m t cách thích h p đ đ m b o tính chính xác c a bài
toán.
ươ ọ I.2.2. Ph ng pháp h c sâu – deep learning:
ủ ọ ệ ừ ữ ự ấ ộ Là m t trong các lĩnh v c chuyên sâu c a h c máy xu t hi n t nh ng
ể ậ ụ ổ ế ệ ữ ệ ố năm 1980 và hi n nay đang khá ph bi n. Ta có th t n d ng kho d li u s
ồ ạ ả ổ kh ng l trên internet và kh năng tính toán nhanh cho mô hình m ng.
ạ ượ ứ ổ ế ụ ươ M ng Neural đ c ng d ng ph bi n trong ph ụ ể ng pháp này. C th
ề ớ ủ ư ữ ệ ả ầ ế ể ạ ấ ta đ a d li u qua nhi u l p c a m ng Neural và l y k t qu đ u ra đ sao
ớ ữ ệ ẽ ệ ạ ầ ấ ỗ ớ ủ sánh v i d li u hu n luy n. M i l p c a m ng s phân tích đ u vào theo
ừ ượ ứ ạ ầ khía c nh khác nhau và m c tr u t ng tăng d n.
ươ ướ I.3. Ph ng h ứ ng nghiên c u bài toán:
ề ả ể ể ạ ậ ộ ổ Nh n d ng luôn là m t bài toán n n t ng đ phát tri n bài toán t ng
ế ớ ộ ủ ế ụ ộ quát, chi ti ộ t v i đ chính xác cao. Do đó, bài toán ph thu c ch y u vào b
ộ ữ ệ ượ ả ệ ớ ữ ệ d li u. B d li u càng l n thì tính chính xác càng đ c c i thi n.
ả ủ ẽ ượ ế ứ ộ ứ ạ ụ K t qu c a bài toán s đ c áp d ng cho các m c đ ph c t p chuyên
ư ệ ạ ậ ả ạ ơ ả sâu h n nh : phân lo i hoa qu , nh n d ng b nh trên qu ,…
ứ ả ụ ệ ầ ả ạ ươ Vi c áp d ng m ng neural vào nghiên c u đ m b o yêu c u: ph ng
ả ượ ữ ệ ư ầ ủ ớ ả ẩ ơ pháp đ n gi n, l ng d li u đ a vào đ y đ , chính xác v i s n ph m hoa
ả ả ầ ự ế ộ qu phù h p ợ ở ướ n c ta, đ chính xác khi k t qu đ u ra d đoán chính xác.
(cid:0)
9
ươ Ể Ạ Ch ng II: TÌM HI U M NG COUVOLUTIONAL NEURAL NETWOK
VÀ MÔ HÌNH M NGẠ
II.1. Couvolutional neural netwok là gì?
ậ ậ ạ ộ M ng neural tích ch p (Couvolutional neural netwok) là m t thu t toán
ể ấ ầ ả ố ọ ộ ọ deep learning có th l y hình nh đ u vào, gán đ quan tr ng (tr ng s và đ ộ
ố ượ ư ể ả ặ ệ l ch) cho các đ c tr ng và đ i t ng khác nhau trong hình nh; có th phân
ố ượ ư ặ ử ề ệ ớ bi ệ ượ t đ c đ c tr ng và đ i t ng này v i nhau. Công vi c ti n x lý đ ượ c
ề ậ ầ ạ ơ ớ yêu c u cho m ng neural tích ch p ít h n nhi u so v i các mô hình khác.
ươ ứ ơ ộ ọ ượ ế ế ằ ộ ớ Trong ph ng th c s khai, các b l c đ c thi t k b ng tay, v i m t quá
ể ọ ọ ộ ọ ặ ư ệ ạ ấ ợ trình hu n luy n đ ch n l c ra các b l c đ c tr ng phù h p thì m ng neural
ậ ạ ự ọ ể ọ ộ ọ ư ặ ố ư ấ tích ch p l ả i có kh năng t h c đ ch n ra các b l c, đ c tr ng t i u nh t.
ậ ươ ế ự Ki n trúc neural tích ch p t ng t ế ố ủ mô hình k t n i c a các neural
ộ ườ ượ ấ ả ứ ừ ộ ị trong b não con ng i và đ c l y c m h ng t võ th giác trong b não. Các
ự ạ ả ứ ế ủ ớ ộ ỉ neural ch ph n ng v i các kích thích trong m t khu v c h n ch c a tr ườ ng
ọ ị ườ ộ ậ ế ậ ợ ườ ư ậ ế ậ th giác g i là tr ng ti p nh n. M t t p h p tr ồ ng ti p nh n nh v y ch ng
ủ ể ườ lên nhau đ bao ph toàn tr ị ng th giác.
10
ể ị ử II.2.L ch s phát tri n:
ứ ủ ậ Nghiên c u trong th p niên 1950 và 1960 c a D.H Hubel và T.N Wiesel
ề ệ ấ ậ ộ ộ ộ ớ ậ trên não đ ng v t đã đ xu t m t mô hình m i cho vi c cách mà đ ng v t
ế ớ ả ạ ế ậ nhìn nh n th gi i. Trong báo cáo hai ông đã mô t 2 lo i t bào neural trong
ế ả ơ ạ ộ não và cách ho t đ ng khác nhau: t bào đ n gi n (simple cell – S cell) và t ế
ứ ạ bào ph c t p (complex cell – C cell).
ế ả ượ ậ ạ Các t ơ bào đ n gi n đ ơ ạ c kích ho t khi nh n d ng các hình dáng đ n
ư ườ ả ự ố ị ủ ạ ằ ộ ộ gi n nh đ ng n m trong m t khu v c c đ nh và m t góc c nh c a nó. Các
ậ ớ ứ ạ ủ ế ầ ạ ế t ả ơ bào ph c t p có vùng ti p c n l n h n và đ u ra c a nó không nh y c m
ữ ị ố ị ớ v i nh ng v trí c đ nh trong vùng.
ậ ủ ế ị ươ ứ ớ ộ Trong th giác, vùng ti p nh n c a neural t ng ng v i m t vùng trên
ạ ơ ẽ ạ ươ ứ võng m c n i s kích ho t neural t ng ng.
ề ấ ạ ấ ậ ọ Năm 1980, Fukushima đ xu t mô hình m ng neural có c p b c g i là
ự ệ ề ạ neocoginitron, Mô hình này d a trên khái ni m v S cell và C cell. M ng
ẫ ự ệ ọ ố ượ ể ậ ạ neocoginitron có th nh n d ng m u d a vi c h c hình dáng đ i t ng.
ậ ượ ớ ệ ạ Sau đó năm 1988, M ng neural tích ch p đ c gi ở i thi u b i Bengio,
ầ ượ ọ LeCun, Bottou và Haffner. Mô hình đ u tiên đ c g i tên là LeNet5. Mô hình
ữ ế ể ạ ậ này có th nh n d ng ch vi t tay.
11
ậ II.3 Phép tích ch p (Convulution Operation)
ư ộ ể ể ạ ộ ậ ố ộ Ta có th hi u phép tích ch p gi ng nh m t ho t đ ng tr n thông tin
ượ ươ ố ộ ạ ớ l i v i nhau. Phép toán này đ ử ụ c s d ng t ề ng đ i r ng rãi trong nhi u
ậ ọ ỹ ngành khoa h c và k thu t khác nhau.
ẽ ạ ậ ọ ộ ữ Trong toán h c, phép tích ch p gi a hai hàm f và g s t o ra m t hàm
ị ự ế ố ớ ổ ủ ứ ể ộ ạ th ba bi u th s bi n đ i c a m t hàm đ i v i hàm còn l i. Xét hai hàm f và
ữ ậ ượ ị ư g, phép tích ch p gi a hai hàm này đ c đ nh nghĩa nh sau:
12
13
ậ ớ
ặ ờ
ồ ặ
ư
ả
ầ
ướ c
ộ Hình .Hình nh đ u vào 2D m t tr i tích ch p v i m t kernal.M t b n đ đ c tr ng (feuturemap) có kích th ế
ả ừ
(N2)x(N2) là k t qu t
ộ ả phép tính.
ữ ề ậ ộ Chúng ta xem xét trong không gian m t chi u, phép tích ch p gi a hai
ượ ả ở ươ hàm f và g đ c mô t b i ph ng trình sau:
ố ớ ầ ư ề ầ ả Đ i v i đ u vào 2 chi u nh hình nh, chúng ta có đ u vào cho phép tích
ứ ầ ả ậ ấ ầ ộ ch p. Đ u vào th nh t là m t hình nh 2D, đ u vào còn l ạ ượ i đ ọ c g i là
ư ộ ọ ạ ộ ả ầ ặ ố kernel ho c mask ho t đ ng gi ng nh b l c (filter) cho hình nh 2D đ u vào
ụ ể ộ ầ ạ ả ộ và t o ra m t hình nh khác cho đ u ra. Chúng ta hãy xem xét c th m t 2D –
convolution:
14
.
ế ạ II.3. Ki n trúc m ng Couvolutional Neural Netwok:
ế ệ ề ạ ầ ắ Nguyên t c chung trong h u h t các m ng CNN hi n này đ u đ ượ c
ế ế ư thi t k nh sau:
(cid:0) ử ụ ề ồ S d ng nhi u Convolution Layer ch ng lên nhau.
ả ướ ỗ ầ (cid:0) Gi m d n kích th ầ c ouput m i t ng.
(cid:0) ầ ố ượ Tăng d n s l ng Feature map.
ể ể ệ ấ ả ạ ỗ ầ Mô hình m ng CNN dùng đ hu n luy n và ki m tra, m i hình nh đ u
ẽ ượ ộ ọ ậ ạ ộ ổ ớ vào s đ ợ ớ c qua m t lo t các l p tích ch p v i các b l c (Kernals), t ng h p
ớ ượ ế ố ầ ủ ụ ạ l i các l p đ c k t n i đ y đ (Full Connected) và áp d ng hàm Softmax đ ể
ạ ố ượ ấ phân lo i đ i t ng có xác su t 0 và 1.
II.3.1.
ậ ớ L p tích ch p –
Convolution Layer
ấ ậ ớ ọ ớ ớ L p tích ch p (Convolution Layer) là l p quan tr ng nh t và cũng là l p
ủ ứ ệ ớ ặ ầ đ u tiên 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 . Trong t ng này có b n đ i t ng chính là:
ộ ọ ậ ầ ườ ế ậ ma tr n đ u vào, b l c (filters), tr ng ti p nh n (receptive field) và Feature
map.
ề ẽ ậ ậ ầ ớ ộ ộ ọ ộ L p tích ch p đ u vào này s là m t ma tr n ba chi u và m t b l c
ộ ọ ả ọ ứ ả ừ ể ầ c n ph i h c. B l c này s ẽ ượ tr ậ t qua t ng b c nh đ tích ch p
ữ ộ ọ ầ ươ ứ ả ầ ươ ứ (Convolution) gi a b l c và ph n t ng ng trên b c nh. Ph n t ứ ng ng
ườ ể ế ậ ọ này g i là tr ứ ng ti p nh n (receptive field), t c là vùng mà neural có th nhìn
15
ể ư ế ị ậ ầ ọ ở th y đ đ a ra quy t đ nh, và ma tr n cho ra b i quá trình này g i là Feature
map.
ụ ữ ệ ậ ầ ướ ộ ộ ọ Ví d , d li u đ u vào là ma tr n có kích th c 8x8x1, m t b l c 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ác ph n t t ng ng c a b l c 2x2x1 v i tr ế ng ti p
ể ậ ả ấ ả ị nh n trên nh. Và đ tính t t c các giá tr cho feature map, ta tr ượ ộ ọ ừ t b l c t
ả ố ướ ứ ự ả trái qua ph i, trên xu ng d i. Do đó, phép convolution b o toàn th t không
ể ả gian các đi m nh.
ủ ớ ứ ư ệ ặ ủ Ch c năng chính c a l p Convolution Layer là phát hi n đ c tr ng c a
ả ữ ư ư ặ ặ ồ ơ ả nh (feature detector). Nh ng đ c tr ng này bao g m các đ c tr ng c b n
ặ ặ ứ ạ ư ư ả ạ ắ ơ ư nh : góc, c nh, màu s c, ho c đ c tr ng ph c t p h n nh texture nh. Vì b ộ
ộ ứ ả ể ằ ở ấ ỳ ư ặ ọ l c quét qua toàn b b c nh nên đ c tr ng có th n m b t k đâu trong
ư ặ ậ ẫ ả ứ ả b c nh, cho dù xoay trái hay ph i thì v n nh n ra đ c tr ng đó.
16
17
ộ ọ ụ ượ ủ ả ậ Trong ví d trên, khi dùng b l c tr t qua nh c a nhân v t Olaf trong
ứ ả ữ ạ ấ ỉ ư ặ ị ộ b phim Frozen. Ta th y, 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 có giá
ị ấ ơ tr th p h n.
ư ố ướ ướ ả Ngoài ra, các tham s nh : kích th ộ ọ c b l c, b c nh y và padding
ọ ướ ộ ọ ỏ ườ ượ ư ơ cũng khá quan tr ng. Kích th c b l c nh th ng đ c u tiên h n trong
ỡ ộ ọ ệ ấ ặ ườ ố ẻ ướ các mô hình hu n luy n, m t khác, kích c b l c th ng là s l ả . B c nh y
ể ệ ộ ọ ể ể ố ố ị ắ th hi n s pixel d ch chuy n khi di chuy n b l c. Tham s padding kh c
ụ ả ả ạ ậ ỏ ị ph c tình tr ng ma tr n b nh đi khi qua các layer do đó đ m b o kích th ướ c
ầ ủ ầ ể ự ệ ấ ệ . ban đ u c a đ u vào đ th c hi n hu n luy n
ớ ế II.3.2. L p phi tuy n (Nonlinear Layer)
ể ế ổ ả ứ ế ớ L p này ch a các hàm phi tuy n đ bi n đ i nh.
ạ ạ ReLU (Rectified Linear Unit) là hàm kích ho t trong m ng CNN. Hàm
ượ ư ế ạ ả ộ ở này đ ạ ơ c u chu ng b i 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 các 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, gi nguyên các giá tr đ u vào khi l n h n 0.
ề ề ẩ ộ ấ ồ ạ ạ ạ ReLU cũng có m t v n đ ti m n đó là không t n t i đ o hàm t i 0,
ở ạ ể ớ ị ủ ế ế ọ giá tr c a hàm ReLU có th l n đ n vô cùng và n u không kh i t o tr ng s ố
ở ạ ố ộ ọ ữ ậ ặ ớ ẩ c n th n, ho c kh i t o t c đ h c (learning rate) quá l n thì nh ng neural ở
ể ơ ế ạ ầ t ng này có th r i vào tr ng thái ch t.
ộ ớ II.3.3. L p g p – Pooling Layer
ạ ườ ẽ ử ụ ầ Sau hàm kích ho t, thông th ng chúng ta s s d ng t ng pooling. M t s ộ ố
ổ ế ứ ư ạ ớ lo i pooling ph bi n nh maxpooling, average pooling, v i ch c năng chính
ề ầ ả ướ ộ ớ ướ ầ là gi m chi u t ng tr c đó. V i m t pooling kích th c 2x2, ta c n tr ượ ộ t b
ả ướ ồ ủ ọ l c 2x2 này trên vùng nh kích th c r i tính max, average c a vùng đó.
18
ưở ệ ố ủ ầ ị Ý t
ằ ả ế ị ư ng đ ng sau t ng pooling là v trí tuy t đ i c a nh ng đ c tr ng ữ các ặ ữ ố ươ ng đ i gi t, thay vào đó v trí t
ư trong không gian nh không còn c n thi ủ ặ đ c tr ng đã đ phân lo i đ i t ầ ạ ố ượ ng.
ớ ế ố ầ ủ II.3.4. L p k t n i đ y đ Fully Connected Layer
ầ ầ ầ T ng cu i cùng trong mô hình là t ng fully connected layer. T ng này có
ư ầ ướ ứ ấ c thành vector ch a xác su t
ầ ượ ự ố ể ng c n đ ứ ch c năng chuy n ma tr n đ c tr ng t ng tr ố ượ đ i t ậ ặ c d đoán.
ố ộ ỗ
ấ Ngoài ra, cu i quá trình hu n luy n c n hàm tính đ l ư ử ụ ệ ầ ậ
ậ ọ ố ự i sai s d đoán 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 p tr ng s .
19
ươ Ứ Ụ Ch ng III: NG D NG COUVOLUTIONAL NEURAL NETWORK
Ạ Ả Ậ CHO BÀI TOÁN NH N D NG HOA QU .
ơ ở ữ ệ ệ ấ III.1. C s d li u hu n luy n:
ộ ả ủ ứ ả ệ Đ phân gi i c a các b c nh là 32x32 pixel, h màu RGB.
ữ ệ ệ ả ấ ồ ồ ả D li u hu n luy n g m 360 nh hoa qu trong đó g m có:
(cid:0) ả ả 90 nh qu táo
(cid:0) ả ả ố 89 nh qu chu i
(cid:0) ả ả 91 nh qu cam
(cid:0) ả ả 90 nh qu nho.
ượ ự ệ ẩ ộ ữ ệ Các d li u đã đ ử c gán nhãn và th c hi n x lý đ sáng và chu n hoá
ạ sang d ng xml.
ữ ệ ồ ồ ả D li u test g m 60 nh trong đó g m có:
(cid:0) ả ả 20 nh qu táo
(cid:0) ả ả ố 15 nh qu chu i
(cid:0) ả ả 10 nh qu cam
(cid:0) ả ả 10 nh qu nho
(cid:0) ả ả ố 5 nh có c táo và chu i
(cid:0) ả ả 5 nh có c cam và táo
(cid:0) ạ ả ả ả 5 nh c 4 lo i qu
ữ ệ ượ ự ử ệ ộ D li u test cũng đã đ ẩ c gán nhãn, th c hi n x lý đ sáng và chu n
hoá sang
ữ ệ ấ
ế Hình .D li u ti n hành ệ hu n luy n
ạ d ng xml.
20
ự ệ ấ III.2. Xây d ng mô hình hu n luy n CNN
ạ III.2.1. T o project trên colab google:
ặ ả ầ ườ ể Đ u tiên, chúng ta ph i cài đ t môi tr ng trên google driver đ thi ế t
ị ị ườ ẫ ậ l p v v trí trên project và đ ng d n cho nó.
ườ Sau khi đã upload dataset theo đ
ờ ng đây, chúng ta đã
ụ ụ ể
ườ
ẫ
ể Hình . ki m tra đ
ư ệ ng d n trong dataset và khai báo th vi n
ự ư ệ ể ạ d n ẫ dir_path = "gdrive/My Drive/Dataset/Fruit Images/". Gi ầ ẵ s n sàng đ xây d ng và tranning mô hình ph c v nhu c u bài toán. III.2.2. Khai báo th vi n, ki m tra l i dataset.
21
ẽ ế ệ ượ ề Ti p theo chúng ta s mã hoá các t p tin theo nhãn đã đ ử c ti n x lý
ụ ể ẽ trong dataset. C th , chúng ta s có 4 nhãn là apple, banana, mixed, orange;
ượ ư ề ừ ư ệ ế ả ộ chúng đ c l u trong 1 m ng array m t chi u t th vi n numpy. Ti p theo
ở ạ ẽ ượ ữ ệ ả ộ ừ ậ t t p dataset ta s kh i t o đ c m t m ng các d li u và gán nhãn t ươ ng
ứ ệ ươ ứ ả ấ ị ng mã hoá theo các giá tr xu t hi n t ng ng trong m ng.
ượ Sau khi đ ể ọ ấ c mã hoá, ta có th g i b t
ậ ỳ ộ ả k m t nh nào trong t p dataset
ỗ ợ ể ư ệ ư ệ b ngằ ị ả th vi n matplotlib, th vi n này h tr hi n th nh
ệ ố ị trên hàm s xác đ nh. Tuy nhiên, h màu RGB không
ượ ỗ ợ ư ệ đ c h tr trên th vi n này.
ự ệ ấ III.2.3. Xây d ng, hu n luy n mô hình:
ự ạ ồ M ng CNN chúng ta xây d ng g m 11
ồ ớ layer ch ng lên nhau. Ba l p
ẽ ọ ầ ượ Convolution s l c l n l ọ t theo tr ng
ứ ỗ ầ ộ ớ ẽ ộ ỗ ố s 32,64,128. C m i l n qua m i m t l p s g p theo
ươ ph ng pháp
maxpooling.
22
ự ế ạ ườ ẫ Sau khi xây d ng m ng, ta ti n hành khai báo d ng d n data train,
ế ậ
ế ướ
ấ
ạ
Hình . Thi
t l p các liên k t tr
c khi hu n luyên m ng
ể ự ư ệ ệ ạ test. Thi ế ậ ườ t l p đ ng l u tr ng thái sau khi train đ th c hi n vi c test.
ế ậ ấ ả ờ ợ ế ế ạ ả Thi t l p xong t t c ta ti n hàng train m ng và ch đ i k t qu
23
Hình .Training CNN
ệ ế ấ ả III.3. K t qu hu n luy n
ẳ ả ộ ộ ị Ph i kh ng đ nh là mô hình CNN là m t mô hình có đ chính xác khá
cao.
ộ ộ Đ chính xác trong b train là
79,166%
ể ạ ộ ị Ki m tra l ậ i b test nh n đ nh đúng
87.5%.
ể ạ Ki m tra l ộ i m t
ườ tr ợ ng h p
ụ ể c th trong
m uẫ
dataset.
ộ B test
ả ậ ớ ị nh n đ nh trong nh là apple. Đúng v i nhãn
đã ghi trong bộ
test.
24
III.4. Bàn lu nậ
ả ạ ượ ớ ế ượ ữ ể ể ơ V i k t qu đ t đ c, bài toán còn đ c phát tri n h n n a đ tăng đ ộ
ẫ ầ ả ơ ữ ư ệ ộ ằ chính xác h n n a. Đ chính xác trên 80% nh ng v n c n c i thi n thêm b ng
ồ ổ cách b sung thêm ngu n dataset.
ậ ạ ờ ươ ố ớ ậ ữ ệ ươ ố Th i gian nh n d ng t ng đ i nhanh đ i v i t p d li u t ố ng đ i
ệ ể ậ ố ỏ ườ ả nh này. Do v y, mong mu n c i thi n và phát tri n trong môi tr ng dataset
ơ ớ l n h n
Ế ƯỚ Ế Ậ K T LU N VÀO H Ứ NG NGHIÊN C U TI P THEO
ệ ượ ự ế ả 1.K t qu đã th c hi n đ c
ể ậ ạ ươ ế ậ Phát bi u khái quát bài toán nh n d ng, ph ng pháp ti p c n.
ượ ạ ớ ế Khái quát đ ồ c m ng CNN, mô hình g m các l p nào và chi ti t trong
ậ ạ ọ ộ mô hình. Mô t ả ượ đ c phép tích ch p và quá trình g p, l c trong m ng.
ự ể Xây d ng thành công mô hình CNN trên colab tri n khai trên GPU thành
ớ ạ ậ công trên t p dataset gi i h n.
ứ ế ướ 2. H ng nghiên c u ti p theo:
ớ ấ ề ứ ự ế ủ ụ ề ạ ạ V i r t nhi u ng d ng th c t c a m ng neural nhân t o, đ tài có
ể ứ ụ ứ ề ắ ơ th ng d ng cho nhi u mô hình nghiên c u sâu s c h n. Tuy nhiên, trong đ ề
ể ệ ư ượ ệ ấ ớ ướ tài ch a th hi n đ c mô hình CNN m i nh t hi n nay nên h ng nghiên
ớ ẽ ậ ệ ả ể ệ ố ệ ứ c u m i s t p trung vào vi c c i thi n mô hình, phát tri n nó trong h th ng
ầ ớ ơ ươ ứ data l n h n đáp ng nhu c u trong t ng lai.
Ả Ệ TÀI LI U THAM KH O
1. HoughCNN: Deep learning for segmentation of deep brain regions in
MRI and ultrasound ScienceDirect
2. Machine Learning for Computer Vision (ed.ac.uk)
3. Modulation Format Recognition and OSNR Estimation Using CNNBased
Deep Learning | IEEE Journals & Magazine | IEEE Xplore
25
26