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

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

[ 2022-05-13 (๊ธˆ) ์˜ค๋Š˜์˜ TIL ]

[ Today Learn ]

  • ๋…ผ๋ฆฌํšŒ๊ท€์˜ ๊ฐœ๋…๊ณผ ๋‹ค์–‘ํ•œ ๋จธ์‹ ๋Ÿฌ๋‹ ๋ชจ๋ธ
  • ๋จธ์‹ ๋Ÿฌ๋‹์—์„œ ์“ฐ์ด๋Š” ์ „์ฒ˜๋ฆฌ ๊ธฐ๋ฒ•

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

โ“ ๋…ผ๋ฆฌํšŒ๊ท€๋ž€ ?

๋จธ์‹ ๋Ÿฌ๋‹์—์„œ, ์ž…๋ ฅ๊ฐ’๊ณผ ๋ฒ”์ฃผ ์‚ฌ์ด์˜ ๊ด€๊ณ„๋ฅผ ๊ตฌํ•˜๋Š” ๊ฒƒ

  • ์ด์ง„๋…ผ๋ฆฌํšŒ๊ท€
  • ๋‹คํ•ญ๋…ผ๋ฆฌํšŒ๊ท€

๐Ÿงฉ ์ ์šฉ ์˜ˆ์‹œ (์ด์ง„๋…ผ๋ฆฌ)

๐Ÿ”Ž ๋Œ€ํ•™๊ต ์‹œํ—˜ ์ „ ๋‚  ๊ณต๋ถ€ํ•œ ์‹œ๊ฐ„์„ ๊ฐ€์ง€๊ณ  ํ•ด๋‹น ๊ณผ๋ชฉ์˜ ์ด์ˆ˜ ์—ฌ๋ถ€(Pass or fail)๋ฅผ ์˜ˆ์ธกํ•˜๋Š” ๋ฌธ์ œ
   input๊ฐ’: ๊ณต๋ถ€ํ•œ ์‹œ๊ฐ„  
   output๊ฐ’: ์ด์ˆ˜์—ฌ๋ถ€(Pass or Fail)

์ด ๋ฌธ์ œ๋ฅผ ๋งŒ์•ฝ ์„ ํ˜•ํšŒ๊ท€๋ฅผ ์‚ฌ์šฉํ•˜๋ฉด ์šฐ์Šค๊ฝ์Šค๋Ÿฌ์šด ๊ทธ๋ž˜ํ”„๊ฐ€ ๋‚˜ํƒ€๋‚˜๋‹ค. ๋”ฐ๋ผ์„œ ์ด๋Ÿฐ๊ฒฝ์šฐ ์ด์ง„ ๋…ผ๋ฆฌ ํšŒ๊ท€๋กœ ํ•ด๊ฒฐํ•  ์ˆ˜ ์žˆ๋‹ค. ๋ฐ”๋กœ Sigmoid function์„ ์‚ฌ์šฉํ•˜์—ฌ ์•„๋ž˜์™€ ๊ฐ™์€ ๊ทธ๋ž˜ํ”„๋ฅผ ๋งŒ๋“ค ์ˆ˜ ์žˆ๋‹ค.

์‹ค์งˆ์ ์ธ ๊ณ„์‚ฐ์€ ์„ ํ˜•ํšŒ๊ท€์™€ ๋˜‘๊ฐ™์ง€๋งŒ, ์ถœ๋ ฅ์— Sigmoidํ•จ์ˆ˜๋ฅผ ๋ถ™์—ฌ 0์—์„œ 1์‚ฌ์ด์˜ ๊ฐ’์„ ๊ฐ€์ง€๊ฒŒ ๋œ๋‹ค.

์œ„์˜ ๊ทธ๋ž˜ํ”„์™€ ๊ฐ™์ด ์˜ˆ์ธกํ•œ ๋ผ๋ฒจ์ด 0์ผ ๊ฒฝ์šฐ ํ™•๋ฅ ์ด 1์ด ๋˜๋„๋ก ํ•ด์•ผํ•˜๊ณ , ์˜ˆ์ธกํ•œ ๋ผ๋ฒจ์ด 1์ผ ๊ฒฝ์šฐ ํ™•๋ฅ ์ด 0์ด ๋˜๋„๋ก ๋งŒ๋“ค์–ด์•ผ ํ•˜๊ณ , ๋ฐ˜๋Œ€๋กœ ์ •๋‹ต ๋ผ๋ฒจ y๊ฐ€ 1์ผ ๊ฒฝ์šฐ์—๋Š”, ์˜ˆ์ธกํ•œ ๋ผ๋ฒจ 1์ผ ๋•Œ ํ™•๋ฅ ์ด 1์ด ๋˜๋„๋ก ๋งŒ๋“ค์–ด์•ผ ํ•œ๋‹ค.

์ด๋ ‡๊ฒŒ ๊ฐ€๋กœ์ถ•์„ ํด๋ž˜์Šค๋กœ ํ‘œ์‹œํ•˜๊ณ  ์„ธ๋กœ์ถ•์„ ํ™•๋ฅ ๋กœ ํ‘œ์‹œํ•œ ๊ทธ๋ž˜ํ”„๋ฅผ 'ํ™•๋ฅ ๋ถ„ํฌ๊ทธ๋ž˜ํ”„'๋ผ๊ณ  ํ•œ๋‹ค. ์ด ๊ทธ๋ž˜ํ”„์˜ ์ฐจ์ด๋ฅผ ๋น„๊ตํ•  ๋•Œ๋Š” Crossentropy ๋ผ๋Š” ํ•จ์ˆ˜๋ฅผ ์ด์šฉํ•œ๋‹ค.

์ž…๋ ฅ๊ฐ’์˜ ํ™•๋ฅ  ๋ถ„ํฌ๊ฐ€ ํŒŒ๋ž€์ƒ‰๊ทธ๋ž˜ํ”„์ฒ˜๋Ÿผ ๋‚˜์™”์„๋•Œ, crossentropy๋Š” ํŒŒ๋ž€์ƒ‰๊ทธ๋ž˜ํ”„๋ฅผ ๋นจ๊ฐ„์ƒ‰ ๊ทธ๋ž˜ํ”„์ฒ˜๋Ÿผ ๋งŒ๋“ค์–ด์ฃผ๋Š” ํ•จ์ˆ˜์ด๋‹ค.

๐Ÿ’ก Keras์—์„œ ์ด์ง„ ๋…ผ๋ฆฌ ํšŒ๊ท€์˜ ๊ฒฝ์šฐ binary_crossentropy ์†์‹ค ํ•จ์ˆ˜๋ฅผ ์‚ฌ์šฉํ•œ๋‹ค.

๐Ÿงฉ ์ ์šฉ ์˜ˆ์‹œ (๋‹คํ•ญ๋…ผ๋ฆฌ)

๐Ÿ”Ž ๋Œ€ํ•™๊ต ์‹œํ—˜ ์ „ ๋‚  ๊ณต๋ถ€ํ•œ ์‹œ๊ฐ„์„ ๊ฐ€์ง€๊ณ  ํ•ด๋‹น ๊ณผ๋ชฉ์˜ ์„ฑ์ (A, B, C, D, F)์„ ์˜ˆ์ธกํ•˜๋Š” ๋ฌธ์ œ
   input๊ฐ’: ๊ณต๋ถ€ํ•œ ์‹œ๊ฐ„  
   output๊ฐ’: ๊ณผ๋ชฉ์˜ ์„ฑ์ (A,B,C,D,F)

์œ„ ๋ฌธ์ œ๋ฅผ ๋…ผ๋ฆฌํšŒ๊ท€๋กœ ํ’€๋ ค๋ฉด 5๊ฐœ์˜ ํด๋ž˜์Šค๋กœ ๋‚˜๋ˆŒ ์ˆ˜ ์žˆ๋‹ค.

โ“ One-hot encoding๋ž€ ?

๋‹คํ•ญ ๋ถ„๋ฅ˜๋ฌธ์ œ๋ฅผ ํ’€ ๋•Œ ์ถœ๋ ฅ๊ฐ’์˜ ํ˜•ํƒœ๋ฅผ ๊ฐ€์žฅ ์˜ˆ์˜๊ฒŒ ํ‘œํ˜„ํ•  ์ˆ˜ ์žˆ๋Š” ๋ฐฉ๋ฒ•์œผ๋กœ ์—ฌ๋Ÿฌ๊ฐœ์˜ ํ•ญ์„ 0๊ณผ 1๋กœ๋งŒ ํ‘œํ˜„ํ•  ์ˆ˜ ์žˆ๋‹ค.

  • ์›ํ•ซ ์ธ์ฝ”๋”ฉ์„ ๋งŒ๋“œ๋Š” ๋ฐฉ๋ฒ•
    1) ํด๋ž˜์Šค(๋ผ๋ฒจ)์˜ ๊ฐœ์ˆ˜๋งŒํผ ๋ฐฐ์—ด์„ 0์œผ๋กœ ์ฑ„์šด๋‹ค.
    2) ๊ฐ ํด๋ž˜์Šค์˜ ์ธ๋ฑ์Šค ์œ„์น˜๋ฅผ ์ •ํ•œ๋‹ค.
    3) ๊ฐ ํด๋ž˜์Šค์— ํ•ด๋‹นํ•˜๋Š” ์ธ๋ฑ์Šค์— 1์„ ๋„ฃ๋Š”๋‹ค.

โ“ Softmaxํ•จ์ˆ˜๋ž€ ?

์„ ํ˜• ๋ชจ๋ธ์—์„œ ๋‚˜์˜จ ๊ฒฐ๊ณผ๋ฅผ ๋ชจ๋‘๊ฐ€ ๋”ํ•˜๋ฉด 1์ด ๋˜๋„๋ก ๋งŒ๋“ค์–ด์ฃผ๋Š” ํ•จ์ˆ˜๋กœ ์˜ˆ์ธก์˜ ๊ฒฐ๊ณผ๋ฅผ ํ™•๋ฅ ๋กœ ํ‘œํ˜„ํ•˜๊ธฐ ์œ„ํ•จ์ด๋‹ค.

๐Ÿ’ก Keras์—์„œ ๋‹คํ•ญ ๋…ผ๋ฆฌ ํšŒ๊ท€์˜ ๊ฒฝ์šฐ categorical_crossentropy ์†์‹ค ํ•จ์ˆ˜๋ฅผ ์‚ฌ์šฉํ•œ๋‹ค.

โ“ ์ „์ฒ˜๋ฆฌ(Preprocessing)๋ž€ ?

๋„“์€ ๋ฒ”์œ„์˜ ๋ฐ์ดํ„ฐ ์ •์ œ ์ž‘์—…์œผ๋กœ ํ•„์š”์—†๋Š” ๋ฐ์ดํ„ฐ๋ฅผ ์ง€์šฐ๊ณ  ํ•„์š”ํ•œ ๋ฐ์ดํ„ฐ๋งŒ์„ ์ทจํ•˜๋Š” ๊ฒƒ,null ๊ฐ’์ด ์žˆ๋Š” ํ–‰์„ ์‚ญ์ œํ•˜๋Š” ๊ฒƒ, ์ •๊ทœํ™”(Normalization), ํ‘œ์ค€ํ™”(Standardization) ๋“ฑ์˜ ๋งŽ์€ ์ž‘์—…๋“ค์„ ํฌํ•จํ•˜๊ณ  ์žˆ๋‹ค.

๋Œ€ํ‘œ์ ์ธ ์ „์ฒ˜๋ฆฌ ์ž‘์—…์œผ๋กœ๋Š” '์ •๊ทœํ™”'์™€ 'ํ‘œ์ค€ํ™”'๊ฐ€ ์žˆ๋‹ค.

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

๐Ÿ”Ž ๋ถ€๋™์‚ฐ ๋ฐ์ดํ„ฐ๋ฅผ ๋ถ„์„ํ• ๋•Œ, ์•„๋ž˜์™€ ๊ฐ™์€ ๋ฐ์ดํ„ฐ๊ฐ€ ํฌํ•จ๋˜์–ด ์žˆ์„๊ฒฝ์šฐ 
   * ์ง‘์˜ ๋„“์ด (๋‹จ์œ„: ํ‰)  
   * ์ค€๊ณต ์—ฐ๋„ (๋‹จ์œ„: ๋…„)
   * ์ธต ์ˆ˜ (๋‹จ์œ„: ์ธต)
   * ๊ฐ€์žฅ ๊ฐ€๊นŒ์šด ์ง€ํ•˜์ฒ  ์—ญ๊ณผ์˜ ๊ฑฐ๋ฆฌ (๋‹จ์œ„: km)

์—ฌ๊ธฐ์„œ ๊ฐ๊ฐ์˜ ํŠน์„ฑ๋“ค์ด ๋‹จ์œ„๊ฐ€ ๋‹ค ๋‹ค๋ฅด๊ณ , ๊ฐ’์˜ ๋ฒ”์œ„๋„ ์ฐจ์ด๊ฐ€ ํด ์ˆ˜ ์žˆ๊ธฐ๋•Œ๋ฌธ์— ์ง์ ‘์ ์œผ๋กœ ๋น„๊ต๊ฐ€ ๋ถˆ๊ฐ€๋Šฅํ•˜๋‹ค. ๋”ฐ๋ผ์„œ ์ •๊ทœํ™” ๋˜๋Š” ํ‘œ์ค€ํ™”ํ•  ํ•„์š”๊ฐ€ ์žˆ๋‹ค.

  • ์ •๊ทœํ™”
    ์ •๊ทœํ™”๋Š” ๋ฐ์ดํ„ฐ๋ฅผ 0๊ณผ 1์‚ฌ์ด์˜ ๋ฒ”์œ„๋ฅผ ๊ฐ€์ง€๋„๋ก ๋งŒ๋“ ๋‹ค.

    ๐Ÿ”Ž ๋ถ€๋™์‚ฐ ๋ฐ์ดํ„ฐ๋ฅผ ๋ถ„์„ํ• ๋•Œ, ์•„๋ž˜์™€ ๊ฐ™์€ ๋ฐ์ดํ„ฐ๊ฐ€ ํฌํ•จ๋˜์–ด ์žˆ์„๊ฒฝ์šฐ 
       * ์‹ค์ œ์ ์ˆ˜:   50์ /100์ ๋งŒ์     50์ /500์ ๋งŒ์ 
       * ์ •๊ทœํ™”์ ์ˆ˜:      0.5              0.1

์ด๋ ‡๊ฒŒ ์ •๊ทœํ™”๋ฅผ ํ•˜๋ฉด ๊ฐ™์€ 50์ ์ด๋ผ๋„ ๊น”๋”ํ•˜๊ฒŒ ๊ตฌ๋ถ„ํ•  ์ˆ˜ ์žˆ๋‹ค.

  • ํ‘œ์ค€ํ™”
    ํ‘œ์ค€ํ™”๋Š” ๋ฐ์ดํ„ฐ์˜ ๋ถ„ํฌ๋ฅผ ์ •๊ทœ๋ถ„ํฌ๋กœ ๋ฐ”๊ฟ”์ค€๋‹ค. ์ฆ‰ ๋ฐ์ดํ„ฐ์˜ ํ‰๊ท ์ด 0์ด ๋˜๋„๋กํ•˜๊ณ  ํ‘œ์ค€ํŽธ์ฐจ๊ฐ€ 1์ด ๋˜๋„๋ก ๋งŒ๋“ค์–ด์ค€๋‹ค.
    ์ผ๋‹จ ๋ฐ์ดํ„ฐ์˜ ํ‰๊ท ์„ 0์œผ๋กœ ๋งŒ๋“ค์–ด์ฃผ๋ฉด ๋ฐ์ดํ„ฐ์˜ ์ค‘์‹ฌ์ด 0์— ๋งž์ถฐ์ง€๊ฒŒ๋˜๊ณ , ํ‘œ์ค€ํŽธ์ฐจ๋ฅผ 1๋กœ ๋งŒ๋“ค์–ด์ฃผ๋ฉด ๋ฐ์ดํ„ฐ๊ฐ€ ์˜ˆ์˜๊ฒŒ ์ •๊ทœํ™”๊ฐ€๋œ๋‹ค. ์ด๋ ‡๊ฒŒ ํ‘œ์ค€ํ™”๋ฅผ ์‹œํ‚ค๊ฒŒ ๋˜๋ฉด ์ผ๋ฐ˜์ ์œผ๋กœ ํ•™์Šต ์†๋„(์ตœ์ €์  ์ˆ˜๋ ด ์†๋„)๊ฐ€ ๋น ๋ฅด๊ณ , Local minima์— ๋น ์งˆ ๊ฐ€๋Šฅ์„ฑ์ด ์ ๊ฒŒ๋œ๋‹ค.

๐Ÿงฉ Kaggle์„ ํ™œ์šฉํ•œ ๋…ผ๋ฆฌํšŒ๊ท€ ์ ์šฉ์˜ˆ์‹œ

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

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

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

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

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

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

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