
1์ฃผ์ฐจ๊ฐ ๋๋์ด ์์๋๋๋ฐ ํ๋ฃจ์ข ์ผ ๊ณต๋ถํด๋ณธ ๊ฒ ์ ๋ง ์ค๋๋ง์ด๋ผ ์๊ทผ ํ๋ค์๋ค.๐ฆ
๋งค์ฃผ ์ ๋งคํ๋, ๊ธฐ์ตํ๊ณ ์ถ์ ๊ฐ๋ ๋ค์ ์ ๋ฆฌํ๊ณ ์ ํ๋๋ฐ ๊พธ์คํ ๊ธฐ๋กํ๋ ๊ฑธ ์ ๋ชปํด์ ์ด๋ฒ์ ์ ๋ง ๋น ์ง ์์ด ๋งค์ฃผ!! ๊ธฐ๋กํ์๊ณ ๋ค์งํ๋ค.
๋ฎ์ด๋๊ณ ์ง๋๊ฐ๋ ๊ฐ๋ ์ด ์๋๋ก ๋ชจ๋ฅด๋ ๋ถ๋ถ๋ค์ ์ ๋ถ ์ฐพ์๋ณด๊ณ ์ ํ๋๋ฐ ์ญ์ ๊ฐ์ฅ ์ด๋ ค์ด ๋ถ๋ถ์ ์ํ... ์์์ ์ ๋ํ๊ณ ์ถ์ด๋ ๊ธฐ๋ณธ ์ง์์ด ๋ถ์กฑํ ๋๋์ด ๋ค์ด ์ํ ๊ณต๋ถ๋ฅผ ์ด์ฌํ ํด์ผ๊ฒ ๋ค๊ณ ์๊ฐํ๋ค.๐ญ
๋ฐ๋ก ์ง์ ํ๊ธฐ์ ๋จธ์ ๋ฌ๋์ ๋ค์์ด์ ๊ทธ๋ฐ์ง ์ต์ํ ๋ด์ฉ๋ค์ด๋ผ ํ์ดํ๊ฒ ๋๊ปด์ก๋ค.
์ฌ์ง์ด ์ด์ ๊น์ง ํ๋ PyTorch ์๋ฃํ์ ๊ฐ๋จํ ์ฌ์ฉ๋ฒ๋ณด๋ค ๋ ๋ฃ๊ธฐ ํธํ๋ค. ใ
ใ
์ ํ ํ๊ท ๋ถ์์ด๋, ์ข ์ ๋ณ์ y์ ํ ๊ฐ ์ด์์ ๋ ๋ฆฝ ๋ณ์ x์์ ์ ํ ์๊ด ๊ด๊ณ๋ฅผ ๋ชจ๋ธ๋งํ๋ ํ๊ท ๋ถ์ ๊ธฐ๋ฒ์ด๋ค. [์ถ์ฒ: Wikipedia]
๋ํ, ๊ตญ์ด์ฌ์ ์์ ํ๊ท๋ ์ํ ์ฉ์ด๋ก, ํ๋์ ์ข ์ ๋ณ์์ ๋ ๊ฐ ์ด์์ ๋ ๋ฆฝ ๋ณ์ ์ฌ์ด์ ๋ํ๋๋ ๊ด๊ณ๋ฅผ ์ต์ ์ ๊ณฑ๋ฒ์ผ๋ก ์ถ์ ํ๋ ๋ฐฉ๋ฒ์ ๋งํ๋ค. [์ถ์ฒ: ๊ตญ์ด์ฌ์ ]
์ ํ ๊ด๊ณ๋ผ๋ ์ฉ์ด์ ๋ํด์ ์ด๋ ต๊ฒ ์๊ฐํ ๊ฒ ์๋ค!
๋จ์ง ๋
๋ฆฝ ๋ณ์๊ฐ ์ฆ๊ฐํ ๋ ์ข
์ ๋ณ์๋ ํจ๊ป ์ฆ๊ฐํ๋์ง, ํน์ ๋
๋ฆฝ ๋ณ์๊ฐ ์ฆ๊ฐํ ๋ ์ข
์ ๋ณ์๋ ๋ฐ๋๋ก ๊ฐ์ํ๋์ง์ ๋ํ ๊ด๊ณ๋ฅผ ์ ํ ๊ด๊ณ๋ผ๊ณ ํ๋ค.
์ด๋, ์ ์์ ๊ฒฝ์ฐ๋ฅผ ์์ ์ ํ ๊ด๊ณ๋ผ๊ณ ํ๊ณ , ํ์์ ๊ฒฝ์ฐ๋ฅผ ์์ ์ ํ ๊ด๊ณ๋ผ๊ณ ํ๋ค.
๋ค์ ๋งํด, ๋ ๋ฐ์ดํฐ์ ๊ฐ ์ฌ์ด์ ์ง์ ๊ณผ ๊ฐ์ ํํ์ ์์ด ์์ผ๋ฉด ์ ํ ๊ด๊ณ๊ฐ ์๋ ๊ฒ์ด๋ค.
์ ํ ํ๊ท์์์ ๊ฐ์
์ ํ ํ๊ท ๋ถ์์ ์ ์ฉํ๊ธฐ ์ํด์๋ ์ฌ๋ฌ ๊ฐ์ ์ด ์ฑ๋ฆฝํด์ผ ํ๋ค.
์ ํ์ฑ
์ ํ ํ๊ท ๋ถ์์ ์ ์์์ ์ ์ ์๋ฏ์ด, ์ข
์ ๋ณ์๊ฐ ๋
๋ฆฝ ๋ณ์์ ์ ํ ํ๊ท ๊ณ์์ ์ ํ ์กฐํฉ์ผ๋ก ํํ ๊ฐ๋ฅํจ์ ๋งํ๋ค.
๋
๋ฆฝ์ฑ
๋ค์ค ํ๊ท ๋ถ์์ ์ํํ ๋ ๋
๋ฆฝ ๋ณ์ x๊ฐ ์๊ด ๊ด๊ณ๊ฐ ์์ด ๋
๋ฆฝ์ฑ์ ๋ง์กฑํ๋ ํน์ฑ์ ์๋ฏธํ๋ค.
๋น์ทํ ํน์ง์ ๊ฐ๋ ๋
๋ฆฝ ๋ณ์๋ฅผ ์ฌ๋ฌ ๊ฐ ์ฌ์ฉํ์ฌ ์ ํ ํ๊ท ๋ถ์์ ์ํํ๋ฉด ์ ์๋ฏธํ์ง ์์ ๊ฒฐ๊ณผ๊ฐ ๋์ถ๋๋ฉฐ, ์ด๋ ๊ฒ ๋ฐ์ํ๋ ๋ฌธ์ ๋ฅผ ๋ค์ค๊ณต์ ์ฑ(Multicollinearity)๋ผ๊ณ ํ๋ค.
๋ค์ค๊ณต์ ์ฑ์ด ํ๊ท ๋ถ์์์ ๋ฌธ์ ๊ฐ ๋๋ ์ด์ ๋ ๋ค์๊ณผ ๊ฐ๋ค.
์ข
์ ๋ณ์๋ฅผ ์์ธกํ ๋ ์ฌ์ฉ๋๋ ๋
๋ฆฝ ๋ณ์๋ค์ ์ค๋ช
๋ณ์๋ผ๊ณ ๋ ํ๋๋ฐ, ์ผ๋ฐ์ ์ผ๋ก ํ๊ท ๋ถ์์์ ์ข
์ ๋ณ์์ ๋ํด ํ๋์ ์ค๋ช
๋ณ์์ ์ํฅ๋ ฅ์ ํ์
ํ ๋ ๋ค๋ฅธ ์ค๋ช
๋ณ์๋ค์ ๋ชจ๋ ๊ณ ์ ์ด๋ผ๊ณ ๊ณผ์ ํ๊ธฐ ๋๋ฌธ์ด๋ค.
๋ฐ๋ผ์ ์๋ก ์ข
์ ๊ด๊ณ์ ์๋ ๋ ๊ฐ ์ด์์ ๋ณ์๊ฐ ์ค๋ช
๋ณ์๊ฐ ๋๋ฉด ํ๋์ ์ค๋ช
๋ณ์์ ๋ํ ์ํฅ๋ ฅ์ ์ ํํ ํ์
ํ ์ ์๊ฒ ๋๋ค.
์ด๋ฅผ ์ํ์ ์ผ๋ก ์ฆ๋ช
ํด๋ณด์! ํํต์ ์ผ๋ฃจ๋ค๊ฐ...
์๋ก ์ข
์ ๊ด๊ณ์ ์๋ ์ค๋ช
๋ณ์๋ฅผ ๊ฐ๊ฐ ๋ผ ํ๊ณ , ํ๊ท ๊ณ์(weight)๋ฅผ ๋ผ๊ณ ํ์.
๋ก ํํํ ์ ์๋ค. ์ด๋ ํ๊ท ๊ณ์ W๋ ์ผ๋ฐ์ ์ผ๋ก ์ต์ ์ ๊ณฑ๋ฒ์ ์ฌ์ฉํ๊ธฐ ๋๋ฌธ์ ์๋์ ๊ฐ์ ์์ผ๋ก ๋์ถํ ์ ์๋ค.
์ฌ๊ธฐ์ ํ๋ ฌ ๊ฐ ์ ํ ์ข ์์ผ ๊ฒฝ์ฐ ํด๋น ํ๋ ฌ์ determinant๊ฐ ๋งค์ฐ ์์์ ธ ๊ฐ ๋งค์ฐ ์ปค์ง๋ค. ๊ฒฐ๊ณผ์ ์ผ๋ก ํ๊ท ๊ณ์๋ฅผ ๊ณ์ฐํ๊ธฐ ์ด๋ ค์์ง ๋ฟ๋ง ์๋๋ผ ์ ๊ฐ์ด ๋งค์ฐ ์ปค์ ธ ์ฌ๋ฐ๋ฅธ ๊ฒฐ๊ณผ๋ฅผ ๋์ถํ์ง ๋ชปํ๊ฒ ๋๋ค.
๋ฑ๋ถ์ฐ์ฑ
์๋ก ๋ค๋ฅธ ์ข
์ ๋ณ์๋ค์ ์์ฐจ(์ ๋ต๊ฐ๊ณผ ์์ธก๊ฐ์ ์ฐจ์ด)์ ๋ถ์ฐ์ด ๋
๋ฆฝ ๋ณ์์ ๋ฌด๊ดํ๊ฒ ํญ์ ๊ฐ์ ๋ถ์ฐ์ ๊ฐ์ง๋ ๊ฒ์ ์๋ฏธํ๋ค.
์ด ๊ฐ์ ์ด ๋ง์กฑ๋์ง ์์ผ๋ฉด ์ด๋ถ์ฐ์ฑ(Heteroscedasticity)์ด ๋ฐ์ํ๋ฉฐ, ํ๊ท ๊ณ์์ ํ์ค ์ค์ฐจ์ ์ํฅ์ ๋ฏธ์น๊ธฐ ๋๋ฌธ์ ํธํฅ๋ ํ์ต์ด ์ด๋ฃจ์ด์ง ์ ์๋ค.
์ ๊ท์ฑ
์์ ์ค๋ช
ํ ๋ฑ๋ถ์ฐ์ฑ๊ณผ ๋น์ทํ ๋งฅ๋ฝ์์ ์์ฐจ๊ฐ ์ ๊ท ๋ถํฌ๋ฅผ ๋ฐ๋ผ์ผ ํจ์ ๋งํ๋ค.
์ ๊ท ๋ถํฌ์์ ํฌ๊ฒ ๋ฒ์ด๋๊ฒ ๋๋ฉด ๋ฑ๋ถ์ฐ์ฑ๊ณผ ๋ง์ฐฌ๊ฐ์ง๋ก ํธํฅ๋ ํ์ต์ด ์ด๋ฃจ์ด์ง ๊ฒ์ผ๋ก ์๊ฐ๋๋๋ฐ ๋ด ์๊ฐ์ด ๋ง๋์ง ๋ชจ๋ฅด๊ฒ ๋ค.
์ถ์ฒ
Wikipedia
๋ชจ๋์ ์ฐ๊ตฌ์
Tistory ๋ ธ๋ง๋๋ถ์๊ฐ
Linear Regression์ด ์ฃผ์ด์ง ๋ฐ์ดํฐ์ ํน์ฑ์ ์ ๋ํ๋ด๋ ๋ชจ๋ธ์ ๊ตฌํ๋ ๊ฑฐ๋ผ๋ฉด, Logistic Regression์ ์ฃผ์ด์ง ๋ฐ์ดํฐ๋ฅผ ์ ๊ตฌ๋ถํ๋ ๋ชจ๋ธ์ ๊ตฌํ๋ ๊ฒ์ด๋ค.
์ง์ ํ๊ธฐ(24๋
๋ 1ํ๊ธฐ)์ ๋จธ์ ๋ฌ๋์ ๋ฐฐ์ธ ๋๋ ์ด๊ธฐ์ ๋ฑ์ฅํ๋ ๊ฐ๋
์ธ๋ฐ ์ค๊ฐ๊ณ ์ฌ ๊ณต๋ถ ๊ฒธ ์์์ ๋ํ์ฌ ์ ๋ฆฌํ ๋ด์ฉ์ด ์์ด ๋ณต์ตํ๋ฉฐ ์ ๋ฆฌํ๊ณ ์ ํ๋ค.
Multinomial Logistic Regression(๋ค์ค ๋ถ๋ฅ ๋ฌธ์ )๋ ์ํํ ์ ์์ง๋ง, ๊ฐ๋จํ Binary Classification(์ด์ง ๋ถ๋ฅ ๋ฌธ์ )์ ๊ธฐ์ค์ผ๋ก ์ค๋ช
ํ ๊ฒ์ด๋ค.
๋ชจ๋ธ
๋จผ์ ๋ชจ๋ธ์ y์ ํ๋ฅ ์ฆ, class๊ฐ 1์ผ ํ๋ฅ ์ ๊ณ์ฐํ๋ค.
Odds & Logits
ํ๊ท๋ ์ผ๋ฐ์ ์ผ๋ก ์ ํํ๋ฅผ ๊ฐ๋๋ค. ํ์ง๋ง ์ด ๊ฐ์ ์ ๋ฒ์๋ฅผ ๊ฐ์ง๊ธฐ ๋๋ฌธ์ Binary Classification์ ์ํํ ์ ์๋๋ก [0, 1]์ ์ด์ฐ์ ๊ฐ์ ๊ฐ์ง ์ ์๋ ํํ๋ก ๋ณํํด์ผ ํ๋ค.
์ด๋ Odds ๊ฐ๋
์ด ๋ฑ์ฅํ๋๋ฐ, Odds๋ ์ ์ฒด ๋ฐ์ดํฐ์ ๋ํ ๊ฐ class label๋ค์ ๋น์จ์ ๋ํ๋ด๋ฉฐ, ์ด๋ฅผ ์์์ผ๋ก ํํํ๋ฉด ์๋์ ๊ฐ๋ค.
์ด๋ ๋ ์ ํ๋ฅ ์ด๋ฉฐ, )์ ๋ฒ์๋ ๊ฐ๋๋ค.
์ด ์ ์์ฐ๋ก๊ทธ๋ฅผ ์ทจํ ๊ฒ์ด ์ด๋ฉฐ, ์์์ ์๋์ ๊ฐ๋ค.
์ ๋ฒ์๊ฐ (-, )์ด๊ณ , ์ด๊ฒ ๋ฐ๋ก ์ ์์ด ๋๋ค.
Logistic Function
์ ๋ด์ฉ์ ๊ฒฐ๋ก ๋ง ์์์ผ๋ก ํ๊ธฐํ์ฌ ์ ๋ฆฌํ๋ฉด ์๋์ ๊ฐ๋ค.
์์ ์ค๋ช ํ๋ฏ์ด p๋ class์ label์ด 1์ผ ํ๋ฅ ์ด๊ธฐ ๋๋ฌธ์ ํด๋น ์์ ๋ ๋ฆฝ ๋ณ์ x๊ฐ ์ฃผ์ด์ก์ ๋ ํด๋น ๋ณ์์ class๊ฐ 1์ผ ํ๋ฅ ์ ๋ํ๋ด๋ ์์ด ๋๋ฉฐ, ์ด ์์ sigmoid ํจ์๋ผ๊ณ ํ๋ค.
Estimating Parameters
ํ์ต์ ํ๊ธฐ ์ํด์๋ sigmoid ํจ์๊ฐ ์ผ๋ง๋ ์ ๋งํ๋์ง๋ฅผ ์์๋ณผ ์ ์๋ Cost Function์ด ํ์ํ๋ค. Logistic Regression์์์ Cost Function์ ์ ๋ต๊ณผ ์์ธก๊ฐ(Logstic Function)์ด ์ผ๋ง๋ ์ ์ฌํ์ง๋ฅผ ๊ณ์ฐํ๋ Maximum Likelihood Estimation์ ์ฌ์ฉํ๋ค.
Maximum Likelihood Estimation์ ์ฐ๋ฆฌ๋ง๋ก ์ต๋ ๊ฐ๋ฅ๋ ์ถ์ ์ด๋ผ๊ณ ํ๋๋ฐ, ๋ชจ์ง๋จ์ ๋ํด ์ด๋ก ์ ์ผ๋ก ๊ฐ์ฅ ๊ฐ๋ฅ์ฑ์ด ๋์ ๋ชจ์๋ฅผ ์ถ์ ํ๋ ๊ฒ์ ๋งํ๋ค.
์ฌ๋ฌ ํ๋ฅ ๋ถํฌ X์ ๋ํ ํ๋ฅ ๋ฐ๋ ํจ์๋ ๋ก ์ ์ํ ์ ์์ผ๋ฉฐ, ๊ฐ๋ฅ๋ ํจ์์ธ ์ ๋์น์ด๋ค. ์ด๋ ๋ ๋ฒ ๋ฅด๋์ด ํ๋ฅ ๋ถํฌ๋ผ๊ณ ํ๊ณ , ๋ก ํ๊ธฐํ๋ฉฐ, ์์์ผ๋ก ํ๊ธฐํ๋ฉด ์๋์ ๊ฐ๋ค.
: ๊ฐ๋ฅ๋ ๊ด์ ์์ ๋ณธ, ๋ฐ์ดํฐ์ ๋ถํฌ x๊ฐ ์ฃผ์ด์ก์ ๋์ ๋ชจ์
: ํ๋ฅ ๊ด์ ์์ ๋ณธ, ๋ฐ์ดํฐ ๋ถํฌ์ ๋ชจ์ ๊ฐ ์ฃผ์ด์ก์ ๋ x๊ฐ์ ๊ฐ์ง ํ๋ฅ
์์ ์ ๋ฆฌํ๋ฉด ์๋์ ๊ฐ๋ค.
(๋งํฌ๋ค์ด ๋๋ฌด ๋ณต์กํด์~~ ์ํ๊ธฐ ์ฒจ๋ถ๐)

๊ฒฐ๊ณผ์ ์ผ๋ก ๊ทธ๋ฆผ์ ๋ง์ง๋ง ์์ด Cost Function์ด ๋๋ฉฐ, ์ด์ง ๋ถ๋ฅ์์ ์ฌ์ฉํ๋ Binary Cross Entropy์ด๋ค.
์ถ์ฒ
์ต๋๊ฐ๋ฅ๋ ์ถ์ ๋ฒ
์ผ๋ฐ์ ์ผ๋ก nn ๋ชจ๋ ์์ด ์ง์ ์์๊ณผ ๋ ์ด์ด, ๋ชจ๋ธ์ ์ ์ํ ๋๋ weight์ bias๋ฅผ torch.randn()์ ์ฌ์ฉํ๋ค. ํ์ง๋ง torch์ Linear ๋ ์ด์ด์๋ ์ด๊ธฐ loss๊ฐ์ ์ค์ด๋ฉฐ ๋ชจ๋ธ์ ๋ณด๋ค ๋น ๋ฅด๊ฒ ์๋ ดํ๊ฒ ํ๊ณ ์ ํ๋ ๋ฐฉ๋ฒ์ด ์ ์ฉ๋์ด ์๋ค.
๋จผ์ ๊ณต์ ๋ฌธ์์์ ์ค๋ช
ํ๋ weight์ bias๋ฅผ ์ด๊ธฐํํ๋ ๋ฐฉ๋ฒ์ ์๋์ ๊ฐ๋ค.

์ฝ๋ ๊ตฌํ์ ์ดํด๋ณด๋ฉด, ์๋์ ๊ฐ์ด weight์ bias๋ฅผ ์ด๊ธฐํํ๋ ๋ถ๋ถ์ด ์๋ค.
def reset_parameters(self) -> None:
# Setting a=sqrt(5) in kaiming_uniform is the same as initializing with
# uniform(-1/sqrt(in_features), 1/sqrt(in_features)). For details, see
# https://github.com/pytorch/pytorch/issues/57109
init.kaiming_uniform_(self.weight, a=math.sqrt(5))
if self.bias is not None:
fan_in, _ = init._calculate_fan_in_and_fan_out(self.weight)
bound = 1 / math.sqrt(fan_in) if fan_in > 0 else 0
init.uniform_(self.bias, -bound, bound)
์ด๋ kaiming_uniform_์ด๋ผ๋ ํจ์๊ฐ ์ฌ์ฉ๋๋๋ฐ, ์ด๋ Kaiming He๋ผ๋ ์ฌ๋์ด ๊ฐ๋ฐํ He Initialization์ด๋ผ๊ณ ํ๋ Parameter Initialization ๊ธฐ๋ฒ์ด๋ค.
ํ์ฑํ ํจ์๋ก ReLU๋ฅผ ์ฌ์ฉํ ๋ ํ๋ผ๋ฏธํฐ๋ฅผ ๋๋ค ์ด๊ธฐํ ํ ๊ฒฝ์ฐ ๊ธฐ์ธ๊ธฐ ์๋ฉธ ๋๋ ํญ๋ฐ ๋ฑ์ ๋ฌธ์ ๋ฅผ ํด๊ฒฐํ ์ ์๋ค.
์๋๋ ์ฆ๋ช
์ ๊ดํ ๋ด์ฉ์ธ๋ฐ ๋ฐ ์ ๋๋ฐ์ ์ดํด๋ฅผ ๋ชปํด์ ํ๋ฆฐ ๋ถ๋ถ์ด ์๋ค๋ฉด ๋๊ธ ๋ฌ์์ฃผ์ญ์
.
He Initialization์ ์ฆ๋ช
์ ์์ํ๊ธฐ์ ์์, ๋ถ์ฐ์ ์ฑ์ง๊ณผ ๊ฐ์ ์ด ํ์ํ๋ค.

๋ค์์ผ๋ก Logistic Regression ์ํ์ ์ํด k-1๋ฒ์งธ layer์ k๋ฒ์งธ layer์ ์์ ์ดํด๋ณด์.

์ด๋ ์ ์ ํ Parameter Initialization๋, input ๋ฒกํฐ()๊ฐ ์ฌ๋ฌ ๋ฒ์ layer()์ ๊ฑฐ์ณค์ ๋ ๊ธฐํ๊ธ์์ ์ผ๋ก ์ค์ด๋ค๊ฑฐ๋ ํ๋๋๋ ๊ฒ์ ๋ฐฉ์งํด์ผ ํ๋ค.
์ฆ, input ๋ฒกํฐ์ output ๋ฒกํฐ์ ๋ถ์ฐ์ด ์ ์ฌํ๊ฑฐ๋ ๋์ผํด์ผ ํ๋ค๋ ๊ฒ์ด๋ค.
๋ฐ๋ผ์ ์ ์์ ๊ทผ๊ฑฐํ์ฌ ์ด ์ฑ๋ฆฝํ๊ธฐ ์ํด์๋ ์๋์ ๊ฐ์ด ์ด ๋๋ค.

๊ทธ๋ ๋ค๋ฉด!๐ฅ

์ด์ ๊ฐ์ ๊ฒฐ๋ก ์ด ๋์ค๊ณ , ์ด๊ธฐ parameter๋ ์๋์ ๊ฐ์ ๋ชจ์๋ฅผ ๊ฐ์ง ์ ์๋ค.

๋ ผ๋ฌธ์์๋ ์ค์ ๋ก ReLU์ Xavier Initialiazation์ He Initialization์ ์ ์ฉํ ๊ฒฐ๊ณผ๋ฅผ ๋น๊ตํ๊ณ ์๋๋ฐ, ํ์ต์ด ์งํ๋๋๋ผ๋ He Initialization์ ์ ์ฉํ์ ๋ ๋ ๋น ๋ฅด๊ฒ ์๋ ดํ๋ฉฐ, ๋ชจ๋ธ์ ๊น์ด๊ฐ ๊น์ด์ก์ ๋ Xavier Initialization์ผ๋ก ์ด๊ธฐํํ Parameter๋ค์ ํ์ต์ด ๋์ง ์๋ ๊ฒฝ์ฐ๋ ์๋ค๊ณ ํ๋ค.
์ถ์ฒ
Geeksforgeeks
Tistory imlim