3. THI蔭T K蔭 VÀ TH衛C HI烏N KI蔭N TRÚC M萎NG TH井N KINH TÍCH CH一R"A陰 XU遺T
3.1 D英 li羽u hu医n luy羽n
B瓜 d英 li羽w"8逢嬰c s穎 d映pi"ejq"8隠 tài này mô t違 v隠 Wpi"vj逢"dk吋u mô 嘘ng xâm l医n (IDC), lo衣k"wpi"vj逢"x¿"rj鰻 bi院n nh医t.
Dcp"8亥u b瓜 d英 li羽w"8逢嬰c cung c医p b荏i Janowczyk, Madabhushi [25] và Roa et al. [26], ucw"8„"8逢嬰c chia s飲 r瓜ng rãi t衣i c瓜pi"8欝ng Kaggle.
B瓜 d英 li羽w"dcp"8亥u bao g欝m 162 hình 違nh m磯u v壱v"8逢嬰c quét 荏 m泳e"rj„pi"8衣i 40 l亥n. T瑛 8„."499"746"j·pj"違pj"m ej"vj逢噂e"72"z"72"8«"8逢嬰c trớch xuv0"Vtqpi"8"3;:"95:"Ơo"v pj."9:" 9:8" f逢挨pi" v pj0" O厩i hình 違nh sau khi trích xu医v" p {" 8逢嬰e" 8員v" v‒p" vjgq" 8鵜nh d衣ng uxXyYclassC.png å Ví d映: 10253_idx5_x1351_y1101_class0.png
Tropi"8„<
‚ w<"o«"8鵜nh danh b羽nh nhân (10253_idx5)
‚ X: t丑c"8瓜z"p挨k"違nh trích xu医v"8逢嬰c c逸t t瑛違nh g嘘c
‚ Y: t丑c"8瓜 {"p挨k"違nh trích xu医v"8逢嬰c c逸t t瑛 違nh g嘘c
‚ C: l噂p nhãn dán, mang giá tr鵜 0 th吋 hi羽n vt逢運ng h嬰p âm tính, 1 th吋 hi羽p"vt逢運ng h嬰p f逢挨pi"v pj
3.1.1 Phân tích t鰻ng quan b瓜 d英 li羽u
Hình 20 Tóm t逸t t鰻ng quan d英 li羽u
D詠a vào hình 20, ta có th吋 nh壱n xét th医y s嘘n逢嬰ng 違pj"8逢嬰c thu th壱p 荏 m厩i b羽nh nhân không gi嘘pi"pjcw"x "e„"8瓜 chênh l羽ej"v逢挨pi"8嘘i l噂n. M瓜t s嘘 bpj"pjÔp"e"jp":2'"un逢嬰ng
29 違nh ch映p bi吋u mơ cho th医{"f逢挨pi"v pj"x噂i IDC. Ngồi ra vi羽c m医t cân b茨ng gi英a hai l噂r"e pi" 8員t ra v医p"8隠 c亥n ph違i xem xét th壱n tr丑pi"vtqpi"swƒ"vt·pj"8k隠u ch雨nh các tr丑ng s嘘 c栄a các l噂p này.
3.1.2 Hình 違nh c栄a mơ kh臼e m衣nh so v噂k"o»"wpi"vj逢
Bây gi運 chúng ta hãy khám phá s詠 khác bi羽t v隠 th鵜 giác gi英a các t院d q"o»"wpi"vj逢"x " các t院 bào mơ kh臼e m衣nh.
Hình 21 Hình 違nh bi吋u th鵜eƒe"o»"f逢挨pi"v pj
30 Nh壱n xét:
Các 違nh v噂i b羽nh wpi"vj逢"vt»pi"v o"x "f {"8員c j挨p"pj英ng hình 違nh bi吋u th鵜 cho các mơ kh臼e mpj0"{ có th詠c s詠 n "8k吋n hình cho b羽pj"wpi"vj逢 vú hay nó ch雨 là 8員c tính 8k吋n hình cho các t院 bào 嘘ng và mô? S胤 r医t thú v鵜 khi vc"8逢嬰c nghe nh英ng tiêu chí nào là quan tr丑pi"8嘘i t瑛 m瓜t nhà nghiên c泳u b羽nh lý h丑c.
Pj逢"vc"dk院t các b泳c 違nh trong b瓜 d英 li羽w"p {"8逢嬰c cung c医p kèm theo t丑c"8瓜 p挨k"p„"8逢嬰c trích xu医t t瑛 違nh g嘘c. Nh運 vào các t丑c"8瓜 này, ta có th吋 tái t衣o l衣i 違nh tồn b瓜 mô vú c栄a b羽nh nhân. B茨ng cách này chúng ta s胤 có m瓜v"eƒk"pj·p"t "t pi"j挨p"x隠 các mơ b羽pj"vt»pi"pj逢"vj院 nào khi so sánh v噂i các mô kh臼e m衣nh.
Ej¿pi"vc"e pi"e„"vj吋 khám phá nh英pi"p挨k"rj鰻 bi院n nh医v"o "wpi"vj逢"e„"zw"j逢噂ng x違y ra thông qua bi吋w"8欝 nhi羽v"8逢嬰c trình bày 荏 các hình sau.
31
Hình 24 Bi吋w"8欝 nhi羽t th吋 hi羽n các khu v詠e"wpi"vj逢"e„"zw"j逢噂ng xu医t hi羽n
Nh壱n xét:
Wpi"vj逢"o»"e„"zw"j逢噂ng xu医t hi羽n thành c映m ch泳 không phân tán kh逸r"p挨k.
3.1.3 V<pi"u嘘n逢嬰ng d英 li羽u (Data Augmentation)
Có m瓜t s嘘 cách chúng ta có th吋 s穎 d映pi"8吋 vtƒpj"qxgthkvvkpi."8„"n "vjw"vj壱p thêm nhi隠u d英 li羽w"j挨p."v<pi"e逢運ng, chu育n hóa ho員c t嘘i gi違n hóa ki院p"vt¿e"o»"j·pj0"A隠 tài này áp d映ng eƒe"rj逢挨pi"rjƒr"v<pi"e逢運ng d英 liw"ucw"8Ơ{<"zqc{"piu nhiờn, c逸t b臼 ng磯u nhiên, l壱t ng磯u nhiên (ngang và d丑e+."8瓜 sáng ng磯u nhiên, thu phóng ng磯u nhiên, làm m運 b茨ng b瓜 l瓜c Gaussian.
3.1.4 Chia b瓜 d英 li羽u cho các nhi羽m v映 hu医n luy羽n và ki吋m tra
Có m瓜v"x k"8k隠u c亥p"n逢w"#"vt逢噂c khi th詠c hi羽n chia d英 li羽w0"A亥u tiên là t益 l羽 c栄a s嘘n逢嬰ng hình 違pj"mj»pi"wpi"vj逢"uq"x噂k"wpi"vj逢"e栄a b瓜 d英 li羽w0"Ak隠u này có th吋 t衣o ra các v医p"8隠 trong swƒ"vt·pj"8ƒpj"ikƒ"o»"j·pj"8逢嬰c hu医n luy羽n.
Hãy l医y m瓜t ví d映, n院u chúng ta có b瓜 d英 li羽u g欝o"322"8k吋m, 90 trong s嘘8„"n "wpi"vj逢" và 10 cịn l衣i khơng ph違k"n "wpi"vj逢."ik違 s穎 mơ hình có th吋 phân lo衣i toàn b瓜 d英 li羽w"n "wpi"vj逢." d磯p"8院p"8瓜ej pj"zƒe"8衣v"8逢嬰e"n ";2'."vw{"pjk‒p"8k隠u này không th詠c s詠 ph違n ánh cho nh英ng i·"8cpi"vj詠c s詠 x違y ra. Trong th詠c t院, r医t có th吋 mơ hình ví d映荏8Ô{"nwằp"nwằp"rjÔp"nqi sai d英 liw"mjằpi"iÔ{"wpi"vj0
32 A吋 gi違i quy院t v医n 8隠 vt‒p."8隠 tài s穎 d映ng hàm ch泳e"p<pi"vtckp-vguv"urnkv"8逢嬰c cung c医p b荏i framework sklearn model_selection[27], hàm này s胤ik¿r"ej¿pi"vc"e„"8逢嬰c t益 l羽 phân tán d英 li羽u cân b茨ng theo các l噂p phân lo衣i.
Hình 25 Mơ hình chia tách d英 li羽u thành các t壱p d英 li羽u riêng bi羽t
3.2 Th詠c hi羽n ki院n trúc mơ hình m衣ng th亥p"mkpj"8隠 xu医t 3.2.1 Th詠c thi ki院n trúc m衣ng th亥n kinh tích ch壱p
M瓜t m衣ng th亥n kinh tích ch壱p ln bao g欝m 4 l噂r"e挨"d違n sau. - Tích ch壱p (convolution)
- Pooling
- Làm ph鰯ng (flatenning) - Fully connection (Dense)
A隠 tài s穎 d映pi"htcogyqtm"Vgpuqthnqy"8吋 th詠c hi羽n ki院n trúc c栄a m衣ng th亥n kinh nhân t衣o bao g欝m 2 l噂p tích ch壱p kèm theo hàm kích ho衣t và maxpooling 荏 m厩i l噂p. Maxpooling 8„pi"xck"vt”"swcp"vt丑ng trong vi羽c giúp gi違m thi吋u các tính tốn thơng qua vi羽c gi違o"m ej"vj逢噂c không gian c栄a các features. Sau các l噂p kích ho衣v"n "e»pi"8q衣n reshape hay cịn g丑i là flatten v噂i m映e"8 ej"ejw{吋p"8鰻i t医t c違 các m違ng k院t qu違 2 chi隠u thành m瓜v"xfiev挨"vw{院n tính dài liên t映c. M厩k"xfiev挨"p {"8衣i di羽n cho m瓜t xác xu医t feature thu瓜c v隠 l噂r"pj«p"p q"8„0"Eƒe"xfiev挨"p {" ucw"8„"vk院p t映e"8k"x q"n噂p Fully connected, l噂p này ho衣v"8瓜pi"v逢挨pi"v詠 pj逢"o瓜t m衣pi"8c"n噂p 8«"8逢嬰c trình bày 荏 m映e"vt逢噂c. V噂k"pi "x q"n "eƒe"xfiev挨"ikƒ"vt鵜 8逢嬰c nhân v噂i các tr丑ng s嘘, scw"8„"eƒe"ikƒ"vt鵜 p {"8逢嬰c truy隠n ti院p sang hàm kích ho衣t (ReLU) và tr違 v隠 k院t qu違 d詠 8qƒp0"""
Ki院p"vt¿e"o»"j·pj"8隠 xu医v"8逢嬰c trình bày 荏 jÃpj"48"ucw"8Ơ{0"Ang th運i bi吋w"8欝 荏 m泳c
8瓜 th詠c thi c栄a Tensorflow (tensorflow operations Ỵ qru" ngxgn" itcrj+" 8逢嬰c t衣o ra b荏i
Tensorboard[21̲"e pi"8逢嬰c trình bày 荏 hình 27 nh茨m cung c医p cái nhìn sâu s逸c v隠 cách mơ hình m衣ng th詠c s詠 ho衣v"8瓜ng. B違ng 1 cung c医p s嘘 li羽u tóm t逸t c栄c"o»"j·pj"8隠 xu医t.
33
34
35
B違ng 1 B違ng t鰻ng h嬰p thông s嘘 các l噂p m衣ng
Layer Name Tensor Size Weights Biases Parameters
Input image 50x50x3 0 0 0 Conv-1 50x50x8 216 8 224 MaxPool-1 25x25x8 0 0 0 Conv-2 25x25x16 1152 16 1168 MaxPool-2 12x12x16 0 0 0 Flatten 2304 0 0 0 FC-1 20 46080 20 46100 FC-2 2 40 2 42 Nh壱n xét:
Thông qua vi羽c ki吋m tra mơ hình m衣ng th亥n kinh s穎 d映ng Tensorboard, ta xác nh壱n r茨ng o»"j·pj"8«"8逢嬰c thi院t k院 8¿pi"vjgq"mk院p"vt¿e"8隠 xu医t. A欝ng th運i t鰻ng thơng s嘘 c亥n cho các l噂p mpi"n "69756."8Ơ{"n "8km cái ti院n quan tr丑ng m医u ch嘘t trong vi羽e"o»"j·pj"8隠 xu医t có kh違 p<pi"vtk吋n khai ph亥n c泳ni"8逢嬰c hay không, c映 th吋 s胤 8逢嬰c trình bày 荏 ph亥n sau.
3.2.2 Th詠c hi羽n ki院n trúc ph亥n c泳ng cho m衣ng th亥n kinh tích ch壱r"8隠 xu医t
3.2.2.1 LegUp
LegUp là m瓜t công c映 mã ngu欝n m荏 giúp các nhà phát tri吋n có th吋 t鰻ng h嬰p ngơn ng英
b壱e"ecq"8逢嬰c phát tri吋n b荏k"A衣i h丑c Toronto, Canada[28]. LegUp có th吋 t鰻ng h嬰p h亥u h院t ngôn
ng英 C cho ph亥n c泳ng, bao g欝m m違pi"8c"ejk隠w"e„"m ej"vj逢噂c c嘘8鵜nh, c医u trúc, bi院n toàn c映c và s嘘 h丑c con tr臼. K院t qu違8逢嬰c công b嘘 cho th医y công c映 này t衣o ra các gi違i pháp ph亥n c泳ng có ch医v"n逢嬰pi"v逢挨pi"8逢挨pi"x噂i m瓜t cơng c映 t鰻ng h嬰p ngơn ng英 b壱c cao dùng trong vj逢挨pi" m衣i.
36
3.2.2.2 LeFlow
Có r医t nhi隠u cơng c映 có th吋8逢嬰c s穎 d映pi"8吋 t鰻ng h嬰p các lo衣i mã khác nhau thành mã Verilog[29̲0"A隠 tài này s穎 d映ng cơng c映 có tên LeFlow[30̲"8吋 chuy吋p"8鰻i Tensorflow thành mã biên d鵜ch Verilog. LeFlow không ch雨 gi違o"8ƒpi"m吋 kh嘘k"n逢嬰ng cơng vi羽c chuy吋p"8鰻i m衣ng th亥p"mkpj"ucpi"Xgtknqi"o "e”p"8違m b違o quy trình có th吋8逢嬰c tái thi院t l壱p m瓜t cách linh ho衣t n院u có s詠vjc{"8鰻i c亥n c壱p nh壱t trong ki院n trúc m衣ng thi院t k院0"Ak隠w"p {"8員c bi羽t h英u ích trong o»k"vt逢運ng th詠c t院."p挨k"8”k"j臼i m衣ng có th吋 8逢嬰c tái hu医n luy羽n nh茨o"8ƒr"泳ng các yêu c亥u m噂i và trip"mjck"pjcpj"ejpi0"JÃpj"4;"ucw"8Ô{"ejq"vjy cách LeFlow chuy吋p"8鰻i m衣ng th亥n kinh sang ph亥n c泳ng.
Hình 29 Mơ hình chuy吋p"8鰻i ho衣v"8瓜ng t瑛 ph亥n m隠m sang ph亥n c泳ng
T衣i quy trình ph亥n m隠m, tensorflow biên d鵜ch mã thành t鰻 h嬰p c栄c"E--"x "EWFC"8吋 s穎 d映ng trên CPU ho員e"IRW0"Vtqpi"mjk"8„"荏 phía quy trình ph亥n c泳ng, LeFlow s穎 d映ng XLA[22], m瓜t backend khác c栄a tensorflow t衣o ra LLVM[31] thay vì C++ và CUDA. Ti院r"8„."NgiWr"u胤 ti院n hành biên d鵜ch LLVM thành mã Verilog.
3.2.2.3 Ki院n trúc ph亥n c泳ng cho m衣ng th亥n kinh tích ch壱p
A隠 v k"8«"vtk吋n khai m瓜v"o»"j·pj"x "8逢c"o瓜t khung hình ngõ vào vào b瓜 nh噂 8吋 ti院n hành phân lo衣k."vw{"pjk‒p"8隠 tài v磯p"ej逢c"vj吋 tìm ra cách chuy吋n m瓜t s嘘 n逢嬰ng vơ h衣n các khung hình ngõ vào vào m衣ng. C亥n ph違i vi院t verilog tùy ch雨pj"8吋 liên t映c nh壱n ngõ vào t瑛 ngu欝n GPIO ho員c USB. M員c dù không th吋vj‒o"v pj"p<pi"p {."8隠 tài v磯n có th吋 ngo衣i suy kho違ng th運i gian c亥p"8吋 d詠8qƒp"m院t qu違 ngõ ra trên m瓜v"mjwpi"j·pj"pi "x q"8吋 tìm ra kho違ng th運i gian c亥n thi院t cho m瓜t t壱p 違nh ngõ vào.
37
Hình 30 Ki院n trúc ph亥n c泳ng m衣ng th亥n kinh (post-mapping)
CLOCK_50 KEY[0] rtl~[0..2] rtl~[4..6] rtl~[12..36] rtl~8 rtl~39 rtl~42 y_Q.s_START ~GND add_sub_mlf:auto_generated:op_1~22 add_sub_mlf:auto_generated:op_1~24 alt_u_div_qdg:divider:add_sub_7_result_int[4]~8 alt_u_div_qdg:divider:add_sub_7_result_int[5]~10 alt_u_div_qdg:divider:add_sub_7_result_int[6]~12 alt_u_div_qdg:divider:add_sub_7_result_int[7]~14 alt_u_div_qdg:divider:add_sub_7_result_int[8]~16 alt_u_div_qdg:divider:DFFDenominator[447] main:main_inst:finish main:main_inst:memory_controller_address_a[2]~133 main:main_inst:memory_controller_address_a[3]~146 main:main_inst:memory_controller_address_a[4]~159 main:main_inst:memory_controller_address_a[56]~55 main:main_inst:memory_controller_address_a[57]~41 main:main_inst:memory_controller_address_a[58]~68 main:main_inst:memory_controller_address_a[59]~14 main:main_inst:memory_controller_address_b[2]~108 main:main_inst:memory_controller_address_b[3]~116 main:main_inst:memory_controller_address_b[4]~124 main:main_inst:memory_controller_address_b[56]~47 main:main_inst:memory_controller_address_b[58]~59 main:main_inst:memory_controller_address_b[59]~13 main:main_inst:memory_controller_write_enable_a~1 main:main_inst:memory_controller_write_enable_b~4 main:main_inst:return_val[0..31] memory_controller:memory_controller_inst:Equal0~19 memory_controller:memory_controller_inst:Equal0~47 memory_controller:memory_controller_inst:Equal0~57 memory_controller:memory_controller_inst:Equal0~59 memory_controller:memory_controller_inst:Equal1~0 memory_controller:memory_controller_inst:Equal2~3 memory_controller:memory_controller_inst:Equal4~1 memory_controller:memory_controller_inst:Equal14~1 memory_controller:memory_controller_inst:Equal24~[48..50] memory_controller:memory_controller_inst:Equal24~45 memory_controller:memory_controller_inst:Equal25~0 memory_controller:memory_controller_inst:Equal26~[0..1] memory_controller:memory_controller_inst:Equal28~1 memory_controller:memory_controller_inst:Equal38~1 memory_controller:memory_controller_inst:Equal44~2 D ENA Q PRE CLR D ENA Q PRE CLR D ENA Q PRE CLR D ENA Q PRE CLR D ENA Q PRE CLR D ENA Q PRE CLR D ENA Q PRE CLR D ENA Q PRE CLR D ENA Q PRE CLR D ENA Q PRE CLR D ENA Q PRE CLR D ENA Q PRE CLR D ENA Q PRE CLR D ENA Q PRE CLR D ENA Q PRE CLR D ENA Q PRE CLR D ENA Q PRE CLR D ENA Q PRE CLR D ENA Q PRE CLR D ENA Q PRE CLR D ENA Q PRE CLR D ENA Q PRE CLR D ENA Q PRE CLR D ENA Q PRE CLR D ENA Q PRE CLR D ENA Q PRE CLR D ENA Q PRE CLR D ENA Q PRE CLR D ENA Q PRE CLR D ENA Q PRE CLR D ENA Q PRE CLR D ENA Q PRE CLR D ENA Q PRE CLR D ENA Q PRE CLR D ENA Q PRE CLR D ENA Q PRE CLR DATAA DATAB DATAD COMBOUT LOGIC_CELL_COMB (1100) DATAA DATAB DATAC DATAD COMBOUT LOGIC_CELL_COMB (88A8) DATAA DATAB DATAC DATAD COMBOUT LOGIC_CELL_COMB (A888) DATAA DATAC DATAD COMBOUT LOGIC_CELL_COMB (F500) DATAA DATAB DATAC DATAD COMBOUT LOGIC_CELL_COMB (4000) DATAA DATAB DATAC DATAD COMBOUT LOGIC_CELL_COMB (FF7F) DATAA DATAB COMBOUT LOGIC_CELL_COMB (8888) DATAA DATAB DATAC DATAD COMBOUT LOGIC_CELL_COMB (4000) DATAA DATAB DATAC DATAD COMBOUT LOGIC_CELL_COMB (FF7F) DATAA DATAB DATAC DATAD COMBOUT LOGIC_CELL_COMB (4000) DATAA DATAB DATAD COMBOUT LOGIC_CELL_COMB (0088) DATAA DATAB DATAD COMBOUT LOGIC_CELL_COMB (0088) DATAA DATAB DATAD COMBOUT LOGIC_CELL_COMB (0088) rtl~33_COMBOUT rtl~32_COMBOUT rtl~31_COMBOUT rtl~30_COMBOUT rtl~29_COMBOUT rtl~28_COMBOUT rtl~27_COMBOUT rtl~26_COMBOUT rtl~25_COMBOUT rtl~24_COMBOUT rtl~23_COMBOUT rtl~22_COMBOUT rtl~21_COMBOUT rtl~20_COMBOUT rtl~19_COMBOUT rtl~18_COMBOUT rtl~17_COMBOUT rtl~16_COMBOUT rtl~15_COMBOUT rtl~14_COMBOUT rtl~13_COMBOUT rtl~12_COMBOUT rtl~8_COMBOUT rtl~39_COMBOUT rtl~42_COMBOUT ~GND_COMBOUT top:top_inst_alt_u_div_qdg:divider:add_sub_7_result_int[7]~14 top:top_inst_alt_u_div_qdg:divider:add_sub_7_result_int[8]~16 top:top_inst_alt_u_div_qdg:divider:DFFDenominator[447] top:top_inst_main:main_inst:finish top:top_inst_main:main_inst:memory_controller_address_a[2]~133 top:top_inst_main:main_inst:memory_controller_address_a[3]~146 top:top_inst_main:main_inst:memory_controller_address_a[4]~159 top:top_inst_main:main_inst:memory_controller_address_a[56]~55 top:top_inst_main:main_inst:memory_controller_address_a[57]~41 top:top_inst_main:main_inst:memory_controller_address_a[58]~68 top:top_inst_main:main_inst:memory_controller_address_a[59]~14 top:top_inst_main:main_inst:memory_controller_address_b[2]~108 top:top_inst_main:main_inst:memory_controller_address_b[3]~116 top:top_inst_main:main_inst:memory_controller_address_b[4]~124 top:top_inst_main:main_inst:memory_controller_address_b[56]~47 top:top_inst_main:main_inst:memory_controller_address_b[58]~59 top:top_inst_main:main_inst:memory_controller_address_b[59]~13 top:top_inst_main:main_inst:memory_controller_write_enable_a~1 top:top_inst_main:main_inst:memory_controller_write_enable_b~4 top:top_inst_main:main_inst:return_val top:top_inst_memory_controller:memory_controller_inst:Equal0~19 top:top_inst_memory_controller:memory_controller_inst:Equal0~47 top:top_inst_memory_controller:memory_controller_inst:Equal0~57 top:top_inst_memory_controller:memory_controller_inst:Equal2~3 top:top_inst_memory_controller:memory_controller_inst:Equal4~1 top:top_inst_memory_controller:memory_controller_inst:Equal14~1 top:top_inst_memory_controller:memory_controller_inst:Equal24~ top:top_inst_memory_controller:memory_controller_inst:Equal24~45 top:top_inst_memory_controller:memory_controller_inst:Equal25~0 top:top_inst_memory_controller:memory_controller_inst:Equal26~ top:top_inst_memory_controller:memory_controller_inst:Equal28~1 top:top_inst_memory_controller:memory_controller_inst:Equal38~1 top:top_inst_memory_controller:memory_controller_inst:Equal44~2 return_val_reg~3_COMBOUT return_val_reg[1]_REGOUT return_val_reg~1_COMBOUT return_val_reg[3]_REGOUT y_Q.s_EXE_REGOUT return_val_reg~7_COMBOUT return_val_reg[5]_REGOUT y_Q.s_WAIT_REGOUT return_val_reg~5_COMBOUT return_val_reg[7]_REGOUT return_val_reg~11_COMBOUT return_val_reg[9]_REGOUT return_val_reg~9_COMBOUT return_val_reg[11]_REGOUT return_val_reg~15_COMBOUT return_val_reg[13]_REGOUT return_val_reg~13_COMBOUT return_val_reg[15]_REGOUT return_val_reg~19_COMBOUT return_val_reg[17]_REGOUT return_val_reg~17_COMBOUT return_val_reg[19]_REGOUT return_val_reg~23_COMBOUT return_val_reg[21]_REGOUT return_val_reg~21_COMBOUT return_val_reg[23]_REGOUT return_val_reg~27_COMBOUT return_val_reg[25]_REGOUT return_val_reg~25_COMBOUT return_val_reg[27]_REGOUT return_val_reg~31_COMBOUT return_val_reg[29]_REGOUT return_val_reg~29_COMBOUT return_val_reg[31]_REGOUT return_val_reg~0_COMBOUT return_val_reg[0]_REGOUT return_val_reg~2_COMBOUT return_val_reg[2]_REGOUT y_Q.s_DONE_REGOUT LEDG~3_COMBOUT LEDG~2_COMBOUT return_val_reg~4_COMBOUT return_val_reg[4]_REGOUT return_val_reg~6_COMBOUT return_val_reg[6]_REGOUT return_val_reg~8_COMBOUT return_val_reg[8]_REGOUT return_val_reg~10_COMBOUT return_val_reg[10]_REGOUT return_val_reg~12_COMBOUT return_val_reg[12]_REGOUT return_val_reg~14_COMBOUT return_val_reg[14]_REGOUT return_val_reg~16_COMBOUT return_val_reg[16]_REGOUT return_val_reg~18_COMBOUT return_val_reg[18]_REGOUT return_val_reg~20_COMBOUT return_val_reg[20]_REGOUT return_val_reg~22_COMBOUT return_val_reg[22]_REGOUT return_val_reg~24_COMBOUT return_val_reg[24]_REGOUT return_val_reg~26_COMBOUT return_val_reg[26]_REGOUT return_val_reg~28_COMBOUT return_val_reg[28]_REGOUT return_val_reg~30_COMBOUT return_val_reg[30]_REGOUT rtl~38_COMBOUT rtl~40_COMBOUT top:top_inst CLOCK_50 KEY[0..3] return_val_reg[1] return_val_reg[3] y_Q.s_EXE return_val_reg[5] y_Q.s_WAIT return_val_reg[7] return_val_reg[9] return_val_reg[11] return_val_reg[13] return_val_reg[15] return_val_reg[17] return_val_reg[19] return_val_reg[21] return_val_reg[23] return_val_reg[25] return_val_reg[27] return_val_reg[29] return_val_reg[31] return_val_reg[0] return_val_reg[2] y_Q.s_DONE LEDG[0..7] 5' h00 -- return_val_reg[4] y_Q.s_START return_val_reg[6] return_val_reg[8] return_val_reg[10] return_val_reg[12] return_val_reg[14] return_val_reg[16] return_val_reg[18] return_val_reg[20] return_val_reg[22] return_val_reg[24] return_val_reg[26] return_val_reg[28] return_val_reg[30]
y_Q~12 y_Q~9 y_Q~11
rtl~2 rtl~1 rtl~0 rtl~6 rtl~5 rtl~4 rtl~36 rtl~35 rtl~34 y_Q~10
38
Hình 31 Ki院n trúc ph亥n c泳ng Register-transfer level (RTL) c栄a m衣ng th亥n kinh Nh壱n xét:
Thông qua vi羽c s穎 d映ng LeFlow, mã verilog th詠c thi ph亥n c泳ng cho ki院n trúc m衣ng th亥n mkpj"8«"8逢嬰c t衣o. S穎 d映ng quartus v噂k"v pj"p<pi"Cpcn{uku"("U{pvjguku."8隠 v k"8«"vj詠c hi羽n thành cơng vi羽c t鰻ng h嬰p và t嘘k"逢w"j„c"mk院n trúc ph亥n c泳pi"8逢嬰c mô t違 trong mã verilog thành các c鰻ng logic. x[3..0] hex_LEDs[6..0] x[3..0] hex_LEDs[6..0] x[3..0] hex_LEDs[6..0] x[3..0] hex_LEDs[6..0] x[3..0] hex_LEDs[6..0] x[3..0] hex_LEDs[6..0] x[3..0] hex_LEDs[6..0] x[3..0] hex_LEDs[6..0] clk reset start finish return_val[31..0] clk top:top_inst:finish KEY[1..0] s_DONE s_EXE s_START s_WAIT D Q PRE ENA CLR SEL DATAA DATAB OUT0 MUX21 SEL DATAA DATAB OUT0 MUX21 0 hex_digits:h7 hex_digits:h6 hex_digits:h5 hex_digits:h4 hex_digits:h3 hex_digits:h0 top:top_inst always3 LEDG~1 return_val_reg[31..0] return_val_reg~[31..0] 32' h00000000 -- return_val_reg~[63..32] CLOCK_50 UART_RXD (GND) UART_TXD KEY[3..0] SW[17..0] HEX0[6..0] HEX1[6..0] HEX2[6..0] HEX3[6..0] HEX4[6..0] HEX5[6..0] HEX6[6..0] HEX7[6..0] LEDG[7..0] 5' h00 -- y_Q LEDG~0 hex_digits:h1 hex_digits:h2
39
4. K蔭T QU謂 TH衛C HI烏N
4.1 Tóm t逸t k院t qu違8衣v"8逢嬰c
Ü M映c tiêu:
‚ Xây d詠ng mơ hình m衣ng th亥n kinh tích ch壱p 泳ng d映ng trong chu育p"8qƒp"wpi" thu mơ t院d q"x¿"8衣v"8瓜 chu育p"zƒe"v逢挨pi"8逢挨pi"vtqpi"d k"dƒq"8逢嬰c công b嘘 b荏i A. Cruz-Roa at al.[32] trên cùng t壱p d英 li羽u.
‚ A欝ng th運i n厩 l詠c biên d鵜ch ki院n trúc m衣ng th亥p"mkpj"8隠 xu医t sang mã verilog và ch泳ng minh tính kh違 thi c栄a ki院n trúc trong vi羽c t鰻ng h嬰p ph亥n c泳ng.
Ü T壱p d英 li羽u:
‚ D詠a trên t壱p d英 li羽w"8院n th運k"8k吋o"8隠 v k"p {"8逢嬰c báo cáo bao g欝m 277 524
違pj"m ej"vj逢噂c 50x50 pixels.
‚ Eƒe"vt逢運ng h嬰r"8逢嬰c ti院n hành th詠c nghi羽o"8逢嬰c li羽t kê 荏 b違ng sau
B違ng 2 B違ng th嘘ng kê d英 li羽u D英 li羽u Nhãn d英 li羽u Âm tính F⇔¬pi"v pj Hu医n luy羽n 126 986 50 630 Xác nh壱n 31 819 12 584 Ki吋m tra 39 933 15 572 Ü Cách th泳c th詠c thi:
‚ Ki院n trúc mơ hình m衣ng th亥n kinh tích ch壱r"8隠 xu医v"8逢嬰c xây d詠ng s穎 d映ng framework tensorflow, ph亥n c泳ng c栄a ki院p"vt¿e"8逢嬰c biên d鵜ch s穎 d映ng LeFlow. Các k院t qu違 8瓜 chính xác c栄a ki院n trúc d衣ng 荏 d衣pi"itcrj"vgpuqthnqy"8逢嬰c ti院n hành kh違o sát trên GPU Nvidia GTX 1050 và ki院n trúc ph亥n c泳pi"8逢嬰c kh違o sát s穎 d映ng ModelSim.
Ü Tóm t逸t k院t qu違:
277 524 違pj"8逢嬰c chia làm hai nhóm chính riêng bi羽t v噂i nhóm g欝m 222 019 違nh và 55 505 違nh. Nhóm 222 019 違pj"8亥w"vk‒p"8逢嬰c s穎 d映ng cho quá trình hu医n luy羽n và xác nh壱n. 55 505 違nh còn l衣k"8逢嬰c s穎 d映ng cho quá trình nh壱n d衣ng.
T鰻ng k院t qu違 nh壱n d衣pi"8衣v"8逢嬰c AUC t鰻ng th吋 trên GPU là 0.922. K院t qu違 nh壱n
d衣ng trên ph亥n c泳pi"8逢嬰c n瓜k"uw{"n "v逢挨pi"8欝ng v噂i GPU sau m瓜t s嘘 th詠c nghi羽m v噂i
các 違pj"pi "x q"v逢挨pi"泳ng 荏 GPU. B違ng 3 so sánh k院t qu違vjw"8逢嬰c t瑛 cơng trình này
v噂i eƒe"e»pi"vt·pj"8逢嬰c cơng b嘘vte"8Ơ{0
B違ng 3 Th嘘pi"m‒"uq"uƒpj"CWE"ejq"eƒe"rj逢挨pi"rjƒr
Rj逢挨pi"rjƒr AUC
A逢嬰c cơng b嘘 trong bài báo [32] 0.935 A逢嬰c công b嘘 trong bài báo [33] 0.902
40 Ki院n trúc 1 (s穎 d映ng b瓜 l丑c 5x5) Adadelta 0.920 Ki院n trúc 2 (s穎 d映ng b瓜 l丑c 3x3) Adam 0.914 Adadelta 0.922
Tuy nhiên trong mơ hình [32] có t噂i 458498 tham s嘘."pij c"n "n噂p"j挨p";0868"n亥n so v噂i 47534 tham s嘘 c栄c"o»"j·pj"8逢嬰e"8隠 xu医v"vtqpi"8隠 tài này. Chính s嘘n逢嬰ng tham s嘘 kh鰻ng l欝 là m瓜t trong nh英ng nguyên nhân chính d磯p"8院n rào c違n tri吋n khai ph亥n c泳ng cho các mơ hình m衣ng CNN sâu.
T鰻ng s嘘 xung clock cho quá trình nh壱n d衣ng là kho違ng 99 237 343 xung clock v噂i t亥n s嘘 50MHz (chu k 42pu+0"Ak隠u này có th吋 kh鰯pi"8鵜nh v噂i xung clock 50MHz thì t嘘e"8瓜 nh壱n d衣ng c栄a m衣ng th亥n kinh tích chr"n "3";:6"968":82"pu"vpi"8pi"30;:"ikƠ{0"Vw{"8Ơ{"ejc ph違i
là t嘘e"8瓜 ch衣y chính xác trong quy trình thi院t k院CUKE"pj逢pi"mj鰯pi"8鵜nh m瓜v"8k隠u ch逸c ch逸n
là t嘘e"8瓜 xung clock trong quy trình ASIC s胤 l噂p"j挨p"72OJ¦0"Aƒr"泳ng tính kh違 thi trong th運i
gian th詠c 荏 thi院t k院.
Hình 32 Tóm t逸t k院t qu違 mô ph臼ng ph亥n c泳ng
4.2 Các c違i ti院n và k院t qu違 chi ti院t 4.2.1 Quy trình hu医n luy羽n m衣ng 4.2.1 Quy trình hu医n luy羽n m衣ng
Trong cơng trình này, m衣pi"8逢嬰e"8 q"v衣o trong 200 epochs và t亥n su医t xác nh壱n m厩i 1388 l亥n l員p, v噂i hai thu壱t toán t嘘k"逢w"j„c"mjƒe"pjcw."Cfco"]56] - Thu壱t toán t嘘k"逢w"j„c"v嘘c 8瓜 h丑c thích 泳ng và Adadelta [35] - M瓜v"rj逢挨pi"rjƒr"v嘘e"8瓜 h丑c thích 泳ng. Ngoài ra, c違 hai t嘘k"逢w"j„c"p {"m院t h嬰p v噂i m瓜t k悦 thu壱v"8逢嬰c g丑i là t嘘e"8瓜 h丑c t壱p theo l鵜ch trình v噂i giá tr鵜 0,0001 8逢嬰c kh荏i t衣o dcp"8亥u cho Adam và 1 cho Adadelta, gi違m d亥n sau m厩k"3222"d逢噂c v噂i t益 l羽 2.;0"Swƒ"vt·pj"8 q"v衣o này c栄a hai ki院p"vt¿e"8逢嬰e"8隠 xu医t l亥p"n逢嬰v"8逢嬰c th吋 hi羽n trong Hình 33, Hình 34, Hình 35 và Hình 36 ucw"8Ơ{.
41
Hình 33 Bi吋w"8欝 traning mơ hình phân lo衣i 8逢嬰e"8隠 xu医v"8亥u tiên c栄a chúng tôi s穎 d映ng
Adam
Hình 34 Bi吋w"8欝 traning mơ hình phân lo衣i 8逢嬰e"8隠 xu医v"8亥u tiên c栄a chúng tơi s穎
d映ng Adadelta
Hình 35 Bi吋w"8欝 traning mơ hình phân lo衣i 8逢嬰e"8隠 xu医t th泳 hai c栄a chúng tôi s穎 d映ng