๋”ฅ๋Ÿฌ๋‹/Today I learned :

[๋”ฅ๋Ÿฌ๋‹]์‹ ๊ฒฝ๋ง (w. Keras) , ํผ์…‰ํŠธ๋ก , ํ™œ์„ฑํ™” ํ•จ์ˆ˜(์‹œ๊ทธ๋ชจ์ด๋“œ, ReLU)

์ฃผ์˜ ๐Ÿฑ 2022. 7. 24. 16:56
728x90
๋ฐ˜์‘ํ˜•

์‹ ๊ฒฝ๋ง์€ ํฌ์œ ๋ฅ˜์˜ ์‹ ๊ฒฝ๊ณ„์—์„œ ์˜๊ฐ์„ ๋ฐ›์€ ๋จธ์‹ ๋Ÿฌ๋‹ ๋ชจ๋ธ์˜ ํ•œ ์ข…๋ฅ˜

๊ฐ ์‹ ๊ฒฝ๋ง์€ ์„œ๋กœ ์—ฐ๊ฒฐ๋œ ๋‰ด๋Ÿฐ๋“ค๋กœ ๊ตฌ์„ฑ๋˜์–ด ์žˆ์œผ๋ฉฐ, ํŠน์ •์ƒํƒœ๊ฐ€ ๋˜๋ฉด ๋ฉ”์„ธ์ง€๋ฅผ ๊ตํ™˜ํ•˜๋Š” ๊ณ„์ธต(layer)๋กœ ๊ตฌ์„ฑ๋œ๋‹ค. 

 

์ดˆ๊ธฐ ์—ฐ๊ตฌ๋Š” 1950๋…„๋Œ€ ํ›„๋ฐ˜ ํผ์…‰ํŠธ๋ก ์—์„œ ์‹œ์ž‘ํ–ˆ๋‹ค.

ํผ์…‰ํŠธ๋ก ์€ ๋‘ ๊ณ„์ธต์œผ๋กœ ๊ฐ„๋‹จํ•œ ์—ฐ์‚ฐ์— ์‚ฌ์šฉํ–ˆ๊ณ , 1960๋…„๋Œ€ ํ›„๋ฐ˜์— ์—ญ์ „ํŒŒ ์•Œ๊ณ ๋ฆฌ์ฆ˜์˜ ์†Œ๊ฐœ๋กœ ๋‹ค์ธต์‹ ๊ฒฝ๋งํ•™์Šต์ด ๊ฐ€๋Šฅํ•ด์ง€๋ฉด์„œ ํ™•์žฅ๋๋‹ค. ์ด๋Ÿฌํ•œ ๊ฐœ์„ ์˜ ์—ญ์‚ฌ๋Š” ๋งŽ์€ ์ˆ˜์˜ ๋‰ด๋Ÿฐ ๊ณ„์ธต์„ ๊ฐ–๋Š” ์‹ ๊ฒฝ๋ง ์ข…๋ฅ˜์ธ ๋”ฅ๋Ÿฌ๋‹์„ ์œ„ํ•œ ๋ฐœํŒ์ด ๋๋‹ค. 

 

์ผ€๋ผ์ŠคKeras - ๋”ฅ๋Ÿฌ๋‹ ๊ณ„์‚ฐ์„ ์œ„ํ•œ ์ž‘๊ณ  ํšจ์œจ์ ์ธ ํŒŒ์ด์ฌ ๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ

 

ํผ์…‰ํŠธ๋ก 

 

ํผ์…‰ํŠธ๋ก ์€ n๊ฐœ์˜ ํฌ๊ธฐ๋ฅผ ๊ฐ–๋Š” ์ž…๋ ฅ ๋ฒกํ„ฐ(x1,x2,,,,,xn)๊ฐ€ ์ฃผ์–ด์ง€๋ฉด ์˜ˆ(1)์ด๋‚˜ ์•„๋‹ˆ์˜ค(0)์„ ์ถœ๋ ฅํ•˜๋Š” ๊ฐ„๋‹จํ•œ ์•Œ๊ณ ๋ฆฌ์ฆ˜

f(x)  = 1   :  wx+b>0            0  :  otherwisew: ๊ฐ€์ค‘์น˜ ๋ฒกํ„ฐ, wx๋Š” ๋‚ด์ , b๋Š” ๋ฐ”์ด์–ด์Šค(ํŽธํ–ฅ)

 

 

์ผ€๋ผ์Šค ๋ชจ๋ธ Sequential

- ๊ฐ€์žฅ ๊ฐ„๋‹จํ•œ ๋ชจ๋ธ , ์ˆœ์ฐจ ์ผ€๋ผ์Šค๋ชจ๋ธ- 12๊ฐœ์˜ ์ธ๊ณต๋‰ด๋Ÿฐ์„ ๊ฐ–๊ณ , 8๊ฐœ์˜ ์ž…๋ ฅ ๋ณ€์ˆ˜(=ํŠน์ง•)๋ฅผ ๋ฐ›๋Š” ๋‹จ์ผ ๊ณ„์ธต ์ƒ์„ฑ ์ฝ”๋“œ:

from keras.layers.core import Dense
from keras.models import Sequential
model = Sequential()
model.add(Dense(12, input_dim=8, kernel_initializer="random_uniform")

random_uniform = ๊ฐ€์ค‘์น˜๋Š” (-0.05,0.05)๋กœ ๊ท ๋“ฑํ•˜๊ฒŒ ์ž‘์€ ์ž„์˜์˜ ๊ฐ’์œผ๋กœ ์ดˆ๊ธฐํ™”, ์ฆ‰ ์ฃผ์–ด์ง„ ๊ฐ„๊ฒฉ ๋‚ด์˜ ๋ชจ๋“  ๊ฐ’์ด ๋™๋“œ์•Ÿ๊ฒŒ  ๋‚˜์˜ฌ ์ˆ˜ ์žˆ์Œ

random_uniform = ๊ฐ€์ค‘์น˜๋Š” ํ‰๊ท ์ด 0, ํ‘œ์ค€ํŽธ์ฐจ 0.05๋กœ, ๊ฐ€์šฐ์‹œ์•ˆ ๋ถ„ํฌ์— ๋”ฐ๋ผ ์ดˆ๊ธฐํ™”

zero = ๋ชจ๋“  ๊ฐ€์ค‘์น˜๋ฅผ 0์œผ๋กœ ์ดˆ๊ธฐํ™”

์ด ์™ธ : https://keras.io.initializations 

 

 

๋‹ค์ธต ํผ์…‰ํŠธ๋ก  : ์—ฌ๋Ÿฌ ๊ณ„์ธต์ด ์žˆ๋Š” ๊ฒฝ์šฐ

์ฒซ ๋ฒˆ์งธ ๊ณ„์ธต์˜ ๊ฐ ๋…ธ๋“œ๋“ค์ด ์ž…๋ ฅ ๋ฐ›์•„ ๋‹ค์Œ ๊ณ„์ธต์œผ๋กœ ์ „๋‹ฌ, ๊ทธ ๊ฒฐ๊ณผ ํ•˜๋‚˜์˜ ๋‰ด๋Ÿฐ์œผ๋กœ ๊ตฌ์ •๋˜์–ด ์ตœ์ข… ๊ณ„์ธต์œผ๋กœ ์ „๋‹ฌ๋˜๋Š” ๋ฐฉ์‹

์ด ์‹ ๊ฒฝ๋ง์„ ๋ด์Šค๋ผ๊ณ  ๋ถ€๋ฅด๋ฉฐ, ๊ณ„์ธต์˜ ๊ฐ ๋‰ด๋Ÿฐ๋“ค์ด ์ด์ „ ๊ณ„์ธต์— ์žˆ๋Š” ๋ชจ๋“  ๋‰ด๋Ÿฐ๊ณผ ์—ฐ๊ฒฐ๋˜๊ณ , ๋‹ค์Œ ๊ณ„์ธต์— ์žˆ๋Š” ๋ชจ๋“  ๋‰ด๋Ÿฐ์— ์—ฐ๊ฒฐ๋จ์„ ์˜๋ฏธํ•จ

 

ํ•œ๊ณ„:

ํผ์…‰ํŠธ๋ก ์€ ์ ์ง„์ ์œผ๋กœ ํ•™์Šตํ•  ์ˆ˜ ์—†๋‹ค. ์ ์ง„์ ์œผ๋กœ 0์—์„œ 1๋กœ ๋ณ€ํ™”ํ•˜๋Š” ํ•จ์ˆ˜๊ฐ€ ํ•„์š”ํ•˜๋‹ค. -> ํ™œ์„ฑํ™” ํ•จ์ˆ˜ 

 

 

ํ™œ์„ฑํ™”ํ•จ์ˆ˜

Keras๋กœ ํ…Œ์ŠคํŠธํ•ด๋ณด๋ฉด์„œ ํ™œ์„ฑํ™”ํ•จ์ˆ˜์˜ ์ ์ง„์  ๋ณ€ํ™”๋ฅผ ์กฐ๊ธˆ์”ฉ ์ ์šฉํ•ด๋ณด๋…์„œ ์‹ ๊ฒฝ๋ง์˜ ์˜ค์ฐจ๋ฅผ ์ค„์—ฌ ํ•™์Šต ์•Œ๊ณ ๋ฆฌ์ฆ˜์œผ๋กœ ๊ฐœ๋ฐœํ•  ์ˆ˜ ์žˆ๋‹ค. 

 

1. ์‹œ๊ทธ๋ชจ์ด๋“œ

0,1๋กœ ์ถœ๋ ฅํ•˜๋Š” ์—ฐ์†๋•์ธ ํ•จ์ˆ˜

๋‰ด๋Ÿฐ์€ ์‹œ๊ทธ๋ชจ์ด๋“œ๋กœ ๋น„์„ ํ˜• ํ•จ์ˆ˜๋ฅผ ๊ณ„์‚ฐํ•  ์ˆ˜ ์žˆ๋‹ค.  

 

2.ReLU

์Œ์ˆ˜์ผ๋•Œ ๊ฐ’์ด 0์ด๊ณ  ์–‘์ˆ˜์ผ ๋•Œ๋Š” ์„ ํ˜•์œผ๋กœ ์ฆ๊ฐ€ํ•œ๋‹ค.

๋ฐ˜์‘ํ˜•