๐Ÿง  Auto - Encoder 

๐Ÿคซ Auto - Encoder๋ž€?
input์„ code(hidden layer)๋กœ encodingํ•˜๋Š” encoder๋ถ€๋ถ„๊ณผ
encoding๋œ code๋ฅผ ๋‹ค์‹œ decodingํ•˜๋Š” decoder๋ถ€๋ถ„์œผ๋กœ ๊ตฌ์„ฑ๋˜์–ด ์žˆ๋‹ค.
Encoding์€ ์›๋ž˜ data๋ฅผ ์ฐจ์›์ถ•์†Œ(dimensionality reduction)ํ•˜๋Š” ๊ฒƒ์ด๋‹ค.
- ์ด๋•Œ, ์ž…๋ ฅ์ธต๋ณด๋‹ค ์ ์€ ์ˆ˜์˜ ๋…ธ๋“œ๋กœ ์ด๋ฃจ์–ด์ง„ ์€๋‹‰์ธต(์ผ๋ช…, code)์„ ์ค‘๊ฐ„์— ๋„ฃ์–ด ์ฐจ์›์„ ์ค„์ธ๋‹ค.
Decoding์€ ์ฐจ์›์ถ•์†Œ(dimensionality reduction)๋œ data๋ฅผ ์›๋ž˜ data๋กœ ๋ณต์›ํ•˜๋Š” ๊ฒƒ์ด๋‹ค.
- code๋ฅผ ๋‹ค์‹œ ์›๋ž˜ ์ž…๋ ฅ์ธต๊ณผ ๊ฐ™์€ ํฌ๊ธฐ์˜ ๊ฒฐ๊ณผ๋ฌผ๋กœ ์ถœ๋ ฅํ•œ๋‹ค.

์›๋ž˜ auto-encoder๋Š” ์ด์ „ ๊ธฐ๊ณ„ํ•™์Šต์—์„œ ๋งํ–ˆ๋“ฏ, PCA(์ฃผ์„ฑ๋ถ„ ๋ถ„์„)๊ณผ ๊ฐ™์€ ์ฐจ์›์ถ•์†Œ๋ฅผ ์œ„ํ•ด ์‚ฌ์šฉํ–ˆ์—ˆ๋‹ค.
ํ•˜์ง€๋งŒ, ํ˜„์žฌ๋Š” ๋ฐ์ดํ„ฐ ์ƒ์„ฑ๋ชจํ˜•์œผ๋กœ๋„ ์‚ฌ์šฉ๋˜๊ณ  ์žˆ์œผ๋ฉฐ, ์ด๋•Œ auto-encoder๋Š” ๋น„์ง€๋„ํ•™์Šต(unsupervised learning)์— ์†ํ•œ๋‹ค.





๐Ÿคซ  Auto-Encoder์˜ ๋‚ด๋ถ€ ๊ตฌ์กฐ ๋ฐ formula

์ž…๋ ฅ๋ฐ์ดํ„ฐ์™€ ์ถœ๋ ฅ์ธต์˜ ๋ฒกํ„ฐ๋ฅผ ๐œ’,  code(์€๋‹‰์ธต)์— ํ•ด๋‹นํ•˜๋Š” ๋ฒกํ„ฐ๋ฅผ  ๐Ÿ‹ ๋ผ ํ•  ๋•Œ,
encoder ษธ์™€  decoder ๐œ“์— ๋Œ€ํ•ด ์•„๋ž˜์˜ ์ˆ˜์‹๊ณผ ๊ฐ™์„๋•Œ,

์€๋‹‰์ธต์— ํ•ด๋‹นํ•˜๋Š” code๋Š” ์•„๋ž˜์™€ ๊ฐ™์ด ๋‚˜ํƒ€๋‚ผ ์ˆ˜ ์žˆ๋‹ค.
h = ษธ1 (W1x + b1). 
(์ด๋•Œ, ษธ๋Š” ์€๋‹‰์ธต์˜ ํ™œ์„ฑํ•จ์ˆ˜๋ฅผ ์˜๋ฏธ, W์™€ b๋Š” randomํ•˜๊ฒŒ ์ดˆ๊ธฐํ™”, ์—ญ์ „ํŒŒ๋ฒ•์œผ๋กœ ํ•™์Šต๋จ)

์€๋‹‰์ธต์— ํ•ด๋‹นํ•˜๋Š” code๋ฅผ decodingํ•˜๋Š” ๊ณผ์ •์€ ์•„๋ž˜์™€ ๊ฐ™์ด ๋‚˜ํƒ€๋‚ผ ์ˆ˜ ์žˆ๋‹ค.
๐œ’' = ษธ2 (W2x + b2). 

์ดํ›„ auto-encoder๋Š” ์ž…๋ ฅ ๋ฐ์ดํ„ฐ ๋ฒกํ„ฐ ๐œ’์™€ ์ถœ๋ ฅ์ธต์œผ๋กœ ๋ณต์›๋œ data๋ฒกํ„ฐ๐œ’'๊ฐ„์˜ ๋ณต์› ์—๋Ÿฌ๋ฅผ ์ค„์ด๋Š” ๋ฐฉํ–ฅ์œผ๋กœ ํ•™์Šตํ•œ๋‹ค.


=  || x -  ษธ2 (W2(ษธ1(W1x + b1)) + b2) || ^2



๐Ÿคซ  Auto-Encoder์˜ ํšจ๊ณผ



๐Ÿคซ  Auto-Encoder  vs. GAN

GAN: original๊ณผ ์ƒ๊ด€์—†๋Š” ๊ฒฐ๊ณผ๋ฌผ์„ ์ƒ์„ฑ
Auto-Encoder:
original์˜ ํŠน์ง•์„ ์ž˜ ์‚ด๋ฆฐ ๊ฒฐ๊ณผ๋ฌผ์„ ์ƒ์„ฑ

 

 

 

 

 

 

 

 

 

 

 

 

๐Ÿง  GAN (Generative Adversarial Networks

๐Ÿคซ GAN์ด๋ž€?
์ดˆ๊ธฐ ๋”ฅ๋Ÿฌ๋‹: Drop-out๊ณผ BackPropagation์„ ๊ธฐ๋ฐ˜์œผ๋กœ ํŒ๋ณ„๋ชจ๋ธ(discriminative model)์„ ์‚ฌ์šฉ
์ด๋Š” ๋ฐ์ดํ„ฐ ํŒ๋ณ„์—์„œ ์ข‹์€ ์„ฑ๋Šฅ์„ ๋ฐœํœ˜ํ–ˆ๋Š”๋ฐ, ๋Œ€ํ‘œ์ ์œผ๋กœ classification, regression์ด ์žˆ๋‹ค.
๋ฐ˜๋ฉด, ์ƒ์„ฑ๋ชจ๋ธ(generative model)์˜ ๊ฒฝ์šฐ, ๋ณต์žกํ•œ ํ™•๋ฅ ๊ณ„์‚ฐ์œผ๋กœ ์–ด๋ ค์›€์„ ๊ฒช์—ˆ๋‹ค.

GAN(Generative Adversial Network)์€ ํŒ๋ณ„๋ชจ๋ธ๊ณผ ์ƒ์„ฑ๋ชจ๋ธ, ๋‘ ์‹ ๊ฒฝ๋ง์˜ ๊ฒฝ์Ÿ(adversial)์„ ํ†ตํ•ด ํ•™์Šต์‹œํ‚ค๋Š” ์‹ ๊ฒฝ๋ง์ด๋‹ค.
ํŒ๋ณ„๋ชจ๋ธ์˜ ๋ชฉ์ : ์ฃผ์–ด์ง„ ๋ฐ์ดํ„ฐ๊ฐ€ original์ธ์ง€ ์ƒ์„ฑ๋ชจ๋ธ์ด ๋งŒ๋“  ๊ฐ€์งœ์ธ์ง€ ๊ตฌ๋ถ„ํ•˜๋Š” ๊ฒƒ
์ƒ์„ฑ๋ชจ๋ธ์˜ ๋ชฉ์ : ํŒ๋ณ„๋ชจ๋ธ์ด ๊ตฌ๋ถ„ํ•  ์ˆ˜ ์—†๋„๋ก ์ง„์งœ๊ฐ™์€ ๊ฐ€์งœ ๋ฐ์ดํ„ฐ๋ฅผ ์ƒ์„ฑํ•˜๋Š” ๊ฒƒ
์ด๋Ÿฐ GAN์€ ํŒ๋ณ„๋ชจ๋ธ์ด ์ง„์งœ์™€ ๊ฐ€์งœ์˜ ๊ตฌ๋ถ„์ด ๋ถˆ๊ฐ€ํ•  ๋•Œ๊นŒ์ง€ ๋ฐœ์ „ํ•˜๋Š”๋ฐ, ์•„๋ž˜์™€ ๊ฐ™๋‹ค.

1. ๊ฐ€์งœ ๋ฐ์ดํ„ฐ๋Š” ํŒ๋ณ„๋ชจ๋ธ์˜ ํ•™์Šต๋‹จ๊ณ„์—์„œ target data 0์„ ๋ผ๋ฒจ๋งํ•ด ํŒ๋ณ„๋ชจ๋ธ์˜ ํ•™์Šต๋Œ€์ƒ์ด ๋œ๋‹ค.
2. ์ƒ์„ฑ๋ชจ๋ธ์˜ ํ•™์Šต๋‹จ๊ณ„์—์„œ ๊ฐ€์งœ๋ฐ์ดํ„ฐ์˜ target data๋ฅผ 1๋กœ ์„ค์ •, ๊ฐ€์งœ๋ฅผ ์ง„์งœ๋กœ ํŒ๋ณ„ํ•˜๋Š” ํ™•๋ฅ ์„ ๊ตฌํ•œ๋‹ค.
์ด๋•Œ, ๊ฒฝ์Ÿ์˜ ๋Œ€์ƒ์ด ๋˜๋Š” ์ง„์งœ๋Š” ํŒ๋ณ„๋ชจ๋ธ์˜ ํ•™์Šต๋‹จ๊ณ„์—์„œ target data๋ฅผ 1๋กœ ๋ฐ›์•„ ํŒ๋ณ„๋ชจ๋ธ์„ ๊ฑฐ์นœ๋‹ค.




๐Ÿคซ  Auto-Encoder  vs. GAN

GAN: original๊ณผ ์ƒ๊ด€์—†๋Š” ๊ฒฐ๊ณผ๋ฌผ์„ ์ƒ์„ฑ
Auto-Encoder: original์˜ ํŠน์ง•์„ ์ž˜ ์‚ด๋ฆฐ ๊ฒฐ๊ณผ๋ฌผ์„ ์ƒ์„ฑ

 

 

๐Ÿง  GAN   Algorithm 

1. ๋žœ๋ค ๋ฐ์ดํ„ฐ ๋ถ„ํฌ Pz๋กœ๋ถ€ํ„ฐ ๋žœ๋ค๋ฐ์ดํ„ฐ z๋ฅผ ์ถ”์ถœ.

2. 1์—์„œ ์ถ”์ถœํ•œ random data๋ฅผ ์ƒ์„ฑ๋ชจ๋ธ์— ๋„ฃ๊ณ  ์ƒ์„ฑ๋ชจ๋ธ์„ ํ†ตํ•ด ๊ฐ€์งœ๋ฅผ ์ƒ์„ฑ.


3. 2์—์„œ ์–ป์€ ๊ฐ€์งœ์ค‘ m๊ฐœ๋ฅผ ์ถ”์ถœํ•ด ๋ฏธ๋‹ˆ ๋ฐฐ์น˜ {z1, . . . , zm}์œผ๋กœ ์„ค์ •.

4. ์ง„์งœ๋ฐ์ดํ„ฐ์ธ train dataset ๋ถ„ํฌ Pdata(x)์—์„œ m๊ฐœ๋ฅผ ์ถ”์ถœ, ๋ฏธ๋‹ˆ ๋ฐฐ์น˜ {x1, . . . , xm}์œผ๋กœ ์„ค์ •.

5. ์•„๋ž˜์™€ ๊ฐ™์€ gradient๋ฅผ ์ด์šฉ, ํŒ๋ณ„๋ชจ๋ธ์„ update.
ํŒ๋ณ„๋ชจ๋ธ์€ ๊ฐ€์น˜ํ•จ์ˆ˜(value function)๋ฅผ ์ตœ์†Œํ™”ํ•˜๋Š” ๊ฒƒ์ด ์•„๋‹Œ ์ตœ๋Œ€ํ™” ํ•˜๋Š” ๊ฒƒ์ด ๋ชฉ์ .
๋”ฐ๋ผ์„œ ์•„๋ž˜์™€ ๊ฐ™์€ gradient ascent๋ฐฉ๋ฒ•์„ ์‚ฌ์šฉํ•œ๋‹ค.

์ด์ „์˜ gradient descent๋Š” gradient์— (-)๋ถ€ํ˜ธ๋ฅผ ๋ถ™์ด์ง€๋งŒ
gradient ascent๋Š” gradient์— (+)๋ถ€ํ˜ธ๋ฅผ ๋ถ™์ธ๋‹ค.


6. 1~5์˜ ๊ณผ์ •์„ k๋ฒˆ ๋ฐ˜๋ณต (k๋Š” ํŒ๋ณ„๊ธฐ ํ•™์Šต๋‹จ๊ณ„๋กœ ์‚ฌ์šฉ์ž๊ฐ€ ์ง์ ‘ ์„ค์ • ๊ฐ€๋Šฅ)

7. ๋žœ๋ค ๋ฐ์ดํ„ฐ ๋ถ„ํฌ Pz๋กœ๋ถ€ํ„ฐ random data z๋ฅผ ์ถ”์ถœ

8. 7์—์„œ ์ถ”์ถœํ•œ random data๋ฅผ ์ƒ์„ฑ๋ชจ๋ธ์— ๋„ฃ๊ณ  ๊ฐ€์งœdata ์ƒ์„ฑ

9. 8์—์„œ ์–ป์€ ๊ฐ€์งœ ์ค‘ m๊ฐœ๋ฅผ ์ถ”์ถœ, ๋ฏธ๋‹ˆ ๋ฐฐ์น˜ {z1, . . . , zm}์œผ๋กœ ์„ค์ •.

10. ์•„๋ž˜์™€ ๊ฐ™์€ gradient๋ฅผ ์ด์šฉํ•ด ์ƒ์„ฑ๊ธฐ๋ฅผ update.
์ƒ์„ฑ๋ชจ๋ธ์€ ๊ฐ€์น˜ํ•จ์ˆ˜(value function)๋ฅผ ์ตœ์†Œํ™”ํ•˜๋Š” ๊ฒƒ์ด ๋ชฉ์ .
๋”ฐ๋ผ์„œ ์•„๋ž˜์™€ ๊ฐ™์€ gradient descent๋ฐฉ๋ฒ•์„ ์‚ฌ์šฉํ•œ๋‹ค.

11.  1~10๋‹จ๊ณ„๋ฅผ ๋ฐ˜๋ณต 

 

+ Recent posts