๋ณธ๋ฌธ ๋ฐ”๋กœ๊ฐ€๊ธฐ

Data Science/Machine Learning

[ML] ๋ฐ์ดํ„ฐ๋ฅผ ๋ณต๊ตฌํ•˜๋Š” Auto Encoder?

๋ฐ˜์‘ํ˜•

๐Ÿ”‰ํ•ด๋‹น ์ž๋ฃŒ ๋‚ด์šฉ์€ ์ˆœ์ฒœํ–ฅ๋Œ€ํ•™๊ต ๋น…๋ฐ์ดํ„ฐ๊ณตํ•™๊ณผ ๊น€์ •ํ˜„ ๊ต์ˆ˜๋‹˜์˜ ์ˆ˜์—…์ž๋ฃŒ์— ๊ธฐ๋ฐ˜ํ•˜์˜€์œผ๋ฉฐ ์ˆ˜์—…์ž๋ฃŒ์˜ ์ €์ž‘๊ถŒ ๋ฌธ์ œ๋กœ ์ธํ•ด ์ˆ˜์—…์ž๋ฃŒ๋ฅผ ์ง์ ‘ ์ด์šฉํ•˜์ง€ ์•Š๊ณ  ์ˆ˜์—…์ž๋ฃŒ์˜ ๋‚ด์šฉ์„ ์ฐธ๊ณ ํ•˜์—ฌ ๋ณธ์ธ์ด ์ง์ ‘ ์ž‘์„ฑํ•˜์˜€์œผ๋ฏ€๋กœ ์ €์ž‘๊ถŒ ๋ฌธ์ œ๊ฐ€ ๋ฐœ์ƒํ•˜์ง€ ์•Š์Œ์„ ํ•„ํžˆ ์•Œ๋ ค๋“œ๋ฆฝ๋‹ˆ๋‹ค. 

 

์ด๋ฒˆ ํฌ์ŠคํŒ…์—์„œ๋Š” ์ž…๋ ฅ ๋ฐ์ดํ„ฐ๋ฅผ ์••์ถ•์‹œํ‚ค๊ณ  ๋‹ค์‹œ ํ™•์žฅํ•ด ๊ฒฐ๊ณผ ๋ฐ์ดํ„ฐ๋ฅผ ์ž…๋ ฅ ๋ฐ์ดํ„ฐ์™€ ์ตœ๋Œ€ํ•œ ๋™์ผํ•˜๊ฒŒ ๋งŒ๋“ค๊ธฐ ์œ„ํ•ด ํŒŒ๋ผ๋ฏธํ„ฐ๋ฅผ ํ•™์Šต์‹œํ‚ค๋Š” Auto Encoder์— ๋Œ€ํ•ด์„œ ์•Œ์•„๋ณด๋ ค๊ณ  ํ•œ๋‹ค. ๋ชฉ์ฐจ๋Š” ๋‹ค์Œ๊ณผ ๊ฐ™๋‹ค.

 

๋ณธ๋“œ๋ฅผ ๋ถ™์—ฌ ๋ณต๊ตฌํ•˜๋Š” ๊ฒƒ์ฒ˜๋Ÿผ ๋ฐ์ดํ„ฐ๋„ ๋ณต๊ตฌ๊ฐ€ ๊ฐ€๋Šฅํ•˜๋‹ค.

 

1. Auto Encoder๋ž€?

2. PCA vs Encoder

3. Stacked Auto Encoder

4. Denoising Auto Encoder(DAE)

5. Variational Auto Encoder(VAE)

6. Examples of Auto Encoder

1. Auto Encoder๋ž€?

์œ„์—์„œ๋„ ์ž ๊น ์–ธ๊ธ‰ํ–ˆ์ง€๋งŒ Auto Encoder๋ž€ ์ž…๋ ฅ ๋ฐ์ดํ„ฐ๋ฅผ ์••์ถ•์‹œ์ผœ ์••์ถ•์‹œํ‚จ ๋ฐ์ดํ„ฐ๋กœ ์ถ•์†Œํ•œ ํ›„ ๋‹ค์‹œ ํ™•์žฅํ•˜์—ฌ ๊ฒฐ๊ณผ ๋ฐ์ดํ„ฐ๋ฅผ ์ž…๋ ฅ ๋ฐ์ดํ„ฐ์™€ ๋™์ผํ•˜๋„๋ก ๋งŒ๋“œ๋Š” ์ผ์ข…์˜ ๋”ฅ ๋‰ด๋Ÿด ๋„คํŠธ์›Œํฌ ๋ชจ๋ธ์ด๋‹ค. Auto Encoder๋Š” ์ž…๋ ฅ ๋ฐ์ดํ„ฐ๋ฅผ ์ผ์ข…์˜ Label(์ •๋‹ต)๋กœ ์‚ผ์•„ ํ•™์Šตํ•˜๋ฏ€๋กœ Self-supervised Learning ์ด๋ผ๊ณ  ๋ถ€๋ฅด๊ธฐ๋„ ํ•˜์ง€๋งŒ ์–ด์จ‹๊ฑฐ๋‚˜ y๊ฐ’์ด ์กด์žฌํ•˜์ง€ ์•Š์œผ๋ฉฐ ์ด์šฉํ•˜์ง€ ์•Š๋Š”๋‹ค๋Š” ์ ์—์„œ Unsupervised Learning์œผ๋กœ ๋ถ„๋ฅ˜๋˜๋Š” ๋ชจ๋ธ์ด๋‹ค. Auto Encoder๊ฐ€ ์–ด๋–ป๊ฒŒ ๊ตฌํ˜„๋˜๋Š”์ง€ ์•Œ์•„๋ณด๊ธฐ ์œ„ํ•ด ๋‹ค์Œ ๊ทธ๋ฆผ์„ ์‚ดํŽด๋ณด์ž.

 

https://mc.ai/auto-encoder-in-biology/

 

์œ„ ๊ทธ๋ฆผ์€ ์†๊ธ€์”จ ์ด๋ฏธ์ง€ ๋ฐ์ดํ„ฐ์ธ ์ˆซ์ž 1์„ Auto Encoder ๋ชจ๋ธ์— ๋„ฃ์€ ํ›„ ๊ฒฐ๊ณผ๊ฐ’์œผ๋กœ ์ž…๋ ฅ ๋ฐ์ดํ„ฐ์™€ ๋น„์Šทํ•œ ์†๊ธ€์”จ ์ˆซ์ž ์ด๋ฏธ์ง€ 1์„ ์ถœ๋ ฅํ•˜๋Š” ๊ทธ๋ฆผ์ด๋‹ค. ์ž…๋ ฅ ๋ฐ์ดํ„ฐ์ธ 784๊ฐœ์˜ ๋‰ด๋Ÿฐ๋“ค์„ 500๊ฐœ, 300๊ฐœ, 2๊ฐœ๋กœ ์••์ถ•์‹œํ‚ด์œผ๋กœ์จ ์ž…๋ ฅ ๋ฐ์ดํ„ฐ์˜ ๋Œ€ํ‘œ์ ์ธ ํŠน์„ฑ์„ ์ถ”์ถœํ•œ๋‹ค. ๊ทธ๋ฆฌ๊ณ  ์ด๋ฅผ ๊ธฐ๋ฐ˜์œผ๋กœ ๋‹ค์‹œ ๋Œ€์นญ์ ์ธ ๊ตฌ์กฐ๋กœ 300๊ฐœ, 500๊ฐœ ๋‰ด๋Ÿฐ์œผ๋กœ ํ™•์žฅ์‹œํ‚จ ํ›„ ์ตœ์ข…์ ์œผ๋กœ ์ž…๋ ฅ ๋ฐ์ดํ„ฐ์™€ ๋˜‘๊ฐ™์€ ์‚ฌ์ด์ฆˆ์ธ 784๊ฐœ์˜ ๋‰ด๋Ÿฐ ๊ฐœ์ˆ˜๋กœ ์ตœ์ข… ๊ฐ’์„ ์ถœ๋ ฅ์‹œํ‚จ๋‹ค. ๊ทธ๋ ‡๊ฒŒ ํ•ด์„œ ๋‚˜์˜จ ๊ฒฐ๊ณผ ๋ฐ์ดํ„ฐ๊ฐ€ ๊ทธ๋ฆผ์˜ ์˜ค๋ฅธ์ชฝ์— ์‚ด์ง ํฌ๋ฏธํ•œ ์ด๋ฏธ์ง€ ๋ฐ์ดํ„ฐ์ด๋‹ค.

 

Auto Encoder์—์„œ ์••์ถ•์‹œํ‚ค๋Š” ๋ถ€๋ถ„์€ Encoder ๋ผ๊ณ  ํ•˜๋ฉฐ ํ™•์žฅ์‹œํ‚ค๋Š” ๋ถ€๋ถ„์€ Decoder๋ผ๊ณ  ๋ถ€๋ฅธ๋‹ค. ์ฐธ๊ณ ๋กœ Encoder ๋˜๋Š” Decoder ๋‘˜ ์ค‘ ํ•˜๋‚˜์˜ ํŒŒ๋ผ๋ฏธํ„ฐ๋ฅผ ๊ณ ์ •์‹œํ‚ค๊ณ  ๋‚˜๋จธ์ง€ ๋ถ€๋ถ„๋งŒ ํ•™์Šต์‹œํ‚ค๋Š” ๊ฒฝ์šฐ๋„ ์žˆ๋‹ค. ๋‘˜ ์ค‘ ํ•œ ๋ถ€๋ถ„๋งŒ์„ ์ด์šฉํ•˜๋˜ ์ „์ฒด์ ์ธ Encoder - Decoder ๊ตฌ์กฐ๋Š” ์œ ์ง€ํ•ด์•ผ ํ•œ๋‹ค.

2. PCA vs Encoder

Auto Encoder์˜ Encoder ๋ถ€๋ถ„์€ ์ž…๋ ฅ ๋ฐ์ดํ„ฐ๋ฅผ ์••์ถ•ํ•˜๋Š” ๊ณผ์ •์—์„œ ๋ฐ์ดํ„ฐ์˜ ์ฐจ์›์„ ์ถ•์†Œ์‹œํ‚จ๋‹ค. ์ฐจ์›์˜ ์ถ•์†Œ ๊ด€์ ์—์„œ Encoder ๋ถ€๋ถ„์€ ์ฃผ์„ฑ๋ถ„ ๋ถ„์„์ธ PCA(Principal Component Analysis)์™€ ์œ ์‚ฌํ•œ ์ ์ด ์žˆ๋‹ค. ์ฐจ์›์˜ ์ถ•์†Œ๋Š” ๊ฒฐ๊ตญ ํŠน์ง•์„ ๋ฝ‘์•„๋‚ธ๋‹ค๋Š” ๊ฒƒ์„ ์˜๋ฏธํ•˜๋Š”๋ฐ, ๋‹ค์Œ ๊ทธ๋ฆผ์„ ์‚ดํŽด๋ณด์ž. ์ฐธ๊ณ ๋กœ PCA์— ๋Œ€ํ•ด ๋ชจ๋ฅธ๋‹ค๋ฉด ์—ฌ๊ธฐ๋ฅผ ์ฐธ๊ณ ํ•˜์ž.

 

https://www.jeremyjordan.me/autoencoders/

 

๊ธฐ๋ณธ์ ์œผ๋กœ PCA๋Š” ์„ ํ˜•์ ์œผ๋กœ ๋ฐ์ดํ„ฐ ์ฐจ์›์„ ๊ฐ์†Œ์‹œ์ผœ ์ค€๋‹ค. ์œ„ ๊ทธ๋ฆผ์—์„œ ๋ณด๋Š” ๊ฒƒ์ฒ˜๋Ÿผ ๋นจ๊ฐ„์ƒ‰ ์‹ค์„ ์ด PCA๋ฅผ ๋œปํ•œ๋‹ค. ๋ฐ์ดํ„ฐ๊ฐ€ ์ฃผ์–ด์กŒ์„ ๋•Œ ์œ„์™€ ๊ฐ™์ด ์„ ํ˜•์ ์œผ๋กœ ๋ฐ์ดํ„ฐ์˜ ์ฐจ์›์„ ์ถ•์†Œ์‹œํ‚ค๊ฒŒ ๋œ๋‹ค. ๋ฐ˜๋ฉด์— ์ดˆ๋ก์ƒ‰ ์‹ค์„ ์ธ Auto Encoder์˜ Encoder๋Š” ๋น„์„ ํ˜•์ ์œผ๋กœ ๋ฐ์ดํ„ฐ์˜ ์ฐจ์›์„ ์ค„์—ฌ์ค„ ์ˆ˜ ์žˆ๋‹ค. 

 

์ฐธ๊ณ ๋กœ PCA๋Š” Kernel PCA๋ฅผ ํ™œ์šฉํ•ด ๋น„์„ ํ˜•์ ์œผ๋กœ ๋ฐ์ดํ„ฐ๋ฅผ ์ถ•์†Œํ•  ์ˆ˜ ์žˆ๊ธด ํ•˜์ง€๋งŒ ๋ณดํ†ต ์„ ํ˜•์ ์œผ๋กœ ๋ฐ์ดํ„ฐ ์ฐจ์›์„ ์ถ•์†Œํ•˜๊ณ  ๋น„์„ ํ˜•์ ์œผ๋กœ ๋ฐ์ดํ„ฐ๋ฅผ ์ถ•์†Œํ•˜๊ธฐ ์œ„ํ•ด์„œ๋Š” Auto Encoder๋ฅผ ์‚ฌ์šฉํ•œ๋‹ค.

3. Stacked Auto Encoder

Auto Encoder๋Š” ๋ณดํ†ต Stacked Auto Encoder ๊ตฌ์กฐ๋กœ ๋งŽ์ด ํ™œ์šฉ๋œ๋‹ค. ๊ตฌ์กฐ๋Š” ์šฐ๋ฆฌ๊ฐ€ ์œ„์—์„œ ๋ด์™”๋˜ ๊ตฌ์กฐ์™€ ๋™์ผํ•œ๋ฐ ๋ฐ”๋กœ Symmetric(๋Œ€์นญ์ ) ๊ตฌ์กฐ์ด๋‹ค. ๋‹ค์Œ ๊ทธ๋ฆผ์„ ๋ณด์ž.

 

https://medium.com/@venkatakrishna.jonnalagadda/sparse-stacked-and-variational-autoencoder-efe5bfe73b64

 

์œ„ ๊ทธ๋ฆผ์„ ๋ณด๋ฉด ์ž…๋ ฅ๋ฐ์ดํ„ฐ์™€ Encoder ๋ถ€๋ถ„, Decoder์™€ ์ถœ๋ ฅ๋ฐ์ดํ„ฐ ๋ถ€๋ถ„์ด ๋Œ€์นญ์ ์ธ ๊ตฌ์กฐ๋ฅผ ๋ณด์ด๋Š” ๊ฒƒ์„ ์•Œ ์ˆ˜ ์žˆ๋‹ค. ๊ตฌ์กฐ์— ๋Œ€ํ•ด ๋” ์ž์„ธํžˆ ์‚ดํŽด๋ณด์ž. ์šฐ์„  Input layer์˜ ์ž…๋ ฅ ๋ฐ์ดํ„ฐ๋ฅผ ์••์ถ•์‹œ์ผœ ๊ฐ€์žฅ ๋Œ€ํ‘œ์ ์ธ ํŠน์„ฑ์„ ์ถ”์ถœํ•œ ์ธต์€ ๋ฐ”๋กœ Encoded Layer์— ์žˆ๋Š” ๋…ธ๋“œ๋“ค์ด๋‹ค. ์ด๋ฅผ Codings๋ผ๊ณ  ๋ถ€๋ฅด๊ธฐ๋„ ํ•œ๋‹ค. ์ด ์ธต์ด ์••์ถ•๋œ(Compressed) ๋ฐ์ดํ„ฐ๋ฅผ ๊ฐ–๊ณ  ์žˆ๋Š” Layer์ด๋ฉฐ ์ด ๋ถ€๋ถ„์ด ๊ฒฐ๊ณผ ๋ฐ์ดํ„ฐ๊ฐ€ ์ž…๋ ฅ ๋ฐ์ดํ„ฐ์™€ ์–ผ๋งˆ๋‚˜ ๋™์ผํ•˜๊ฒŒ ์ถœ๋ ฅํ•  ๊ฒƒ์ธ๊ฐ€๋ฅผ ์ขŒ์ง€์šฐ์ง€ ํ•˜๋Š” ์—ญํ• ์ด๋ผ๊ณ  ๋ณผ ์ˆ˜ ์žˆ๋‹ค. ๋”ฐ๋ผ์„œ ํ•˜์ดํผํŒŒ๋ผ๋ฏธํ„ฐ๋กœ์„œ Encoded Layer์˜ ๋…ธ๋“œ ๊ฐœ์ˆ˜ ์„ค์ •์ด ๋งค์šฐ ์ค‘์š”ํ•˜๋‹ค. ๋งŒ์•ฝ ์ถœ๋ ฅ ๋ฐ์ดํ„ฐ๊ฐ€ ์ž…๋ ฅ ๋ฐ์ดํ„ฐ์™€ ๋™์ผํ•˜์ง€ ์•Š๊ฒŒ ์ถœ๋ ฅ๋œ๋‹ค๋ฉด Encoded Layer์˜ ๋…ธ๋“œ ๊ฐœ์ˆ˜๊ฐ€ ์ ์€ ๊ฒƒ์ด ์›์ธ์ผ ๊ฐ€๋Šฅ์„ฑ์ด ํฌ๋‹ค.

 

๋”ฅ๋Ÿฌ๋‹ ๋ชจ๋ธ์„ ๊ตฌ์ถ• ์‹œ์— ์ค‘์š”ํ•œ ๊ฒƒ ์ค‘ ํ•˜๋‚˜๋Š” ๋”ฅ๋Ÿฌ๋‹ ๋…ธ๋“œ, ๋ ˆ์ด์–ด์˜ ๊ฐœ์ˆ˜ ๋“ฑ ํ•˜์ดํผํŒŒ๋ผ๋ฏธํ„ฐ ์ข…๋ฅ˜๊ฐ€ ๋‹ค์–‘ํ•˜๋‹ค๋Š” ๊ฒƒ์ด๋‹ค. ์ด ์ค‘ Auto Encoder๋ฅผ ๋ชจ๋ธ๋งํ•  ๋•Œ๋Š” ์šฐ์„  Encoded layer์˜ ๋…ธ๋“œ ๊ฐœ์ˆ˜๋ฅผ 1์ฐจ์ ์œผ๋กœ ์ ์ ˆํžˆ ์„ค์ •ํ•œ ํ›„ Layer2, Layer1 ๋…ธ๋“œ ๊ฐœ์ˆ˜๋ฅผ ์„ค์ •ํ•˜๋Š” ์ˆœ์„œ๋กœ ์ง„ํ–‰ํ•˜๋Š” ๊ฒƒ์ด ๋ฐ”๋žŒ์งํ•˜๋‹ค. 

 

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

 

Stacked Auto Encoder๋Š” Unsupervised pre-training์œผ๋กœ ํ™œ์šฉ๋  ์ˆ˜ ์žˆ๋‹ค. pre-training์— ๊ด€๋ จ๋˜์–ด Transfer Learning์— ๋Œ€ํ•œ ๊ฐœ๋…์„ ์ž˜ ๋ชจ๋ฅธ๋‹ค๋ฉด ์—ฌ๊ธฐ๋ฅผ ์ฐธ๊ณ ํ•˜์ž. ์—ฌ๊ธฐ์„œ๋Š” ๊ฐ„๋‹จํžˆ ์†Œ๊ฐœํ•˜๊ณ  ๋„˜์–ด๊ฐ€๊ฒ ๋‹ค. pre-training์ด๋ž€, ์ด๋ฏธ ํ•™์Šต๋œ ๋‹ค๋ฅธ ๋ชจ๋ธ์˜ ํŒŒ๋ผ๋ฏธํ„ฐ๋ฅผ ๊ทธ๋Œ€๋กœ ๊ฐ€์ ธ๊ฐ€์„œ ์‚ฌ์šฉํ•˜๋Š” ๊ฒƒ์„ ๋งํ•œ๋‹ค. 

 

https://slideplayer.com/slide/16472513/

 

์œ„ ๊ทธ๋ฆผ์„ ๋ณด์ž. ๋จผ์ € ์—ฐ๋‘์ƒ‰ ์ž…๋ ฅ ๋ฐ์ดํ„ฐ๋ฅผ ๊ทธ๋ฆผ ํ•˜๋‹จ์˜ Auto Encoder๋ฅผ ์‚ฌ์šฉํ•ด์„œ ์—ฐ๋‘์ƒ‰ ์ž…๋ ฅ ๋ฐ์ดํ„ฐ์˜ ๋Œ€ํ‘œ์ ์ธ ํŠน์„ฑ์„ ์ถ”์ถœํ•˜๋„๋ก ํŒŒ๋ผ๋ฏธํ„ฐ๋ฅผ ํ•™์Šต์‹œํ‚จ๋‹ค. ์ด ํŒŒ๋ผ๋ฏธํ„ฐ๋ฅผ ๊ณ ์ •์‹œํ‚จ ์ฑ„ ๊ทธ๋ฆผ ์† ๊ฐ€์žฅ ์œ„์— ์žˆ๋Š” ๋‰ด๋Ÿด ๋„คํŠธ์›Œํฌ ํŒŒ๋ผ๋ฏธํ„ฐ์— ๊ทธ๋Œ€๋กœ ์‚ฌ์šฉํ•œ๋‹ค. ๊ทธ๋Ÿฌ๋ฉด ์™œ Unsupervised ์ผ๊นŒ? ๋ฐ”๋กœ Auto Encoder๊ฐ€ Label์—†์ด ํŒŒ๋ผ๋ฏธํ„ฐ๋ฅผ ํ•™์Šต์‹œํ‚ค๊ธฐ ๋•Œ๋ฌธ์ด๋‹ค.(๋ฌผ๋ก  ์ž…๋ ฅ ๋ฐ์ดํ„ฐ๋ฅผ Label๋กœ ์‚ผ์•„ ํ•™์Šต์‹œํ‚ค์ง€๋งŒ Unsupervised Learning์œผ๋กœ ๋ถ„๋ฅ˜๋œ๋‹ค๊ณ  ์œ„์—์„œ ์–ธ๊ธ‰ํ–ˆ๋‹ค) 

 

๋”ฐ๋ผ์„œ ์ฒ˜์Œ๋ถ€ํ„ฐ ํŒŒ๋ผ๋ฏธํ„ฐ๋ฅผ ์ž„์˜์˜ ๊ฐ’์œผ๋กœ ์ดˆ๊ธฐํ™”์‹œ์ผœ ๊ทธ๋ฆผ ์† ๊ฐ€์žฅ ์ƒ๋‹จ์— ์žˆ๋Š” ๋ถ„๋ฅ˜์šฉ ๋”ฅ ๋‰ด๋Ÿด ๋„คํŠธ์›Œํฌ์— ์ž…๋ ฅ ๋ฐ์ดํ„ฐ๋ฅผ ๋„ฃ๊ธฐ ๋ณด๋‹ค๋Š” Auto Encoder๋ฅผ ํ™œ์šฉํ•ด ์ž…๋ ฅ ๋ฐ์ดํ„ฐ์˜ ๋Œ€ํ‘œ์ ์ธ ํŠน์„ฑ์„ ๋‚˜ํƒ€๋‚ด๋Š” ํŒŒ๋ผ๋ฏธํ„ฐ๋ฅผ ์–ป์–ด ์ด๋ฅผ ๋ถ„๋ฅ˜์šฉ ๋”ฅ ๋‰ด๋Ÿด ๋„คํŠธ์›Œํฌ์— ์‚ฌ์šฉํ•ด ๋”์šฑ ๋” ๋น ๋ฅธ ํ•™์Šต๊ณผ ์„ฑ๋Šฅ ํ–ฅ์ƒ์„ ์‹œํ‚ค๊ธฐ ์œ„ํ•จ์ด๋‹ค. 

4. Denoising Auto Encoder(DAE)

DAE๋Š” ์ž„์˜์˜ ๋ฐ์ดํ„ฐ์ธ ๋…ธ์ด์ฆˆ ๋ฐ์ดํ„ฐ๋ฅผ ์ œ๊ฑฐํ•˜๊ฑฐ๋‚˜ ๋…ธ์ด์ฆˆ๋ฅผ ์ผ๋ถ€๋Ÿฌ ์ถ”๊ฐ€ํ•ด ์ค‘์š”ํ•œ ํŠน์ง•์„ ์ถ”์ถœํ•˜๋„๋ก ํ•˜๋Š” Auto Encoder์ด๋‹ค. ์ž์„ธํ•œ ๊ตฌ์กฐ๋Š” ๋‹ค์Œ ๊ทธ๋ฆผ์„ ์‚ดํŽด๋ณด์ž.

 

https://towardsdatascience.com/applied-deep-learning-part-3-autoencoders-1c083af4d798?gi=b93263c1ab82

 

๊นจ๋—ํ•œ ์›๋ณธ ์ด๋ฏธ์ง€์— Gaussian ๋ถ„ํฌ์—์„œ ์ƒ˜ํ”Œ๋งํ•œ ์ž„์˜์˜ ๋…ธ์ด์ฆˆ ๋ฐ์ดํ„ฐ๋ฅผ ์›๋ณธ ์ด๋ฏธ์ง€์— ์ฒจ๊ฐ€ํ•œ๋‹ค. ๊ทธ๋ฆฌ๊ณ  ์ด ๋…ธ์ด์ฆˆ๊ฐ€ ์ถ”๊ฐ€๋œ ๋ฐ์ดํ„ฐ๋ฅผ ์••์ถ•์‹œํ‚ค๊ณ  ํ™•์žฅํ•˜๋Š” Auto Encoder๋ฅผ ์ˆ˜ํ–‰ํ•œ๋‹ค. ์ด๋ ‡๊ฒŒ ํ•˜๋Š” ์ด์œ ๋Š” ๋ฌด์—‡์ผ๊นŒ? ์™œ ๊นจ๋—ํ•œ ์ด๋ฏธ์ง€์— ์ผ๋ถ€๋Ÿฌ ๋…ธ์ด์ฆˆ๋ฅผ ์ฒจ๊ฐ€ํ•˜๋Š” ๊ฒƒ์ผ๊นŒ? ์™œ๋ƒํ•˜๋ฉด ํ•™์Šต ๋ฐ์ดํ„ฐ๋Š” ์œ„์˜ Original Image๊ฐ™์ด ๊นจ๋—ํ•œ ์ด๋ฏธ์ง€๊ฒ ์ง€๋งŒ ์‹ค์ œ ๋‚ฏ์„  ํ™˜๊ฒฝ์˜ ์‹ค์ œ Test ๋ฐ์ดํ„ฐ๋Š” ๋…ธ์ด์ฆˆ๊ฐ€ ์ฒจ๊ฐ€๋˜์–ด ์žˆ๋Š” ์ง€์ €๋ถ„ํ•œ ๋ฐ์ดํ„ฐ์ผ ์ˆ˜ ์žˆ๊ธฐ ๋•Œ๋ฌธ์ด๋‹ค.

 

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

 

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

 

๋ฌผ๋ก  ์• ์ดˆ์— ๋…ธ์ด์ฆˆ๊ฐ€ ์ฒจ๊ฐ€๋œ ์ด๋ฏธ์ง€ ๋ฐ์ดํ„ฐ๋ฅผ ์ž…๋ ฅ ๋ฐ์ดํ„ฐ๋กœ ๋„ฃ์–ด ๋…ธ์ด์ฆˆ๊ฐ€ ์ œ๊ฑฐ๋œ ๋ฐ์ดํ„ฐ๋ฅผ ๋„์ถœํ•˜๋Š” ์—ญํ• ๋„ ์ˆ˜ํ–‰ํ•œ๋‹ค.

 

๋‹ค์Œ์€ Dropout์„ ํ†ตํ•ด ๋…ธ์ด์ฆˆ๋ฅผ ์ผ๋ถ€๋Ÿฌ ์ฒจ๊ฐ€์‹œํ‚ค๊ณ  ์ฒจ๊ฐ€์‹œํ‚จ ๋ฐ์ดํ„ฐ๋ฅผ ํ•™์Šต์‹œํ‚ค๋Š” ๊ตฌ์กฐ์ด๋‹ค. ๋‹ค์Œ ๊ทธ๋ฆผ์„ ๋ณด๋ฉด์„œ ๋ฐฉ๊ธˆ ์œ„์—์„œ ๋ฐฐ์› ๋˜ Gaussian ๋…ธ์ด์ฆˆ๋ฅผ ์ฒจ๊ฐ€ํ•˜๋Š” ๊ตฌ์กฐ๋„ ๊ฐ™์ด ์œ ์‹ฌํžˆ ๊ด€์ฐฐํ•ด๋ณด์ž.

 

https://excelsior-cjh.tistory.com/187

 

Dropout์€ ์‚ฌ์ „์— ์ •์˜ํ•œ ํ™•๋ฅ ๋กœ ๋…ธ๋“œ์˜ ์ผ๋ถ€ ๊ฐœ์ˆ˜๋ฅผ ์‚ญ์ œํ•ด๋ฒ„๋ฆฐ๋‹ค. ๋”ฐ๋ผ์„œ ์ด๋ฏธ์ง€ ๋ฐ์ดํ„ฐ๋กœ ์˜ˆ๋ฅผ ๋“ค์ž๋ฉด ์ด๋ฏธ์ง€ ํ”ฝ์…€์˜ ์ผ๋ถ€๊ฐ€ ์‚ฌ๋ผ์ง€๋Š” ๊ฒƒ์ด๋‹ค. ์ด๋Š” Gaussian ๋…ธ์ด์ฆˆ๋ฅผ ์ฒจ๊ฐ€ํ•œ ํ›„ ํšจ๊ณผ์™€ ๋™์ผํ•˜๊ฒŒ Overfitting์„ ์˜ˆ๋ฐฉํ•˜๋Š” Regularization(์ผ๋ฐ˜ํ™”) ํšจ๊ณผ๋ฅผ ์ผ์œผํ‚จ๋‹ค.

5. Variational Auto Encoder(VAE)

์ง€๊ธˆ๊นŒ์ง€ ์†Œ๊ฐœํ–ˆ๋˜ ๋ชจ๋“  Auto Encoder๋“ค์€ ๊ธฐ๋ณธ์ ์œผ๋กœ ๋…ธ์ด์ฆˆ๋ฅผ ์ œ๊ฑฐํ•˜๋Š” ๊ธฐ๋Šฅ์ด ์กด์žฌํ•œ๋‹ค. ๊ทธ๋Ÿฐ๋ฐ ๊ตณ์ด ๋‚˜๋ˆ„์–ด ๋ณด์ž๋ฉด DAE๋Š” ๋…ธ์ด์ฆˆ๋ฅผ ์ œ๊ฑฐํ•˜๋Š” ๊ธฐ๋Šฅ์„ ์ฃผ๋กœ ํ–ˆ๋‹ค๊ณ  ํ•œ๋‹ค๋ฉด VAE๋Š” ๋…ธ์ด์ฆˆ๋ฅผ ์ฒจ๊ฐ€ํ•˜๋Š” ๊ธฐ๋Šฅ์„ ์ฃผ๋กœ ํ•œ๋‹ค. ๊ทธ๋Ÿผ VAE์˜ ๊ตฌ์กฐ๋Š” ์–ด๋–ป๊ฒŒ ์ƒ๊ฒผ์„๊นŒ? ๋‹ค์Œ ๊ทธ๋ฆผ์„ ๋ณด์ž.

 

https://engineer-mole.tistory.com/30

 

๊ตฌ์กฐ๋ฅผ ์ดํ•ดํ•˜๊ธฐ ์œ„ํ•ด ์ž…๋ ฅ ๋ฐ์ดํ„ฐ๊ฐ€ ํ•™์Šต๋˜์–ด ์ถœ๋ ฅ ๋ฐ์ดํ„ฐ๋กœ ๋„์ถœ๋˜๋Š” ๊ณผ์ •์„ ๊ธฐ์ค€์œผ๋กœ ์ˆœ์ฐจ์ ์œผ๋กœ ์‚ดํŽด๋ณด์ž. ์šฐ์„  ์ž…๋ ฅ๋ฐ์ดํ„ฐ๊ฐ€ ๋“ค์–ด๊ฐ€๊ณ  ๋ฐ์ดํ„ฐ๋ฅผ ์••์ถ•ํ•˜๊ธฐ ์‹œ์ž‘ํ•œ๋‹ค. ๊ทธ๋ฆฌ๊ณ  Hidden2๋ผ๋Š” ์ž…๋ ฅ ๋ฐ์ดํ„ฐ์˜ ๋Œ€ํ‘œ์ ์ธ ํŠน์„ฑ๋“ค์„ ์ถ”์ถœํ•œ ๋…ธ๋“œ๋“ค์ด ์กด์žฌํ•˜๋Š” ์ธต์ด ๋งŒ๋“ค์–ด์กŒ๋‹ค. ์ด ๋•Œ Hidden2 ๋…ธ๋“œ ๊ฐœ์ˆ˜์— ๋”ฐ๋ผ ๋‹ค๋ฅด๊ฒ ์ง€๋งŒ ์˜ˆ๋ฅผ ๋“ค์–ด Hidden2์˜ ๋…ธ๋“œ ๊ฐœ์ˆ˜๊ฐ€ 6*6์ธ 36๊ฐœ์˜ ๊ฐ’๋“ค์ด ์กด์žฌํ•œ๋‹ค๊ณ  ํ•ด๋ณด์ž.

 

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

 

์ด๋ ‡๊ฒŒ ๋Œ€ํ‘œ ํŠน์„ฑ๋“ค ์ค‘ ํ•œ ๋ฒˆ ์ƒ˜ํ”Œ๋ง์„ ํ•˜๊ณ  ๋…ธ์ด์ฆˆ๋ฅผ ๋”ํ•œ ์ƒˆ๋กœ์šด ๋Œ€ํ‘œ ํŠน์„ฑ ๋ฐ์ดํ„ฐ๋ฅผ ํ™•์žฅ ์‹œ์ผœ ์ถœ๋ ฅ ๋ฐ์ดํ„ฐ๋ฅผ ๋„์ถœํ•˜๋Š” ๊ณผ์ •์„ ๋ชจ๋ธ์ด ํ•™์Šต์‹œํ‚ค๋ฉด์„œ ๊ณ„์†์ ์œผ๋กœ ๋ฐ˜๋ณตํ•œ๋‹ค. ์ด๋Š” ๊ฒฐ๊ตญ ์ƒ˜ํ”Œ๋ง์„ ๊ณ„์†์ ์œผ๋กœ ๋ฐ˜๋ณตํ• ์ˆ˜๋ก ์ƒ˜ํ”Œ๋งํ•ด์„œ ๋„์ถœ๋œ ๊ฐ’๋“ค(์œ„ ๊ทธ๋ฆผ์—์„œ Codings๋ผ๊ณ  ๋˜์–ด ์žˆ๋Š” μ, σ๊ฐ’๋“ค)์ด ์ฒ˜์Œ ์••์ถ•์‹œํ‚จ ๋Œ€ํ‘œ ํŠน์„ฑ(๊ทธ๋ฆผ ์† ํ•˜๋‹จ๋ถ€์˜ Hidden2)๋“ค์„ ๋Œ€ํ‘œํ•˜๋Š” ๋Œ€ํ‘œ๊ฐ’์— ๊ทผ์‚ฌํ•  ๊ฒƒ์ด๋ผ๋Š” ๊ฐ€์ • ํ•˜์— ์ถœ๋ฐœํ•˜๋Š” ๋ชจ๋ธ์ด๋‹ค.

6. Examples of Auto Encoder

Auto Encoder๊ฐ€ ์‚ฌ์šฉ๋˜๋Š” ์‹ค์ƒํ™œ ์˜ˆ์‹œ๋Š” ๋‹ค์Œ๊ณผ ๊ฐ™์€ ์‚ฌ๋ก€๋“ค์ด ์žˆ๋‹ค.

 

Auto Encoder์˜ ์˜ˆ์‹œ

 

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

๋ฐ˜์‘ํ˜•