본문 바로가기

AI 수학54

경사하강법 제약조건이 없는 일반적인 최적화 문제는 다음과 같다. \[ 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.
특이값 분해(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.
특이값 분해(SVD)의 증명 어떤 \( m \times n \) 실수 행렬(real matrix) \( A \)와 그 전치 행렬 \( A^T \)의 행렬곱 \( AA^T \)와 \( A^T A \)는 대칭행렬이며 준정정 행렬(positive semi-definite matrix)이다. 먼저 대칭행렬인지 확인해 보자. 행렬곱을 전치한 다음에 원래 행렬과 같은 지 확인하면 된다. \[ (AA^T )^T=AA^T, \ \ \ (A^T A)^T=A^T A \] 그렇다면 \( AA^T \)이 준정정 행렬인지 확인해 보자. 어떤 벡터 \( \mathbf{x} \)에 대해서 다음 부등식을 만족하는지 확인하면 된다. \[ \begin{align} \mathbf{x} ^T (AA^T ) \mathbf{x} &= (A^T \mathbf{x} )^T .. 2020. 7. 23.
특이값 분해(singular value decomposition) 행렬을 다른 여러 개의 행렬의 곱으로 쪼개는 것을 분해(decomposition)라고 한다. 행렬의 분해로는 고유값 분해(eigen decomposition), 촐레스키 분해(Cholesky decomposition), LU 분해(lower-upper decomposition), 특이값 분해(singular value decomposition) 등 여러가지가 있지만 그 중에서도 가장 중요한 것이 SVD라고 불리는 특이값 분해가 아닐까 싶다. 특이값 분해는 이미지 압축, 모델의 차원 축소, 근사해 계산, 웹서치, 제어분야에서 액추에이터와 센서의 최적 위치를 선정하는 문제, 제어력 할당 문제 등 매우 폭넓게 응용되고 있기 때문이다. 고유값이 행과 열의 갯수가 같은 정방 행렬(square matrix)에서만 .. 2020. 7. 23.
정정(positive-definite) 행렬의 고유값 실수 대칭행렬(real symmetric matrix)의 고유값(eigenvalue)과 고유벡터(eigenvector)는 모두 실수값이다. 또한 서로 다른 고유값에 해당하는 고유벡터는 서로 직각이다. 증명하기는 다소 어렵지만 실수 대칭행렬의 경우에는 서로 다른 고유값 뿐만 아니라 같은 고유값에 대응하는 고유벡터가 여러 개일 경우에도 그 고유벡터들은 서로 직각이다. 정정 행렬도 실수 대칭행렬이므로 고유값과 고유벡터는 실수값을 가지며, 고유벡터들은 서로 직각이다. 이에 덧붙여서 정정 행렬의 고유값은 모두 0보다 크다. 증명해 보자. 정정 행렬 \( A \)의 고유값을 \( \lambda \), 그에 대응하는 고유벡터를 \( \mathbf{v} \)라고 하면, \[ A \mathbf{v} = \lambda \.. 2020. 7. 21.
정정(positive-definite) 행렬이란 다음과 같은 행렬 부등식을 가끔 볼 수 있다. \[ A>0 \] 행렬 \( A \)가 0 보다 크다는 이야기인 것 같은데 ‘크다’ 또는 ‘작다’는 실수값에 대해서나 하는 이야기이지 어떻게 행렬에 대해서 말할 수 있을까. 혹시 행렬 \( A \)의 모든 성분이 0보다 크다는 것을 의미하는 것일까? 아니다. 위 식은 행렬 \( A \)가 정정 행렬(positive-definite matrix)이라는 것을 나타내는 기호이다. 부등호에 등호를 함께 쓴 다음 식은 행렬 \( A \)가 준정정 행렬(positive semi-definite matrix)이라는 것을 나타내는 기호이다. \[ A \ge 0 \] 그렇다면 정정 행렬이란 무엇인가. 성분이 모두 실수이고 대칭인 \( n \times n \) 정방(squar.. 2020. 7. 20.
실수 대칭행렬의 고유값과 고유벡터 행렬의 성분이 모두 실수(real number)이고 대칭인 행렬을 실수 대칭행렬이라고 한다. 일반적인 행렬에서 고유값(eigenvalue)과 고유벡터(eigenvector)는 복소수 값을 가질 수 있다. 하지만 실수 대칭행렬의 고유값과 고유벡터는 모두 실수값이다. 또한 서로 다른 고유값에 해당하는 고유벡터는 서로 직각이다. 이를 증명해 보자. 먼저 \( n \times n \) 정방 행렬 \( A \)의 고유값과 고유벡터는 다음과 같이 정의된다. \[ A \mathbf{v}=\lambda \mathbf{v} \tag{1} \] 여기서 \( \lambda \)는 고유값, \( \mathbf{v} 는\) 그에 해당하는 고유벡터다. 켤레 복소수를 사용하면 위 식은 다음과 같이 쓸 수 있다. \[ \bar{A}.. 2020. 7. 18.
고유값과 고유벡터의 정의 행과 열의 갯수가 같은 행렬인 정방 행렬(square matrix)은 선형변환을 나타내는데 사용된다. 좌표변환은 벡터의 크기는 일정하게 유지하며 방향만 바꾸는 변환인데 비해, 선형변환은 벡터의 크기와 방향을 모두 바꾸는 일반적인 변환이다. 좌표변환 행렬로서 방향코사인행렬(DCM)이 있다. ( https://blog.naver.com/pasus/221858887468 ) 정방 행렬 \( A \)로 다음 식과 같이 벡터 \( \mathbf{v} \)를 다른 벡터 \( \mathbf{w} \)로 변환시킬 수 있다. \[ \mathbf{w}=A \mathbf{v} \] 만약 \( A \)가 다음과 같이 주어진다면, \[ A = \begin{bmatrix} 2 & 0 \\ 1 & 3 \end{bmatrix} \].. 2020. 7. 17.
행렬의 덧셈과 곱셈 사이즈가 같은 두 개의 행렬 A와 B의 덧셈은 다음과 같이 각 행렬의 구성 성분 간의 덧셈으로 정의한다. 즉 \( A = [a_{ij}] \)이고 \( B=[b_{ij}] \)일 때, 두 행렬의 덧셈은 \( A+B=[a_{ij}+b_{ij}] \)이다. 예를 들면, \[ A = \begin{bmatrix} 2 & 3 & 1 \\ 5 & -2 & 7 \end{bmatrix}, \ \ \ B = \begin{bmatrix} 1 & -1 & 0 \\ 2 & 4 & 3 \end{bmatrix} \] 일 때, 두 행렬의 덧셈은 다음과 같다. \[ \begin{align} C = A+B &= \begin{bmatrix} 2+1 & 3-1 & 1+0 \\ 5+2 & -2+4 & 7+3 \end{bmatrix} \\ .. 2020. 7. 17.