AI 딥러닝/DLA16 [CNN] 컨볼루션 쉽게 계산하기 일반적으로 많이 쓰이는 ‘뒤집기와 이동’ 방법을 사용하여 컨볼루션을 계산해 보자. 공식을 잘 살펴보면, \[ y[n] = \sum_{k=-\infty}^\infty h[n-k] x[k] \] 우선 \( x[n] \)과 \( h[n] \)을 \(x[k] \)와 \( h[k] \)로 바꿔야 한다는 것을 알 수 있다. 그리고, \( h[k] \)를 뒤집어서 \( h[-k] \)로 만든 후, \( n \)만큼 이동시켜서 \( h[n-k] \)를 만든 후, \( k \)에 대해서 \( x[k] \)와 \( h[n-k] \)를 곱한 다음, \( k \)에 대해서 \( h[n-k]x[k] \)를 모두 더하면 \( y[n] \)을 계산할 수 있다는 것을 알 수 있다. 그리고, 모든 \( n \)에 대해서 위 과정을.. 2020. 7. 25. [CNN] 컨볼루션 공식대로 계산하기 신호처리 분야에서는 LTI 시스템을 필터(filter)라고 한다. LTI 시스템의 임펄스 반응은 시스템 그 자체라고 했으므로 필터를 설계한다는 것은 곧 LTI 시스템의 임펄스 반응 \( h[n] \)을 결정하는 것과 같다. LTI 시스템의 출력 \( y[n] \)은 시스템의 임펄스 반응 \( h[n] \)과 입력 \( x[n] \)의 컨볼루션으로 주어지므로, \[ \begin{align} y[n] &= h[n]*x[n] \\ \\ &=\sum_{k=-\infty}^\infty h[n-k] x[k] \end{align} \] 필터 또는 임펄스 반응은 어떤 입력에 대해서 원하는 출력이 나오도록 설계되어야 한다. 임펄스 반응 \( h[n] \)의 길이가 무한대이면 무한임펄스반응 (IIR, infinite.. 2020. 7. 25. [CNN] LTI 시스템과 컨볼루션 이제 선형 시불변(LTI) 시스템을 알았으니 LTI 시스템에 임의의 입력 \( x[n] \) 을 가했을 때 출력 \( y[n] \) 이 어떻게 계산되는지 알아보자. 그 전에 먼저 특별한 입력 신호인 임펄스(impulse) 신호에 대해 알아보자. 임펄스 신호는 \( n=0 \) 일 때만 크기가 1 이고, \( n \ne 0 \) 에서는 크기가 모두 0 인 신호다. 기호로 \( \delta [n] \) 라 쓴다. 크기가 1 이므로 단위 임펄스라고 하기도 한다. 임펄스를 수식으로 표현하면 다음과 같다. \[ \delta [n]= \begin{cases} 1, & \mbox{if }n=0 \\ 0, & \mbox{if }n \ne 0 \end{cases} \] 그림으로 표현하면 다음과 같다. 임펄스 신호.. 2020. 7. 23. [CNN] LTI 시스템 – 시불변 이번에는 시불변(time-invariant) 시스템이 무엇인지 알아보자. 시불변 시스템은 시스템의 입력 싯점에 따라 시스템의 출력이 바뀌지 않는 시스템을 말한다. 예를 들어서 ‘어제’ A라는 패턴을 갖는 신호를 시스템에 입력으로 주었더니 B라는 출력 신호가 나왔다고 했을 때, ‘오늘’ 동일한 A라는 입력 신호를 시스템에 가했더니 '어제'와 동일한 B라는 출력 신호가 나왔다면 그 시스템은 시불변 시스템이다. 만약 ‘어제’와 동일한 입력 A에 대해서 ‘오늘’은 C라는 출력이 나왔다면 시변(time-varying) 시스템이라고 한다. 시불변 시스템을 수식으로 표현하면 다음과 같다. \( y[n] = \mathbb{F}(x[n]) \) 일 때,\( y[n-n_0] = \mathbb{F}(x[n-n_0]) .. 2020. 7. 21. [CNN] LTI 시스템 - 선형 LTI는 Linear Time-Invariant의 약자다. 선형이고 시불변이라는 뜻이다. 따라서 "LTI 시스템"은 선형 시불변 시스템의 줄인 말이다. 컨볼루션을 얘기하다가 왜 갑자기 LTI 시스템이냐 라고 생각할 지도 모르겠다. LTI 시스템에서 컨볼루션 정의가 나오기 때문이다. LTI 시스템 뿐 만 아니라 확률론 등에서도 나오지만, CNN의 컨볼루션은 LTI 시스템에 나오는 컨볼루션이다. 그럼 선형 시스템이 무엇인지, 시불변 시스템이 무엇인지 알아보자. 먼저, 시스템이란 어떤 입력에 대해서 반응하여 동작하는 장치나 구성품의 집합을 뜻한다. 시스템의 반응을 출력 또는 응답이라고 한다. 시스템은 꼭 물리적인 장치나 구성품 또는 하드웨어일 필요는 없고, 알고리즘 또는 소프트웨어일 수도 있다. 아니면 .. 2020. 7. 21. [CNN] 컨볼루션(convolution)이란 딥러닝의 성공은 컨볼루션 신경망(CNN, convolutional neural network)의 성공 덕분이라고 할 정도로 CNN은 딥러닝에서 중요한 위치를 차지하고 있다. CNN이 널리 알려지면서 컨볼루션은 딥러닝을 접해본 사람에게는 일반적 용어가 된 것 같다. 사실 컨볼루션이라는 용어는 딥러닝에 문외한이더라도 공업수학, 자동제어, 신호처리 등을 공부한 사람에게는 매우 익숙한 용어다. 이런 과목을 통해 컨볼루션을 접해본 사람에게는 CNN에서 이야기하는 컨볼루션 연산을 보면, “이건 컨볼루션이 아니라 상관도(correlation)인데...”라고 할 지도 모르겠다. CNN을 처음 공부하면 으레 나오는 설명이 있다. CNN은 완전연결(FC, fully connected) 신경망과 비교하여 차별성이.. 2020. 7. 20. 이전 1 2 다음