๐Ÿ“’ [ TIL ] 2022.05.17_21์ผ์ฐจ # ๋จธ์‹ ๋Ÿฌ๋‹ ๊ฐ•์˜ํ•™์Šต(4)

๋ฌธ๋ช…์ฃผยท2022๋…„ 5์›” 17์ผ
0

[ 2022-05-17 (ํ™”) ์˜ค๋Š˜์˜ TIL ]

[ Today Learn ]

  • ๋‹ค์–‘ํ•œ ๋”ฅ๋Ÿฌ๋‹ ์‹ ๊ฒฝ๋ง ๊ตฌ์กฐ์— ๋Œ€ํ•ด ์•Œ์•„๋ณด๊ธฐ
  • ์ „์ดํ•™์Šต์ด๋ž€
  • CNN๊ณผ ์ „์ดํ•™์Šต์„ ์ง์ ‘ ์ ์šฉํ•ด๋ณด๊ธฐ

โœ๏ธ ๋‚ด๊ฐ€ ๋ฐฐ์šด๊ฒƒ, ์–ป์€๊ฒƒ

โ“ ํ•ฉ์„ฑ๊ณฑ ์‹ ๊ฒฝ๋ง์ด๋ž€ ?

ํ•ฉ์„ฑ๊ณฑ์€ ์ปดํ“จํ„ฐ๋น„์ „๋ถ„์•ผ์—์„œ ๋งŽ์ด ์“ฐ์ด๋Š” ์ด๋ฏธ์ง€์ฒ˜๋ฆฌ๋ฐฉ์‹์œผ๋กœ ๊ณ„์‚ฐ๋ฐฉ์‹์€ ์•„๋ž˜์™€ ๊ฐ™์ด ์ž…๋ ฅ๋ฐ์ดํ„ฐ์™€ ํ•„ํ„ฐ๊ฐ๊ฐ์˜ ์š”์†Œ๋ฅผ ๊ณฑํ•œ ํ›„ ๋‹ค ๋”ํ•˜๋ฉด ์ถœ๋ ฅ๊ฐ’์ด ๋œ๋‹ค.

์ด ํ•ฉ์„ฑ๊ณฑ์„ ์ด์šฉํ•œ ์‹ ๊ฒฝ๋ง ๋””์ž์ธ์„ 'ํ•ฉ์„ฑ๊ณฑ ์‹ ๊ฒฝ๋ง(CNN)'์ด๋ผ๊ณ  ํ•˜๋ฉฐ ์–ผ๊ตด์ธ์‹, ์‚ฌ๋ฌผ์ธ์‹๋“ฑ์— ์‚ฌ์šฉ๋˜๊ณ  ์žˆ๋‹ค.

  • ํ•ฉ์„ฑ๊ณฑ ๊ณ„์ธต
    ์•„๋ž˜์™€ ๊ฐ™์ด 5X5ํฌ๊ธฐ์˜ ์ž…๋ ฅ์ด ์ฃผ์–ด์กŒ์„๋•Œ 3X3 ํ•„ํ„ฐ๋ฅผ ์‚ฌ์šฉํ•ด ํ•ฉ์„ฑ๊ณฑ์„ ํ•˜๋ฉด 3x3 ํฌ๊ธฐ์˜ ํŠน์„ฑ๋งต์„ ๋ฝ‘์•„๋‚ผ ์ˆ˜ ์žˆ๋‹ค. ํ•„ํ„ฐ๋ฅผ ํ•œ ์นธ์”ฉ ์˜ค๋ฅธ์ชฝ์œผ๋กœ ์›€์ง์ด๋ฉฐ ํ•ฉ์„ฑ๊ณฑ์—ฐ์‚ฐ์„ ํ•˜๋Š”๋ฐ, ์ด๋•Œ ์ด๋™ํ•˜๋Š” ๊ฐ„๊ฒฉ์„ '์ŠคํŠธ๋ผ์ด๋“œ'๋ผ๊ณ  ํ•œ๋‹ค.


์—ฌ๊ธฐ์„œ ํŠน์„ฑ ๋งต์˜ ํฌ๊ธฐ๊ฐ€ ์ค„์–ด๋“œ๋Š” ๊ฒƒ์„ ๋ฐฉ์ง€ํ•˜๊ธฐ ์œ„ํ•ด ์•„๋ž˜์™€๊ฐ™์ด ํŒจ๋”ฉ์„ ์ฃผ์–ด, ์ŠคํŠธ๋ผ์ด๋“œ๊ฐ€ 1์ผ๋•Œ ์ž…๋ ฅ๊ฐ’๊ณผ ํŠน์„ฑ ๋งต์˜ ํฌ๊ธฐ๋ฅผ ๊ฐ™๊ฒŒ ๋งŒ๋“ค ์ˆ˜ ์žˆ๋‹ค.

  • CNN์˜ ๊ตฌ์„ฑ

ํ•ฉ์„ฑ๊ณฑ์‹ ๊ฒฝ๋ง์€ ํ•ฉ์„ฑ๊ณฑ๊ณ„์ธต๊ณผ ์™„์ „์—ฐ๊ฒฐ๊ณ„์ธต์„ ํ•จ๊ป˜ ์‚ฌ์šฉํ•œ๋‹ค.

ํ•ฉ์„ฑ๊ณฑ ๊ณ„์ธต + ํ™œ์„ฑํ™” ํ•จ์ˆ˜ + ํ’€๋ง์„ ๋ฐ˜๋ณตํ•˜๋ฉฐ ์ ์  ์ž‘์•„์ง€์ง€๋งŒ ํ•ต์‹ฌ์ ์ธ ํŠน์„ฑ๋“ค์„ ๋ฝ‘์•„๋‚ด๋Š”๋ฐ, ์—ฌ๊ธฐ์„œ Pooling layer๋Š” ํŠน์„ฑ๋งต์˜ ์ค‘์š”๋ถ€๋ถ„์„ ์ถ”์ถœํ•ด ์ €์žฅํ•œ๋‹ค.
1) Max pooling : ํ•ด๋‹นํฌ๊ธฐ์˜ ํŠน์„ฑ ๋งต์—์„œ ๊ฐ€์žฅ ํฐ ๊ฐ’๋“ค์„ ์ถ”์ถœ
2) Average pooling: ํ•ด๋‹นํฌ๊ธฐ์˜ ํŠน์„ฑ ๋งต์—์„œ ํ‰๊ท  ๊ฐ’์„ ์ถ”์ถœ

๋‘๋ฒˆ์งธ Pooling layer์„ ์ง€๋‚˜๋ฉด ์™„์ „์—ฐ๊ฒฐ๊ณ„์ธต๊ณผ ์—ฐ๊ฒฐ์ด ๋˜์–ด์•ผํ•˜๋Š”๋ฐ Pooling์„ ํ†ต๊ณผํ•œ ํŠน์„ฑ ๋งต์€ 2์ฐจ์›์ด๊ณ  ์™„์ „์—ฐ๊ฒฐ๊ณ„์ธต์€ 1์ฐจ์›์ด๋ฏ€๋กœ ์—ฐ์‚ฐ์ด ๋ถˆ๊ฐ€๋Šฅํ•˜๊ฒŒ๋œ๋‹ค. ๋”ฐ๋ผ์„œ ํ‰ํƒ„ํ™” ๊ณ„์ธต(Flatten layer)์„ ์‚ฌ์šฉํ•ด์„œ 2์ฐจ์›์„ 1์ฐจ์›์œผ๋กœ ํŽผ์น˜๋Š” ์ž‘์—…์„ ํ•ด์•ผํ•œ๋‹ค.

ํ‰ํƒ„ํ™” ๊ณ„์ธต์„ ํ†ต๊ณผํ•˜๊ฒŒ ๋˜๋ฉด ์šฐ๋ฆฌ๋Š” ์™„์ „์—ฐ๊ฒฐ ๊ณ„์ธต์—์„œ ํ–‰๋ ฌ ๊ณฑ์…ˆ์„ ํ•  ์ˆ˜ ์žˆ๊ฒŒ๋˜๊ณ  ๋งˆ์ฐฌ๊ฐ€์ง€๋กœ ์™„์ „์—ฐ๊ฒฐ ๊ณ„์ธต(=Dense=Fully connected) + ํ™œ์„ฑํ™” ํ•จ์ˆ˜์˜ ๋ฐ˜๋ณต์„ ํ†ตํ•ด ์ ์  ๋…ธ๋“œ์˜ ๊ฐœ์ˆ˜๋ฅผ ์ถ•์†Œ์‹œํ‚ค๋‹ค๊ฐ€ ๋งˆ์ง€๋ง‰์— Softmax ํ™œ์„ฑํ™” ํ•จ์ˆ˜๋ฅผ ํ†ต๊ณผํ•˜๊ณ  ์ถœ๋ ฅ์ธต์œผ๋กœ ๊ฒฐ๊ณผ๋ฅผ ์ถœ๋ ฅํ•˜๊ฒŒ๋œ๋‹ค.

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

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

โ“ ์ƒ์„ฑ์  ์ ๋Œ€ ์‹ ๊ฒฝ๋ง์ด๋ž€ ?
GAN์ด๋ž€ ์„œ๋กœ ์ ๋Œ€(Adversarial)ํ•˜๋Š” ๊ด€๊ณ„์˜ 2๊ฐ€์ง€ ๋ชจ๋ธ(์ƒ์„ฑ ๋ชจ๋ธ๊ณผ ํŒ๋ณ„ ๋ชจ๋ธ)์„ ๋™์‹œ์— ์‚ฌ์šฉํ•˜๋Š” ๊ธฐ์ˆ ์ด๋‹ค.

๐Ÿงฉ ์ ์šฉ์˜ˆ์‹œ

GAN์€ ์œ„์กฐ์ง€ํ๋ฒ”๊ณผ ์ด๋ฅผ ๋ณด๊ณ  ์ ๋ฐœํ•˜๋Š” ๊ฒฝ์ฐฐ์˜ ๊ด€๊ณ„๋กœ ์„ค๋ช…ํ•  ์ˆ˜ ์žˆ๋‹ค.

* ์ƒ์„ฑ๋ชจ๋ธ(์œ„์กฐ์ง€ํ๋ฒ”): ๊ฒฝ์ฐฐ๋„ ๊ตฌ๋ถ„ ๋ชปํ•˜๋Š” ์ง„์งœ๊ฐ™์€ ์œ„์กฐ์ง€ํ๋ฅผ ๋งŒ๋“ค์ž!
  : ์ด๋ฏธ์ง€๊ฐ€ ์ง„์งœ(1)๋กœ ํŒ๋ณ„๋ ์ˆ˜๋ก ์ข‹์€๊ฒƒ์ธ๋ฐ, ๋ณด๋‹ค ์ •๊ตํ•˜๊ฒŒ ๋ชจ๋ธ์„ ๋งŒ๋“ค๋ ค๊ณ  ๋…ธ๋ ฅํ•˜๋ฉฐ
  	Target์€ 1๋กœ ๋‚˜์˜ค๋„๋ก ํ•ด์•ผํ•œ๋‹ค. ๊ฐ€์งœ๋ฅผ ์ง„์งœ์ธ 1์ฒ˜๋Ÿผ ๋งŒ๋“ค๊ธฐ ์œ„ํ•˜์—ฌ ํƒ€๊นƒ์ธ 1๊ณผ ์˜ˆ์ธก์˜ ์ฐจ์ด์ธ ์†์‹ค์„ 
    ์ค„์ด๊ธฐ ์œ„ํ•˜์—ฌ Backpropagation์„ ์ด์šฉํ•œ weight๋ฅผ ์กฐ์ •ํ•  ๊ฒƒ์ด๋‹ค.

* ํŒ๋ณ„๋ชจ๋ธ(๊ฒฝ์ฐฐ): ์ง„์งœ ์ง€ํ์™€ ์œ„์กฐ์ง€ํ๋ฅผ ์ž˜ ๊ตฌ๋ถ„ํ•˜์ž!
  : ์ง„์งœ ์ด๋ฏธ์ง€๋Š” 1๋กœ, ๊ฐ€์งœ ์ด๋ฏธ์ง€๋Š” 0์œผ๋กœ ํŒ๋ณ„ํ•  ์ˆ˜ ์žˆ์–ด์•ผํ•˜๊ณ , 
  ์ƒ์„ฑ๋œ ๋ชจ๋ธ์—์„œ Fake์™€ Real ์ด๋ฏธ์ง€ ๋‘˜๋‹ค๋ฅผ ํ•™์Šตํ•˜์—ฌ ์˜ˆ์ธก๊ณผ ํƒ€๊นƒ์˜ ์ฐจ์ด์ธ ์†์‹ค์„ ์ค„์ธ๋‹ค.

์ด์™€๊ฐ™์ด ๊ณ„์† ์ง„ํ–‰๋˜๋ฉด ์œ„์กฐ์ง€ํ๋ฒ”์€ ๋”์šฑ ๋” ์ •๊ตํ•˜๊ฒŒ, ๊ฒฝ์ฐฐ์€ ๋”์šฑ ๋” ํŒ๋ณ„์„ ์ž˜ํ•˜๋ฉด์„œ 
์„œ๋กœ ๋ฐœ์ „์˜ ๊ด€๊ณ„๊ฐ€ ๋˜์–ด ์›๋ณธ๊ณผ ๊ตฌ๋ณ„์ด ์–ด๋ ค์šด ๊ฐ€์งœ ์ด๋ฏธ์ง€๊ฐ€ ๋งŒ๋“ค์–ด์ง€๊ฒŒ ๋œ๋‹ค.

ex) StarGAN, CartoonGAN, DeepFake, CycleGAN ๋“ฑ

๐Ÿงฉ CNN ์‹ค์Šต

๐ŸŽ ์ž์„ธํ•œ ์ฝ”๋“œ๋Š” colab ์— ๊ฒŒ์‹œํ–ˆ์Šต๋‹ˆ๋‹ค.

๐Ÿงฉ ์ „์ดํ•™์Šต ์‹ค์Šต

๐ŸŽ ์ž์„ธํ•œ ์ฝ”๋“œ๋Š” colab ์— ๊ฒŒ์‹œํ–ˆ์Šต๋‹ˆ๋‹ค.

๐ŸŒฑ ๋Š๋‚€ ์ 

๋‹จ์ˆœํžˆ ํ•„ํ„ฐ์ ์šฉ์„ ํ• ๋•Œ๋งŒ ๋”ฅ๋Ÿฌ๋‹๊ธฐ์ˆ ์„ ์ด์šฉํ•˜๋Š”๊ฒŒ ์•„๋‹ˆ๋ผ ํ•œ๋•Œ ๊ต‰์žฅํžˆ ์œ ํ–‰ํ–ˆ์—ˆ๋˜ ๋”ฅํŽ˜์ดํฌ ๊ธฐ์ˆ ๋„ ์ ์šฉํ• ์ˆ˜ ์žˆ๋‹ค๋Š” ์‚ฌ์‹ค์„ ์ฒ˜์Œ ์•Œ๊ฒŒ๋˜์„œ ํฅ๋ฏธ๋กœ์› ๊ณ , ์ด๋ฒˆ์— ๋‚ด๊ฐ€ ๋ฐฐ์šด ๊ธฐ์ˆ ๋“ค์„ ์ด์šฉํ•ด์„œ YOLO5๋ฅผ ํ…Œ์ŠคํŠธํ•ด๋ณด๊ณ  ์‹ถ๋‹ค. ๋‹น์žฅ ๋‚ด์ผ๋ถ€ํ„ฐ ์‚ฌ๋ฌผ์ธ์‹ ํ”„๋กœ์ ํŠธ๋ฅผ ์‹œ์ž‘ํ•˜๊ฒŒ๋ ํ…๋ฐ YOLO5๋ฅผ ์ ์šฉํ•ด๋ณผ์ˆ˜ ์žˆ์„์ง€ ๋จผ์ € ํ™•์ธํ•ด๋ด์•ผ๊ฒ ๋‹ค.

profile
ํ•˜๋ฃจ ํ•œ๊ฑธ์Œ์”ฉ ๊พธ์ค€ํžˆ ๋‚˜์•„๊ฐ€๋Š” ๊ฐœ๋ฐœ์ž๐Ÿ™†โ€โ™€๏ธ https://github.com/Moonmooj

0๊ฐœ์˜ ๋Œ“๊ธ€

๊ด€๋ จ ์ฑ„์šฉ ์ •๋ณด