Backpropagation - BD-SEARCH/MLtutorial GitHub Wiki

01. 계산 κ·Έλž˜ν”„

계산 과정을 λ…Έλ“œμ™€ ν™”μ‚΄ν‘œλ‘œ ν‘œν˜„ν•˜λŠ” κ·Έλž˜ν”„.

  • κ΅­μ†Œμ  계산: 전체가 λ³΅μž‘ν•΄λ„ 각 λ…Έλ“œμ—μ„  λ‹¨μˆœν•œ 계산에 μ§‘μ€‘ν•˜μ—¬ 문제λ₯Ό λ‹¨μˆœν™”ν•  수 μžˆλ‹€.
  • 쀑간 계산 κ²°κ³Ό μ €μž₯ κ°€λŠ₯
  • μ—­μ „νŒŒ(backpropergation)λ₯Ό 톡해 μˆ˜μΉ˜λ―ΈλΆ„λ²•λ³΄λ‹€ 더 효율적으둜 계산할 수 μžˆλ‹€.

계산 κ·Έλž˜ν”„μ˜ λ…Έλ“œλŠ” κ΅­μ†Œμ  κ³„μ‚°μœΌλ‘œ κ΅¬μ„±λ˜λ©°, κ΅­μ†Œμ  계산을 μ‘°ν•©ν•΄ 전체 계산을 κ΅¬μ„±ν•œλ‹€. 계산 κ·Έλž˜ν”„μ˜ μˆœμ „νŒŒλ₯Ό μ΄μš©ν•΄ ν†΅μƒμ˜ 계산을 μˆ˜ν–‰ν•˜λ©°, 계산 κ·Έλž˜ν”„μ˜ μ—­μ „νŒŒλ₯Ό μ΄μš©ν•΄ 각 λ…Έλ“œμ˜ 미뢄을 ꡬ할 수 μžˆλ‹€.

02. 연쇄 법칙

image

ν•©μ„± ν•¨μˆ˜μ˜ 미뢄은 ν•©μ„± ν•¨μˆ˜λ₯Ό κ΅¬μ„±ν•˜λŠ” 각 ν•¨μˆ˜μ˜ λ―ΈλΆ„μ˜ 곱으둜 λ‚˜νƒ€λ‚Ό 수 μžˆλ‹€.

image

연쇄 법칙을 μ΄μš©ν•˜μ—¬ t에 λŒ€ν•œ z의 λ―ΈλΆ„, x에 λŒ€ν•œ t의 λ―ΈλΆ„μ˜ 곱을 μ΄μš©ν•΄ z에 λŒ€ν•œ x의 미뢄을 λ‚˜νƒ€λ‚Ό 수 μžˆλ‹€.

03. 연쇄 법칙을 μ΄μš©ν•œ μ—­μ „νŒŒ

  • λ§μ…ˆ: z = x + y의 미뢄은, x에 λŒ€ν•΄ 미뢄해도 1, y에 λŒ€ν•΄ 미뢄해도 1이닀. λ”°λΌμ„œ λ§μ…ˆ λ…Έλ“œμ˜ μ—­μ „νŒŒλŠ” μž…λ ₯ 값을 κ·ΈλŒ€λ‘œ ν˜λ €λ³΄λ‚Έλ‹€.
  • κ³±μ…ˆ: z = xy의 미뢄은, x에 λŒ€ν•΄ λ―ΈλΆ„ν•˜λ©΄ y, y에 λŒ€ν•΄ λ―ΈλΆ„ν•˜λ©΄ x이닀.

image

1) ν™œμ„±ν™” ν•¨μˆ˜μ˜ μ—­μ „νŒŒ

상λ₯˜μ—μ„œ λ“€μ–΄μ˜¨ 값에닀가 미뢄값을 κ³±ν•œ 값을 ν•˜λ₯˜λ‘œ 보낸닀.

  • Relu

    • image
    • image
    • λ―ΈλΆ„κ°’: 1 ( x > 0), 0 ( x <= 0)
    • 즉, μˆœμ „νŒŒ λ•Œμ˜ μž…λ ₯인 xκ°€ 0보닀 크면 상λ₯˜μ˜ 값을 κ·ΈλŒ€λ‘œ ν•˜λ₯˜λ‘œ ν˜λ¦°λ‹€. κ·ΈλŸ¬λ‚˜ xκ°€ 0 μ΄ν•˜μ΄λ©΄ μ—­μ „νŒŒ λ•ŒλŠ” ν•˜λ₯˜λ‘œ μ‹ ν˜Έλ₯Ό 보내지 μ•ŠλŠ”λ‹€.
  • Sigmoid

    • image
    • image
    • λ―ΈλΆ„κ°’: (1 / (1 + exp(-x))^2) * exp(-x) = y(1-y)
    • λ”°λΌμ„œ μˆœμ „νŒŒμ˜ κ°’ yλ§Œμ„ μ΄μš©ν•΄, μˆœμ „νŒŒ 값에 y(1-y)λ₯Ό κ³±ν•΄μ„œ ν•˜λ₯˜λ‘œ μ‹ ν˜Έλ₯Ό 보낸닀.

2) Affine 계측

image

μ‹ κ²½λ§μ˜ μˆœμ „νŒŒ λ•Œ μˆ˜ν–‰ν•˜λŠ” ν–‰λ ¬μ˜ 곱을 affine transformation(μ–΄νŒŒμΈ λ³€ν™˜)이라고 ν•œλ‹€.

Y = X dot W + B

μœ„ κ·Έλž˜ν”„μ˜ μ—­μ „νŒŒ 식은 μ•„λž˜μ™€ κ°™λ‹€.

image

X, W, B ν–‰λ ¬ μ€‘μ—μ„œ W, BλŠ” λ‚΄λΆ€μ—μ„œ μ‚¬μš©ν•˜λŠ” νŒŒλΌλ―Έν„°μ΄λ‹€. X만이 μž…λ ₯κ°’μ΄λ―€λ‘œ μ—­μ „νŒŒ 값은 dX κ°’λ§Œ λ°˜ν™˜ν•˜λ„λ‘ κ΅¬ν˜„ν•œλ‹€.

3) softmax-with-Loss

image

image

  • softmax layerλ₯Ό ν†΅κ³Όν•œ λ’€ cross-entropy-errorλ₯Ό κ³„μ‚°ν•˜λŠ” 계측이닀.
  • μ—­μ „νŒŒ 값은 (λͺ¨λΈ 좜λ ₯κ°’) - (label κ°’)이닀.
    • λ”°λΌμ„œ λͺ¨λΈ 좜λ ₯κ³Ό label이 μΌμΉ˜ν•˜λ©΄ 1, μ™„μ „ λΆˆμΌμΉ˜ν•˜λ©΄ 0이닀. λΆˆμΌμΉ˜ν•˜λŠ” 정도가 클수둝 μ—­μ „νŒŒ κ°’μ˜ μ ˆλŒ€κ°’μ΄ 컀져 더 λ§Žμ€ μ •λ„λ‘œ ν•™μŠ΅μ„ μˆ˜ν–‰ν•˜κ²Œ λœλ‹€.
    • cross entropyλ₯Ό μ΄μš©ν–ˆκΈ° λ•Œλ¬Έμ— μ—­μ „νŒŒ 값이 μœ„μ™€ 같이 κ°„λ‹¨ν•˜κ²Œ λ‚˜μ˜€κ²Œ λœλ‹€. λ§ˆμ°¬κ°€μ§€λ‘œ ν•­λ“± ν•¨μˆ˜μ™€ MSE lossλ₯Ό μ΄μš©ν•΄λ„ 이와 같은 값이 λ‚˜μ˜€κ²Œ λœλ‹€.

03. κ΅¬ν˜„

수치 미뢄을 μ΄μš©ν•œ 방법과 λ™μΌν•˜λ‹€. 단, 수치 λ―ΈλΆ„ λŒ€μ‹  μ˜€μ°¨μ—­μ „νŒŒλ²•μ„ μ΄μš©ν•œλ‹€λŠ” 차이가 μžˆλ‹€. μ˜€μ°¨μ—­μ „νŒŒλ²•μ΄ μˆ˜μΉ˜λ―ΈλΆ„λ³΄λ‹€ λΉ λ₯΄κΈ΄ ν•˜μ§€λ§Œ κ΅¬ν˜„μ΄ κΉŒλ‹€λ‘­λ‹€. λ”°λΌμ„œ μˆ˜μΉ˜λ―ΈλΆ„μ„ μ΄μš©ν•œ κ°’κ³Ό λΉ„κ΅ν•˜λ©΄ μ˜€μ°¨μ—­μ „νŒŒλ²•μ΄ μ œλŒ€λ‘œ κ΅¬ν˜„λ˜μ—ˆλŠ”μ§€ 확인이 κ°€λŠ₯ν•˜λ‹€.

04. 참고자료