SyntaxHighlighter.all(); 또르의 개발노트 :: 또르의 개발노트 ss
반응형

용어정리

  •  독립변수
    • 다른 변수에 영향을 받지 않고 독립적으로 변화하는 수, 설명 변수라고도 함
    • 입력 값이나 원인을 나타내는 변수 , y=f(x)에서 x에 해당하는 
  • 종속변수
    • 독립변수의 영향을 받아 값이 변화하는 수 , 분석의 대상이 되는 변수
    • 결과물이나 효과를 나타내는 변수, y= f(x)에서 y에 해당하는 것
  • 잔차
    • 계산에 의해 얻어진 이론 값과 실제 관측이나 측정에 의해 얻어진 값의 차이
    • 오차(Error) - 모집단, 잔차 - 표본집단

회귀 분석

  • 변수와 변수 사이의 관계를 알아보기 위한 통계적 분석 방법
  • 독립변수의 값에 의해 종속변수의 값을 예측하기 위함
  • 일반 선형회귀는 종속변수가 연속형 변수일 때 가능
  1. 선형 회귀 모형
    • 종속변수 y와 한 개 이상의 독립변수 X와의 선형 상관 관계를 모델링하는 회귀분석 기법
    • 한 개의 독립변수 : 단순 선형회귀, 둘 이상의 독립변수 : 다중 선형 회귀
  2. 단순 선형 회귀 모형(독립변수 1개)
    • $Y_i$ = $\beta_iX_i$+$\varepsilon_i$ = i=1,2,$\cdots $, n
    • $Y_i$ : 종속변수
    • $X_i$ : 독립변수
    • $\varepsilon_i$ : 에러(error)
    • $\beta_0$ : 선형회귀식의 절편
    • $\beta_1$ : 기울기, 회귀계수(coefficient)
  3. 회귀 모형의 종류
    1. 단순 선형회귀
      • 하나의 특성(독립변수)를 가지고 Target을 예측하기 위한 선형 함수를 찾는것
      • $\widehat{y}$ =ax + b
    2. 다중 선형회귀
      • 여러 개의 특성을 활용해서 Target을 계측하는 회귀 모델을 만듦
      • $\widehat{y}$ = a[0]x[0] + a[1]x[1] + ... a[n]x[n] + b
    3. 다항 회귀
      • 입력 Feature에 대해 1차 -> n차 식으로 변형
      • 데이터가 단순한 직선의 형태가 아닌 비선형 형태인 경우 선형 모델을 사용하여 비선형 데이터를 학습하기 위한 방법
      • $\widehat{y}$  = a[0]x + $a[1]x^2$ + b  # 1차식을 2차식으로 변형한 경우
  4. 회귀 모형의 가정
    • 선형성 : 독립변수의 변화에 따라 종속변수도 선형적으로 변화하는 선형모형이다
    • 독립성 : 잔차와 독립변수의 값이 관련되어 있지 않다
    • 정규성 : 잔차항이 정규분포를 이뤄야 한다
    • 등분산성 : 잔차항들의 분포는 동일한 분산을 갖는다
    • 비상관성 : 잔차들끼리 상관이 없어야 한다

 *Normal Q-Q plot

  • 정규성, 잔차가 정규분포를 잘 따르고 있는지를 확인하는 그래프
  • 잔차들이 그래프 대각선 상에 있어야 이상적인

*Scale-Location

  • 등분산성, y축이 표준화 잔차를 나타내며, 기울기 0인 직선이 이상적임

*이상값(Outliler)

  • 숫자와 함께 표시된 것

*Residuals vs Fitted는 선형성, 등분산성에 대해 알아 볼 수 있는 그래프

  • 선형성: y값의 기울기가 0인 직선이 이상적
  • 등분산성: 점의 위치가 전체 그래프에 고르게 분포하는 것이 이상적

*Residuals vs Leverage

  • 회귀 분석에는 잔차의 크기가 큰 데이터가 Outlier가 되는데 이 중에서도 주로 관심을 가지는 것은 Leverage와 Residual의 크기가 모두 큰 데이터임
  • Leverage : 종속변수 값이 예측 값에 미치는 영향을 나타낸 값
  • Cook's distance는 Leverage와 Residual를 동시에 보기 위한 기준으로 그림에서 빨간색 점선으로 표시임
  • Leverage가 커지거나 Residual의 크기가 커지면 Cook's distance 값이 커짐
  • 일반적으로 1값이 넘어가면 관측치를 영향점으로 판별

데이터의 정규성 검정

  • 데이터의 정규성 검정 종류
    1. Q-Q plot
      • 그래프를 그려서 정규성 가정이 만족되는지 시각적으로 확인하는 방법
      • 대각선 참조선을 따라 값들이 분포하게 되면 정규성을 만족한다고 할 수 있음
    2. Histogram
      • 구간별 돗수를 그래프로 표시하여 시각적으로 정규분포를 확인하는 방법
    3. Shapiro-Wilk test
      • 데이터의 분포가 정규분포를 따르는지 알아보는 검정
      • 귀무가설은 정규분포를 따른다로 p-value 0.05보다 크면 정규성을 가정하게 됨
    4. Komogorob-Smirnov test
      • K-S test, 두 모집단의 분포가 같은 지 검정하는 것
      • p-value가 0.05보다 크면 정규성을 가정하게 됨

 과적합

*과적합의 문제와 해결방법

  • 주어진 샘플들의 설명변수와 종속변수의 관계를 필요이상 너무 자세하고 복잡하게 분석
  • 샘플에 심취한 모델로 새로운 데이터가 주어졌을 때 제대로 예측해내기 어려울 수 있음
  • 해결 방법으로 Feature의 개수를 줄이거나, Regularization, Dropout을 수행하는 방법이 있음
  1. 정칙화(Regularization) 개념
    • 베타$\beta$값에 제약을 주어 모델에 변화를 주는 것
    • $_lamda$ 값은 정칙화 모형을 조정하는 hyper parameter(=사용자가 정하는 값)
    • $_lamda$ 값이 클수록 제약이 커져 적은 변수가 사용되고, 해석이 쉬워지지만 underfitting 됨
    • $_lamda$ 값이 작아질수록 제약이 많은 변수가 사용되고, 해석이 어려워지며 overfitting 됨
    • Ridge, Lasso, ElasticNet등이 있으며 과대적합 및 다중공선성 문제 해결용도로 사용할 수 있다
  2. norm : 선형대수학에서 벡터의 크기 또는 길이를 측정하는 방법
    • L1 norm(=Manhattan norm) - 벡터의 모든 성분의 절대값을 더함
    • L2 norm(=Euclidean norm) - 출발점에서 도착점까지의 거리를 직선거리로 측정함
  3. 라쏘(Lasso) 회귀 특징
    • L1 norm을 패널티를 가진 선형 회귀 방법, 회귀계수의 절대값이 클수록 패널티 부여
    • MSE가 최소가 되게 하는 $_beta$(회귀계수)를 찾는 동시에 $_beta$의 절대값들의 합이 최소가 되게 해야함
    • 변수 선택이 가능하며, 변수간 상관관계가 높으면 성능이 떨어짐
    • 회귀계수의 모든 원소가 0이 되거나 0에 가깝게 되게 해야 함 => 불필요 특성 제거
    • 어떤 특성은 모델을 만들 때 사용되지 않게됨
  4. 라쏘(Lasso) 회귀 장점
    • 제약 조건을 통해 일반화된 모형을 찾음
    • 가중치들이 0이 되게 함으로써 그에 해당하는 특성을 제외해 줌
    • 모델에서 가장 중요한 특성이 무엇인지 알게 되는 등 모델 해석력이 좋아짐
  5. Ridge 회귀 특성
    • L2 norm을 사용해 패널티는 주는 방식
    • Lasso는 회귀계수들이 0이 되지만, Ridgw의 회귀계수들은 0에 가까워질 뿐 0이되지 않는다.
    • 변수 선택 불가능, 변수 간 상관관계가 높은 상황에서 좋은 성능
    • 특성이 많은데 특성의 중요도가 전체적으로 비슷하다면 Ridge가 좀 더 괜찬은 모델을 찾아줄 것
  6. ElasticNet 회귀 특성
    • L1,L2 norm regularization
    • 변수 선택 가능, 변수 간 상관관계를 반영한 정규화
  7. 변수 선택 방법
    • 회귀분석을 위한설명 변수 선택방법
      1. 모든 가능한 조합
        • 모든 가능한 독립변수의 조합에 대한 회귀모형을 고려해 AIC, BIC의 기준으로 적합한 회귀 모형선택
        • AIC, BIC : 최소자승법의 $R^2$와 비슷한 역할을 하며, 적합성을 측정해주는 지표로 $R^2$는 큰 값이 좋지만, AIC, BIC는 작은 값이 좋음
      2. 후진제거법 
        • Backward Elimination, 독립변수 후보 모두를 포함한 모형에서 출발해 제곱합의 기준으로 가장적은 영향을 주는 변수로부터 하나씩 제거하면서 더 이상 유의하지 않은 변수가 없을 때까지 설명변수를 제거하고, 이때 모형을 선택
      3. 전진선택법
        • Foward Selection, 절편만 있는 모델에서 출발해 기준 통계치를 가장 많이 개선시키는 변수를 차례로 추가하는 방법
      4. 단계별 선택법
        • Stepwise method, 모든 변수가 포함된 모델에서 출발해 기준 통계치에 가장 도움이 되지 않는 변수를 삭제하거나, 모델에서 빠져있는 변수 중에서 기준 통계치를 가장 개선 시키는 변수를 추가함
      5. 회귀모델에서 변수 선택을 위한 판단기준
        • Mallow's Cp, AIC, BIC등이 있으며, 값이 작을 수록 좋음

분석 기법

1.로지스틱 회귀

  • 로지스틱 회귀분석의 시그모이드 함수식 $y= \frac{1}{1+e^{-x}}$
    1. 선형 회귀 분석
      • Regression
      • 정규분포를 따름
      • 종속변수는 연속형
      • -∞ ~ ∞ 사이의 값
      • 모형 탐색 : 최소자승법
      • 모형 검색 : F-test, t-test
      • 선형성 및 오차항에 대한 가정 있음
    2. 로지스틱 회귀 분석
      • Classification(분류분석), 지도학습
      • 이상분포를 따름
      • 종속변수는 범주형
      • 0 ~ 1사이의 확률 값
      • 최대우도법,가중최소자승법(WLS)
      • 모형 검정 : $X^2$test
      • WLS(Weigthed Least Squares) : 회귀 모수의 오차항 분산에 반비례하는 가중치를 부여하여 가중 오차제곱합을 최소화 하는 방법

*선형 회귀, 로지스틱 회귀의 공통점 

    • 지도 학습
    • 결정계수는 모두 파라미터
    • 독립변수는 연속형, 범주형 모두 사용

*종속변수를 전체 실수 범위로 확장하여 분석하고, sigmoid 함수를 사용해 연속형 0~1값으로 변경

  1. probability 
    • 0 ~ 1 사이의 값
  2. odds 
    • 성공률 / 실패률, Pi(1-Pi), Pi= 성공률
    • 로지스틱의 회귀계수, 확률에 대해  0~∞ 로 변환한 값
  3. log odds
    • og(odds), odds값에 log를 취함
    • 선형화의 하나, 값의 범위를 전체 실수 범위로 확장
    • log = as + b형태로 선형분석이 가능해짐
  4. sigmoid 
    • log odds 값을 연속형 0~1 사이의 확률 값으로 바꾸는 함수
    • Logistic 함수라 불리기도 하며, 비선형적 값을 얻기 위해 사용
    • 이항 분류의 경우 확률 값이 높은것을 1 아닌것을 0으로 분류

*승산비 : 관심있는 사건이 발생할 상대 비율, x=1일 때, y=1이 되는 상대적 비율

  • odds_a/ odds_b = exp(coef) = exp(5.140336) = 170.7731385
  • 로지스틱 회귀에서 exp(x1)의 의미(단, x1 : 회귀계수)
  • 나머지 변수가 주어질 때 x1이 한 단위 증가할 때마다 성공(Y=1)의 ODDS가 몇 배 증가하는지를 나타냄

*일반화 선형 모형 GLM : Generalized Linear Model

  • 종속변수가 정규분포를 따르지 않는 경우 사용되는 모델
  • 일반선형모델보다 유연성이 높고, 비 정규적인 종속변수에 대해 적합한 모델을 제공함
  • 대표적인 알반화 선형 모형은 로지스틱 회귀
  • 종속변수의 분포에 따른 정준 연결 함수
  • 포아송 분포:log함소 , 정규분호: 항등 함수, 이항분포: 로짓, 감마분포 : 역수함

*일반 선형 모형 : General Linear Model

  • 종속변수가 정규분포를 따르는 경우 사용
  • 하나 이상의 독립변수가 종속변수에 영향을 미치는 경우를 분석할 대 사용
  • 예)회귀분석

2.의사결정나무

  • 의사 결정 규칙을 나무구조로 나타내 전체 자료를 몇 개의 소집단으로 분류하거나 예측(=회귀)를 수행하는 분석 방법
  • 분석과정이 직관적이고 이해하기 쉬움
  • 같은 종류의 값/클래스로만 이루어진 경우 분리되지 않음
  • 뿌리마디(root node)
  • 자식마디(child node)
  • 부모마디(parent node)
  • 최종마디(terminal node)
  • 중간마디(internal node)
  • 가지(branch)
  • 깊이(depth)

특징

  • 목적은 새로운 데이터를 분류하거나 값을 예측하는 것이다
  • 분리 변수 P차원 공간에 대한 현재 분할은 이전 분할에 영향을 받는다
  • 부모마디보다 자식마디의 순수도가 증가하도록 분류나무를 형성해 나간다(불순도 감소)

종류

  • 목표변수(=종속변수)가 이산형인 경우 : 분류나무
  • 목표변수가 연속형인 경우 : 회귀나무

장점

  • 구조가 단순하여 해석이 용이함
  • 비모수적 모형으로 선형성, 정규성, 등분산성 등의 수학적 가정이 불필요함
  • 범주형(이산형)과 수치형(연속형)변수를 모두 사용할 수 있음

단점

  • 분류 기준값의 경계선 부근의 자료 값에 대해서는 오차가 큼(비연속성)
  • 각 예측변수의 효과를 파악하기 어려움
  • 새로운 자료에 대한 예측이 불안정할 수 있음(overfitting 가능성 높음)

*독립변수 = 설명변수, 예측변수, Feature

*종속변수 = 목표변수, 반응변수, Label

 

분리기준

  • Split criterion, 새로운 가지를 만드는 기준을 어떻게 정해야 할까?
  • 순수도가 높아지는 방향으로 분리
  • 불확실성이 낮아지는 방향

정지규칙

  • 더 이상 분리가 일어나지 않고 현재의 마디가 최종마디가 되도록 하는 규칙
  • 불순도 감소량이 아주 작을 때 정지함

가지치기 규칙

  • 어느 가지를 쳐내야 예측력이 좋은 나무가 될까?
  • 최종 노드가 너무 많으면 Overfitting 가능성이 커짐, 이를 해결하기 위해 사용
  • 가지치기 규측은 별도 규칙을 제공하거나 경험에 의해 실행할 수 있음
  • 가지치기의 비용함수를 최소로 하는 분기를 찾아내도록 학습
  • Information Gain이란 어떤 속성을 선택함으로 인해 데이터를 더 잘 구분하게 되는것을 의미함 (불확실성 감소)

*목표변수가 범주 형일때  사용하는 지포(분류에서 사용)

  1. 지니 지수
    • 분수도 측정 지표, 값이 작을수록 순수도가 높음(분류가 잘 됨)
    • 가장 작은 값을 갖는 예측 변수와 이때의 최적분리에 의해 자식 마디 형성
    • Gini(T) = 1 - $ \sum $(각 범주별수/전체수)$^2$  1- $\sum_{i=1}^k P_i^{2}$
  2. 엔트로피 지수
    • 불순도 측정 지표, 가장 작은 값을 갖는 방법 선택
    • Entropy(T) = - $\sum_{i=1}^{k}P_ilog_2P_i$
  3. 카이제곱 통계량의 유의 확률(p-value) 
    • 가장 작은 값을 갖는 방법 선택

*의사결정나무를 위한 알고리즘

  • CHAID, CART, ID2, C5.0, C4.5가 있으며 하향식 접근 방법을 이용한다

*알고리즘 별 분리, 정지 기준변수 선택법

알고리즘 이산형 목표변수(분류나무) 연속형 목표변수(회귀나무)
CART
(Classification And Regression Tree)
지니지수 분산 감소량
C5.0 엔트로피지수  
CHAID
(Chi-squared Automatic Interaction Detection)
카이제곱 통계량의 p-value ANOVA F-통계량 - p-value

3.SVN(Support Vector Machine)

  • 지도 학습 모델로 회귀 분석 및 분류(이항, 다항 모두 상용) 분석에 모두 사용함
  • 본류 모델은 서로 다른 분류에 속한 데이터 간의 간격이 최대가 되는 선을찾아 이를 기준으로 데이터를 분류하는 모델로, 선형 분류 및 비선형 분류에 사용할 수 있음
  • 비선형 분류를 위해서는 데이터를 고차원 특징 공안으로 사상하는 작업이 필요하며, 이를 효율적으로 하기위해 커널 트릭을 사용하기도 
  • 고차항이 될수록 특성의 중요도는 감소함
  • 데이터가 많아질수록 최적화를 위한 테스트 과정이 많아져 속도가 느린편에 속함(큰 데이터셋에 부적합)
  • 노이즈가 많은 데이터 셋에 overfitting 될 수 있어 적합하지 않음, 모델분 석 결과에 대한 설명력 부족

*Kernel

  • linear, sigmoid, polynomial, RBF(Radial Basis Function, 가우시안 커널)등이 있음
  • Polynomial Kernel: 사용자가 지정한 차수의 다항식을 활용

*C

  • C는 training data를 정확히 구분하지 아니면 decision boundary를 일반화할지를 결정
  • C가 크면 training 포인트를 정확히 구분, C가 작으면 Smooth한 decision boundary를 그림
  • decision boundary는 C가 크면 더 굴곡지고, c가 작으면 직선에 가까움

*Gamma 

  • Gamma가 크면 reach가 좁고, Gamma가 작다면 reach가 멀다는 뜻
  • reach는 decision boundary의 굴곡에 영향을 주는 데이터의 범위
  • decision boundarysms Gamma가 크면 더 굴곡지고, Gamma가 작으면 직선에 가까움
  • 큰 C, Gamma -> 과대적합 위험

4.앙상블(Ensemble)기법

  • 분류와 회귀에 관한 모형이 존재함
  • 여러 개의 분류/회귀 모형에 의한 결과를 종합하여 분류의 정확도/회귀의 설명력을 높이는 방
  • 적절한 표본추출법으로 데이터에서 여러 개의 훈련용 데이터 집합을 만들어 각 데이터 집합에 하나의 모형을 만들어 결합하는 방법(Bagging)
  • 약하게 학습 된 여러 모형들을 결합하여 사용
  • 성능을 분산시키기 때문에 과대적합(overfitting)감소 효과가 있음

*종류

  1. Voting 
    • 서로 다른 여러 개 알고리즘 모델 사용
    • 각 모델의 결과를 취합하여 많은 결과 또는 높은 확률로 나온 것을 최종 결과로 채택 
    • 각 모델 별 가중치를 다르게 부여하여 사용할 수 있음
      • Hard voting
        • 각 모델의 예측 결과 중 많은 것을 선택
        • 1 예측 3표, 2예측 1표 -> 1예측 선택
      • Soft voting
        • 각 모델의 클래스 확률을 구하고 평균 높은 확률을 선택
        • 1예측 : (0.9 + 0.8 + 0.3 + 0.4) / 4 = 0.6 => 1예측 선택
        • 2예측 : (0.1 + 0.2 + 0.7 + 0.6) / 4 = 0.4 
  2. Bagging 
    • 서로 다른 훈련 데이터 샘플로 훈련, 서로 같은 알고리즘 모델 결합, 병렬 학습
    • 원 데이터에서 중복을 허용하는 크기가 같은 표본을 여러 번 단순 임의 복원 추출하여 각 표본에 대해 모델을 생성하는 기법
    • 여러 모델이 병렬로 학습, 그 결과를 집계하는 방식
    • 같은 데이터가 여러 번 추출될 수도 있고, 어떤 데이터는 추출되지 않을 수 있음
    • 대표적 알고리즘 : Random Forest
  3. Boosting
    • 여러 모델이 순차적으로 학습, 학습이 잘못된 데이터에 가중치를 부여하여 표본 추출
    • 맞추기 어려운 문제를 맞추는데 초점이 맞춰져 있고, 이상치에 약함
    • 대표적 알고리즘 : AdaBoost, GradientBoost (XGBoost, Light GBM) 등 - Leaf-wise-node 방법을 사용하는 알고리즘
  4. Stacking - 서로 다른 여러 모델의 학습 결과를 구하고, 그 학습 결과를 다른 모델의 데이터 셋으로  학습해 최종 결과를 구

*랜덤 포레스트

  • 의사결정나무를 기반으로 하는 앙상블 모형으로, 배깅(Bagging)에 랜덤 과정을 추가한 방법
  • 노드 내 데이터를 자식 노드로 나누는 기준을 정할 때 모든 예측변수에서 최적의 분할을 선택하는 대신, 설명변수의 일부분만을 고려함으로 성능을 높이는 방법 사용
  • 여러 개 의사결정 나무를 사용해 하나의 나무를 사용할 때보다 과적합 문제를 피할 수 있음
  • 단, 너무 많은 모형의 사용은 오히려 과적합을 발생시킬 수 있음(모형의 개수는 hyper parameter)

 

5.인공지능, 머신러닝, 딥러닝

  • 딥러닝은 머신러닝의 한 종류로 인공신경망(ANN)에 기반을 둔 학습 방법
  • 머신러닝은 정형데이터 학습에 딥러닝은 이미지, 소리, 텍스트와 같은 비정형 데이터 학습에 주로 사용
  • 딥러닝 학습에넌 DNN, CNN, RNN, GAN, 전이학습 등의 다양한 종류 있음
  • 전이학습 : 풍부한 데이터를 이용해서 학습된 pre-trained model을 가져와 부족한 사용자 데이터 환경에 맞도록 새롭게 모델을 학습시키는 일련의 과정
  1. 인공신경망(ANN) 모형
    • 인공신경망을 이용하면 분류 및 예측을 할 수 있음
    • 인공신경망은 입력층, 은닉층, 출력층 3개의 층으로 구성(SLP:은닉층 없음, MLP :1개 이상의 은닉층)
    • 각 층에 뉴런(=Perceptron, Node)이 여러 개 포함되어 있음
    • 학습: 입력에 대한 올바른 출력이 나오도록 가중치를 조절하는 것 
    • 파라미터(매개변수) : 가중치(weight)
    • 하이퍼 파라미터 : 인공신경망의 학습률(learning rate), 배치크기, hidden unit, hidden layer 

*SLP의 한계

  • SLP는 단순한 문제 해결만 가능함
  • 즉, 1개의 선으로 나눌 수 있는 AND, OR, NOR 등의 문제는 해결할 수 있지만, 두개의 선이 필요한 XOR는 해결할 수 없음 -> 복잡한 문제는 MLP 이용

*인공신경망(ANN)의 학습 방법

  1. FORWARD PROPAGATION
    • 모든 weight(=parameter)의 임의 값 초기화
    • 입력(X), weight를 사용하여 예측 값 구하기
  2. 손실/비용/에러 구하기
    • 예측 값과 실제 값을 손실함수에 적용하여 구함
  3. BACKWARD PROPAGATION
    • 손실을 반영하여 weight 값 갱신하기
    • 이대, 손실함수에 대한 기울기 미분이 발생
      W = W - $\alpha \frac{d}{dW}cost(W,b)$
  4. 경사하강법
    • 비용 함수 기울기를 낮은 쪽에서 계속 이동시켜 극값에 이를 때까지 반복시키는 것
    • 비용 함수의 기울기의 최소값을 찾아내는 머신러닝 알고리즘
    • 비용 함수 기울기를 최소화 하기 위해 parameter(=Weight)를 반복적으로 조정하는 과정
  5. 경사 하강법 과정
    • 다음의 과정을 n회 반복 수행, 비용 함수 기울기 최소값을 향해 수렴
      1. 임의의 Weight값으로 초기화
      2. Cost 계산(적절한 Cost Function 사용)
      3. Weight 값 갱신 :  W = W -$\alpha \frac{d}{dW}cost(W,b)$
    • n, learning rate(hyper-parameter) 가 적절해야 함

*퍼셉트론(Perceptron)

  • 생물학적 뇌의 뉴런을 모방하여 만든 인공신경망(ANN)의 기본 단위

*기울기 소실

  • 역전파 알고리즘은 출력층에서 입력층으로 오차 gradient를 흘려 보내면서, 각 뉴런의 입력 값에 대한 손실함수의 gradient를 계산 함
  • 이렇게 계산된 gradient를 사용하여 각 가중치 매개변수를 업데이트 해 줌
  • 다층신경망에서는 역전파 알고리즘이 입력층으로 갈 수록 Gradient가 점차적으로 작아져 0에 수렴하여, weight가 업데이트 되지 않는 현상
  • activation function으로 sigmoid 함수를 사용할 때 발생 -> 해결을 위해 ReLU 등 다른 함수 사용

*신경망 활성화 함수

  • 출력을 내보낼 때 사용하는 삼수로, 주로 비선형 함수를 사용 함
  • 가중치 값을 학습할 때 에러가 적게 나도록 돕는 역할을 함
  • 풀고자 하는 문제 종류에 따라 활성화 함수의 선택이 달라지며, Layer마다 다르게 사용할 수 있음
  • 함수 종류 : 선형-항등, 비선형-계산, 부호, sigmoid, ReLU, Leaky ReLU, Maxout, tanh, softmax 

*활성화 함수의 종류

  • 항등함수 : X값 그대로 
  • 계단함수 : 0 또는 1
  • 부호함수 : -1 또는 1 
  • sigmoid함수 : 
    • 연속형 0~1, Logistic 함수라 불리기도함
    • 선형적인 멀티-퍼셉트론에서 비선형 값을 얻기 위해 사용
    • $\frac{1}{1+e^{-x}}$
  • softmax함수 : 
    • 각 클래스에 속할 확률 값을 출력함, 속할 확률이 가장 높은 클래스로 예측함
    • 모든 logits(출력)의 합이 1이 되도록 output을 정규화 한 것
    • sigmoid 함수의 일반화된 형태로 결과가 다 범주인 경우 각 범주에 속할 사후 확률을 제공하는 활성화 함수
      (3개 이상)
  • ReLU(Rectified Linear Unit)
    • 학습이 빠르고 미분값이 0,1 두 개 중 하나이기 때문에 자원 소모가 적어 일반적으로 쓰는 함수 중 한가지
    • x<0 인 경우 Dying ReLU 현상이 발생함
  • Leaky ReLU
    • 0보다 작은 입력에 대해 기울기를 주어 Dying ReLU 현상 보완
  • ELU(Exponential Linear Unit)
    • 입력이 음수일때 exponential을 활용한 함수를 사용하여  Dying ReLU 문제 해결
    • X<0일때 지수함수 계산 비용 발생
  • tanh(Hyperbolic Tangent)
    • sigmoid의 중심 값을 0으로 이동한 것
    • 학습시간 지연 해소, Vnishing Gradient 발생

*손실함수

  • Loss/Cost : 실제 값과 예측 값의 차이로 '오차'를 의미함
  • Loss Function의 예 : 분류 - Cross Entropy, 회구 - Mean Square Error

*Learning Rate(학습률)

  • 학습의 속도를 나타내는 것, weight update 시 함께 곱해지는 값
  • Learning Rate가 작을 경우 wieght 변경 속도가 느려 학습시간이 오래 걸릴 수 있음
  • Learming Rate가 클 경우 곡선의 최저점을 이탈 할 수 있다

*Mini batch 학습

  • 모든 학습 데이터에 대해 loss를 계산하는 것은 시간이 오래 걸리므로, 데이터의 일부를 사용해 학습한다.
  • Epoch
    • 모든 DataSet이 Netural Network 전체에 대한 학습을 1회 수행한 것
    • 1Epoch만으로 학습은 충분하지 않음
  • Batch Size
    • Single Batch 내 학습용 Data Size
  • Iterations
    • 1 Epoch를 달성하기 위한 batch 개수
    • Iterations = 전체 데이터수 / Batch_Size

*Normalization

  • 학습을 더 빨리하고, local minima에 빠지는 가능성을 줄이기 위해 사용함
  • MinMaxScaler : 0~1사이 값으로 변경, StandardScaler : 평균0, 분산 1의 값으로 변경
    • Unnomalized
      • 타원 모양
      • 수평으로 이동할 때와 수직으로 이동할 때 변화량 불균형 발생으로 Gradient
        Descnet 알고리즘을 적용하기 어려울 수 있음
      • Learning rate를 작게 해야 함
    • Normalized
      • 구모양
      • Gradient Descent를 적용하여 쉽고 빠르게 최적화 지점을 찾을 수 있음
      • Learning rate에 민감하지 않음

*Optimization

  • Learning Rate 및 Gradient 부분 값을 적절하게 수정하여 학습 속도를 높이고 안정적인 결과를 얻고록 함
  • Plateau(평지) 현상 해결
  • ZigZag 현상 해결 : w 갱신 행렬의 부호가 동일하여 w 목표점을 지그재그로 찾아가는 현상
  • 극소점을 찾은 뒤 더 이상 학습이 되지 않는 현상 해결
    • Optimizer의 종류
      • Gradient 수정 : Momentum, NAG
      • Learning Rate  수정 : AdagRrad, AdaDelta, RMSProp
      • Gradient, Learning Rate 모두 수정 : Adam, Nadam

*다층신경망학습과 Layer, Node

  • 다층신경망은 단층신경망에 비해 훈련이 어려움
  • 레이어가 많아지면 기울기 소실 문제가 발생할 수 있음
  • 은닉층 수와 은닉 층의 노드수 결정은 분석가가 분석 경험에 의해 설정
    • 은닉 층 노드가 너무 적으면
      • 네트워크가 복잡한 의사결정 경계를 만들 수 없음
      • Underfitting 문제 발생
    • 은닉 층 노드가 너무 많으면
      • 복잡성을 잡아낼 수 있지만, 일반화가 어렵다
      • 과적합(Overfitting)문제 발생
    • Layer, Node를 사용한 과적합 해결
      • 매개변수의 수를 줄인다
      • 은닉층 수를 줄인다
      • 노드 수를 줄인다
    • 반복, 데이터, 규제를 사용한 과적합 해결
      • epoch 수를 줄인다
      • early stopping 기법을 사용한다
      • 데이터의 양을 늘인다
      • Regularization을 사용한다
    • Regularization의 종류
      • L1/L2 Regularization
      • Dropout
      • DropConnect

*Regularization -Overfitting 해결법

  • 데이터 양을 늘림
  • Regularization 사용
  • Batch Normalization : Mini-batch의 평균, 분산을 이용해 Normalization 실행

*인공 신경망 모형의 장/단점

  • 장점
    • 변수의 수가 많거나 입,출력변수 간에 복잡한 비선형 관계에 유용
    • 이상치 잡음에 대해서도 민감하게 반응하지 않음
    • 입력변수와 결과변수가 연속형이나 이산형인 경우 모두 처리 가능
  • 단점
    • 결과에 대한 해석이 쉽지 않음
    • 최적의 모형을 도출하는 것이 상대적으로 어려움
    • 모형이 복잡하면 훈련 과정에 시간이 많이 소요되고, 과적합되지 쉬움
    • 데이터를 정규화 하지 않으면 지역해에 빠질 위험이 있음

 

반응형

+ Recent posts