Skip to content

Latest commit

Β 

History

History
42 lines (31 loc) Β· 2.94 KB

File metadata and controls

42 lines (31 loc) Β· 2.94 KB

μ—­μ „νŒŒ 이둠

μˆ˜μΉ˜λ―ΈλΆ„μ„ 톡해 λ―ΈλΆ„ 계산이 κ°€λŠ₯ν•˜μ§€λ§Œ 수치 미뢄은 계산 λΉ„μš©κ³Ό 정확도 면에 λ¬Έμ œκ°€ 있음. So, μ—­μ „νŒŒ(backpropagation, μ˜€μ°¨μ—­μ „νŒŒλ²•)λ₯Ό μ΄μš©ν•˜λ©΄ 미뢄을 효율적으둜 계산할 수 있고 κ²°κ΄κ°’μ˜ μ˜€μ°¨λ„ 더 적음

연쇄법칙(Chain Rule)

연쇄 법칙에 λ”°λ₯΄λ©΄ ν•©μ„± ν•¨μˆ˜(μ—¬λŸ¬ ν•¨μˆ˜κ°€ μ—°κ²°λœ ν•¨μˆ˜)의 미뢄은 ꡬ성 ν•¨μˆ˜ 각각을 λ―ΈλΆ„ν•œ ν›„ κ³±ν•œ 것과 κ°™μŒ

x에 λŒ€ν•œ y의 미뢄은 "dy/dx = dy/db * db/da * da/dx" 둜 ν‘œν˜„ν•  수 있음.
μ‹μ—μ„œ μ•Œμˆ˜ μžˆλ“― x에 λŒ€ν•œ y의 미뢄은 ꡬ성 ν•¨μˆ˜ 각각의 미뢄값을 λͺ¨λ‘ κ³±ν•œ κ°’κ³Ό κ°™μŒ. 즉, ν•©μ„±ν•¨μˆ˜μ˜ 미뢄은 각 ν•¨μˆ˜μ˜ κ΅­μ†Œμ  λ―ΈλΆ„λ“€λ‘œ λΆ„ν•΄κ°€ κ°€λŠ₯. --> 연쇄 법칙

μœ„ 식(dy/dx = dy/db * db/da * da/dx)은 "dy/dx = dy/dy * dy/db * db/da * da/dx" μœΌλ‘œλ„ ν‘œν˜„μ΄ κ°€λŠ₯ dy/dy은 μžμ‹ μ— λŒ€ν•œ 미뢄이라 항상 1

μ—­μ „νŒŒ 원리 λ„μΆœ

"dy/dx = dy/dy * dy/db * db/da * da/dx" 은 ν•©μ„± ν•¨μˆ˜μ˜ 미뢄은 ꡬ성 ν•¨μˆ˜λ“€μ˜ λ―ΈλΆ„μ˜ 곱으둜 λΆ„ν•΄ν•  수 μžˆμŒμ„ λœ»ν•¨
"dy/dx = (((dy/dy*dy/db)db/da)da/dx)" 식과 같이 좜λ ₯μ—μ„œ μž…λ ₯ λ°©ν–₯으둜, 즉 λ³΄ν†΅μ˜ κ³„μ‚°κ³ΌλŠ” λ°˜λŒ€ λ°©ν–₯으둜 미뢄을 계산, 좜λ ₯ yμ—μ„œ μž…λ ₯ x λ°©ν–₯으둜 κ³±ν•˜λ©΄μ„œ μˆœμ„œλŒ€λ‘œ λ―ΈλΆ„ν•˜λ©΄ μ΅œμ’…μ μœΌλ‘œ dy/dxκ°€ ꡬ해짐

dy/dbλŠ” ν•¨μˆ˜ y = C(b)의 λ―ΈλΆ„, db/da = B(a)의 λ―ΈλΆ„, da/dx = A(x)의 λ―ΈλΆ„

"y의 λ³€μˆ˜μ— λŒ€ν•œ λ―ΈλΆ„κ°’"이 λ³€μˆ˜ y, a, b, x에 λŒ€ν•œ 미뢄값이 였λ₯Έμͺ½μ—μ„œ μ™Όμͺ½μœΌλ‘œ μ „νŒŒλ¨μ„ μ•Œ 수 있음 이것이 μ—­μ „νŒŒ, μ „νŒŒλ˜λŠ” λ°μ΄ν„°λŠ” λͺ¨λ‘ "y의 λ―ΈλΆ„κ°’"

μˆœμ „νŒŒμ™€ μ—­μ „νŒŒκ°„μ˜ 관계λ₯Ό λ΄€μ„λ•Œ μˆœμ „νŒŒ μ‹œμ˜ λ³€μˆ˜ aλŠ” μ—­μ „νŒŒ μ‹œμ˜ λ―ΈλΆ„ dy/da에 λŒ€μ‘, λ§ˆμ°¬κ°€μ§€λ‘œ bλŠ” dy/db, xλŠ” dy/dxκ°€ λŒ€μ‘. ν•¨μˆ˜μ—λ„ λ§ˆμ°¬κ°€μ§€λ‘œ ν•¨μˆ˜ BλŠ” μ—­μ „νŒŒμ˜ B'(a)에 λŒ€μ‘ AλŠ” A'(x)에 λŒ€μ‘. μ΄λ ‡κ²Œ λ³€μˆ˜λŠ” '톡상값'κ³Ό 'λ―ΈλΆ„κ°’'이 μ‘΄μž¬ν•˜κ³  ν•¨μˆ˜λŠ” '톡상 계산(μˆœμ „νŒŒ)'κ³Ό '미뢄값을 κ΅¬ν•˜κΈ° μœ„ν•œ 계산(μ—­μ „νŒŒ)'이 μ‘΄μž¬ν•˜λŠ” κ²ƒμœΌλ‘œ 생각 κ°€λŠ₯

μ—­μ „νŒŒλ₯Ό κ΅¬ν• λ•Œ C'(b)λŠ” y = C(b)의 λ―ΈλΆ„κ°’, 이 λ•Œ C'(b)계산을 μœ„ν•΄μ„  b값이 ν•„μš” λ§ˆμ°¬κ°€μ§€λ‘œ B'(a)λ₯Ό κ΅¬ν•˜κΈ° μœ„ν•΄μ„  a의 값이 ν•„μš”ν•¨. 즉, μ—­μ „νŒŒ μ‹œμ—λŠ” μˆœμ „νŒŒ μ‹œ μ΄μš©ν•œ 데이터가 ν•„μš”ν•¨ λ”°λΌμ„œ μ—­μ „νŒŒλ₯Ό κ΅¬ν•˜κΈ° μœ„ν•΄μ„  λ¨Όμ € μˆœμ „νŒŒλ₯Ό ν•΄μ•Ό 함

Code

  • code
    • step01.py: μˆ˜λ™ μ—­μ „νŒŒ κ΅¬ν˜„
    • step02.py: μžλ™ μ—­μ „νŒŒ κ΅¬ν˜„ - 1
    • step03.py: μžλ™ μ—­μ „νŒŒ κ΅¬ν˜„ - 2

Reference