πŸ“„

Convolution

Mark as In Progress

μ •μ˜

ν•˜λ‚˜μ˜ ν•¨μˆ˜(μ‹ ν˜Έ)κ°€ λ‹€λ₯Έ ν•¨μˆ˜(μ‹œμŠ€ν…œμ˜ 응닡)에 μ˜ν•΄ μ–΄λ–»κ²Œ λ³€ν˜•λ˜λŠ”μ§€λ₯Ό μˆ˜ν•™μ μœΌλ‘œ λ‚˜νƒ€λ‚΄λŠ” 연산이닀. μ‹ ν˜Έ μ²˜λ¦¬μ—μ„œλŠ” μž…λ ₯ μ‹ ν˜Έκ°€ μ„ ν˜• μ‹œλΆˆλ³€(LTI) μ‹œμŠ€ν…œμ„ 톡과할 λ•Œμ˜ μ΅œμ’… 좜λ ₯ κ²°κ³Όλ₯Ό κ³„μ‚°ν•˜λŠ” 핡심 원리닀.

μ„€λͺ…

Convolution은 과거의 μž…λ ₯이 ν˜„μž¬μ˜ 결과에 λ―ΈμΉ˜λŠ” λˆ„μ λœ 영ν–₯을 κ³„μ‚°ν•˜κΈ° μœ„ν•΄ κ³ μ•ˆλ˜μ—ˆλ‹€. 18~19μ„ΈκΈ° λΌν”ŒλΌμŠ€μ™€ 푸리에 λ“±μ˜ μˆ˜ν•™μžλ“€μ΄ 적뢄 방정식을 ν’€κΈ° μœ„ν•΄ κ°œλ…μ„ μ •λ¦½ν–ˆμœΌλ©°, 이후 μ „μž 곡학과 톡신 μ‹œμŠ€ν…œμ˜ λ°œμ „κ³Ό ν•¨κ»˜ μ‹ ν˜Έκ°€ ν•„ν„°λ‚˜ μ‹œμŠ€ν…œμ„ 톡과할 λ•Œ μΌμ–΄λ‚˜λŠ” 물리적 λ³€ν™”λ₯Ό μ„€λͺ…ν•˜λŠ” μ™„λ²½ν•œ μˆ˜ν•™μ  λ„κ΅¬λ‘œ 자리 μž‘μ•˜λ‹€.
이 μ—°μ‚°μ˜ λ³Έμ§ˆμ€ 두 μ‹ ν˜Έλ₯Ό κ³±ν•˜κ³  λ”ν•˜λŠ” λ‹¨μˆœν•œ 과정에 μžˆλ‹€. ν•˜λ‚˜μ˜ μ‹ ν˜Έ(주둜 μ‹œμŠ€ν…œμ˜ μž„νŽ„μŠ€ 응닡)λ₯Ό μ‹œκ°„ μΆ•μ—μ„œ 뒀집은 λ’€, λ‹€λ₯Έ μ‹ ν˜Έ(μž…λ ₯ μ‹ ν˜Έ) μœ„λ‘œ λ―Έλ„λŸ¬μ§€λ“― μ΄λ™μ‹œν‚€λ©΄μ„œ λ§€ μˆœκ°„ κ²ΉμΉ˜λŠ” 면적을 λˆ„μ ν•˜μ—¬ μƒˆλ‘œμš΄ νŒŒν˜•μ„ λ§Œλ“€μ–΄λ‚Έλ‹€.
특히 μ‹œκ°„ μ˜μ—­μ—μ„œμ˜ Convolution 연산이 주파수 μ˜μ—­μ—μ„œλŠ” λ‹¨μˆœν•œ κ³±μ…ˆμœΌλ‘œ λ³€ν™˜λœλ‹€λŠ” ν•©μ„±κ³± 정리(Convolution Theorem)λŠ” ν˜„λŒ€ λ””μ§€ν„Έ μ‹ ν˜Έ μ²˜λ¦¬μ™€ 고속 μ—°μ‚° μ•Œκ³ λ¦¬μ¦˜μ˜ 근간을 이룬닀.

원리

  1. λ°˜μ „κ³Ό 이동 (Flip and Shift)
    1. 두 ν•¨μˆ˜ 쀑 ν•˜λ‚˜(주둜 μ‹œμŠ€ν…œμ˜ 응닡 ν•¨μˆ˜)λ₯Ό μ‹œκ°„ 좕을 κΈ°μ€€μœΌλ‘œ 쒌우둜 뒀집은 λ‹€μŒ, μ‹œκ°„μ˜ 흐름에 따라 μž…λ ₯ μ‹ ν˜Έ μœ„λ₯Ό μ μ§„μ μœΌλ‘œ μŠ¬λΌμ΄λ”©μ‹œν‚¨λ‹€.
  1. κ³±μ…ˆκ³Ό λˆ„μ  (Multiply and Accumulate)
    1. μ΄λ™ν•˜λŠ” λ§€ μˆœκ°„λ§ˆλ‹€ 두 ν•¨μˆ˜μ˜ κ²ΉμΉ˜λŠ” 값을 κ³±ν•˜κ³ , κ·Έ 결과듀을 λͺ¨λ‘ λ”ν•˜κ±°λ‚˜(이산 μ‹ ν˜Έ) μ λΆ„ν•˜μ—¬(연속 μ‹ ν˜Έ) ν•΄λ‹Ή μ‹œμ μ˜ μ΅œμ’… 좜λ ₯ 값을 κ²°μ •ν•œλ‹€.
  1. μž„νŽ„μŠ€ μ‘λ‹΅κ³Όμ˜ κ²°ν•© (Impulse Response)
    1. μ‹œμŠ€ν…œμ΄ μ•„μ£Ό 짧은 자극(Impulse)에 λ°˜μ‘ν•˜λŠ” κ³ μœ ν•œ νŒ¨ν„΄(μž„νŽ„μŠ€ 응닡)을 μ•Œλ©΄, μ–΄λ– ν•œ λ³΅μž‘ν•œ ν˜•νƒœμ˜ μž…λ ₯ μ‹ ν˜Έκ°€ 듀어와도 Convolution을 톡해 κ·Έ μ‹œμŠ€ν…œμ˜ μ΅œμ’… 좜λ ₯ κ²°κ³Όλ₯Ό μ™„λ²½ν•˜κ²Œ μ˜ˆμΈ‘ν•  수 μžˆλ‹€.
  1. 주파수 μ˜μ—­μ˜ λ“±κ°€μ„± (Convolution Theorem)
    1. μ‹œκ°„ μ˜μ—­μ—μ„œμ˜ λ³΅μž‘ν•œ ν•©μ„±κ³± 연산은 두 μ‹ ν˜Έλ₯Ό 푸리에 λ³€ν™˜(Fourier Transform)ν•˜μ—¬ 주파수 μ˜μ—­μœΌλ‘œ 보낸 λ’€ λ‹¨μˆœνžˆ μˆ˜ν•™μ  κ³±μ…ˆμ„ μˆ˜ν–‰ν•˜λŠ” 것과 λ™μΌν•œ κ²°κ³Όλ₯Ό λ‚³λŠ”λ‹€.

ꡬ쑰

연속 μ‹œκ°„ ν•©μ„±κ³± (Continuous Convolution)

(fβˆ—g)(t)=βˆ«βˆ’βˆžβˆžf(Ο„)g(tβˆ’Ο„)dΟ„(f * g)(t) = \int_{-\infty}^{\infty} f(\tau)g(t - \tau) d\tau

이산 μ‹œκ°„ ν•©μ„±κ³± (Discrete Convolution)

(fβˆ—g)[n]=βˆ‘m=βˆ’βˆžβˆžf[m]g[nβˆ’m](f * g)[n] = \sum_{m=-\infty}^{\infty} f[m]g[n - m]

μ˜ˆμ‹œ

음ν–₯ 및 μ‚¬μš΄λ“œ λ””μžμΈ (Convolution Reverb)

λŒ€μ„±λ‹Ήμ΄λ‚˜ 동꡴ 같은 νŠΉμ • κ³΅κ°„μ—μ„œ μ•„μ£Ό 짧은 νŒŒμ—΄μŒμ„ λ°œμƒμ‹œμΌœ 얻은 κ³΅κ°„μ˜ μž”ν–₯ νŠΉμ„±(μž„νŽ„μŠ€ 응닡)을 μΆ”μΆœν•œλ‹€. 이후 μŠ€νŠœλ””μ˜€μ—μ„œ λ…ΉμŒλœ κ±΄μ‘°ν•œ μ˜€λ””μ˜€ μ‹ ν˜Έμ™€ 이 μž„νŽ„μŠ€ 응닡을 ν•©μ„±κ³±(Convolution) μ—°μ‚°ν•˜λ©΄, ν•΄λ‹Ή κ³΅κ°„μ—μ„œ μ‹€μ œλ‘œ μ—°μ£Όν•œ 것과 μ™„λ²½νžˆ λ™μΌν•œ 사싀적인 물리적 μž”ν–₯을 얻을 수 μžˆλ‹€.

μ˜μƒ 처리 (Image Filtering)

λ””μ§€ν„Έ 이미지(2차원 곡간 μ‹ ν˜Έ)에 νŠΉμ • κ°€μ€‘μΉ˜λ₯Ό κ°€μ§„ μž‘μ€ ν–‰λ ¬(컀널 λ˜λŠ” ν•„ν„°)을 겹치고 μ΄λ™μ‹œν‚€λ©° ν”½μ…€ 값을 κ³±ν•˜κ³  λ”ν•˜λŠ” 연산을 μˆ˜ν–‰ν•œλ‹€. μ»€λ„μ˜ 수치 배열에 따라 이미지λ₯Ό 흐리게(Blur) ν•˜κ±°λ‚˜, μœ€κ³½μ„ μ„ λ‚ μΉ΄λ‘­κ²Œ(Edge Detection) μΆ”μΆœν•˜λŠ” λ“± κΈ°ν•˜ν•™μ  λ³€ν˜•μ„ κ°€ν•œλ‹€.

인곡지λŠ₯ (CNN, Convolutional Neural Network)

λ”₯λŸ¬λ‹μ—μ„œ μ΄λ―Έμ§€λ‚˜ μŒμ„± λ°μ΄ν„°μ˜ νŠΉμ§•μ  νŒ¨ν„΄(μ„ , 질감, ν˜•νƒœ λ“±)을 슀슀둜 ν•™μŠ΅ν•˜κ³  μΆ”μΆœν•˜κΈ° μœ„ν•΄, μˆ˜λ§Žμ€ 컀널을 데이터 μœ„λ‘œ μŠ¬λΌμ΄λ”©μ‹œν‚€λ©° Convolution 연산을 반볡 μˆ˜ν–‰ν•˜μ—¬ λ°μ΄ν„°μ˜ 곡간적, ꡬ쑰적 정보λ₯Ό μ••μΆ•ν•˜κ³  μΈμ‹ν•œλ‹€.

Mark as Done
Β