반응형

경사 하강법(Gradient descent)이란?

  • 1차 미분 계수를 이용하여 함수의 최소값을 찾아가는 반복적인 방법이다.
  • 함수의 기울기를 구하고 경사의 반대 방향으로 계속 이동시켜 극값에 이를때 까지 반복하여 제시된
    함수의 기울기로 최소값을 찾아내는 머신러닝의 알고리즘이다. 
  • 인공지능 모델이 데이터를 잘 표현 하도록 기울기를 사용해 모델을 조금씩 조정하여 최적화 하는 방법이다.

 

경사 하강법을 사용하는 이유

  • 미분 계수를 구하는 과정을 컴퓨터가 구현하는 상황에서는 경사하강법으로 비교적으로 쉽게 구현할 수 있다.
  • 데이터 양이 큰 경우에는 경사하강법과 같은 반복적인 방법을 통하여 값을 구하면 더 효율적으로 구할 수 있다.

 

경사 하강법 수식 표현

  • 기울기가 양수면 \(x\) 값이 커질 수록 함수 값이 커진다는 것을 의미한다.
  • 기울기가 음수면 \(x\) 값이 커질수록 함수의 값이 작아진다는 것을 의미한다.
  • 기울기 값이 큰 것은 기울기가 가파르다는것을 의미한다.
    하지만, \(x\)의 위치가 최소/최대값에 해당되는 \(x\) 좌표에서 멀리 떨어져 있다는 것을 의미한다.

y = x² 그래프

반응형

'AI > AI math' 카테고리의 다른 글

Lecture Notes - Gauss Elimination  (0) 2022.12.15
Lecture notes - Linear system (coding)  (0) 2022.12.14
Lecture notes - Linear system  (0) 2022.12.14
반응형

가우스 소거법

선형시스템의 해를 구하는 방법


가장 단순한 형태의 선형시스템은 아래와 같다. 이 선형시스템의 해는 무엇인가?

$$ ax = b $$ 

해가 하나인 경우 

$$ 3x=6 $$

 

해가 없는 경우 

$$ 0x =y $$

 

해가 여러개인 경우

$$ 0x = 0 $$

 

  • a = 0 이면 특이하다.
    • ax = b의 해가 곧장 나오지 않는다.
    • a의 역수 (inverse)가 존재하지 않는 경우, a가 특이(singular)하다고 한다.
  • 해가 있으면 선형시스템이 "consistent"
  • 해가 없으면 선형시스템이 "inconsistent"

 

 

$$ Ax = b $$

 

가우스 소거법 (Gauss elimination)

  • 가우스 소거법은 임의의 m x n 선형시스템의 해를 구하는 대표적인 방법이다.
  • 아래 두단계로 수행된다.
  1. Forward elimination (전방소거법)
    주어진 선형시스템을 아래로 갈수록 더 단순한 형태의 선형방정식을 가지도록 변형한다.
  2. Back-substitution (후방대입법)
    아래에서부터 위로 미지수를 실제값으로 대체한다.

 

가우스 소거법 실제로 해보기

 

 $$ \begin{bmatrix}
        1 & 2 & 1\\
        1 & 2 & 3\\
        2 & 3 & -1\\
       \end{bmatrix}
       \begin{bmatrix}x_1\\x_2\\x_3\end{bmatrix} =
       \begin{bmatrix}1 \\3 \\-3 \end{bmatrix} $$

 

  1. 1행 1열을 기준으로 잡기
  2. r2 ← r2 - r1
  3. r3 ← r3 - 2r1
  4. 2행 2열을 기준으로 잡기
  5. r2 ↔ r3
  6. r2 ← −r2
  7. 3행 3열을 기준(pivot)으로 잡기
  8. r3 ← 1/2 r3

 

가우스 소거법에서 전방소거법은
주어진 선형 시스템의 rank를 알려주고, 선형시스템이 해가 있는지 아니면 없는지 알려준다.
반응형

'AI > AI math' 카테고리의 다른 글

경사 하강법 (Gradient decsent)  (0) 2022.12.27
Lecture notes - Linear system (coding)  (0) 2022.12.14
Lecture notes - Linear system  (0) 2022.12.14
반응형

1. 다음 3 x 3 행렬 A를 정의하는 numpy 코드를 작성하세요.

 

$$ A = \begin{pmatrix} 1&2&1 \\ 1&2&3 \\ 2&3&-1 \end{pmatrix} $$

import numpy as np

A = np.array(([1, 2, 1], [1, 2, 3], [2, 3, -1]))

print(A)
print(np.shape(A))

 

2. 다음 3-Vector b를 정의하는 numpy 코드를 작성하세요.

 

$$ A = \begin{pmatrix} 1\\ 3\\ -3\end{pmatrix} $$

import numpy as np

b = np.array([1, 3, 3])

print(b)
print(np.shape(b))

 

3. 위 행렬 A를 구하는 역행렬 코드를 numpy linalg 서브모듈의 inv() 함수를 이용해 작성하세요.

A_inv = np.linalg.inv(A) # A의 역행렬 

print(A_inv)
print(np.shape(A_inv))

 

4. 선형시스템 Ax=b 의 해를 구하는 코드를 작성하세요.

 

$$ \begin{pmatrix}
1&2&1\\
1&2&3\\
2&3&-1\end{pmatrix}
\begin{pmatrix}
x_1\\
x_2\\
x_3\end{pmatrix} 
=
\begin{pmatrix}
1\\
3\\
-3\end{pmatrix} $$

x = A_inv @ b

print(x)
print(np.shape(x))

 

5. 4번의 식을 검증하는 코드를 작성하세요.

x = A_inv @ b

print(x)
print(np.shape(x))
반응형

'AI > AI math' 카테고리의 다른 글

경사 하강법 (Gradient decsent)  (0) 2022.12.27
Lecture Notes - Gauss Elimination  (0) 2022.12.15
Lecture notes - Linear system  (0) 2022.12.14
반응형

선형시스템 강의 요약

 

  • 가장 간단한 형태의 Linear System (선형시스템)

$$ 3x=6 $$

 

$$ 3x+y=2 \quad → E1 \ $$

$$ x-2y=3 \quad → E2 \ $$

 

 

 

$$ \begin{cases} 3x+y+z=4 \\ x-2y-z=1 \\ x+y+z=2 \end{cases} $$

  • 기본적으로 소거법 기준으로 접근한다.
  • Linear equation(선형 방정식)이라고 한다.
  • x,y,z  : Unknown (Variable)이라 칭함.

 

 

$$ \begin{cases} 3x+y=2 \\ x-2y=3 \\ 2x-4y=6 \end{cases} $$

  • 선형시스템의 Linear equation (선형 방정식)에 대해 다음을 수행한다.
  • conefficient (계수)를 모아 A의 row vector (행백터)로 표현.
  • constant (상수)를 모아 b에 표현.
  • 선형시스템의 Unknown을 모아 Column Vector $X$ 로 표현한다.

 

 

  • 아래와 같이 3개의 선형 방정식과 3개의 미지수로 구성된 연립 일차 방정식을
    3x3 Linear System이라고 한다.

$$ \begin{cases} 3x+y+z=4 \\ x-2y-z=1 \\ x+y+z=2 \end{cases} $$

 

 

  • Linear System 대수적 표현
    • 선형시스템을 Ax = b로 표현해 보자.

반응형

'AI > AI math' 카테고리의 다른 글

경사 하강법 (Gradient decsent)  (0) 2022.12.27
Lecture Notes - Gauss Elimination  (0) 2022.12.15
Lecture notes - Linear system (coding)  (0) 2022.12.14

+ Recent posts