본문 바로가기

AI수학56

라그랑지 곱수법 라그랑지 곱수(Lagrange multiplier)법은 등식 제약조건이 있는 최적화 문제를 풀기 위해 고안된 방법이다. 등식 제약조건이 있는 최적화 문제는 다음과 같다. \[ \begin{align} & p^* = \min_{\mathbf{x}} f( \mathbf{x} ) \\ \\ subject \ to \ \ \ & h_j ( \mathbf{x} ) = 0, \ \ \ j=1,...,p \end{align} \] 여기서 \( \mathbf{x} \in R^n \) 은 최적화 변수, \( f( \mathbf{x}):R^n \to R \) 은 목적함수, \( h_j (\mathbf{x}):R^n \to R \) 은 등식 제약함수이다. 라그랑지 곱수법에 의하면 등식 제약조건이 있는 최적화 문제를 제약조건.. 2020. 10. 1.
경사하강법 제약조건이 없는 일반적인 최적화 문제는 다음과 같다. \[ p^* = \min_{\mathbf{x}} f(\mathbf{x}) \] 또는, \[ \mathbf{x}^* = \arg \min_{\mathbf{x}} f(\mathbf{x}) \] 여기서 \( \mathbf{x} \in R^n \) 은 최적화 변수이고, \( f(\mathbf{x}) \)은 목적함수(objective function)이다. 대부분 신경망 학습 알고리즘은 손실함수(loss function)를 정하거나 최적화를 위한 목적함수를 만드는 것으로 시작한다. 경사하강법(gradient descent) 또는 경사상승법(gradient ascent)은 목적함수를 최소화(minimization)하거나 최대화(maximization)하기 위해 .. 2020. 9. 30.
최적화 문제의 분류 제약조건이 있는 비선형 다변수 함수 \( f(\mathbf{x}) \)의 최소값 (또는 최대값)을 구하는 문제를 정적 최적화(static optimization) 문제 또는 비선형 프로그래밍 문제(NLP, nonlinear programming problem)라고 한다. 수식으로 표현하면 다음과 같다. \[ \begin{align} & p^* = \min_{\mathbf{x}} f(\mathbf{x}) \\ \\ subject \ to \ \ \ & g_i (\mathbf{x}) \le 0, \ \ \ i=1,...,m \\ \\ & h_j (\mathbf{x}) = 0, \ \ \ j=1,...,p \end{align} \] 여기서 \( \mathbf{x} \in R^n \)을 최적화 변수(optimi.. 2020. 9. 30.
컨볼루션과 상관도 LTI 시스템의 임펄스 반응 \( h[n] \)과 입력 신호 \( x[n] \)의 컨볼루션(convolution)은 다음 식으로 정의한다. \[ y[n] = \sum_{k=-\infty}^{\infty} x[k] h[n-k] \] 한편, LSI 시스템의 임펄스 반응 \( h[m,n] \)과 입력 신호 \( x[m,n] \)의 2D 컨볼루션은 다음 식으로 정의한다. \[ y[m,n] = \sum_{k=-\infty}^{\infty} \sum_{l=-\infty}^{\infty} x[k,l] h[m-k, n-l] \] 컨볼루션은 앞에서 설명했듯이 LTI 또는 LSI 시스템에 입력신호가 가해졌을 때 출력신호를 계산하는 식이며, 컨볼루션은 ‘뒤집기와 이동’ 방법을 사용하여 계산할 수 있다. 상관도(correla.. 2020. 9. 22.
이미지 필터 설계해 보기 필터를 설계한다는 것은 곧 LSI 시스템의 임펄스 반응 \( h[m,n] \)을 결정하는 것과 같다. 그러면 입력 이미지가 \( x[m,n] \)일 때, 필터링된 출력 이미지 \( y[m,n] \)은 시스템의 임펄스 반응과 입력 이미지의 2D 컨볼루션으로 주어진다. \[ \begin{align} y[m,n] &= h[m,n]*x[m,n] \\ \\ &= \sum_{k =-\infty}^{\infty} \sum_{l =-\infty}^{\infty} x[k,l] h[m-k,n-l] \end{align} \] 간단히 3개의 이미지 필터를 설계해 보자. 먼저 이미지를 흐릿하게 만드는 스무딩(smoothing) 필터다. 스무딩 필터의 임펄스 반응은 다음과 같이 정할 수 있다. 임펄스 반응을 보면 스무딩 필터는 .. 2020. 7. 29.
2D 컨볼루션 계산하기 1D 컨볼루션과 똑같은 방법으로 '뒤집기와 이동' 방법을 사용하여 2D 컨볼루션을 계산해보자. 2020/07/25 - [CNN의 수학] - 컨볼루션 쉽게 계산하기 공식을 살펴보면, \[ y[m,n] = \sum_{k=-\infty}^\infty \sum_{l=-\infty}^\infty x[k,l] h[m-k, n-l] \] 우선 \( x[m,n] \)과 \( h[m,n] \)을 \( x[k,l] \)과 \( h[k,l] \)로 바꿔야 한다는 것을 알 수 있다. 그리고 \( h[k,l] \)을 수평축과 수직축을 기준으로 두 번 뒤집어서 \( h[-k,-l] \)로 만든 후, \( m,n \)만큼 수평과 수직으로 이동시켜서 \( h[m-k,n-l] \)을 만들고, \( k,l \)에 대해서 \( x[k,l.. 2020. 7. 29.
2D 컨볼루션 독립변수가 1개인 함수로 표현되는 신호 \( x[n] \)을 1차원 신호(one-dimensional signal)라고 한다. 여기서 \( n \)은 인덱스로서 정수 값을 갖는다. 이 인덱스는 보통 시간스텝(time step)을 나타낸다. 1차원 신호와 관련된 컨볼루션을 1D 컨볼루션이라고 하거나 그냥 컨볼루션이라고 한다. 독립변수가 2개인 함수로 표현되는 신호 \( x[m,n] \)을 2차원 신호라고 한다. 2차원 신호에서 인덱스는 주로 공간상의 위치를 나타내는 배열 또는 순서를 뜻한다. 2차원 신호는 행렬로 나타내며 \( m \)은 행, \( n \)은 열을 나타낸다. 대표적인 2차원 신호로는 이미지(image) 신호가 있다. 2차원 신호와 관련된 컨볼루션을 2D 컨볼루션이라고 한다. 지금부터 LTI.. 2020. 7. 28.
이동평균(moving average) 필터 설계해 보기 필터를 설계한다는 것은 곧 LTI 시스템의 임펄스 반응 \( h[n] \)을 결정하는 것과 같다. 주식 차트를 보면 5일 이동평균선, 10일 이동평균선이라는 것이 있다. 5일 이동 평균은 현재부터 과거 5일전까지의 주가 평균을 계산한 것이다. 10일 이동 평균선도 마찬가지로 현재부터 과거 10일전까지의 주가를 평균 낸 것이다. 그러면 주식 차트의 이동평균선과 비슷하게, 입력 신호에 대한 5 포인트(point) 이동평균 필터와 10 포인트 이동평균 필터를 설계해 보자. 입력 신호를 \( x[n] \)으로 하고, 이동 평균 출력 신호를 \( y[n] \)으로 하면 5 포인트 이동평균 필터의 임펄스 반응은 다음과 같이 설계할 수 있다. \[ \begin{align} h[n] &= \frac{1}{5} ( \d.. 2020. 7. 26.
컨볼루션 쉽게 계산하기 일반적으로 많이 쓰이는 ‘뒤집기와 이동’ 방법을 사용하여 컨볼루션을 계산해 보자. 공식을 잘 살펴보면, \[ 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.
특이값 분해(SVD)의 응용: 이미지 압축 특이값 분해는 다음과 같이 어떤 \( m \times n \) 실수 행렬(real matrix) \( A \)를 3개의 행렬의 곱으로 분해한 것이다. \[ A = U \Sigma V^T \tag{1} \] 이 식을 풀어 쓰면 다음과 같다. \[ A = \sigma _1 \mathbf{u}_1 \mathbf{v}_1^T + \sigma _2 \mathbf{u}_2 \mathbf{v}_2^T + \cdots + \sigma _r \mathbf{u}_r \mathbf{v}_r^T \tag{2} \] 여기서 \( \sigma _i \)는 특이값으로서 그 숫자는 행렬 \( A \)의 랭크(rank)와 같다. 특이값은 큰 값에서 작은 값의 순서로 정렬시킨 것이다. \[ \sigma _1 \ge \sigma _2 \.. 2020. 7. 25.