ํ์ฑํจ์
์ฐ๋ฆฌ๋ SIGMOID ํจ์๋ฅผ ๋ก์ง์คํฑ ํ๊ท์์ ์ฒ์ ๋ฐฐ์ ๊ณ , 0์์ 1์ฌ์ด์ ๊ฐ์ผ๋ก ๋ฐ์ดํฐ๋ฅผ ํํฐ๋ง ํด์ค๋ค๋ ์ ๋๋ก ์๊ณ ์๋ค. ๊ทธ๋ฆฌ๊ณ ์ด ํจ์๋ ์ธ๊ฐ์ผ๋ก ๋ฐ์ง๋ฉด, ๋ด๋ฐ์์ ์๊ทน์ ํด์ํ์ฌ ๋ค๋ฅธ ๋ด๋ฐ์ผ๋ก ์ ํธ๋ฅผ ๋ง๋ค์ด ๋ณด๋ด๋ ์ญ์น์ ๋น์ทํ ์ญํ ์ ํ๋ค. ์ด๊ฒ์ ์ธ๊ณต์ ๊ฒฝ๋ง์์๋ ๋ด๋ฐ์ ํ์ฑํ์์ผ์ค๋ค๋ ๋ป์ผ๋ก 'ํ์ฑํจ์'๋ผ๊ณ ๋ถ๋ฅด๊ฒ ๋๋ค. ํ์ฑํจ์์๋ SIGMOID๋ง ์๋ ๊ฒ์ด ์๋๋ค. ์ฌ์ค SIGMOID๋ ์น๋ช ์ ์ธ ์ฝ์ ์ ๊ฐ์ง๊ณ ์๊ธฐ ๋๋ฌธ์ ์ ์ฌ์ฉํ์ง ์๋๋ค.
SIGMOIDํจ์์ ์ถ๋ ฅ์ ํญ์ 1๋ณด๋ค ์๊ธฐ ๋๋ฌธ์, SIGMOIDํจ์๋ฅผ ํต๊ณผํ ๊ฐ๋ค์ ์๋ก ๊ณฑํ ์๋ก ์ ์ ์ค์ด๋ค ์ ๋ฐ์ ์๋ค. ๋น์ทํ ์ด์ ๋ก ์ฐ๋ฆฌ๊ฐ ์ ๊ฒฝ๋ง์ ํ์ต์ํค๋ ๋ฐฉ๋ฒ '์ค์ฐจ์ญ์ ํ'๋ ๋ค๋ก ๊ฐ ์๋ก ์ ์ ๊ทธ ๊ฐ์ด ํฌ๋ฏธํด์ง๋ค. ์ฒ์์ ์ ๋ ฅํ ๊ฐ์ด ๋์ค์๋ ์ค์ด๋ค์ด ์ถ๋ ฅ์ ๋๋ฌด๋ ๋ฏธ๋ฏธํ ์ํฅ์ ๋ผ์น๊ธฐ ๋๋ฌธ์ด๋ค. ์ด๊ฒ์ '๊ธฐ์ธ๊ธฐ ์์ค ๋ฌธ์ (Vanishing Gradient)' ๋ผ๊ณ ํ๋ค.
RELU
์ด๋ฌํ ๋ฌธ์ ๋๋ฌธ์ ๋๋ถ๋ถ์ ์ฝ๋๋ฅผ ๋ณด๋ฉด ํ์ฑํจ์๋ก SIGMOID๋ณด๋ค๋ 'RELU'๋ผ๋ ๋ค๋ฅธ ํจ์๋ฅผ ์ฌ์ฉํ๋ค. RELU๋ REctified Linear Unit์ ์ฝ์๋ก ์ง์ญํ๋ฉด '์ ๋ฅ ์ ํ ์ ๋'์ด๋ค. ๋ง์ ๊ฑฐ์ฐฝํ์ง๋ง '์ ๋ฅ'๋ z < 0 ์์ ํจ์ซ๊ฐ์ ๋ชจ๋ 0์ผ๋ก, ๊ทธ ์ธ์๋ SIGMOID์ฒ๋ผ ๊ณก์ ์ด ์๋ ์๋์ '์ ํ' ์ง์ ์ ์ทจํ๋ ๊ฒ์ด๋ค. ์ด ์๋ก์ด ํ์ฑํจ์๋ ๊ธฐ์ธ๊ธฐ ์์ค๋ฌธ์ ๋ฅผ ํด๊ฒฐํ๋ฉด์ ํจ์ฌ ๋ ๋์ ํ์ต๊ฒฐ๊ณผ๋ฅผ ๋ด๋์๋ค.
# hypothesis = tf.sigmoid(tf.matmul(X, W) + b)
hypothesis = tf.nn.relu(tf.matmul(X, W) + b)
์ค์ ๋ก ์ธ๊ณต์ ๊ฒฝ๋ง ๋ถ์ผ์ ์ฐ๊ตฌ๋ ๊ธฐ์ธ๊ธฐ ์์ค ๋ฌธ์ ๋ฑ์ ๋ฌธ์ ๋ฅผ ์ง๋ฉดํ๋ฉฐ ์ฌ์ค์ ๋ฒ๋ ค์ง๋ ๋ฏ ํ์์ผ๋, ์ ํ๋ฆฌ ํํด ๊ต์๊ฐ ๋ค๋ฅธ ํ์ฑํจ์์ ์ฌ์ฉ(RELU ๋ฑ), ํ์ต๋ณ์ ์ด๊ธฐํ ๋ฐฉ๋ฒ ๊ฐ์ (RBM ๋ฑ)์ ์ ์ํ๊ณ , ์ปดํจํฐ ํ๋์จ์ด์ ์ฑ๋ฅ ๋ํ ์ฌ๋ผ๊ฐ๋ฉด์ ๋ค์ ํ๋ฐํ ์ฐ๊ตฌ๊ฐ ์์๋๋ค.
Dropout
์ด์ ์ ๊ณผ์ ํฉ์ ๋ํด ์ค๋ช ํ ์ ์ด ์๋ค. ๊ณผ์ ํฉ์ ์ฐ๋ฆฌ๊ฐ ์ํ์ง ์๋, ๋๋ฌด ํ์ต๋ฐ์ดํฐ์๋ง ํน์ ๋ ๊ฐ์ค์น๋ฅผ ๊ฐ๊ฒ ๋๋ ๊ฒ์ ๋งํ๋ค. ํด๊ฒฐ๋ฐฉ๋ฒ์ผ๋ก๋, ํ์ต ๋ฐ์ดํฐ๋์ ๋๋ฆฌ๋ ๋ฐฉ๋ฒ๊ณผ ๋๋ฌด ํฐ ๊ฐ์ค์น๋ฅผ ๊ฐ์ง ์๋๋ก ์ ๊ทํํ๋ ๋ฐฉ๋ฒ์ด ์๋ค. ๊ทธ๋ฆฌ๊ณ ์ ๊ฒฝ๋ง์์๋ ์ ๊ทํ์ ๋ ํ๋์ ๋ฐฉ๋ฒ์ผ๋ก Dropout์ ์ฌ์ฉํ๋ค. ํ์ต ๊ณผ์ ์์ ๋๋ค์ผ๋ก ๋ ธ๋๋ฅผ ๊บผ๋ฒ๋ฆฌ๋ ๊ฒ์ด๋ค.
์ด๋ป๊ฒ ์ด๊ฒ์ด ํ์ตํจ์จ์ ๊ฐ์ ํ ์ ์๋ ๋ฐฉ๋ฒ์ธ์ง๋ ์ ์ดํด๊ฐ ์ ๋ ์๋ ์์ง๋ง, ์ค์ ๋ก ํจ๊ณผ๊ฐ ์๋ค. ๋น์ ํด ์ค๋ช ํ์๋ฉด, ๊ฐ ๋ถ์ผ์ ๋ํ ์ ๋ฌธ๊ฐ๋ค์ด ๋ชจ์ฌ์ ํ๋์ ๋ฌธ์ ๋ฅผ ํธ๋๋ฐ ๋ชจ๋ ๊ฐ์ด ๋ฌธ์ ๋ฅผ ์๋ ผํ๋ ๊ฒ๋ณด๋ค ๋๋คํ๊ฒ ์กฐ๋ฅผ ์ง์ ์ด์ผ๊ธฐํ๋ค ๋ณด๋ฉด ๋ ๊ฑด์ค์ ์ธ ์ด์ผ๊ธฐ๊ฐ ์ค๊ณ ๊ฐ ์๋ ์๊ณ ๊ฒฐ๊ตญ ๋ฌธ์ ํด๊ฒฐ์ ๋ ๋์์ด ๋ ์ ์๋ ๊ฒ๊ณผ ๋น์ทํ๋ค.
# ๋๋ค์ผ๋ก ๊บผ๋ฒ๋ฆด ๋
ธ๋์ ๊ฐ์๋ฅผ ๋น์จ๋ก ์ ์ํ๋ค.
dropout_rate = tf.placeholder("float")
_L1 = tf.nn.relu(tf.add(tf.matmul(X, W), B))
L1 = tf.nn.dropout(_L1, dropout_rate)
์์ ๊ฒ์๋ฌผ์ ๋งํฌํ๋ '๋ชจ๋๋ฅผ ์ํ ๋ฅ๋ฌ๋' ๊ฐ์๋ฅผ ๋ฃ๊ณ ํ๊ธฐํ ๋
ธํธ์
์ถ๊ฐ์ ์ผ๋ก ๊ณต๋ถํ ๊ฒ์ ๋ํด ์์ฑํ ๊ฒ์๊ธ์
๋๋ค.
'๐ป > ML' ์นดํ ๊ณ ๋ฆฌ์ ๋ค๋ฅธ ๊ธ
[๋จธ์ ๋ฌ๋] ๊ฐํํ์ต (0) | 2020.11.06 |
---|---|
[๋ชจ๋๋ฅผ ์ํ ๋ฅ๋ฌ๋] ํฉ์ฑ๊ณฑ ์ ๊ฒฝ๋ง(CNN) (0) | 2020.08.23 |
[๋ชจ๋๋ฅผ ์ํ ๋ฅ๋ฌ๋] ์ธ๊ณต์ ๊ฒฝ๋ง, ์ค์ฐจ์ญ์ ํ (0) | 2020.08.11 |
[๋ชจ๋๋ฅผ ์ํ ๋ฅ๋ฌ๋] ํ์ต๊ณ์, ๋ฐ์ดํฐ ํ์คํ, ๊ณผ์ ํฉ (0) | 2020.08.04 |
[๋ชจ๋๋ฅผ ์ํ ๋ฅ๋ฌ๋] ๋ค์ค ๋ถ๋ฅ, ์ํํธ๋งฅ์ค ํ๊ท (0) | 2020.08.03 |