ํ‹ฐ์Šคํ† ๋ฆฌ ๋ทฐ

๐ŸŸฉ ์˜คํ† ์ธ์ฝ”๋”(AutoEncoder)๋ž€ ๋ฌด์—‡์ธ๊ฐ€?

โ—ผ ์˜คํ† ์ธ์ฝ”๋”๋ฅผ ์ด์šฉํ•˜๋ฉด ๋ฐ์ดํ„ฐ์— ๋Œ€ํ•œ Labeling์„ ํ•˜์ง€ ์•Š์•„๋„ ๋ฐ์ดํ„ฐ์˜ ์ฃผ์„ฑ๋ถ„์ด ๋˜๋Š”  ์ž…๋ ฅ ๋ฐ์ดํ„ฐ์˜ ํŠน์ง•๋“ค์„ ํ•™์Šตํ•  ์ˆ˜ ์žˆ๋‹ค. 

โ—ผ ๋ ˆ์ด๋ธ” ๋˜์–ด ์žˆ์ง€ ์•Š์€ ํ›ˆ๋ จ ๋ฐ์ดํ„ฐ๋ฅผ ์‚ฌ์šฉํ•ด์„œ ํšจ์œจ์ ์ธ ํ‘œํ˜„์ธ coding์„ ํ•™์Šตํ•  ์ˆ˜ ์žˆ๋Š” ์ธ๊ณต ์‹ ๊ฒฝ๋ง

โœ” coding(์ฝ”๋”ฉ) : ์ผ๋ฐ˜์ ์ธ ๋ถ€ํ˜ธํ™”, ์ž…๋ ฅ๋ฐ์ดํ„ฐ๋ณด๋‹ค ํ›จ์”ฌ ๋‚ฎ์€ ์ฐจ์›์„ ๊ฐ€์ง„ ์€๋‹‰์ธต

โœ” ์ž…๋ ฅ์ด ๊ณง ํƒ€๊ฒŸ์ด ๋˜๋Š” ์ž๊ธฐ์ง€๋„ ํ•™์Šต(self-supervised learning)์ด๋ผ๊ณ ๋„ ๋ถ€๋ฆ„

โ—ผ  ์˜คํ† ์ธ์ฝ”๋”์˜ ํ•™์Šต ๋ชฉํ‘œ๋Š” Output์„ ๊ฐ€๋Šฅํ•œ Input์— ๊ทผ์‚ฌ ์‹œํ‚ค๋Š” ๊ฒƒ์ด๋‹ค.

โ—ผ  ์ด์ƒ ๊ฐ์ง€ ์‹œ ์ •์ƒ ๋ฐ์ดํ„ฐ๋ฅผ ํ•™์Šตํ•˜์—ฌ ์ด์ƒ ๋ฐ์ดํ„ฐ๊ฐ€ ๋“ค์–ด์˜ฌ ๋•Œ ๋ฐœ์ƒ๋˜๋Š” ์˜ค์ฐจ์— ๋”ฐ๋ผ ์ด์ƒ ํŒจํ„ด์„ ๊ฐ์ง€ํ•œ๋‹ค. 

 

 

๐ŸŸฉ ์˜คํ† ์ธ์ฝ”๋”(AutoEncoder) ์‚ฌ์šฉ ๋ชฉ์ 

โ—ผ ์˜คํ† ์ธ์ฝ”๋”๊ฐ€ ์ฐจ์› ์ถ•์†Œ์— ์œ ์šฉ

โ—ผ ์˜คํ† ์ธ์ฝ”๋”๊ฐ€ ๊ฐ•๋ ฅํ•œ ํŠน์„ฑ ์ถ”์ถœ๊ธฐ์ฒ˜๋Ÿผ ์ž‘๋™ํ•˜์—ฌ ์‹ฌ์ธต ์‹ ๊ฒฝ๋ง์˜ ๋น„์ง€๋„ ์‚ฌ์ „ํ›ˆ๋ จ์— ์‚ฌ์šฉ(์ด์ƒ๊ฐ์ง€)

โ—ผ ์˜คํ† ์ธ์ฝ”๋”๋Š” ํ›ˆ๋ จ ๋ฐ์ดํ„ฐ์™€ ๋งค์šฐ ๋น„์Šทํ•œ ์ƒˆ๋กœ์šด ๋ฐ์ดํ„ฐ๋ฅผ ์ƒ์„ฑ ๊ฐ€๋Šฅ, ์ด๋ฅผ ์ƒ์„ฑ๋ชจ๋ธ(generative model)์ด๋ผ ํ•จ

 

 

๐ŸŸฉ ์˜คํ† ์ธ์ฝ”๋”(AutoEncoder) ๊ตฌ์„ฑ

์˜คํ† ์ธ์ฝ”๋”๊ฐ€ ์ž…๋ ฅ์„ ๋ฐ›์•„ ํšจ์œจ์ ์ธ ๋‚ด๋ถ€ ํ‘œํ˜„์œผ๋กœ ๋ฐ”๊พธ๊ณ  ์ž…๋ ฅ๊ณผ ๋งค์šฐ ๊ฐ€๊นŒ์›Œ ๋ณด์ด๋Š” ์–ด๋–ค ๊ฒƒ์„ ์ถœ๋ ฅ
(์ถœ๋ ฅ์€ ์˜คํ† ์ธ์ฝ”๋”๊ฐ€ ์ž…๋ ฅ์„ ์žฌ๊ตฌ์„ฑํ•˜๊ธฐ ๋•Œ๋ฌธ์— ์žฌ๊ตฌ์„ฑ(reconstruction)์ด๋ผ๊ณ  ๋ถ€๋ฆ„)


โ—ผ ์ธ์ฝ”๋”(Encoder) : ์ž…๋ ฅ ๋ฐ์ดํ„ฐ๋ฅผ ๋‚ด๋ถ€ ํ‘œํ˜„(code๋ผ๋Š” ์€๋‹‰์ธต)์œผ๋กœ ๋ฐ”๊ฟˆ(์ธ์ง€๋„คํŠธ์›Œํฌ(recognition network))

โ—ผ ๋””์ฝ”๋”(Decoder) : ๋‚ด๋ถ€ ํ‘œํ˜„(code)์„ ์ถœ๋ ฅ ๋ฐ์ดํ„ฐ๋กœ ๋ฐ”๊ฟˆ (์ƒ์„ฑ๋„คํŠธ์›Œํฌ(generative network))


(์ถœ๋ ฅ์ธต์˜ ๋‰ด๋Ÿฐ ์ˆ˜๊ฐ€ ์ž…๋ ฅ ๊ฐœ์ˆ˜์™€ ๋™์ผํ•˜๋Š” ๊ฒƒ์„ ์ œ์™ธํ•˜๋ฉด ์ผ๋ฐ˜์ ์œผ๋กœ ์˜คํ† ์ธ์ฝ”๋”๋Š” MLP(๋‹ค์ธต ํผ์…‰ํŠธ๋ก )์™€ ๋™์ผํ•œ ๊ตฌ์กฐ๋ฅผ ๊ฐ€์ง)

 

(1) Input์˜ ์ •๋ณด๋“ค์„ ์œ ์ง€ํ•˜๋ฉด์„œ ์ฐจ์› ์ถ•์†Œ(Encoding) 
(* PCA๋Š” linearํ•œ ํ˜•ํƒœ๋ฅผ ๊ฐ€์ •ํ•˜๋‚˜, AutoEncodr๋Š” ๊ฐ layer์—  ๋น„์„ ํ˜•์‹์œผ๋กœ ์ถ•์•ฝ)

(2) ์ฐจ์› ์ถ•์†Œ๋œ ๋ฐ์ดํ„ฐ๋ฅผ ๋‹ค์‹œ ์›๋ž˜ ๋ฐ์ดํ„ฐ๋กœ ๋ณต์›(Decoding)

<Autoencoder ๊ธฐ๋ณธ ๊ตฌ์กฐ>

 

โ—ผ ์ฃผ์–ด์ง„ ๊ณ ์ฐจ์› ๊ณต๊ฐ„์ƒ์˜ ์ƒ˜ํ”Œ์„ bottle-neck(๋ณ‘๋ชฉ) ๊ตฌ๊ฐ„์˜ ์ €์ฐจ์› ๊ณต๊ฐ„์œผ๋กœ ๋งตํ•‘ํ•˜๋Š” ๋ฐฉ๋ฒ•์„ ํ•™์Šตํ•˜๋Š” ๊ณผ์ •์—์„œ
(์ด๋ฅผ ๋‹ค์‹œ ๊ณ ์ฐจ์› ๊ณต๊ฐ„์œผ๋กœ ๋ณต์›ํ•ด์•ผ ํ•˜๊ธฐ ๋•Œ๋ฌธ์—) ๋ณต์›์— ํ•„์š”์—†๋Š” ์ •๋ณด๋ถ€ํ„ฐ ๋ฒ„๋ฆฌ๊ฒŒ ๋œ๋‹ค.
โ—ผ๋”ฐ๋ผ์„œ ์ธ์ฝ”๋”ฉ(Encoding)๊ณผ ๋””์ฝ”๋”ฉ(Decoding) ๊ณผ์ •์„ ํ†ตํ•ด์„œ ์Šค์Šค๋กœ ์ค‘์š”ํ•œ ํŠน์ง•(Feature)๋“ค๋งŒ
์••์ถ•์ ์œผ๋กœ ์ถ”์ถœํ•˜๋Š” ๋ฐฉ๋ฒ•์„ ํ•™์Šตํ•œ๋‹ค.

โ—ผ์‹ ๊ฒฝ๋ง์— ์—ฌ๋Ÿฌ ์ œ์•ฝ(contraints)๋“ค์„ ์ถ”๊ฐ€ํ•จ์œผ๋กœ์จ AutoEncoder๊ฐ€ ๋‹จ์ˆœํžˆ ์ž…๋ ฅ์„ ๋ฐ”๋กœ ์ถœ๋ ฅ์œผ๋กœ ๋ณต์‚ฌํ•˜์ง€
๋ชปํ•˜๋„๋ก ๋ฐฉ์ง€ํ•˜๋ฉฐ, ๋ฐ์ดํ„ฐ๋ฅผ ํšจ์œจ์ ์œผ๋กœ ํ‘œํ˜„(Representation)ํ•˜๋Š” ๋ฐฉ๋ฒ•์„ ํ•™์Šต(Learning)ํ•˜๋„๋ก ์ œ์–ดํ•œ๋‹ค.

 

๐ŸŸฉ ์˜คํ† ์ธ์ฝ”๋”(AutoEncoder) ๋น„์šฉํ•จ์ˆ˜

โ—ผ Input๊ณผ Output ์˜ค์ฐจ ์ค„์ด๋Š” ๊ฒŒ ๋ชฉํ‘œ์ธ ๋ชจ๋ธ์ด๋ฏ€๋กœ ๋งˆ์ง€๋ง‰ Layer์— Input๊ฐ’์„ ๋ณต์ œํ•˜๋Š” ๋กœ์ง์„ ๋งŒ๋“œ๋Š” ๊ฒฝํ–ฅ์ด ์žˆ๋‹ค
์ถ•์•ฝ๋˜๋Š” ์ •๋ณด์— ๋Œ€ํ•ด ํ™•์ธ์ด ํ•„์š”ํ•œ ์ƒํ™ฉ์ด๋‹ค

์ถœ๋ ฅ์ด ์ž…๋ ฅ๊ณผ ๋‹ค๋ฅผ ๋•Œ ๋ชจ๋ธ์— ๋ฒŒ์ ์„ ๋ถ€๊ณผํ•œ๋Š ์žฌ๊ตฌ์„ฑ ์†์‹ค ํฌํ•จ

 

๐ŸŸฉ ์˜คํ† ์ธ์ฝ”๋”(AutoEncoder)์˜ ์ด์ƒ ๊ฐ์ง€ ๋ฐฉ๋ฒ•

โ—ผ ์ •์ƒ sample๋ฅผ ๋„ฃ์–ด์ฃผ๋ฉด,  ์ถ•์•ฝ๋œ ์ •๋ณด๋ฅผ ๊ฐ€์ง€๊ณ  ๋งŒ๋“ค์–ด์ง„ ์ถ”์ •์น˜(Output)์™€ ์‹ค์ œ X๋ณ€์ˆ˜(Input)์˜
์ฐจ์ด๊ฐ€ ์ž‘๊ฒŒ ๋˜์–ด, ์ •์ƒ ๋ฐ์ดํ„ฐ์™€ ํŒจํ„ด์ด ์œ ์‚ฌํ•œ ๊ฒƒ์œผ๋กœ ํ•ด์„ ํ•  ์ˆ˜ ์žˆ๋‹ค.

โ—ผ  ๋ฐ˜๋ฉด, ๋น„์ •์ƒ์ ์ธ sample๋ฅผ ๋„ฃ์œผ๋ฉด, AutoEncoder๊ฐ€ ์ตœ๋Œ€ํ•œ ์ •์ƒ sample์ฒ˜๋Ÿผ ๋ณต์›ํ•˜๊ธฐ ๋•Œ๋ฌธ์—
Input๊ณผ Output์˜ ์ฐจ์ด๊ฐ€ ๋‘๋“œ๋Ÿฌ์ง€๊ฒŒ ๋ฐœ์ƒ๋˜์–ด ๋น„์ •์ƒ sample์„ ๊ฒ€์ถœํ•  ์ˆ˜ ์žˆ๋‹ค.