Group Study (2020-2021)/Deep Learning

[DeepSleep] ๋”ฅ๋Ÿฌ๋‹ ์Šคํ„ฐ๋”” 1์ฃผ์ฐจ

ํฌ._. 2021. 5. 17. 15:24

๐Ÿ™‹๐Ÿป‍โ™€๏ธ Summary

  • 1์ฃผ์ฐจ ์Šคํ„ฐ๋”” : Basic ML / DNN ๊ฐœ๋… + ๋ชจ๋ธ ๊ตฌํ˜„ (tensorflow / pytorch)

 

๐Ÿ“‘ ์Šคํ„ฐ๋”” ์ž๋ฃŒ

 

๐ŸŒŸ 1์ฃผ์ฐจ ์Šคํ„ฐ๋””

โค๏ธ ๋”ฅ๋Ÿฌ๋‹์ด๋ž€?

๋”ฅ๋Ÿฌ๋‹(deep learning, ์‹ฌ์ธตํ•™์Šต)์€ ๋จธ์‹ ๋Ÿฌ๋‹์„ ๊ตฌํ˜„ํ•˜๋Š” ์•Œ๊ณ ๋ฆฌ์ฆ˜์˜ ์ผ์ข…์ด๋‹ค. ๋จธ์‹ ๋Ÿฌ๋‹์„ ๊ตฌํ˜„ํ•˜๋Š” ์•Œ๊ณ ๋ฆฌ์ฆ˜์—๋Š” ๋กœ์ง€์Šคํ‹ฑ ํšŒ๊ท€, ์„œํฌํŠธ ๋ฒกํ„ฐ ๋จธ์‹ (Suppor vector machine, SVM), ๊ฒฐ์ • ํŠธ๋ฆฌ, ๋žœ๋ค ํฌ๋ ˆ์ŠคํŠธ, ์‹ ๊ฒฝ๋ง(neural networks) ๋“ฑ์ด ์žˆ๋‹ค. ๋”ฅ๋Ÿฌ๋‹์€ ๊ทธ ์ค‘ ์‹ ๊ฒฝ๋ง์˜ ํ•œ ์ข…๋ฅ˜์— ํ•ด๋‹นํ•œ๋‹ค. - wikidocs ์‹ ๊ฒฝ๋ง์ด๋ž€ ์ธ๊ฐ„์˜ ๋‡Œ๊ฐ€ ๊ฐ€์ง€๋Š” ์ƒ๋ฌผํ•™์  ํŠน์„ฑ ์ค‘ ๋‰ด๋Ÿฐ์˜ ์—ฐ๊ฒฐ ๊ตฌ์กฐ๋ฅผ ๊ฐ€๋ฆฌํ‚ค๋ฉฐ, ์ด๋Ÿฌํ•œ ์‹ ๊ฒฝ๋ง์„ ๋ณธ๋–  ๋งŒ๋“  ๋„คํŠธ์›Œํฌ ๊ตฌ์กฐ๋ฅผ ์ธ๊ณต์‹ ๊ฒฝ๋ง(Artificial Neural Network, ANN)์ด๋ผ๊ณ  ๋ถ€๋ฅธ๋‹ค.

Cf. ์ธ๊ณต์ง€๋Šฅ ๋ถ„์•ผ์—์„œ ์‹ ๊ฒฝ๋ง์ด๋ž€ ๋ณดํ†ต ์ธ๊ณต์‹ ๊ฒฝ๋ง์„ ์ง€์นญํ•˜๋ฉฐ, ๋”ฐ๋ผ์„œ ์ธ๊ณต์‹ ๊ฒฝ๋ง์„ ๋”ฐ๋กœ ๊ตฌ๋ถ„ํ•˜์ง€ ์•Š๊ณ  ์‹ ๊ฒฝ๋ง์ด๋ผ๊ณ  ๋ถ€๋ฅด๊ธฐ๋„ ํ•œ๋‹ค.

์ธ๊ณต์‹ ๊ฒฝ๋ง

์ธ๊ณต์‹ ๊ฒฝ๋ง์€ ์—ฌ๋Ÿฌ ๋‰ด๋Ÿฐ์ด ์„œ๋กœ ์—ฐ๊ฒฐ๋˜์–ด ์žˆ๋Š” ๊ตฌ์กฐ์˜ ๋„คํŠธ์›Œํฌ์ด๋ฉฐ, ์ž…๋ ฅ์ธต(input layer)๋ฅผ ํ†ตํ•ด ํ•™์Šตํ•˜๊ณ ์ž ํ•˜๋Š” ๋ฐ์ดํ„ฐ๋ฅผ ์ž…๋ ฅ๋ฐ›๊ฒŒ ๋œ๋‹ค. ์ด๋ ‡๊ฒŒ ์ž…๋ ฅ๋œ ๋ฐ์ดํ„ฐ๋“ค์€ ์—ฌ๋Ÿฌ ๋‹จ๊ณ„์˜ ์€๋‹‰์ธต(hidden layer)์„ ์ง€๋‚˜๋ฉด์„œ ์ฒ˜๋ฆฌ๊ฐ€ ์ด๋ฃจ์–ด์ ธ ์ถœ๋ ฅ์ธต(output layer)์„ ํ†ตํ•ด ์ตœ์ข… ๊ฒฐ๊ณผ๊ฐ€ ์ถœ๋ ฅ๋œ๋‹ค. ์ด๋Ÿฌํ•œ ์‹ ๊ฒฝ๋ง์„ 3๊ฐœ ์ด์ƒ ์ค‘์ฒฉํ•œ ๊ตฌ์กฐ๋ฅผ ๊นŠ์€ ์‹ ๊ฒฝ๋ง(Deep Neural Network, DNN)์ด๋ผ๊ณ  ๋ถ€๋ฅด๋ฉฐ, ์ด๋ฅผ ํ™œ์šฉํ•œ ๋จธ์‹ ๋Ÿฌ๋‹ ํ•™์Šต์„ ํŠน๋ณ„ํžˆ ๋”ฅ๋Ÿฌ๋‹์ด๋ผ๊ณ  ๋ถ€๋ฅธ๋‹ค. - tcpschool

๐Ÿงก DNN์ด๋ž€?

์‹ฌ์ธต ์‹ ๊ฒฝ๋ง(Deep Neural Network, DNN)์€ ์ž…๋ ฅ์ธต(input layer)๊ณผ ์ถœ๋ ฅ์ธต(output layer) ์‚ฌ์ด์— ์—ฌ๋Ÿฌ ๊ฐœ์˜ ์€๋‹‰์ธต(hidden layer)๋“ค๋กœ ์ด๋ฃจ์–ด์ง„ ์ธ๊ณต์‹ ๊ฒฝ๋ง(Artificial Neural Network, ANN)์ด๋‹ค. - ์œ„ํ‚ค๋ฐฑ๊ณผ

Deep Neural Network

๐Ÿ’› DNN ๋ชจ๋ธ ๊ตฌํ˜„

[ํ”„๋กœ์ ํŠธ ๋ชฉํ‘œ]

  • Fashion-Mnist ๋ฐ์ดํ„ฐ์…‹์„ ํ™œ์šฉํ•ด ๋ถ„๋ฅ˜๊ธฐ ํ•™์Šต
  • Multi layer perceptron, Batch normalization, ReLU๋ฅผ ํ™œ์šฉํ•ด ๋„คํŠธ์›Œํฌ ์„ค๊ณ„
    Cf. ๋‹ค์ธต ํผ์…‰ํŠธ๋ก (Multi layer perceptron, MLP)์€ ์‹ฌ์ธต ์‹ ๊ฒฝ๋ง(DNN)์˜ ํ•˜์œ„์ง‘ํ•ฉ์œผ๋กœ ๊ฐ„์ฃผํ•  ์ˆ˜ ์žˆ์ง€๋งŒ, ๋ฌธํ—Œ์—์„œ๋Š” ์ข…์ข… ๊ฐ™์€ ์˜๋ฏธ๋กœ ์‚ฌ์šฉ๋œ๋‹ค. - MLP vs DNN
  • tf.data.Dataset์„ ์ด์šฉํ•˜์—ฌ ๋ฐ์ดํ„ฐ์ž…๋ ฅ ํŒŒ์ดํ”„๋ผ์ธ(input pipeline) ๋งŒ๋“ค๊ธฐ
  • ์†์‹คํ•จ์ˆ˜(loss function)์™€ ์˜ตํ‹ฐ๋งˆ์ด์ ธ(optimizer) ์ •์˜
  • ์†์‹ค(loss)์„ ์ธก์ •ํ•˜๊ณ  ๊ฒฝ์‚ฌ(gradient)๋ฅผ ๊ณ„์‚ฐํ•ด ๋ชจ๋ธ ํŒŒ๋ผ๋ฏธํ„ฐ ์—…๋ฐ์ดํŠธ
  • ํ•™์Šต๋œ ๋ชจ๋ธ์˜ ์„ฑ๋Šฅ ํ…Œ์ŠคํŠธ

[ํ”„๋กœ์ ํŠธ ๊ณผ์ •]

  1. Package load
  2. ํ•˜์ดํผํŒŒ๋ผ๋ฏธํ„ฐ ์„ธํŒ…
    • ํ•™์Šต์— ํ•„์š”ํ•œ ํ•˜์ดํผํŒŒ๋ผ๋ฏธํ„ฐ ๊ฐ’ ์ดˆ๊ธฐํ™”
  3. Dataset load ๋ฐ tf.data.Dataset ๊ตฌ์ถ•
    • Fashion-MNIST ๋ฐ์ดํ„ฐ์…‹์„ ์ •์˜ํ•ด์ฃผ๊ณ , ์ „์ฒด ๋ฐ์ดํ„ฐ์…‹์„ ๋ฏธ๋‹ˆ๋ฐฐ์น˜ ๋‹จ์œ„๋กœ ๋‰ด๋Ÿด๋„ท์— ๊ณต๊ธ‰ํ•ด์ฃผ๋„๋ก tf.data.Dataset ์ •์˜
    • tf.data.Dataset์„ ์ด์šฉํ•˜์—ฌ ๋ฐ์ดํ„ฐ ์ž…๋ ฅ ํŒŒ์ดํ”„๋ผ์ธ ์„ค๊ณ„
  4. ๋ฐ์ดํ„ฐ ์ƒ˜ํ”Œ ์‹œ๊ฐํ™”
  5. ๋ชจ๋ธ (๋„คํŠธ์›Œํฌ) ๋งŒ๋“ค๊ธฐ โญ๏ธ
    • ํ•™์Šต์‹œํ‚ฌ ๋‰ด๋Ÿด๋„คํŠธ์›Œํฌ ์„ค๊ณ„
    • Multi Layer Perceptron(MLP) ๋ ˆ์ด์–ด๋ฅผ 2๊ฐœ ์Œ“์•„ ๋„คํŠธ์›Œํฌ ์„ค๊ณ„
      Cf. MLP : ํ•œ ๋ ˆ์ด์–ด์˜ ๋ชจ๋“  ๋‰ด๋Ÿฐ์ด ๋‹ค์Œ ๋ ˆ์ด์–ด์˜ ๋‰ด๋Ÿฐ๊ณผ ์™„์ „ํžˆ ์—ฐ๊ฒฐ๋œ ๊ฒŒ์ธต(Fully Connected layer ๋˜๋Š” Dense layer)
    • MLP์˜ ๋ ˆ์ด์–ด๋ฅผ ๊นŠ๊ฒŒ ์Œ“์„ ๋•Œ์—๋Š” ๋ฐ˜๋“œ์‹œ ๋น„์„ ํ˜• activation function ํ•„์š” → ReLU ์‚ฌ์šฉ
      Cf. ReLU๋Š” ์Œ์ˆ˜์˜ ์ž…๋ ฅ์— ๋Œ€ํ•ด์„œ๋Š” 0, ์–‘์ˆ˜์˜ ์ž…๋ ฅ์— ๋Œ€ํ•ด์„œ๋Š” ์ž…๋ ฅ๊ฐ’์„ ๊ทธ๋Œ€๋กœ ์ถœ๋ ฅํ•˜๋Š” ํ•จ์ˆ˜
    • Sequential ๋ชจ๋ธ์„ ์‚ฌ์šฉ
      Cf. Sequential ๋ชจ๋ธ : ํ•ด๋‹น ๋ ˆ์ด์–ด์˜ output์ด ๊ทธ๋Œ€๋กœ ๋‹ค์Œ ๋ ˆ์ด์–ด์˜ input์ด ๋˜๋Š” ๊ตฌ์กฐ์˜ ๋ชจ๋ธ์„ ๋งŒ๋“ค ๋•Œ ์‚ฌ์šฉ
  6. Loss function ๋ฐ Optimizer ์ •์˜
    • ์ƒ์„ฑ๋œ ๋ชจ๋ธ ํ•™์Šต์„ ์œ„ํ•ด ์†์‹คํ•จ์ˆ˜ ์ •์˜
    • ๋‰ด๋Ÿด๋„คํŠธ์›Œํฌ๋Š” ๊ฒฝ์‚ฌํ•˜๊ฐ•(gradient descent) ๋ฐฉ๋ฒ•์„ ์ด์šฉํ•˜์—ฌ ์†์‹คํ•จ์ˆ˜์˜ ๊ฐ’์„ ์ค„์ด๋Š” ๋ฐฉํ–ฅ์œผ๋กœ ํŒŒ๋ผ๋ฏธํ„ฐ ๊ฐฑ์‹ (update)
    • ํšจ๊ณผ์ ์ธ ๊ฒฝ์‚ฌํ•˜๊ฐ• ๋ฐฉ๋ฒ• ์ ์šฉ์„ ์œ„ํ•ด ์˜ตํ‹ฐ๋งˆ์ด์ € ํ•จ๊ป˜ ์‚ฌ์šฉ
  7. Training
    • ๋ชจ๋ธ์— ๋ฐ์ดํ„ฐ๋ฅผ ๋ฏธ๋‹ˆ๋ฐฐ์น˜ ๋‹จ์œ„๋กœ ์ œ๊ณตํ•ด์„œ ํ•™์Šต
  8. Evaluate on test dataset
    • ํ•™์Šต๋œ ๋ชจ๋ธ์˜ ์„ฑ๋Šฅ ํ…Œ์ŠคํŠธ

[์†Œ์Šค์ฝ”๋“œ]

 

๐Ÿ”ง ๋ฌธ์ œ์ 

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

 

๐Ÿ“Œ ๋‹ค์Œ ์ฃผ์— ํ•  ์ผ

  • CNN ๊ฐœ๋… + ๋ชจ๋ธ ๊ตฌํ˜„