Activation Function - BD-SEARCH/MLtutorial GitHub Wiki

Activation Function (ํ™œ์„ฑํ™” ํ•จ์ˆ˜)

01. Activation Function?

  • Perceptron์˜ ์ถœ๋ ฅ๊ฐ’์„ ๋ณ€ํ˜•์‹œํ‚ค๋Š” ์—ญํ• /์ž…๋ ฅ๊ฐ’์˜ ์ดํ•ฉ์„ ์ถœ๋ ฅ์œผ๋กœ ๋ณ€ํ™˜. Perceptron์˜ ์ถœ๋ ฅ์„ ๋น„์„ ํ˜•์œผ๋กœ ๋ณ€ํ™˜ํ•˜๊ธฐ ์œ„ํ•ด ์‚ฌ์šฉํ•œ๋‹ค.
  • input๊ฐ’ x์™€ weight W๋ฅผ ๊ณฑํ•˜๊ณ  bias b๋ฅผ ๋”ํ•œ๋’ค ์”Œ์›Œ์ฃผ๋Š” ํ™œ์„ฑ ํ•จ์ˆ˜.

ํ™œ์„ฑํ™” ํ•จ์ˆ˜๋กœ ์„ ํ˜• ํ•จ์ˆ˜๋ฅผ ์‚ฌ์šฉํ•˜๋ฉด ์•ˆ ๋˜๋Š” ์ด์œ 

  • ์—ฌ๋Ÿฌ ์ธต์œผ๋กœ ๋œ ๋ชจ๋ธ์„ ํ•˜๋‚˜์˜ ์ธต๋งŒ์œผ๋กœ๋„ ๋‚˜ํƒ€๋‚ผ ์ˆ˜ ์žˆ์–ด์„œ ๋ ˆ์ด์–ด๋ฅผ ์—ฌ๋Ÿฌ ์ธต ์Œ“์€ ๊ฒƒ์„ ๋ฌด์šฉ์ง€๋ฌผ๋กœ ๋งŒ๋“ ๋‹ค.
  • Activation Function์ด ์„ ํ˜• ํ•จ์ˆ˜์ด๋ฉด, ๋ ˆ์ด์–ด๋ฅผ ์—ฌ๋Ÿฌ ์ธต ์Œ“์€ ๊ฒƒ์„ ํ–‰๋ ฌ์˜ ๊ณฑ์œผ๋กœ ๋‚˜ํƒ€๋‚ผ ์ˆ˜ ์žˆ๋‹ค. ํ–‰๋ ฌ์„ ๊ณฑํ•œ ๊ฐ’์€ ํ•˜๋‚˜์˜ ํ–‰๋ ฌ๋กœ ๋‚˜ํƒ€๋‚ผ ์ˆ˜ ์žˆ๋‹ค. ๊ทธ๋Ÿฌ๋ฏ€๋กœ ๋ ˆ์ด์–ด๊ฐ€ ์—ฌ๋Ÿฌ ์ธต ์Œ“์—ฌ ์žˆ๋”๋ผ๋„, ํ•˜๋‚˜์˜ ๋ ˆ์ด์–ด๋กœ ๋‚˜ํƒ€๋‚ผ ์ˆ˜ ์žˆ๋Š” ๊ฒƒ์ด๋‹ค.
    • ex) h(x) = cx๋ฅผ ํ™œ์„ฑํ™” ํ•จ์ˆ˜๋กœ 3layer network๋ฅผ ๋งŒ๋“ค๋ฉด y(x) = ccc*x = c^3(x) ๊ฐ€ ๋˜๋ฏ€๋กœ ๋˜ ํ•˜๋‚˜์˜ y(x) = ax ๊ผด์ด ๋˜์–ด๋ฒ„๋ฆฐ๋‹ค.
  • vanishing gradient
    • back propagation(ํ‹€๋ฆฐ์ •๋„๋ฅผ ๋ฏธ๋ถ„ํ•œ ๊ฒƒ์„ ์ „๋‹ฌ)์—์„œ ๋ ˆ์ด์–ด๊ฐ€ ๊นŠ์„ ์ˆ˜๋ก ์—…๋ฐ์ดํŠธ๊ฐ€ ์‚ฌ๋ผ์ง€๋ฉด์„œ, underfitting ๋ฐœ์ƒ

02. ์ž์ฃผ ์“ฐ์ด๋Š” ํ™œ์„ฑํ™” ํ•จ์ˆ˜

๊ณ„๋‹จ ํ•จ์ˆ˜

  • ํผ์…‰ํŠธ๋ก ์˜ ํ™œ์„ฑํ™” ํ•จ์ˆ˜.
  • ํผ์…‰ํŠธ๋ก ์—์„œ ์ž…๋ ฅ ๊ฐ๊ฐ์„ ๊ฐ๊ฐ์˜ weight์— ๊ณฑํ•œ ๋’ค, bias๋ฅผ ๋”ํ•œ ๊ฐ’์ด 0 ์ดํ•˜์ด๋ฉด 0, 0 ์ดˆ๊ณผ์ด๋ฉด 1์„ ์ถœ๋ ฅํ•œ๋‹ค.
    • 1๋‹จ๊ณ„: ์ž…๋ ฅ ๊ฐ๊ฐ์„ ๊ฐ๊ฐ์˜ weight์— ๊ณฑํ•œ ๋’ค bias๋ฅผ ๋”ํ•œ๋‹ค.
    • 2๋‹จ๊ณ„: 1๋‹จ๊ณ„์˜ ๊ฐ’์ด 0 ์ดํ•˜์ด๋ฉด 0, 0 ์ดˆ๊ณผ์ด๋ฉด 1์„ ์ถœ๋ ฅํ•œ๋‹ค. (ํ™œ์„ฑํ™” ํ•จ์ˆ˜ ์ ์šฉ ๋‹จ๊ณ„)
  • ๊ฐ’ ๋ฒ”์œ„: 0 ์ด์ƒ 1 ์ดํ•˜

Sigmoid

image

  • 0์—์„œ 1 ์‚ฌ์ด์˜ ๊ฐ’์„ ๊ฐ–๋Š” ํ•จ์ˆ˜๋กœ 0 ๊ทผ์ฒ˜์—์„  ๊ธฐ์šธ๊ธฐ๊ฐ€ ํฌ๋‚˜ 0์—์„œ ๋ฉ€์–ด์งˆ์ˆ˜๋ก ๊ธฐ์šธ๊ธฐ๊ฐ€ ์ž‘์•„์ง„๋‹ค. ๊ทธ๋ž˜์„œ ๋ชจ๋ธ์— Layer๊ฐ€ ๋งŽ์„ ๋•Œ ์ด ํ™œ์„ฑํ™” ํ•จ์ˆ˜๋ฅผ ์‚ฌ์šฉํ•˜๋ฉด ํ•™์Šต์ด ์ž˜ ์•ˆ ๋œ๋‹ค.
  • ๊ทธ๋Ÿผ์—๋„ ๋ถˆ๊ตฌํ•˜๊ณ  ๋น„์„ ํ˜• ํ•จ์ˆ˜๋กœ์„œ ์ž˜ ์“ฐ์˜€๋˜ ์ด์œ 
    • ๋ฏธ๋ถ„์ด ํŽธ๋ฆฌ : ์ž๊ธฐ ์ž์‹ ์œผ๋กœ ๋ฏธ๋ถ„๋œ๋‹ค
    • ํ™•๋ฅ  ๊ฐ’์„ ๋ฆฌํ„ด

ReLU

image

  • 0 ์ดํ•˜๋Š” 0, 0 ์ดˆ๊ณผ๋Š” ์ž…๋ ฅ๊ฐ’์„ ๊ทธ๋Œ€๋กœ ๋‚ด๋†“๋Š” ํ•จ์ˆ˜.
  • ๋น„์„ ํ˜• ํ•จ์ˆ˜.
  • ์ž…๋ ฅ๊ฐ’์ด 0 ์ดํ•˜๋ฉด ๋ชจ๋“  ์ถœ๋ ฅ์ด 0์ด ๋˜๋Š” ๋‹จ์ ์ด ์žˆ๋‹ค.
  • numpy๋กœ๋Š” np.maximum(0, x)์œผ๋กœ ๊ตฌํ˜„ํ•  ์ˆ˜ ์žˆ๋‹ค.
    • x๋Š” ๋ฐฐ์—ด์ด๋ฉฐ, ๋ฐฐ์—ด ๋‚ด์˜ ๊ฐ’์ด 0 ์ด์ƒ์ด๋ฉด ๊ทธ ๊ฐ’์„, 0 ๋ฏธ๋งŒ์ด๋ฉด 0์œผ๋กœ ์ฑ„์šฐ๋Š” ํ•จ์ˆ˜

Softmax

  • ๊ฐ ์ž…๋ ฅ๊ฐ’์„ ์ •๊ทœํ™”ํ•ด์„œ ์ตœ๋Œ€๊ฐ€ 1์ธ ํ™•๋ฅ ๊ฐ’์„ ๋งŒ๋“œ๋Š” ํ™œ์„ฑํ™” ํ•จ์ˆ˜.
  • ๋ถ„๋ฅ˜(Classification)๋ฅผ ํ•œ๋‹ค๋ฉด ์ถœ๋ ฅ Layer๋ฅผ Softmax๋กœ ํ•˜๋ฉด ๋œ๋‹ค.
  • ์ˆซ์ž๊ฐ€ ๋งค์šฐ ํฌ๋ฉด overflow๊ฐ€ ๋ฐœ์ƒํ•  ์ˆ˜ ์žˆ๋‹ค.
  • ๋กœ๊ทธ ๋ฒ•์น™์— ์˜ํ•˜์—ฌ softmax๋ฅผ ๊ตฌํ• ๋•Œ ์ž…๋ ฅ๊ฐ’, ์ž…๋ ฅ๊ฐ’์˜ ํ•ฉ ๊ฐ๊ฐ์— ๊ฐ™์€ ์ˆ˜๋ฅผ ๋”ํ•˜๊ฑฐ๋‚˜ ๋นผ์–ด๋„ ๊ฐ’์€ ๋™์ผํ•˜๋‹ค.
  • ๋ณดํ†ต ์ž…๋ ฅ๊ฐ’์˜ ์ตœ๋Œ“๊ฐ’์„ ๋บ€๋‹ค.

Leaky ReLU

  • 0 ์ด์ƒ์ด๋ฉด ์ž…๋ ฅ๊ฐ’์„ ๊ทธ๋Œ€๋กœ, 0 ๋ณด๋‹ค ์ž‘์œผ๋ฉด ๋งค์šฐ ์ž‘์€ ๊ฐ’(์˜ˆ: 0.01 ๋“ฑ)์„ ๊ณฑํ•ด์„œ ์ถœ๋ ฅํ•˜๋Š” ํ•จ์ˆ˜. ReLU์—์„œ ๋ฐœ์ƒํ•˜๋Š” dying ReLU๋ฅผ ๋ณด์™„ํ•˜๊ธฐ ์œ„ํ•œ ํ•จ์ˆ˜์ด๋‹ค. ์—ฌ๊ธฐ์„œ dying ReLU์ด๋ž€ ReLU์—์„œ ์ž…๋ ฅ์ด 0 ์ดํ•˜๋ผ๋ฉด ์ „๋ถ€ 0์œผ๋กœ ์ถœ๋ ฅ๋˜์–ด์„œ ์ผ๋ถ€ ๋‰ด๋Ÿฐ์ด ์ „ํ˜€ ์ถœ๋ ฅ๋˜์ง€ ์•Š๋Š” ํ˜„์ƒ์ด๋‹ค.

Parametric ReLU

  • 0 ์ด์ƒ์ด๋ฉด ์ž…๋ ฅ๊ฐ’์„ ๊ทธ๋Œ€๋กœ, 0 ๋ณด๋‹ค ์ž‘์Œ๋ฉด ax๋ฅผ ์ถœ๋ ฅํ•œ๋‹ค.

ELU

  • 0 ์ด์ƒ์ด๋ฉด ์ž…๋ ฅ๊ฐ’์„ ๊ทธ๋Œ€๋กœ, 0 ๋ณด๋‹ค ์ž‘์œผ๋ฉด a(e^x-1)๋ฅผ ์ถœ๋ ฅํ•œ๋‹ค.

03. Activation Function์˜ ์„ ํƒ ์š”๋ น

  • ReLU
    • ๋ฌด๋‚œํ•œ ์„ ํƒ. ํŠนํžˆ ๊ณ„์ธต์ด ๊นŠ์„ ๋•Œ.
    • ๋น„์„ ํ˜• ํ•จ์ˆ˜์ด๊ธฐ ๋•Œ๋ฌธ์— ์ž์ฃผ ์“ฐ์ธ๋‹ค.
  • Sigmoid
    • ์ถœ๋ ฅ๊ฐ’์ด ํ™•๋ฅ ๊ฐ’์ธ ๊ฒฝ์šฐ: sigmoid ํ•จ์ˆ˜์˜ ๋ฒ”์œ„๊ฐ€ 0๊ณผ 1 ์‚ฌ์ด์— ์žˆ๊ธฐ ๋•Œ๋ฌธ.
    • ์ด์ง„ ๋ถ„๋ฅ˜ (0/1์œผ๋กœ ๋ถ„๋ฅ˜)
  • Softmax
    • Classification ๋ฌธ์ œ์ธ ๊ฒฝ์šฐ: softmax ํ•จ์ˆ˜์˜ ์ถœ๋ ฅ๊ฐ’์˜ ํ•ฉ์ด 1์ด๊ธฐ ๋•Œ๋ฌธ