Deep Learning (1)

2023. 8. 5. 03:13·AI/DeepLearning
728x90
반응형

Machine Learning

Linear Regression (선형 회귀)

한 개의 독립변수(independent variable) \(x\)와 한 개의 종속변수(dependent variable) \(y\)의 선형 관계를 모델링하는 방법

→ \(x\)의 값이 바뀌면 \(y\)의 값이 바뀐다.

e.g.) 키\(x\)에 따라서 몸무게\(y\)가 변화함

 

▶ 독립변수 (Independent variable) : 연구자가 의도적으로 변화시키는 변수

▶ 종속변수 (Dependent variable) : 독립변수에 영향을 받아서 변화하는 변수

▶ 선형 (Linear) : 직선 

  • 가산성(Additivity) : \(f(x+y) = f(x) +f(y)\)
  • 동차성(Homogeneity) : \(f(cx) = cf(x)\)

→ 이 두 식을 만족하는 것을 선형성이라고 함

* Linear Regression은 동차성(Homogeneity)를 만족하지 못함 

 

가설 (Hypothesis)
\[y = wx + b\]

\(w\) : 가중치(weight) 

\(b\) : 편향(bias)

→ parameter (매개변수) 라고 함

 

※ 학습(Learning) : 독립변수 \(x\)와 종속변수 \(y\)의 관계를 가장 잘 표현하는 직선을 찾는 것

→ 가설함수의 가장 적절한 weight, bias를 찾는 과정

독립변수 \(x\)와 종속변수 \(y\)의 관계를 가장 잘 표현하는 직선을 찾는 과정


Multiple Linear Regression (다중 선형 회귀)

한 개 이상의 독립변수 \(x\)와 종속변수 \(y\)의 선형관계를 모델링(모델을 학습시키는)하는 방법

→ 2개 이상의 특성을 가짐 : 초평면을 찾음

* 초평면 : 평면을 뛰어넘은 평면, 3차원 공간 속의 평면을 일반화하여 얻는 개

e.g.) 키\(x\)와 나이\(x\)에 의해 몸무게\(y\)가 변화함

가설 (Hypothesis)
\[y = w_1x_1 + w_2x_2 + ... + w_nx_n + b\]


Logistic Regression


Hypothesis (가설)

독립변수 \(x\)와 종속변수 \(y\) 의 관계를 유추하기 위해서 수학적으로 만든 식

 

<Hypothesis 로 알 수 있는 것>

  • 머신러닝 알고리즘
  • 필요한 변수의 수 / 특성의 수 

e.g )

\(H_1(x)= wx + b\) 

\(H_2(x)= w_1x_1 + w_2x_2 + ... + w_nx_n + b\)

▷ \(H_1(x)\) : Linear Regression의 Hypothesis이며 직선 모양의 함수

▷ \(H_2(x)\) : Multiple Linear Regression의 Hypothesis이며 초평면 모양의 함수

입력 데이터 ↑ →  다중 선형 회귀가 필요한 변수의 수가 더 많음을 알 수 있음

 

선행예시)

\(H_1(x)= wx + b\) 

$(x) = \frac{1}{1 + e^-x}$ → Logistic Regression

 

알고리즘에 따라 모델이 달라짐

▷가설의 한 단계 : 어떤 알고리즘이 적합할 것인지 모델을 만들어 두는 것 


Loss function (손실 함수)

= Objective function (목적 함수) , Cost function (비용 함수)

오차를 계산하여 그 함수(value of function)을 최대화(maximize) 혹은 최소화(minimized)하는 것

→ 어떤 알고리즘을 사용하느냐에 따라 목적이 달라짐

출처 : Khan Academy

▷ 이 중 어떤 함수가 가장 좋은 모델인지 수학적으로 측정할 수 있는 함수 

 

*최대화 : 최대우도추정(maximum likelihood)방식 → 해당 함수값이 낮을수록 좋지 않은 것

벡터(vector)을 이용한 가설 함수(Hypothesis function) 정의
$$\vec{x}_{i}=\left[\begin{array}{c} x_{1} \\ x_{2} \\ \vdots \\ x_{n} \end{array}\right], W=\left[\begin{array}{c} w_{1} \\ w_{2} \\ \vdots \\ w_{n} \end{array}\right], b$$

 $$H(x) = X^T×W+b = W^T×X+b= w_1x_1 + w_2x_2 + ... + w_nx_n +b$$

  1. MSE(Mean Squared Error)
    $$J(\hat{\theta}) = MSE(\hat{\theta}) = \frac{1}{N}\sum_{i=1}^{N}\left(h_{\hat\theta}\left(x^{(i)}\right) - {y}_{i}\right)^{2}$$
    $\frac{1}{N}$ : 개수를 나눠줌 
    $\left(h_{\hat\theta}\left(x^{(i)}\right) - {y}_{i}\right)^{2}$ : (squared error) 떨어진 거리의 제곱
    ▶error↑ → 비중↑
    +) Mean Absolute Error : MSE에 절댓값을 씌운 것 → 기울기가 0인 지점에서 미분 X
  2. RMSE(ROOT Mean Squared Error) : MSE에 루트를 씌운 것
    * 루트 연산량 때문에 주로 사용하지 않음
    $$J(\hat{\theta}) = \operatorname{RMSE}(\hat{\theta})=\sqrt{\operatorname{MSE}(\hat{\theta})} = \sqrt{\sum_{i=1}^{n}\frac{\left(h_{\hat\theta}\left(x^{(i)}\right)-y_{i}\right)^{2}}{N}}$$
    ▶error : 비중 같음

 

 

minimized 관점 → Loss Function : model의 오차(Error)를 판단, 가설 (Hypothesis)을 판단하는 함수
$$w, b \rightarrow \text { minimize } \operatorname{Loss}(w, b)$$

 

 


Optimizer (최적화 알고리즘)

손실함수를 최적화 하는 $w$, $b$를 찾는 과정, 손실함수를 최적화 하는 과정

→ 학습(learning) 혹은 훈련(training)

*반복 학습 시킴 => 최적화

 

  1. Gradient Descent (GD)
  2. Stochastic Gradient Descent (SGD)
  3. Adaptive Gradient Descent
  4. Root Mean Square Propagation Optimizer
  5. Adaptive Momentum Optimizer

Gradient Descent (경사 하강법)

$$J(\hat{\theta}) = MSE(\hat{\theta}) = \frac{1}{N}\sum_{i=1}^{N}\left(h_{\hat\theta}\left(x^{(i)}\right) - {y}_{i}\right)^{2}$$

▷ 2차 함수 형태 / Convexity(볼록함수)

비용이 가장 낮은 부분 : 맨 아래 부분 = 기울기가 0인 지점 = Minimum

 

Cost function

$$cost(w,b) = \frac{1}{n}\sum_{i=1}^{N}\left(h_{\hat\theta}\left(x^{(i)}\right) - {y}_{i}\right)^{2}$$

Gradient Descent

$$w_t  : w_t - \alpha \frac{\partial}{\partial w_t} \operatorname {cost}(w_t) $$

$w_t$ : 현재 위치

$-$ : 반대 반향 - 기울기와 반대 방향으로 다음 위치가 설정되어야하기 때문 

$\alpha$ : 더 큰 값으로 갈 수도 있는 모순을 방지함 → 0 ≤ $\alpha$ ≤ 1 → 0.05을 주로 사용

▶ 미분값이 음수일 때 : 기울기가 줄어드는 방향으로 옮김 → $+$방향으로 이동

▶ 미분값이 양수일 때 : 기울기가 줄어드는 방향으로 옮김 → $-$방향으로 이동

 

 

등고선 : 같은 높이를 연결한 선
→ 독립변수($x$)를 평면위에 표시하여 같은 종속변수를 가지는 선을 연결함

*모멘트(관성) : 극솟값(local minimum)이 아닌 최솟값(absolute minimum)을 찾기 위해 가속을 받아 극솟값을 넘어감


학습률 (Learning rate) - $\alpha or \eta$

경사 하강법 같은 기법에서 기울기를 얼마만큼 반영할지 판단하는 변수 

▷hyperparamete : 사용자가 직접 정해줘야 하는 변수 → 0 ≤ $\alpha$ ≤ 1 → 0.05을 주로 사용

\

  1. 학습률 (Learning rate)이 적당한 경우 : 적당한 속도로 기울기가 0인 지점으로 $w$값이 수렴
  2. 학습률 (Learning rate)이 작은 경우 : 0인 지점으로 $w$값이 수렴하지만, 연산을 많이 진행해야함
  3. 학습률 (Learning rate)이 큰 경우 : 기울기가 0인 지점을 찾지 못하고 발산(Divergence)함

▶ $\alpha$를 어떻게 설정하느냐에 따라 수렴(convergence)시간이 달라짐 / 수렴하는 위치가 달라짐


영어 뜻
independent variable  독립변수
dependent variable 종속변수
linear 선형
additivity 가산성
homogeneity 동차성
hypothesis 가설
weight 가중치
bias 편향
learning 학습
algorithm 알고리즘
linear regression 선형 회귀
multiple linear regression 다중 선형 회귀
loss function = objective function = cost function 손실함수, 목적함수, 비용함수
value of function 함수값
maximize 최대화
minimize 최소화
maximum likelihood estimation 최대우도추정
error minimization 오차 최소화
Mean Squared Error 평균제곱오차
Optimizer 최적화 알고리즘 
convexity 볼록함수
hyperparameter 하이퍼 파라미터 : 사용자 지정 변수
convergence 수렴
divergence 발산
learning rate 학습률
gradient descent 경사하강법

 

reference

- Khan Academy

728x90
반응형

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

Deep Learning (0)  (0) 2023.08.04
'AI/DeepLearning' 카테고리의 다른 글
  • Deep Learning (0)
min_zu
min_zu
  • min_zu
    민주제도
    min_zu
  • 전체
    오늘
    어제
    • ._. (154)
      • AI (2)
        • DeepLearning (2)
        • CS231n (0)
      • Web (2)
        • ReactJS (0)
      • CS (83)
        • OS (7)
        • Data Structure (23)
        • Computer Architecture (8)
        • Computer Network (20)
        • Algorithm (25)
      • Linux (3)
        • KaliLinux (0)
        • Docker (1)
      • Hacking (63)
        • Write Up (17)
        • Pwnable (12)
        • Reversing (2)
        • Cryptography (13)
        • Web Hacking (4)
        • Window (6)
        • Network (7)
        • Web3 (1)
  • 블로그 메뉴

    • 홈
    • 태그
    • 방명록
  • 링크

  • 공지사항

  • 인기 글

  • 태그

    ComputerArchitecture
    Tree
    UTM
    WinAFL
    Web
    Search
    Graph
    Linux
    Sort
    OS
    AI
    Mac
    DataStructure
    DeepLearning
  • 최근 댓글

  • 최근 글

  • hELLO· Designed By정상우.v4.10.0
min_zu
Deep Learning (1)
상단으로

티스토리툴바