์ปจ๋ฒŒ๋ฃจ์…˜ ๋„คํŠธ์›Œํฌ๋ฅผ ์ค„์ด๊ธฐ ์œ„ํ•œ Jedi ๊ธฐ์ˆ  - ๊ฐ€์ง€์น˜๊ธฐ

์ปจ๋ฒŒ๋ฃจ์…˜ ๋„คํŠธ์›Œํฌ๋ฅผ ์ค„์ด๊ธฐ ์œ„ํ•œ Jedi ๊ธฐ์ˆ  - ๊ฐ€์ง€์น˜๊ธฐ

๋‹ค์‹œ ํ•œ ๋ฒˆ ๋ฌผ์ฒด๋ฅผ ๊ฐ์ง€ํ•˜๋Š” ์ž‘์—…์ด ์žˆ์Šต๋‹ˆ๋‹ค. ์šฐ์„  ์ˆœ์œ„๋Š” ํ—ˆ์šฉ ๊ฐ€๋Šฅํ•œ ์ •ํ™•๋„๋ฅผ ๊ฐ–์ถ˜ ์ž‘๋™ ์†๋„์ž…๋‹ˆ๋‹ค. YOLOv3 ์•„ํ‚คํ…์ฒ˜๋ฅผ ์‚ฌ์šฉํ•˜์—ฌ ์ถ”๊ฐ€๋กœ ํ›ˆ๋ จํ•ฉ๋‹ˆ๋‹ค. ์ •ํ™•๋„(mAp75)๊ฐ€ 0.95๋ณด๋‹ค ํฝ๋‹ˆ๋‹ค. ํ•˜์ง€๋งŒ ์‹คํ–‰๋ฅ ์€ ์—ฌ์ „ํžˆ โ€‹โ€‹๋‚ฎ์Šต๋‹ˆ๋‹ค. ์“ฐ๋ ˆ๊ธฐ.

์˜ค๋Š˜์€ ์–‘์žํ™”๋ฅผ ์šฐํšŒํ•˜๊ฒ ์Šต๋‹ˆ๋‹ค. ๊ทธ๋ฆฌ๊ณ  ์ปท ์•„๋ž˜์—์„œ ์šฐ๋ฆฌ๋Š” ๋ณผ ๊ฒƒ์ž…๋‹ˆ๋‹ค ๋ชจ๋ธ ๊ฐ€์ง€์น˜๊ธฐ โ€” ์ •ํ™•๋„ ์†์‹ค ์—†์ด ์ถ”๋ก  ์†๋„๋ฅผ ๋†’์ด๊ธฐ ์œ„ํ•ด ๋„คํŠธ์›Œํฌ์˜ ์ค‘๋ณต ๋ถ€๋ถ„์„ ์ •๋ฆฌํ•ฉ๋‹ˆ๋‹ค. ์–ด๋””์„œ, ์–ผ๋งˆ๋งŒํผ, ์–ด๋–ป๊ฒŒ ์ž˜๋ผ์•ผ ํ•˜๋Š”์ง€ ๋ช…ํ™•ํ•ฉ๋‹ˆ๋‹ค. ์ด ์ž‘์—…์„ ์ˆ˜๋™์œผ๋กœ ์ˆ˜ํ–‰ํ•˜๋Š” ๋ฐฉ๋ฒ•๊ณผ ์ž๋™ํ™”ํ•  ์ˆ˜ ์žˆ๋Š” ์œ„์น˜๋ฅผ ์•Œ์•„ ๋ณด๊ฒ ์Šต๋‹ˆ๋‹ค. ๋งˆ์ง€๋ง‰์—๋Š” keras์— ์ €์žฅ์†Œ๊ฐ€ ์žˆ์Šต๋‹ˆ๋‹ค.

์†Œ๊ฐœ

์ด์ „ ์ง์žฅ์ธ Perm์˜ Macroscop์—์„œ ์ €๋Š” ํ•ญ์ƒ ์•Œ๊ณ ๋ฆฌ์ฆ˜์˜ ์‹คํ–‰ ์‹œ๊ฐ„์„ ๋ชจ๋‹ˆํ„ฐ๋งํ•˜๋Š” ํ•œ ๊ฐ€์ง€ ์Šต๊ด€์„ ์–ป์—ˆ์Šต๋‹ˆ๋‹ค. ๊ทธ๋ฆฌ๊ณ  ํ•ญ์ƒ ์ ์ ˆ์„ฑ ํ•„ํ„ฐ๋ฅผ ํ†ตํ•ด ๋„คํŠธ์›Œํฌ ๋Ÿฐํƒ€์ž„์„ ํ™•์ธํ•˜์„ธ์š”. ์ผ๋ฐ˜์ ์œผ๋กœ ์ƒ์‚ฐ ์ค‘์ธ ์ตœ์‹  ๊ธฐ์ˆ ์€ ์ด ํ•„ํ„ฐ๋ฅผ ํ†ต๊ณผํ•˜์ง€ ๋ชปํ•˜๋ฏ€๋กœ ํ”„๋ฃจ๋‹(Pruning)์„ ์„ ํƒํ•˜๊ฒŒ ๋˜์—ˆ์Šต๋‹ˆ๋‹ค.

๊ฐ€์ง€์น˜๊ธฐ๋Š” ์—์„œ ๋…ผ์˜๋œ ์˜ค๋ž˜๋œ ์ฃผ์ œ์ž…๋‹ˆ๋‹ค. ์Šคํƒ ํฌ๋“œ ๊ฐ•์˜ 2017๋…„์—. ์ฃผ์š” ์•„์ด๋””์–ด๋Š” ๋‹ค์–‘ํ•œ ๋…ธ๋“œ๋ฅผ ์ œ๊ฑฐํ•˜์—ฌ ์ •ํ™•๋„๋ฅผ ์žƒ์ง€ ์•Š์œผ๋ฉด์„œ ํ›ˆ๋ จ๋œ ๋„คํŠธ์›Œํฌ์˜ ํฌ๊ธฐ๋ฅผ ์ค„์ด๋Š” ๊ฒƒ์ž…๋‹ˆ๋‹ค. ๋ฉ‹์žˆ๊ฒŒ ๋“ค๋ฆฌ์ง€๋งŒ, ๊ทธ ์‚ฌ์šฉ์— ๋Œ€ํ•ด์„œ๋Š” ๊ฑฐ์˜ ๋“ค์–ด๋ณด์ง€ ๋ชปํ–ˆ์Šต๋‹ˆ๋‹ค. ์•„๋งˆ๋„ ๊ตฌํ˜„์ด ์ถฉ๋ถ„ํ•˜์ง€ ์•Š๊ฑฐ๋‚˜ ๋Ÿฌ์‹œ์•„์–ด ๊ธฐ์‚ฌ๊ฐ€ ์—†๊ฑฐ๋‚˜ ๋‹จ์ˆœํžˆ ๋ชจ๋“  ์‚ฌ๋žŒ์ด ๊ฐ€์ง€์น˜๊ธฐ ๋…ธํ•˜์šฐ๋ผ๊ณ  ์ƒ๊ฐํ•˜๊ณ  ์นจ๋ฌต์„ ์œ ์ง€ํ•  ๊ฒƒ์ž…๋‹ˆ๋‹ค.
ํ•˜์ง€๋งŒ ๋ถ„ํ•ดํ•ด๋ณด์ž

์ƒ๋ฌผํ•™์— ๋Œ€ํ•œ ๊ฐ„๋žตํ•œ ์†Œ๊ฐœ

์ €๋Š” ๋”ฅ๋Ÿฌ๋‹์ด ์ƒ๋ฌผํ•™์—์„œ ๋‚˜์˜จ ์•„์ด๋””์–ด๋ฅผ ์‚ดํŽด๋ณผ ๋•Œ๋ฅผ ์ข‹์•„ํ•ฉ๋‹ˆ๋‹ค. ์ง„ํ™”์™€ ๋งˆ์ฐฌ๊ฐ€์ง€๋กœ ์‹ ๋ขฐํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. (ReLU๊ฐ€ ReLU์™€ ๋งค์šฐ ์œ ์‚ฌํ•˜๋‹ค๋Š” ๊ฒƒ์„ ์•Œ๊ณ  ๊ณ„์…จ์Šต๋‹ˆ๊นŒ? ๋‡Œ์˜ ๋‰ด๋Ÿฐ ํ™œ์„ฑํ™” ๊ธฐ๋Šฅ?)

๋ชจ๋ธ ๊ฐ€์ง€์น˜๊ธฐ ๊ณผ์ •์€ ์ƒ๋ฌผํ•™์—๋„ ๊ฐ€๊น์Šต๋‹ˆ๋‹ค. ์—ฌ๊ธฐ์„œ ๋„คํŠธ์›Œํฌ์˜ ๋ฐ˜์‘์€ ๋‡Œ์˜ ๊ฐ€์†Œ์„ฑ์— ๋น„์œ ๋  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ์ด ์ฑ…์—๋Š” ๋ช‡ ๊ฐ€์ง€ ํฅ๋ฏธ๋กœ์šด ์˜ˆ๊ฐ€ ์žˆ์Šต๋‹ˆ๋‹ค. ๋…ธ๋จผ ๋„์ง€:

  1. ๋ฐ˜์ชฝ๋งŒ ๊ฐ–๊ณ  ํƒœ์–ด๋‚œ ์—ฌ์„ฑ์˜ ๋‡Œ๋Š” ์žƒ์–ด๋ฒ„๋ฆฐ ๋ฐ˜์ชฝ์˜ ๊ธฐ๋Šฅ์„ ์ˆ˜ํ–‰ํ•˜๋„๋ก ์Šค์Šค๋กœ ์žฌํ”„๋กœ๊ทธ๋žจ๋๋‹ค.
  2. ๊ทธ ๋‚จ์ž๋Š” ์‹œ๋ ฅ์„ ๋‹ด๋‹นํ•˜๋Š” ๋‡Œ ๋ถ€๋ถ„์„ ์˜์•˜์Šต๋‹ˆ๋‹ค. ์‹œ๊ฐ„์ด ์ง€๋‚˜๋ฉด์„œ ๋‡Œ์˜ ๋‹ค๋ฅธ ๋ถ€๋ถ„์ด ์ด๋Ÿฌํ•œ ๊ธฐ๋Šฅ์„ ๋Œ€์‹ ํ•˜๊ฒŒ ๋˜์—ˆ์Šต๋‹ˆ๋‹ค. (์šฐ๋ฆฌ๋Š” ๋ฐ˜๋ณตํ•˜๋ ค๊ณ  ํ•˜์ง€ ์•Š์Šต๋‹ˆ๋‹ค)

๋งˆ์ฐฌ๊ฐ€์ง€๋กœ ๋ชจ๋ธ์—์„œ ์•ฝํ•œ ์ปจ๋ณผ๋ฃจ์…˜ ์ค‘ ์ผ๋ถ€๋ฅผ ์ž˜๋ผ๋‚ผ ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ์ตœํ›„์˜ ์ˆ˜๋‹จ์œผ๋กœ ๋‚˜๋จธ์ง€ ๋ฌถ์Œ์€ ์ž˜๋ฆฐ ๋ฌถ์Œ์„ ๋Œ€์ฒดํ•˜๋Š” ๋ฐ ๋„์›€์ด ๋ฉ๋‹ˆ๋‹ค.

์ „์ด ํ•™์Šต์„ ์ข‹์•„ํ•˜์‹œ๋‚˜์š”, ์•„๋‹ˆ๋ฉด ์ฒ˜์Œ๋ถ€ํ„ฐ ํ•™์Šตํ•˜์‹œ๋‚˜์š”?

์˜ต์…˜ ๋ฒˆํ˜ธ XNUMX์ž…๋‹ˆ๋‹ค. Yolov3์—์„œ ์ „์ด ํ•™์Šต์„ ์‚ฌ์šฉํ•ฉ๋‹ˆ๋‹ค. Retina, Mask-RCNN ๋˜๋Š” U-Net. ๊ทธ๋Ÿฌ๋‚˜ ๋Œ€๋ถ€๋ถ„์˜ ๊ฒฝ์šฐ COCO์ฒ˜๋Ÿผ 80๊ฐœ์˜ ๊ฐ์ฒด ํด๋ž˜์Šค๋ฅผ ์ธ์‹ํ•  ํ•„์š”๋Š” ์—†์Šต๋‹ˆ๋‹ค. ์‹ค์ œ๋กœ๋Š” ๋ชจ๋“  ๊ฒƒ์ด 1~2ํ•™๋…„์œผ๋กœ ์ œํ•œ๋ฉ๋‹ˆ๋‹ค. ์—ฌ๊ธฐ์„œ๋Š” 80๊ฐœ ํด๋ž˜์Šค์˜ ์•„ํ‚คํ…์ฒ˜๊ฐ€ ์ค‘๋ณต๋œ๋‹ค๊ณ  ๊ฐ€์ •ํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ์ด๋Š” ์•„ํ‚คํ…์ฒ˜๋ฅผ ๋” ์ž‘๊ฒŒ ๋งŒ๋“ค์–ด์•ผ ํ•จ์„ ์˜๋ฏธํ•ฉ๋‹ˆ๋‹ค. ๊ฒŒ๋‹ค๊ฐ€ ๊ธฐ์กด์— ๋ฏธ๋ฆฌ ํ›ˆ๋ จ๋œ ๊ฐ€์ค‘์น˜๋ฅผ ์žƒ์ง€ ์•Š๊ณ  ์ด ์ž‘์—…์„ ์ˆ˜ํ–‰ํ•˜๊ณ  ์‹ถ์Šต๋‹ˆ๋‹ค.

์˜ต์…˜ ๋ฒˆํ˜ธ XNUMX. ๋ฐ์ดํ„ฐ์™€ ์ปดํ“จํŒ… ๋ฆฌ์†Œ์Šค๊ฐ€ ๋งŽ์„ ์ˆ˜๋„ ์žˆ๊ณ , ์•„๋‹ˆ๋ฉด ๋‹จ์ง€ ์Šˆํผ ๋งž์ถคํ˜• ์•„ํ‚คํ…์ฒ˜๊ฐ€ ํ•„์š”ํ•  ์ˆ˜๋„ ์žˆ์Šต๋‹ˆ๋‹ค. ์ƒ๊ด€์—†์–ด์š”. ๊ทธ๋Ÿฌ๋‚˜ ๋‹น์‹ ์€ ์ฒ˜์Œ๋ถ€ํ„ฐ ๋„คํŠธ์›Œํฌ๋ฅผ ๋ฐฐ์šฐ๊ณ  ์žˆ์Šต๋‹ˆ๋‹ค. ์ผ๋ฐ˜์ ์ธ ์ ˆ์ฐจ๋Š” ๋ฐ์ดํ„ฐ ๊ตฌ์กฐ๋ฅผ ์‚ดํŽด๋ณด๊ณ  ์„ฑ๋Šฅ์ด ๊ณผ๋„ํ•œ ์•„ํ‚คํ…์ฒ˜๋ฅผ ์„ ํƒํ•œ ๋‹ค์Œ ์žฌ๊ต์œก์—์„œ ํƒˆ๋ฝ์ž๋ฅผ ๋ฐ€์–ด๋‚ด๋Š” ๊ฒƒ์ž…๋‹ˆ๋‹ค. ๋‚˜๋Š” 0.6๋ช…์˜ ํƒˆ๋ฝ์ž๋ฅผ ๋ดค๋‹ค, ์นผ.

๋‘ ๊ฒฝ์šฐ ๋ชจ๋‘ ๋„คํŠธ์›Œํฌ๊ฐ€ ์ค„์–ด๋“ค ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ๋™๊ธฐ ๋ถ€์—ฌ. ์ด์ œ ํฌ๊ฒฝ์ˆ˜์ˆ ์ด ์–ด๋–ค ์ข…๋ฅ˜์ธ์ง€ ์•Œ์•„๋ณด๊ฒ ์Šต๋‹ˆ๋‹ค.

์ผ๋ฐ˜ ์•Œ๊ณ ๋ฆฌ์ฆ˜

์šฐ๋ฆฌ๋Š” ๋ฒˆ๋“ค์„ ์ œ๊ฑฐํ•  ์ˆ˜ ์žˆ๋‹ค๊ณ  ๊ฒฐ์ •ํ–ˆ์Šต๋‹ˆ๋‹ค. ๋งค์šฐ ๊ฐ„๋‹จํ•ด ๋ณด์ž…๋‹ˆ๋‹ค.

์ปจ๋ฒŒ๋ฃจ์…˜ ๋„คํŠธ์›Œํฌ๋ฅผ ์ค„์ด๊ธฐ ์œ„ํ•œ Jedi ๊ธฐ์ˆ  - ๊ฐ€์ง€์น˜๊ธฐ

์ปจ๋ณผ๋ฃจ์…˜์„ ์ œ๊ฑฐํ•˜๋Š” ๊ฒƒ์€ ๋„คํŠธ์›Œํฌ์— ์ŠคํŠธ๋ ˆ์Šค๋ฅผ ์ฃผ๋ฉฐ ์ผ๋ฐ˜์ ์œผ๋กœ ์˜ค๋ฅ˜๊ฐ€ ์–ด๋Š ์ •๋„ ์ฆ๊ฐ€ํ•ฉ๋‹ˆ๋‹ค. ํ•œํŽธ์œผ๋กœ ์ด๋Ÿฌํ•œ ์˜ค๋ฅ˜ ์ฆ๊ฐ€๋Š” ์ปจ๋ณผ๋ฃจ์…˜์„ ์–ผ๋งˆ๋‚˜ ์ •ํ™•ํ•˜๊ฒŒ ์ œ๊ฑฐํ–ˆ๋Š”์ง€ ๋‚˜ํƒ€๋‚ด๋Š” ์ง€ํ‘œ์ž…๋‹ˆ๋‹ค(์˜ˆ๋ฅผ ๋“ค์–ด ํฐ ์ฆ๊ฐ€๋Š” ์šฐ๋ฆฌ๊ฐ€ ๋ญ”๊ฐ€ ์ž˜๋ชปํ•˜๊ณ  ์žˆ์Œ์„ ๋‚˜ํƒ€๋ƒ…๋‹ˆ๋‹ค). ๊ทธ๋Ÿฌ๋‚˜ ์•ฝ๊ฐ„์˜ ์ฆ๊ฐ€๋Š” ์ƒ๋‹นํžˆ ํ—ˆ์šฉ๋˜๋ฉฐ ์ž‘์€ LR์„ ์‚ฌ์šฉํ•œ ํ›„์† ๊ฐ€๋ฒผ์šด ์ถ”๊ฐ€ ํ›ˆ๋ จ์œผ๋กœ ์ œ๊ฑฐ๋˜๋Š” ๊ฒฝ์šฐ๊ฐ€ ๋งŽ์Šต๋‹ˆ๋‹ค. ์ถ”๊ฐ€ ํ•™์Šต ๋‹จ๊ณ„๋ฅผ ์ถ”๊ฐ€ํ•ฉ๋‹ˆ๋‹ค.

์ปจ๋ฒŒ๋ฃจ์…˜ ๋„คํŠธ์›Œํฌ๋ฅผ ์ค„์ด๊ธฐ ์œ„ํ•œ Jedi ๊ธฐ์ˆ  - ๊ฐ€์ง€์น˜๊ธฐ

์ด์ œ ํ•™์Šต<->๊ฐ€์ง€์น˜๊ธฐ ๋ฃจํ”„๋ฅผ ์–ธ์ œ ์ค‘์ง€ํ• ์ง€ ํŒŒ์•…ํ•ด์•ผ ํ•ฉ๋‹ˆ๋‹ค. ๋„คํŠธ์›Œํฌ๋ฅผ ํŠน์ • ํฌ๊ธฐ์™€ ์†๋„๋กœ ์ค„์—ฌ์•ผ ํ•  ๋•Œ(์˜ˆ: ๋ชจ๋ฐ”์ผ ์žฅ์น˜์˜ ๊ฒฝ์šฐ) ์—ฌ๊ธฐ์— ์ด๊ตญ์ ์ธ ์˜ต์…˜์ด ์žˆ์„ ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ๊ทธ๋Ÿฌ๋‚˜ ๊ฐ€์žฅ ์ผ๋ฐ˜์ ์ธ ์˜ต์…˜์€ ์˜ค๋ฅ˜๊ฐ€ ํ—ˆ์šฉ ๊ฐ€๋Šฅํ•œ ์ˆ˜์ค€๋ณด๋‹ค ๋†’์•„์งˆ ๋•Œ๊นŒ์ง€ ์ฃผ๊ธฐ๋ฅผ ๊ณ„์†ํ•˜๋Š” ๊ฒƒ์ž…๋‹ˆ๋‹ค. ์กฐ๊ฑด์„ ์ถ”๊ฐ€ํ•˜์„ธ์š”:

์ปจ๋ฒŒ๋ฃจ์…˜ ๋„คํŠธ์›Œํฌ๋ฅผ ์ค„์ด๊ธฐ ์œ„ํ•œ Jedi ๊ธฐ์ˆ  - ๊ฐ€์ง€์น˜๊ธฐ

๊ทธ๋Ÿฌ๋ฉด ์•Œ๊ณ ๋ฆฌ์ฆ˜์ด ๋ช…ํ™•ํ•ด์ง‘๋‹ˆ๋‹ค. ์‚ญ์ œ๋œ ์ปจ๋ณผ๋ฃจ์…˜์„ ๊ฒฐ์ •ํ•˜๋Š” ๋ฐฉ๋ฒ•์„ ์•Œ์•„๋‚ด๋Š” ๊ฒƒ์ด ๋‚จ์•„ ์žˆ์Šต๋‹ˆ๋‹ค.

์‚ญ์ œ๋œ ๋ฒˆ๋“ค ๊ฒ€์ƒ‰

์ผ๋ถ€ ์ปจ๋ณผ๋ฃจ์…˜์„ ์ œ๊ฑฐํ•ด์•ผ ํ•ฉ๋‹ˆ๋‹ค. ์„œ๋‘˜๋Ÿฌ์„œ ๋ˆ„๊ตฐ๊ฐ€๋ฅผ "์‚ฌ๊ฒฉ"ํ•˜๋Š” ๊ฒƒ์€ ๋น„๋ก ํšจ๊ณผ๊ฐ€ ์žˆ์„์ง€๋ผ๋„ ๋‚˜์œ ์ƒ๊ฐ์ž…๋‹ˆ๋‹ค. ๊ทธ๋Ÿฌ๋‚˜ ๋จธ๋ฆฌ๊ฐ€ ์žˆ๊ธฐ ๋•Œ๋ฌธ์— ์ œ๊ฑฐํ•  "์•ฝํ•œ" ์ปจ๋ณผ๋ฃจ์…˜์„ ์„ ํƒํ•˜๋ ค๊ณ  ์ƒ๊ฐํ•˜๊ณ  ์‹œ๋„ํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ๋ช‡ ๊ฐ€์ง€ ์˜ต์…˜์ด ์žˆ์Šต๋‹ˆ๋‹ค:

  1. ์ตœ์†Œ L1 ์ธก์ •๊ฐ’ ๋˜๋Š” low_magnitude_pruning. ์ž‘์€ ๊ฐ€์ค‘์น˜๋ฅผ ๊ฐ–๋Š” ์ปจ๋ณผ๋ฃจ์…˜์€ ์ตœ์ข… ๊ฒฐ์ •์— ๊ฑฐ์˜ ๊ธฐ์—ฌํ•˜์ง€ ์•Š๋Š”๋‹ค๋Š” ์ƒ๊ฐ
  2. ํ‰๊ท  ๋ฐ ํ‘œ์ค€ ํŽธ์ฐจ๋ฅผ ๊ณ ๋ คํ•œ ๊ฐ€์žฅ ์ž‘์€ L1 ์ธก์ •๊ฐ’์ž…๋‹ˆ๋‹ค. ์šฐ๋ฆฌ๋Š” ๋ถ„ํฌ์˜ ์„ฑ๊ฒฉ์— ๋Œ€ํ•œ ํ‰๊ฐ€๋ฅผ ๋ณด์™„ํ•ฉ๋‹ˆ๋‹ค.
  3. ์ปจ๋ณผ๋ฃจ์…˜์„ ๋งˆ์Šคํ‚นํ•˜๊ณ  ์ตœ์ข… ์ •ํ™•๋„์— ๊ฐ€์žฅ ์ ์€ ์˜ํ–ฅ์„ ๋ฏธ์น˜๋Š” ์ปจ๋ณผ๋ฃจ์…˜ ์ œ์™ธ. ์ค‘์š”ํ•˜์ง€ ์•Š์€ ์ปจ๋ณผ๋ฃจ์…˜์„ ๋ณด๋‹ค ์ •ํ™•ํ•˜๊ฒŒ ๊ฒฐ์ •ํ•˜์ง€๋งŒ ์‹œ๊ฐ„๊ณผ ๋ฆฌ์†Œ์Šค๊ฐ€ ๋งŽ์ด ์†Œ๋ชจ๋ฉ๋‹ˆ๋‹ค.
  4. ๊ธฐํƒ€

๊ฐ ์˜ต์…˜์—๋Š” ์ƒ๋ช…๊ถŒ๊ณผ ์ž์ฒด ๊ตฌํ˜„ ๊ธฐ๋Šฅ์ด ์žˆ์Šต๋‹ˆ๋‹ค. ์—ฌ๊ธฐ์„œ๋Š” L1 ์ธก์ •๊ฐ’์ด ๊ฐ€์žฅ ์ž‘์€ ์˜ต์…˜์„ ๊ณ ๋ คํ•ฉ๋‹ˆ๋‹ค.

YOLOv3์˜ ์ˆ˜๋™ ํ”„๋กœ์„ธ์Šค

์›๋ž˜ ์•„ํ‚คํ…์ฒ˜์—๋Š” ์ž”์—ฌ ๋ธ”๋ก์ด ํฌํ•จ๋˜์–ด ์žˆ์Šต๋‹ˆ๋‹ค. ๊ทธ๋Ÿฌ๋‚˜ ์‹ฌ์ธต ๋„คํŠธ์›Œํฌ์—์„œ๋Š” ๊ทธ๊ฒƒ์ด ์•„๋ฌด๋ฆฌ ๋ฉ‹์ง€๋”๋ผ๋„ ์–ด๋Š ์ •๋„ ๋ฐฉํ•ด๊ฐ€ ๋  ๊ฒƒ์ž…๋‹ˆ๋‹ค. ์–ด๋ ค์šด ์ ์€ ์ด๋Ÿฌํ•œ ๋ ˆ์ด์–ด์—์„œ ์„œ๋กœ ๋‹ค๋ฅธ ์ƒ‰์ธ์ด ์žˆ๋Š” ์กฐ์ •์„ ์‚ญ์ œํ•  ์ˆ˜ ์—†๋‹ค๋Š” ๊ฒƒ์ž…๋‹ˆ๋‹ค.

์ปจ๋ฒŒ๋ฃจ์…˜ ๋„คํŠธ์›Œํฌ๋ฅผ ์ค„์ด๊ธฐ ์œ„ํ•œ Jedi ๊ธฐ์ˆ  - ๊ฐ€์ง€์น˜๊ธฐ

๋”ฐ๋ผ์„œ ์กฐ์ •์„ ์ž์œ ๋กญ๊ฒŒ ์‚ญ์ œํ•  ์ˆ˜ ์žˆ๋Š” ๋ ˆ์ด์–ด๋ฅผ ์„ ํƒํ•ด ๋ณด๊ฒ ์Šต๋‹ˆ๋‹ค.

์ปจ๋ฒŒ๋ฃจ์…˜ ๋„คํŠธ์›Œํฌ๋ฅผ ์ค„์ด๊ธฐ ์œ„ํ•œ Jedi ๊ธฐ์ˆ  - ๊ฐ€์ง€์น˜๊ธฐ

์ด์ œ ์ž‘์—… ์ฃผ๊ธฐ๋ฅผ ๊ตฌ์ถ•ํ•ด ๋ณด๊ฒ ์Šต๋‹ˆ๋‹ค.

  1. ํ™œ์„ฑํ™” ์—…๋กœ๋“œ ์ค‘
  2. ์–ผ๋งˆ๋‚˜ ์ž˜๋ผ์•ผ ํ• ์ง€ ํŒŒ์•…ํ•˜๊ธฐ
  3. ์ž˜๋ผ๋‚ด ๋‹ค
  4. LR=10e-1๋กœ 4๊ฐœ์˜ ์—ํฌํฌ ํ•™์Šต
  5. ํ…Œ์ŠคํŠธ

์ปจ๋ณผ๋ฃจ์…˜ ์–ธ๋กœ๋“œ๋Š” ํŠน์ • ๋‹จ๊ณ„์—์„œ ์ œ๊ฑฐํ•  ์ˆ˜ ์žˆ๋Š” ๋ถ€๋ถ„์˜ ์–‘์„ ์ถ”์ •ํ•˜๋Š” ๋ฐ ์œ ์šฉํ•ฉ๋‹ˆ๋‹ค. ์–ธ๋กœ๋“œ ์˜ˆ:

์ปจ๋ฒŒ๋ฃจ์…˜ ๋„คํŠธ์›Œํฌ๋ฅผ ์ค„์ด๊ธฐ ์œ„ํ•œ Jedi ๊ธฐ์ˆ  - ๊ฐ€์ง€์น˜๊ธฐ

๊ฑฐ์˜ ๋ชจ๋“  ๊ณณ์—์„œ ์ปจ๋ณผ๋ฃจ์…˜์˜ 5%๊ฐ€ ๋งค์šฐ ๋‚ฎ์€ L1-norm์„ ๊ฐ€์ง€๋ฉฐ ์ด๋ฅผ ์ œ๊ฑฐํ•  ์ˆ˜ ์žˆ์Œ์„ ์•Œ ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ๊ฐ ๋‹จ๊ณ„์—์„œ ์ด๋Ÿฌํ•œ ์–ธ๋กœ๋“œ๊ฐ€ ๋ฐ˜๋ณต๋˜์—ˆ์œผ๋ฉฐ ์–ด๋–ค ๋ ˆ์ด์–ด์™€ ์–ผ๋งˆ๋‚˜ ๋งŽ์€ ๋ ˆ์ด์–ด๋ฅผ ์ž˜๋ผ๋‚ผ ์ˆ˜ ์žˆ๋Š”์ง€์— ๋Œ€ํ•œ ํ‰๊ฐ€๊ฐ€ ์ด๋ฃจ์–ด์กŒ์Šต๋‹ˆ๋‹ค.

์ „์ฒด ํ”„๋กœ์„ธ์Šค๋Š” 4๋‹จ๊ณ„๋กœ ์™„๋ฃŒ๋˜์—ˆ์Šต๋‹ˆ๋‹ค(RTX 2060 Super์˜ ๊ฒฝ์šฐ ์—ฌ๊ธฐ์— ์ˆซ์ž๊ฐ€ ํ‘œ์‹œ๋จ).

๋‹จ๊ณ„ ์ง€๋„75 ๋งค๊ฐœ๋ณ€์ˆ˜ ์ˆ˜, ๋ฐฑ๋งŒ ๋„คํŠธ์›Œํฌ ํฌ๊ธฐ, MB ์ดˆ๊ธฐ๋ถ€ํ„ฐ % ๋Ÿฐํƒ€์ž„, ๋ฐ€๋ฆฌ์ดˆ ํฌ๊ฒฝ์ˆ˜์ˆ  ์กฐ๊ฑด
0 0.9656 60 241 100 180 -
1 0.9622 55 218 91 175 ์ „์ฒด์˜ 5%
2 0.9625 50 197 83 168 ์ „์ฒด์˜ 5%
3 0.9633 39 155 64 155 ์ปจ๋ณผ๋ฃจ์…˜์ด 15๊ฐœ ์ด์ƒ์ธ ๋ ˆ์ด์–ด์˜ ๊ฒฝ์šฐ 400%
4 0.9555 31 124 51 146 ์ปจ๋ณผ๋ฃจ์…˜์ด 10๊ฐœ ์ด์ƒ์ธ ๋ ˆ์ด์–ด์˜ ๊ฒฝ์šฐ 100%

2๋‹จ๊ณ„์— ํ•œ ๊ฐ€์ง€ ๊ธ์ •์ ์ธ ํšจ๊ณผ๊ฐ€ ์ถ”๊ฐ€๋˜์—ˆ์Šต๋‹ˆ๋‹ค. ์ฆ‰, ๋ฐฐ์น˜ ํฌ๊ธฐ 4๊ฐ€ ๋ฉ”๋ชจ๋ฆฌ์— ์ ํ•ฉํ•˜์—ฌ ์ถ”๊ฐ€ ๊ต์œก ํ”„๋กœ์„ธ์Šค๊ฐ€ ํฌ๊ฒŒ ๊ฐ€์†ํ™”๋˜์—ˆ์Šต๋‹ˆ๋‹ค.
4๋‹จ๊ณ„์—์„œ ํ”„๋กœ์„ธ์Šค๊ฐ€ ์ค‘์ง€๋˜์—ˆ์Šต๋‹ˆ๋‹ค. ์žฅ๊ธฐ๊ฐ„์˜ ์ถ”๊ฐ€ ํ›ˆ๋ จ์กฐ์ฐจ๋„ mAp75๋ฅผ ์ด์ „ ๊ฐ’์œผ๋กœ ๋†’์ด์ง€ ๋ชปํ–ˆ์Šต๋‹ˆ๋‹ค.
๊ทธ ๊ฒฐ๊ณผ ์ถ”๋ก  ์†๋„๋ฅผ ๋†’์ผ ์ˆ˜ ์žˆ์—ˆ์Šต๋‹ˆ๋‹ค. 15%, ํฌ๊ธฐ๋ฅผ ๋‹ค์Œ๊ณผ ๊ฐ™์ด ์ค„์ž…๋‹ˆ๋‹ค. 35% ์ •ํ™•ํžˆ ์žƒ์ง€ ๋งˆ์„ธ์š”.

๋”์šฑ ๋‹จ์ˆœํ•œ ์•„ํ‚คํ…์ฒ˜๋ฅผ ์œ„ํ•œ ์ž๋™ํ™”

๋” ๊ฐ„๋‹จํ•œ ๋„คํŠธ์›Œํฌ ์•„ํ‚คํ…์ฒ˜(์กฐ๊ฑด๋ถ€ ์ถ”๊ฐ€, ์—ฐ๊ฒฐ ๋ฐ ์ž”์ฐจ ๋ธ”๋ก ์—†์Œ)์˜ ๊ฒฝ์šฐ ๋ชจ๋“  ์ปจ๋ณผ๋ฃจ์…˜ ๋ ˆ์ด์–ด ์ฒ˜๋ฆฌ์— ์ง‘์ค‘ํ•˜๊ณ  ์ปจ๋ณผ๋ฃจ์…˜ ์ œ๊ฑฐ ํ”„๋กœ์„ธ์Šค๋ฅผ ์ž๋™ํ™”ํ•˜๋Š” ๊ฒƒ์ด ๊ฐ€๋Šฅํ•ฉ๋‹ˆ๋‹ค.

์ด ์˜ต์…˜์„ ๊ตฌํ˜„ํ–ˆ์Šต๋‹ˆ๋‹ค. ์—ฌ๊ธฐ์—.
๊ฐ„๋‹จํ•ฉ๋‹ˆ๋‹ค. ์†์‹ค ํ•จ์ˆ˜, ์ตœ์ ํ™” ๋„๊ตฌ ๋ฐ ๋ฐฐ์น˜ ์ƒ์„ฑ๊ธฐ๋งŒ ์žˆ์œผ๋ฉด ๋ฉ๋‹ˆ๋‹ค.

import pruning
from keras.optimizers import Adam
from keras.utils import Sequence

train_batch_generator = BatchGenerator...
score_batch_generator = BatchGenerator...

opt = Adam(lr=1e-4)
pruner = pruning.Pruner("config.json", "categorical_crossentropy", opt)

pruner.prune(train_batch, valid_batch)

ํ•„์š”ํ•œ ๊ฒฝ์šฐ ๊ตฌ์„ฑ ๋งค๊ฐœ๋ณ€์ˆ˜๋ฅผ ๋ณ€๊ฒฝํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

{
    "input_model_path": "model.h5",
    "output_model_path": "model_pruned.h5",
    "finetuning_epochs": 10, # the number of epochs for train between pruning steps
    "stop_loss": 0.1, # loss for stopping process
    "pruning_percent_step": 0.05, # part of convs for delete on every pruning step
    "pruning_standart_deviation_part": 0.2 # shift for limit pruning part
}

๋˜ํ•œ ํ‘œ์ค€ ํŽธ์ฐจ์— ๋”ฐ๋ฅธ ์ œํ•œ์ด ๊ตฌํ˜„๋ฉ๋‹ˆ๋‹ค. ๋ชฉํ‘œ๋Š” ์ด๋ฏธ "์ถฉ๋ถ„ํ•œ" L1 ์ธก์ •๊ฐ’์ด ํฌํ•จ๋œ ์ปจ๋ณผ๋ฃจ์…˜์„ ์ œ์™ธํ•˜๊ณ  ์ œ๊ฑฐ๋˜๋Š” ๋ถ€๋ถ„์„ ์ œํ•œํ•˜๋Š” ๊ฒƒ์ž…๋‹ˆ๋‹ค.

์ปจ๋ฒŒ๋ฃจ์…˜ ๋„คํŠธ์›Œํฌ๋ฅผ ์ค„์ด๊ธฐ ์œ„ํ•œ Jedi ๊ธฐ์ˆ  - ๊ฐ€์ง€์น˜๊ธฐ

๋”ฐ๋ผ์„œ ์˜ค๋ฅธ์ชฝ๊ณผ ์œ ์‚ฌํ•œ ๋ถ„ํฌ์—์„œ ์•ฝํ•œ ์ปจ๋ณผ๋ฃจ์…˜๋งŒ ์ œ๊ฑฐํ•  ์ˆ˜ ์žˆ์œผ๋ฉฐ ์™ผ์ชฝ๊ณผ ์œ ์‚ฌํ•œ ๋ถ„ํฌ์˜ ์ œ๊ฑฐ์—๋Š” ์˜ํ–ฅ์„ ์ฃผ์ง€ ์•Š์Šต๋‹ˆ๋‹ค.

์ปจ๋ฒŒ๋ฃจ์…˜ ๋„คํŠธ์›Œํฌ๋ฅผ ์ค„์ด๊ธฐ ์œ„ํ•œ Jedi ๊ธฐ์ˆ  - ๊ฐ€์ง€์น˜๊ธฐ

๋ถ„ํฌ๊ฐ€ ์ •์ƒ์— ๊ฐ€๊นŒ์›Œ์ง€๋ฉด pruning_standart_deviation_part ๊ณ„์ˆ˜๋ฅผ ๋‹ค์Œ ์ค‘์—์„œ ์„ ํƒํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

์ปจ๋ฒŒ๋ฃจ์…˜ ๋„คํŠธ์›Œํฌ๋ฅผ ์ค„์ด๊ธฐ ์œ„ํ•œ Jedi ๊ธฐ์ˆ  - ๊ฐ€์ง€์น˜๊ธฐ
๋‚˜๋Š” 2 ์‹œ๊ทธ๋งˆ๋ฅผ ๊ฐ€์ •ํ•˜๋Š” ๊ฒƒ์„ ์ถ”์ฒœํ•œ๋‹ค. ๋˜๋Š” ๊ฐ’์„ < 1.0์œผ๋กœ ๋‚จ๊ฒจ๋‘๊ณ  ์ด ๊ธฐ๋Šฅ์„ ๋ฌด์‹œํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

์ถœ๋ ฅ์€ ์ „์ฒด ํ…Œ์ŠคํŠธ์— ๋Œ€ํ•œ ๋„คํŠธ์›Œํฌ ํฌ๊ธฐ, ์†์‹ค ๋ฐ ๋„คํŠธ์›Œํฌ ๋Ÿฐํƒ€์ž„์„ 1.0์œผ๋กœ ์ •๊ทœํ™”ํ•œ ๊ทธ๋ž˜ํ”„์ž…๋‹ˆ๋‹ค. ์˜ˆ๋ฅผ ๋“ค์–ด, ์—ฌ๊ธฐ์„œ ๋„คํŠธ์›Œํฌ ํฌ๊ธฐ๋Š” ํ’ˆ์งˆ ์ €ํ•˜ ์—†์ด ๊ฑฐ์˜ 2๋ฐฐ๋กœ ์ค„์—ˆ์Šต๋‹ˆ๋‹ค(100๊ฐœ์˜ ๊ฐ€์ค‘์น˜๋ฅผ ๊ฐ–๋Š” ์ž‘์€ ์ปจ๋ฒŒ๋ฃจ์…˜ ๋„คํŠธ์›Œํฌ).

์ปจ๋ฒŒ๋ฃจ์…˜ ๋„คํŠธ์›Œํฌ๋ฅผ ์ค„์ด๊ธฐ ์œ„ํ•œ Jedi ๊ธฐ์ˆ  - ๊ฐ€์ง€์น˜๊ธฐ

์ž‘๋™ ์†๋„๋Š” ์ผ๋ฐ˜์ ์ธ ๋ณ€๋™์— ๋”ฐ๋ผ ๋‹ฌ๋ผ์ง€๋ฉฐ ์‚ฌ์‹ค์ƒ ๋ณ€ํ•˜์ง€ ์•Š์Šต๋‹ˆ๋‹ค. ์ด์— ๋Œ€ํ•œ ์„ค๋ช…์ด ์žˆ์Šต๋‹ˆ๋‹ค:

  1. ์ปจ๋ณผ๋ฃจ์…˜ ์ˆ˜๋Š” ํŽธ๋ฆฌํ•œ ๊ฒƒ(32, 64, 128)์—์„œ ๋น„๋””์˜ค ์นด๋“œ์— ๊ฐ€์žฅ ํŽธ๋ฆฌํ•˜์ง€ ์•Š์€ ๊ฒƒ(27, 51 ๋“ฑ)์œผ๋กœ ๋ณ€๊ฒฝ๋ฉ๋‹ˆ๋‹ค. ์—ฌ๊ธฐ์„œ๋Š” ํ‹€๋ ธ์„ ์ˆ˜๋„ ์žˆ์ง€๋งŒ ํšจ๊ณผ๊ฐ€ ์žˆ์„ ๊ฐ€๋Šฅ์„ฑ์ด ๋†’์Šต๋‹ˆ๋‹ค.
  2. ์•„ํ‚คํ…์ฒ˜๋Š” ๊ด‘๋ฒ”์œ„ํ•˜์ง€๋Š” ์•Š์ง€๋งŒ ์ผ๊ด€์„ฑ์ด ์žˆ์Šต๋‹ˆ๋‹ค. ๋„ˆ๋น„๋ฅผ ์ค„์—ฌ๋„ ๊นŠ์ด์—๋Š” ์˜ํ–ฅ์„ ์ฃผ์ง€ ์•Š์Šต๋‹ˆ๋‹ค. ๋”ฐ๋ผ์„œ ๋ถ€ํ•˜๋ฅผ ์ค„์ด๋˜ ์†๋„๋Š” ๋ณ€๊ฒฝํ•˜์ง€ ์•Š์Šต๋‹ˆ๋‹ค.

๋”ฐ๋ผ์„œ ์‹คํ–‰ ์ค‘ CUDA ๋ถ€ํ•˜๊ฐ€ 20~30% ๊ฐ์†Œํ•œ ๊ฒƒ์œผ๋กœ ๊ฐœ์„ ๋˜์—ˆ์œผ๋‚˜ ์‹คํ–‰ ์‹œ๊ฐ„์ด ๊ฐ์†Œํ•œ ๊ฒƒ์€ ์•„๋‹™๋‹ˆ๋‹ค.

๊ฒฐ๊ณผ

์ƒ๊ฐํ•ด ๋ด…์‹œ๋‹ค. ์šฐ๋ฆฌ๋Š” ๊ฐ€์ง€์น˜๊ธฐ๋ฅผ ์œ„ํ•ด YOLOv2(์†์œผ๋กœ ์ž‘์—…ํ•ด์•ผ ํ•˜๋Š” ๊ฒฝ์šฐ)์™€ ๋” ๊ฐ„๋‹จํ•œ ์•„ํ‚คํ…์ฒ˜๋ฅผ ๊ฐ–์ถ˜ ๋„คํŠธ์›Œํฌ์˜ ๋‘ ๊ฐ€์ง€ ์˜ต์…˜์„ ๊ณ ๋ คํ–ˆ์Šต๋‹ˆ๋‹ค. ๋‘ ๊ฒฝ์šฐ ๋ชจ๋‘ ์ •ํ™•๋„ ์†์‹ค ์—†์ด ๋„คํŠธ์›Œํฌ ํฌ๊ธฐ ๊ฐ์†Œ ๋ฐ ์†๋„ ํ–ฅ์ƒ์ด ๊ฐ€๋Šฅํ•˜๋‹ค๋Š” ๊ฒƒ์„ ์•Œ ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ๊ฒฐ๊ณผ:

  • ํฌ๊ธฐ ์ค„์ด๊ธฐ
  • ๊ฐ€์† ์‹คํ–‰
  • CUDA ๋ถ€ํ•˜ ์ค„์ด๊ธฐ
  • ๊ทธ ๊ฒฐ๊ณผ ํ™˜๊ฒฝ ์นœํ™”์„ฑ(์šฐ๋ฆฌ๋Š” ์ปดํ“จํŒ… ์ž์›์˜ ๋ฏธ๋ž˜ ์‚ฌ์šฉ์„ ์ตœ์ ํ™”ํ•ฉ๋‹ˆ๋‹ค. ์–ด๋”˜๊ฐ€์—์„œ๋Š” ํ–‰๋ณตํ•ฉ๋‹ˆ๋‹ค. ๊ทธ๋ ˆํƒ€ ํˆฐ ๋ฒ„๊ทธ)

์ถฉ์ˆ˜

  • ๊ฐ€์ง€์น˜๊ธฐ ๋‹จ๊ณ„ ํ›„์— ์–‘์žํ™”๋ฅผ ์ถ”๊ฐ€ํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค(์˜ˆ: TensorRT ์‚ฌ์šฉ).
  • Tensorflow๋Š” ๋‹ค์Œ๊ณผ ๊ฐ™์€ ๊ธฐ๋Šฅ์„ ์ œ๊ณตํ•ฉ๋‹ˆ๋‹ค. ๋‚ฎ์€ ํฌ๊ธฐ์˜ ๊ฐ€์ง€์น˜๊ธฐ. ๊ณต์žฅ.
  • ์ €์žฅ์†Œ ๊ฐœ๋ฐœํ•˜๊ณ  ์‹ถ๊ณ  ๊ธฐ๊บผ์ด ๋„์™€๋“œ๋ฆฌ๊ฒ ์Šต๋‹ˆ๋‹ค.

์ถœ์ฒ˜ : habr.com

์ฝ”๋ฉ˜ํŠธ๋ฅผ ์ถ”๊ฐ€