Post

[심화세션]_6주차

13. 머신러닝 분석 방법론


~~

13.4 선형 판별분석과 이차 판별분석(분류 모델)

판별분석: 로지스틱 회귀분석처럼 질적 척도로 이루어진 종속변수를 분류할 때 쓰이는 기법

기계학습보다 통계기반의 데이터 분류 모델에 더 가까움, 로지스틱 회귀분석보다 우수한 것으로 알려짐. 30% 적은 데이터로도 로지스틱 회귀분석과 유사한 성능을 낼 수 있다. + 독립변수들이 정규분포를 따르지 않더라도 활용가능

  • 종속변수의 범주 2개: 일반 판별분석 or 두 집단 판별분석
  • 종속변수의 범주 3개 이상: 다중 판별분석

  • 결정경계선 산출방식에 따라, 선형 판별 분석(LDA, Linear Discriminant Analysis)과 이차 판별분석(QDA, Quadratic Discriminant Analysis)으로 구분됨

13.4.1 선형 판별분석

선형 판별분석은 분류 모델뿐만 아니라 PCA와 같은 차원축소에도 사용되지만,

종속변수를 사용하는 지도학습으로 차원축소를 하기에 일반적으로 선형 판별분석이 PCA보다 차원 축소 성능이 우수한 것으로 알려져있다.

종속변수의 범주 간 분별 정보를 최대한 유지시키면서 차원을 축소시키는 방식으로 데이터의 오분류율이 최소가 되는 축을 찾는다.

선형 판별분석은 피셔가 개발한 선형 판별함수 사용

판별함수 도출 -> 모든 관측치의 분류점수 도출 -> 해당 관측치가 어느 범주에 속할 지 예측

선형 판별함수는 집단 내 분산에 비해 집단 간 분산의 차이를 최대화하는 독립변수의 함수를 찾는 것.

수식의 형태는 선형 판별함수의 수식 형태와 동일

img1

데이터 전처리를 통해 최대한 조건을 마주고, 3번 조건이 충족되지 않는 경우에는 이차 판별분석 방법을 사용한다.

판별분석도 독립변수 간의 조합을 통해 최적의 분류식을 만드는 방식이기에, 모든 독립변수를 다 넣는 것보다는 분류에 유의미한 변수를 선택하여 모델을 만드는 것이 좋다. 회귀분석과 같이 적절한 변수선택방법을 사용하여 모델 성능 향상 가능

결측값, 이상치 처리, 분포 보정, 파생변수 생성법은 다른 분석모델 방법과 동일

오분류 비율 -> 모델 정확도 평가

판별분석 모델의 설명력에 대한 평가 지표로 고유값(Eignevlaue) 사용, 일반적으로 4.0 이상이면 설명력 있다고 판단

13.4.2 이차 판별분석

범주 간의 공분산 구조가 다를 때는 이차 판별분석 사용.

비선형 분류가 가능하지만, 독립변수가 많을 경우에는 추정해야 하는 모수가 많아져서 선형 판별분석에 비해 연산량이 큰 단점이 있다.

오분류 기대비용(ECM, Expected Cost of Misclassification)

img2

13.4.3 선형 판별분석과 이차 판별분석 실습

  • 데이터: 캐글 “Body performance Data” 데이터셋

13.5 서포트벡터머신(분류모델) (SVM, Support Vector Machine)

SVM은 판별분석과 같이 범주를 나눠줄 수 있는 최적의 구분선을 찾아내어 관측치의 범주를 예측해주는 모델이다.

  • 특징: 이진 분류에서만 사용 가능, 비선형 데이터에서 높은 정확도, 과적합되는 경향이 적은 편

SVM은 서포트 벡터만으로 결정경계선을 정하기 때문에 학습 효율이 높다.

img3

기계학습에서 거리를 통해 분류나 회귀 모델을 만들 때는 반드시 데이터 정규화나 표준화를 해줘야 함.

k개의 독립변수가 있을 때, 최적 결정경계선을 찾기 위해서는 최소k+1개의 서포트벡터가 필요하다.

만일 변수가 3개보다 더 많아지면, 결정경계선은 초평면(hyperplane)이 되고, SVM은 MMH(Maximum Marginal Hyperplane) 즉 최대 마진 초평면을 찾아 범주를 분리하는 분류 방법이 된다.

이상치 처리

  • Soft margin: 마진을 최대화하여 과적합 방지
  • Hard margin: 이상치 허용 x

img4

소프트/하드 마진을 조정해주는 매개변수: C, Gamma

  • C: low - 소프트 마진, high - 하드 마진
  • Gamma: 하나의 관측치가 영향력을 행사하는 거리 조정

img5

그러나 위와 같은 경우에는, 아무리 소프트 마진을 높게 설정해도 결정경계선을 만들기 어렵다.

이런 경우에 커널 기법(Kernel trick)을 사용한다.

  • 커널 기법: 기존 데이터를 고차원 공간으로 확장하여 새로운 결정경계선을 만드는 방법, Polynomial/Sigmoid/가우시안 RBF 커널 등 다양한 종류의 커널 기법 존재.

가우시안 기법을 통해 Solve img6 img7

  • Gamma: 가우시안 분포의 표준편차를 조정해, 관측치가 영향력을 행사하는 거리 조정 img8

  • C값: 이상치에 대한 민감도 조정 -> 결정경계선의 유연함 조정
  • Gamma값: 개별 관측치의 결정경계선 범위를 크거나 작게 만들어줌, Gamma 값이 커질수록 각각의 관측치에 대한 결정경계선 범위가 작아져 여러 개의 결정경계선 생성

img9

따라서 SVM 모델을 만들 때, C값과 Gamma값을 잘 조정해가면서 모델 복잡도를 적정 수준으로 맞춰줘야 한다.

13.5.1 서포트벡터머신 실습

  • 데이터: 캐글 - “Raisin Dataset”

13.6 KNN(분류, 예측 모델) -remind

KNN(K-Nearest Neighbors): 별도 학습 과정이 없고, 미리 저장되어 있는 학습 데이터에다가 예측 데이터를 대조함으로써 직접 결과가 도출되므로 메모리 기반 학습(Memory-based learning)이라고도 불린다.

KNN은 데이터의 지역 구조에 민감한 특성을 가지고 있다.

  • 최적의 K 선택하기: 교차검증(cross validation)을 하여 오분류율이 가장 낮아지는 K수를 선정

  • KNN은 거리를 사용하기에 데이터 정규화나 표준화를 반드시 해줘야 한다. 명목형 독립변수는 0,1로 더미 변수 처리를 하여 사용, 종속변수가 연속형 변수인 경우에는, KNN회귀 사용함. 이웃한 K개의 관측치 평균값 계산함.

회귀의 경우, K를 너무 적게 설정하면 학습데이터에 너무 의존된 모델이 되어 일반화가 어려워짐. 그래서 안정된 예측 모델을 만들기 위해서는 학습 데이터셋에서 정확도가 다소 떨어지더라도 K를 3 이상으로 설정해주는 것이 좋다,

KNN은 쉽고 직관적이라는 장점이 있지만 변수가 100개 이상으로 많아지거나, 데이터양이 커지게 되면 연산량 증가가 다른 모델보다 훨씬 크기 때문에 비효율적임.

그리고 분류 모델에서 특정 하나의 범주가 대부분을 차지하고 있는 상황에서는 분류가 잘 되지 않는 단점이 있다.

13.6.1 KNN 실습

  • 캐글 “Raisin Dataset”

13.7 시계열 분석(예측모델)

시계열 분석은 관측치의 통계량 변화를 시간의 흐름에 따라 순차적으로 데이터화하고 현황을 모니터링하거나 미래의 수치를 예측하는 분석 방법이다. 주가 전망, 수요 예측 등 무수히 많은 분야에서 사용되기 때문에 그 기법이 매우 다양하게 발전되어 왔다.

  • 시계열 분석은 크게 탐색(Explanation)과 예측(Prediction)으로 나눌 수 있다.

    • 탐색 목적: 외뷔 인자와 관련된 계절적인 패턴, 추세 등을 설명하고 인과관계를 규명한다.
    • 예측 목적: 과거 데이터 패턴을 통해 미래의 값 예측

img10

  • 신호와 잡음이 개념을 더 자세히 나누면 수준, 추세, 순환성, 계절성, 잡음으로 나눌 수 있다.
    • 수준(Level): 시계열의 평균값
    • 추세(Trend): 장기 변동 요인으로써 강한 외부요인이 없는 한 지속되는 경향성
    • 순환성(Cycle): 불규칙적이며 반복적인 중기 변동요인
    • 계절형(Seasonality): 1년의 기간 동안의 주기적인 패턴
    • 잡음(Noise): 일정한 규칙성이 없는 무작위적인 변동

img11

이렇게 시계열 요소를 나누는 것을 ‘시계열 분해’라고 한다. 때에 따라서는 추세와 순환성을 합쳐서 추세라고 표현하기도 한다.

시계열 분해 방법으로는 SEATS(Seasonal Extraction in ARIMA Time Series) 분해 방법, STL(Seasonal and Trend decomposition using Loess)방법 등이 있다. 파이썬에선 seasonal_decompose 라이브러리로 활용 가능

13.7.1 회귀 기반 시계열 분석

비즈니스 분야에서 주로 사용되는 시계열 분석 기법은 회귀 기반 방법, 지수평활법, ARIMA 모델 방법이 있다.

img13

img12

비선형적인 경우에는 일반 선형 회귀식으로 표현하는 것이 어렵다. 비선형 추세의 경우 다항회귀를 하여 모델 적합성을 향상시킬 수 있다. 추세가 지수적으로 증가하는 경우 위와 같이 해당 독립변수에 제곱을 취해 회기선을 보정해 주는 것이다.

또는 종속 변수나 독립변수에 로그를 취해주어 비선형적 관계를 적합시킬 수 있다.

로그 변환을 하기 위해서는 모든 관측치의 값이 0보다 커야 하고 과도한 변수 변형은 모델의 예측력을 저하시킬 수 있음을 유의해야 한다.

자기회귀 요소 변수는 전 달의 수치가 유의미할 수도 있고, 그 이전의 유의미한 변수가 될 수 있는 경우의 수가 매우 많다.

  • 과거 시차 중 어느 시점이 종속변수의 수치에 영향을 주는지 쉽게 확인할 수 있는 기법: 자기상관함수 ACF(Autocorrelation function)
    • ACF: 시계열 데이터의 주기성을 수치적으로 확인 가능, 어떠한 특정 시차가 어떠한 영향을 주는지 파악 가능

점선으로 된 가로선을 벗어나면 해당 시차가 Y값과 상관성이 있다는 것을 의미함. - 선막대가 0보다 큼: 양의 상관관계 - 선막대가 0보다 작음: 음의 상관관계

img14

  • 편자기상관함수, PACF(Partial autocorrelation function): y의 시점과 특성 t-k 시점 이외의 모든 시점과의 영향력을 배제한 순수한 영향력을 나타내는 척도. 다른 시점들과의 다중공선성을 제거한 단 두 시점과의 관계를 수치화한 것.

13.7.2 ARIMA 모델

ARIMA(Auto regressive integrated moving average) 모델: 이동평균을 누적한 자기회귀를 활용한 시계열 분석

  • 정상성(Stationarity): 모든 시점에 대해서 일정한 평균을 갖도록 하는 것, 추세나 계절성과 무관함

  • 시계열 데이터의 주기성은 정상성과 무관함, 정상성을 나타내는 시계열은 평균과 분산이 안정된 상태다.

img15

  • 시계열 데이터에 추세가 있어 평균이 일정치 않으면 차분(difference)을 한다.
    • 차분: 연달아 이어진 관측값들의 차이를 계산해 그 변화 차이를 제거하는 것.

시계열에 계절성도 존재하는 경우에는 계절성의 시차인 n시점 전 값을 빼주는 2차 차분 혹은 계절차분을 해준다.

img16

시계열 데이터의 분산이 일정치 않을 때는 변환(Transformation)을 해줘야 한다.

  • 자기회귀 모델(Auto regressive model, AR): 자기 자신에 대한 변수의 회귀, 현시점의 Y값과 t-k시차들 간의 관계만으로 시계열 데이터를 분석하는 것

1개 시차만 사용한 AR(1)모델: img17

  • 이동평균(Moving Average, MA)모델: 연속적인 예측 오차의 영향을 이요하는 방법

img18

  • ARMA(p,q) 모델: AR+MA, 자기회귀평균 모델. 과거 시점의 수치와 변동성을 모두 활용해 보다 정교한 예측 실시, but 대부분 불안정한 패턴을 가지고 있기에 부족함

ARMA(p,q) 모델의 불안정성 제거한 기법: ARIMA 모델

  • ARIMA 모델: 과거의 데이터가 가지고 있던 추세까지 반영, 시계열의 비정상성을 설명하기 위해 차분 사용하는 것.

  • ARIMA(p,d,q)

    • p: AR 모델의 자기회귀 부분 차수
    • d: 1차 차분이 포함된 정도
    • q: MA 모델의 이동평균 부분 차수

시계열 분석 예측값에 대한 평가: 실젯값과 예측값의 차이를 측정해 모델 적합도, 예측력 평가함. RMSE, MAE, MAPE 사용

13.7.3 시계열 분석 실습

  • 캐글 - “Walmart Cleaned Data”

13.8 k-means 클러스터링(군집 모델) -remind

k-means 클러스터링 분석 방법은 KNN과 달리 비지도학습이다.

k-means 외에도, DBSCAN, Mean-shift clustering, Agglomerative hierarchical clustering 등 다양한 클러스터링 기법 존재.

k-means 클러스터링은 중심점과 군집 내 관측치 간의 거리를 비용함수로 하여, 이 함수 값이 최소화되도록 중심점과 군집을 반복적으로 재정의함

img19

img20

k-means 클러스터링은 단순한 원리를 통해 효과적으로 군집화할 수 있지만, 아래와 같은 단점이 존재한다. (Local minimum 문제)

img21

최적의 k값 찾기

  • 엘보우 기법: 군집 내 중심점과 관측치 간 거리 합(Inertia value)이 급감하는 구간의 k값 선정

img22

  • 실루엣 계수(Silhouette coefficient): 군집 내 관측치들이 다른 군집과 비교해 얼마나 비슷한지 나타내는 수치
    • ai: i와 동일한 군집에 속한 관측치들 간의 평균 거리
    • bi: i와 다른 군집 중 가장 가까운 군집까지의 평균 거리

img23

그런데, 데이터가 동심원의 형태로 분포되어있는 경우, k를 잘 설정해줘도 원들을 반으로 갈라서 군집화를 하게 된다.

이럴 때 DBSCAN(Density-based spatial clustering of applications with noise)기법을 사용한다.

  • DBSCAN은 별도의 k 수 지정이 필요 없이 관측치들의 밀도를 토해 자동으로 적절한 군집 수를 찾는다.
    • 거리 기준(epsilon): ‘이웃’여부 판단
    • 이웃 관측치 수(minPts): 특정 거리 안에 몇 개 이상의 관측치가 있어야 하나의 군집으로 판단할 지의 판단 기준

img24

DBSCAN은 U,H와 같은 형태의 데이터 분포도 효과적으로 군집화할 수 있지만, k-means 방식에 비해 분류에 필요한 연산량이 많다. 특히 독립변수가 늘어날수록 필요 연산량이 급증함.

13.8.1 k-means 클러스터링 실습

  • 캐글 “Mall Customer Segmentation Data”

13.9 연관규칙과 협업 필터링(추천 모델)

  • 추천 시스템의 유형
    • Editorial and hand curated: 전문가가 직접 아이템 평가해 추천
    • Simple aggregates: 대중에게 인기 있는 아이템, 신규 아이템 등 특정 조건 아이템 추천
    • Tailored to individual users: 각 개인의 특성, 선택한 아이템에 맞춰 추천

Tailored to individual users 방식의 추천 시스템에 대해 알아보자

img25

13.9.1 연관 규칙

A라는 제품을 구매한 사람은 B라는 제품도 구매할 확률이 높다는 결과를 이끌어 내는 모델

  • 연관규칙 분석의 대표적 알고리즘: Apriori, FP-Growth, DHP 등 존재
    • Apriori: 아이템들의 조합에 대한 경우의 수를 최소화하여 처리 속도 효율을 높인 알고리즘
    • FP-Growth: 트리 기반 알고리즘, 항목 간 비교 계산을 최소화하여 처리 속도 효율 높인 알고리즘
    • DHP: 항목 집합의 개수가 2개인 트랜잭션을 먼저 해시 테이블로 만들어 처리 속도 효율 높인 알고리즘
  • 연관규칙 분석은 다음 3가지 핵심 지표를 통해 조합 가늬 연관성 수준 도출
    • 지지도(Support): 아이템 A와 B를 동시에 포함하는 거래가 발생할 확률
    • 신뢰도(Confidence): 아이템 A가 포함되는 거래에 B가 포함될 확률
    • 향상도(Lift): 아이템 A, B가 독립적으로 판매되는 것 대비 함께 판매되는 비율

img26

img27

img28 img29

연관규칙 분석은 고려해야 할 지표가 3개나 되기에 사람의 주관적 판단이 많이 들어갈 수밖에 없다.

이를 보완한 평가 척도 중 대표적인 것이 IS(Interest-Support)측도와 교차지지도(Cross support)다.

img30

  • IS측도는 향상도, 지지도를 함께 고려한 측도다. 둘 중 하나가 너무 낮음에도 연관규칙을 선택되는 문제 방지

img31

  • 교차지지도: 전체 아이템 조합에서 어느 정도 수준의 지지도 이하를 버릴 것인가를 판단할 수 있는 하나의 보조지표

Apriori 알고리즘의 핵심인 지지도와 신뢰도 제한 방식

img32

  • Apriori 알고리즘 분석 순서
    1. 최소 지지도 설정
    2. 개별 아이템 중 최소 지지도 미만 아이템 찾기
    3. 제외되지 않은 아이템만을 이용해 최소 지지도 이상의 2가지 조합 찾기
    4. 제외되지 않은 2가지 조합을 결합해 최소 지지도 이상의 3가지 조합 찾기
    5. 아이템 조합을 늘려가며 반복적으로 최소 지지도 이상의 조합 찾기
      • 해당 조합들의 지지도, 신뢰도, 향상도 산출

13.9.2 콘텐츠 기반 필터링과 협업 필터링

콘텐츠 기반 필터링(Contents-based recommendation)방법은 메타 정보를 활용함

  • 장점: 정형화된 데이터를 통해 기존 선호와 유사한 아이템 추천 가능
  • 단점: 모든 제품에 대한 메타 정보를 입력해야 작동하기에 아이템이 많아지면 관리 어려움, 구매자가 선호를 표현한 아이템과 유사한 속성을 가진 아이템만 추천하기에 속성이 유사하지 않더라도 구매할 가능성이 높은 제품을 추천할 수 없음

협업 필터링 모델: 위 2가지 단점을 해결할 수 있는 모델

  • 최근접 이웃 모델: 사용자 기반 / 아이템 기반으로 구분
  • 잠재요인 모델

최근접 이웃 모델 (Neighborhood model)

  • 사용자 기반의 협업 필터링 모델: 유사한 성향을 가진 사람들을 찾아내어 그 사람들이 선호하는 아이템 추천, 피어슨 유사도나 코사인 유사도를 통해 구할 수 있음.

사용자가 보지 않은 영화에 대한 예측 평점을 구하고, 예측 평점이 높은 순으로 영화 추천

아이템 기반 최근접 모델도 사용자 기반과 유사함

암묵적/명시적 데이터

  • 명시적(explicit) 데이터: 영화 평점과 같은 호불호가 명확한 데이터
  • 암묵적(implicit) 데이터: 사용자의 호불호를 명확히 알 수 없음

잠재요인 모델(Latent Factor model): 암묵적 데이터 위주의 도메인에서 사용, 사용자와 아이템 간의 관계 정보를 가지고 있는 데이터를 행렬분해 하여, 데이터 안에 숨겨진 잠재 요인(factor) 도출

  • 행렬 분해를 위한 기본 기법:
    • 특잇값 분해(Singular Value Decomposition, SVD): null인 경우 모두 평균값 등으로 대치하는데 데이터 왜곡 가능성 높음
    • ALS(Altering Least Squares), SGD(Stochastic Gradient Descent)

ALS, SGD 모두 작동 방식은 유사하지만, ALS가 병렬 시스템을 지원하기에 대량의 데이터 처리에 유리하다.

  • 협업 필터링의 맹점:
    1. 콜드 스타트: 새로 가입한 사용자, 이제 막 출시된 아이템은 데이터가 없어 추천을 위한 스코어 부여 불가.
    2. 아이템 수에 비해 구매, 클릭 등의 상호작용이 부족할 경우 잠재요인 도출 데이터가 희박하게 되어(Sparcity) 추천 성능이 떨어지게 됨.
    3. 특이 취향 사용자(Gray sheep)에 대한 추천 정확도 떨어짐 -> 별도의 유사도 알고리즘 적용해 추천 정확도 향상

그래서 유저와 아이템 간 상호작용 외의 속성을 함께 고려한 하이브리드 필터링 모델 사용하기도 함.

  • 하이브리드 필터링의 종류
    1. 협업 필터링, 콘텐츠 필터링을 각각 구현하여 혼합하는 방식: 각 모델의 스코어 결괏값의 가중합을 구해 최종 스코어 산출
    2. 협업 필터링에 콘텐츠 기반 필터링 특성 적용: 협업 필터링 모델에 사용자의 특성 나타내는 변수 추가
    3. 콘텐츠 기반 필터링에 협업 필터링 특성 적용: 사용자 프로필 정보들을 협업 필터링 방식처럼 차원 압축해 몇 개의 잠재 요인으로 변환하여 사용

추천시스템의 성능 평가의 경우도 정확도, 특이도, F1스코어 등의 예측력 평가 기준 활용함

13.9.3 연관규칙과 협업 필터링 실습

  • 캐글: “Market Basket Data”, “Movielens dataset”

13.10 인공 신경망(CNN, RNN, LSTM)

신경망은 복잡한 비선형적 관계를 병렬적으로 분석하고 처리하고 오류나 잡음에 강하기에 일반화 성능이 뛰어나다.

  • 기본적인 신경망 구조: 입력층, 은닉층, 출력층
    • 입력층: 독립변수의 값들을 입력, 독립변수의 수만큼 노드 가짐
    • 은닉층: 입력층에서 들어온 값들을 합산해 보관, 노드들을 연결하는 층 사이에 가중치들이 있다. 어떤 계산들이 이루어지는지 파악하기 힘듦 -> 신경망 모델을 블랙박스 모형이라고도 부름
  • 회귀분석과의 차이: 중간층 존재, 신경망은 출력값과 Y값의 차이를 봐서 은닉층의 가중치 조절

  • 오류 역전파(Back-propagation of errors): 처음 가중치를 이용해 출력층 값을 계산하고, 결과값과의 오차를 각 가중치로 미분한 값을 처음 가중치에서 빼주는 작업 반복하며 가중치 조절

  • 딥러닝: 신경망의 은닉층이 2개 이상이 될 때를 일컬음

  • 퍼셉트론: 신경망을 이루는 가장 기본 단위 구조, 입력층의 각 독립변수값들을 하나로 합산할 때 각각에 가중치를 적용해서 보다 유의한 변수의 영향력을 강화한다. 합산된 값이 정해진 임계값을 초과했을 때는 1을 출력하고 못했을 때는 0을 출력한다. 분류가 제대로 됐는지를 보며 가중치 개선함. 신경망은 여러 층의 퍼셉트론으로 구성되기에 다층 퍼셉트론이라 한다.

다층 퍼셉트론은 기존의 AND, NAND, OR, XOR 게이트를 조합해 XOR 게이트를 구현 가능하다.

13.10.1 CNN

CNN(합성곱 신경망, Convolution Neural Network): 사람의 시신경 구조를 모방한 구조로써, 데이터 특징을 추출해 패턴 파악함

픽셀 단위가 커지게 되면 연산해야 할 양은 기하급수적으로 증가하게 되고, 모든 픽셀 단위를 일일이 연산하는 것은 비효율적이고, 조금이라도 학습 데이터와 다른 글씨를 입력받으면 인식하지 못하는(과적합된) 문제가 있다.

그래서 CNN은 Convolution, Pooling의 단계를 통해 데이터를 효율적으로 연산한다.

img33

img34

그런데 Convolution을 반복할 수록 데이터의 크기가 점점 작아져 결국 합성곱 연산을 할 수 없게 되는 문제를 방지하기 위해 패딩(Padding) 작업을 한다. 일반적으로 0으로 채워 넣는 Zero-padding을 통해 데이터 손실과 이미지 축소를 방지한다.

img35

Padding 과정까지 끝난 Feature map은 이제 pooking을 통해 사이즈를 축소한다. 이 과정을 통해 연산량을 줄이고 노이즈를 상쇄시킨다.

  • Pooling의 방법
    • Max-pooling
    • Average-pooling
    • L2-norm pooling 등

보통 CNN에서는 최댓값만 가져오는 Max-pooling을 사용하고, 이는 신경망 모델이 임계치를 넘는 큰 값의 신호들만 전달하는 원리와 유사하다.

13.10.2 RNN과 LSTM

RNN(Recurrent Neural Network, 순환신경망): Feedforward 방식으로 흐르며, 모든 입력과 출력이 독립적이다.

img36

인풋 x가 입력되면, 퍼셉트론 안에서 계산된 파라미터 값이 다시 퍼셉트론 안으로 돌아가는 순환구조를 보인다.

이 구조를 단순한 구조로 펼쳐서 보면 아래와 같다.

img37

RNN은 시차 요소가 적용된다.

RNN을 사용하는 분석 주제에 따라 입출력 구조는 달라질 수 있다.

img38

  1. 이미지를 입력했을 때, 이미지 설명 캡션을 출력하는 용도에서 사용되는 구조
  2. 번역기 모델에서 사용되는 구조, 어순이 다른 경우가 많기에 어순을 함께 기억한 다음 번역하고자 하는 언어의 어순으로 변환해 순차적으로 출력
  3. 인풋이 들어옴과 동시에 출력을 시작하고, 인풋이 늘어날수록 과거의 모든 인풋을 함께 고려해 결과 출력함

그런데 RNN은 과거 시점의 인풋과 현재 시점의 인풋 사이의 거리가 멀면, 초기의 가중치 값이 유지되지 않아 학습능력이 저하되는 문제가 있다. 이러한 문제를 해결할 수 있는 모델이 LSTM이다.

  • LSTM(Long Short Term Memory networks)은 기존 RNN과 유사한 구조를 가지고 있지만 셀 스테이트라는 요소를 가지고 있다.
    • 셀 스테이트(Cell state): 가중치를 계속 기억할 것인지 말지를 결정해주는 역할

img39

RNN은 일반적으로 쌍곡선 함수라고도 불리는 hyperbolic tangent함수를 통해 전 시점의 가중치를 -1~1 사이 값으로 산출해 다음 시점에 전달한다. 이는 시그모이드 함수와 유사하지만 미분 최댓값이 상대적으로 크기 때문에 가중치를 더 오래 유지할 수 있다.

하지만 결국 시차가 지날수록 과거의 가중치는 희석되어 영향력이 급격히 줄어든다.

반면, LSTM은 은닉층에서 xt-1 시점의 가중치를 그대로 넗을 것인지 시그모이드 함수로 0 or 1 사이 값으로 산출해 판단한다.

이런식으로 RNN은 LSTM으로 성능이 보다 향상됐고, 다양한 변칙 알고리즘이 계속 개발되고 있다.

13.10.3 인공 신경망 실습

  • 케라스(Keras): mnist 숫자 이미지 데이터셋
  • 캐글: “google stock price”
This post is licensed under CC BY 4.0 by the author.