λ”₯λŸ¬λ‹

ν™œμ„±ν™”ν•¨μˆ˜ - μ‹œκ·Έλͺ¨μ΄λ“œ ν•¨μˆ˜, 계단 ν•¨μˆ˜, ReLu ν•¨μˆ˜

주영 🐱 2022. 12. 9. 15:21
728x90
λ°˜μ‘ν˜•

μ•žμ„œ 봀던 νΌμ…‰νŠΈλ‘ μ˜ ν•¨μˆ˜λŠ”

μž„κ³„κ°’μ„ κ²½κ³„λ‘œ 좜λ ₯이 λ‚˜λ‰˜λŠ” 것을 λ³Ό 수 μžˆλ‹€. 이런 ν™œμ„±ν™” ν•¨μˆ˜λ₯Ό 계단 ν•¨μˆ˜λΌκ³  ν•œλ‹€. 즉, νΌμ…‰νŠΈλ‘ μ—μ„œλŠ” ν™œμ„±ν™”ν•¨μˆ˜λ‘œ 계단 ν•¨μˆ˜λ₯Ό μ‚¬μš©ν•œλ‹€. νΌμ…‰νŠΈλ‘ μ˜ 기반이 λ˜λŠ” κ΅¬μ‘°λŠ” λ‹€μŒκ³Ό κ°™κ³ , 이λ₯Ό TLU라 ν•œλ‹€. 

TLU : μž…λ ₯의 κ°€μ€‘μΉ˜ 합을 κ³„μ‚°ν•˜κ³  계닀 ν•¨μˆ˜λ₯Ό μ μš©ν•˜λŠ” 인곡 λ‰΄λŸ°

νΌμ…‰νŠΈλ‘ μ—μ„œλŠ” 계단 ν•¨μˆ˜κ°€ μ•„λ‹Œ μ‹œκ·Έλͺ¨μ΄λ“œ ν•¨μˆ˜λ₯Ό ν™œμ„±ν™” ν•¨μˆ˜λ‘œ μ‚¬μš©ν•œλ‹€. 

eλŠ” μžμ—°μƒμˆ˜λ‘œ 2.7182...의 값을 가지고 μžˆλ‹€. μ‹ κ²½λ§μ—μ„œλŠ” μ‹œκ·Έλͺ¨μ΄λ“œ ν•¨μˆ˜λ₯Ό ν™œμ„±ν™” ν•¨μˆ˜λ‘œ μ‚¬μš©ν•˜μ—¬ μ‹ ν˜Έλ₯Ό λ³€ν™˜ν•˜κ³ , κ·Έ λ³€ν™˜λœ μ‹ ν˜Έλ₯Ό λ‹€μŒ λ‰΄λŸ°μ— μ „λ‹¬ν•œλ‹€. νΌμ…‰νŠΈλ‘ κ³Ό μ‹ κ²½λ§μ˜ 주된 μ°¨μ΄λŠ” ν™œμ„±ν™” ν•¨μˆ˜λ₯Ό λ¬΄μ—‡μœΌλ‘œ μ“°λŠλƒμ˜ 차이이닀. 이 두 ν•¨μˆ˜λ₯Ό λΉ„κ΅ν•΄λ³΄μž.

 

계단 ν•¨μˆ˜

파이썬으둜 κ΅¬ν˜„ν•œ 계단 ν•¨μˆ˜λŠ” μž…λ ₯이 0을 λ„˜μœΌλ©΄ 1을 좜λ ₯ν•˜κ³ , κ·Έ μ™Έμ—λŠ” 0을 좜λ ₯ν•œλ‹€.

def stepfunc(x):
	y=x>0
    retuen y.astype(np.int)

μž…λ ₯λ³€μˆ˜λ‘œ numpy 배열도 μ§€μ›ν• μˆ˜μžˆλ‹€. 

 

μ‹œκ·Έλͺ¨μ΄λ“œ ν•¨μˆ˜ 파이썬 κ΅¬ν˜„

def sigmoid(x):
	return 1/(1+np/exp(-x))

 

μ‹œκ·Έλͺ¨μ΄λ“œ ν•¨μˆ˜μ™€ 계단 ν•¨μˆ˜ 차이

λˆˆμ— λ³΄μ΄λŠ” μ°¨μ΄λŠ” μ•„λ§ˆ λ§€λ„λŸ¬μ›€ 일 것이닀. 이와 κ΄€λ ¨ν•΄μ„œ κ³„λ‹¨ν•¨μˆ˜λŠ” 0λ˜λŠ” 1 λ‘˜μ€‘ ν•˜λ‚˜μ˜ κ°’λ§Œ 좜λ ₯ν•˜λŠ” 반면 μ‹œκ·Έλͺ¨μ΄λ“œλŠ” μ—¬λŸ¬ μ‹€μˆ˜λ“€μ„ λ°˜ν™˜ν•  수 μžˆλ‹€(0.245,0.357,,,λ“±λ“±)

곡톡점은 λ‘˜λ‹€ 0μ—μ„œ 1μ‚¬μ΄μ˜ 값을 좜λ ₯ν•œλ‹€λŠ” 것이닀. λ˜ν•œ λ‘˜μ€ λΉ„μ„ ν˜• ν•¨μˆ˜μ΄λ‹€. (μ„ ν˜•ν•¨μˆ˜λž€ μž…λ ₯을 λ°›μ•˜μ„ λ•Œ 좜λ ₯이 μž…λ ₯의 μƒμˆ˜λ°°λ§ŒνΌ λ³€ν•˜λŠ” ν•¨μˆ˜μ΄λ‹€. λΉ„μ„ ν˜• ν•¨μˆ˜λŠ” μ„ ν˜•μ΄ μ•„λ‹Œ, 직선 1개둜 γ…›ν˜„μ΄ λΆˆκ°€λŠ₯ν•œ ν•¨μˆ˜μ΄λ‹€. )

 

μ‹ κ²½λ§μ—μ„œλŠ” ν™œμ„±ν™”ν•¨μˆ˜λ‘œ λΉ„μ„ ν˜• ν•¨μˆ˜λ₯Ό μ‚¬μš©ν•΄μ•Ό ν•œλ‹€. μ„ ν˜•ν•¨μˆ˜λ₯Ό μ‚¬μš©ν•˜λ©΄ μ‹ κ²½λ§μ˜ 측을 깊게 ν•˜λŠ” μ˜λ―Έκ°€ μ—†κΈ° λ•Œλ¬Έμ΄λ‹€. 

 

ReLU ν•¨μˆ˜

μ΅œκ·Όμ—λŠ” μ‹ κ²½λ§μ—μ„œ μ‹œκ·Έλͺ¨μ΄λ“œκ°€ μ•„λ‹Œ 렐루 ν•¨μˆ˜λ₯Ό 주둜 μ‚¬μš©ν•œλ‹€. λ λ£¨λŠ” μž…λ ₯이 0을 λ„˜μœΌλ©΄ κ·Έ μž…λ ₯을 κ·ΈλŒ€λ‘œ 좜λ ₯ν•˜κ³ , 0μ΄ν•˜λ©΄ 0을 좜λ ₯ν•˜λŠ” ν•¨μˆ˜μ΄λ‹€. 파이썬으둜 κ΅¬ν˜„ν•˜λ©΄ λ‹€μŒκ³Ό κ°™λ‹€. 

def rellu(x):
	return np.maximum(0,x)

 

λ°˜μ‘ν˜•