Jaegool_'s log

<빅데이터 커리어 가이드북 요약(Big-data career guide book recap)> 본문

Books

<빅데이터 커리어 가이드북 요약(Big-data career guide book recap)>

Jaegool 2022. 7. 7. 02:25

데이터 엔지니어의 업무

  • 요구사항 분석
  • 파이프라인(ETL, Extraction Transform Loading) 구축, 관리 및 유지&보수
  • 기타 도구 및 애플리케이션 개발

업무에 필요한 지식 및 스킬

  • 컴퓨터 시스템에 대한 지식(성능문제 해결을 위한)
  • 'Google Cloud Certified Professional Data Engineer' 등의 자격증이 업무를 위한 기초 지식을 습득하고 검증하는 데 도움.
  • BI 도구에 대한 사용법과 설정 방법 이해(Data analyst와의 협업을 위해)
  • 머신러닝 모델을 개발하는 데도 데이터가 이용되기 때문에 머신러닝 개념에 해박하면 도움이 됨.
  • 코딩, 수학(선형대수, 최적화, 확률, 미적분), 영어, 창의성

 

1. 빅데이터 프로젝트

     1) 문제 정의

- 문제를 명확하게 표현했는가?

- 문제를 얼마나 잘 풀어야하는지에 대한 목표를 정했는가?

- 결과물을 전달받아 사용하는 사람은 누구인가?

- 정의한 문제를 해결할 수 있는 자원이 있는가?

     2) 데이터 수집 및 이해

     3) 데이터 분석과 모델링

     4) 배포 및 적용

- 중요한 것은 '프로젝트 결과물의 사용자'

 

    <데이터 준비>

     1) 데이터 수집

     2) 데이터 품질 확인

     3) 데이터 정제

     4) 데이터 변환

     5) 데이터 특성 추출

     6) 데이터 준비 과정 기록

 

 

2. 시각화

     1) 시각화의 유형

         - 그래프(꺾은선그래프, 시간에 따른 데이터의 변화나 경향성 강조)

         가로축: 시간

         세로축: 설명하려는 값 

 

         - 히스토그램(데이터의 분포 파악, 연속형 변수의 빈도 시각화)

         가로축: 분포를 알고 싶은 변수

         세로축: 각 변숫값의 빈도

 

         - 막대그래프(범주형 변수/이산형 변수의 빈도 시각화)

 

         - 테이블(히트맵, 여러 변수간의 상관 관계를 시각화)

         가로축과 세로축을 같은 변수로 두면 상관 관계를 파악하기 쉬움.

 

         - 지도

 

         - 시각화 도구

         시각화 패키지('Matplotlib', 'Seaborn')

         반응형 시각화('plotly')

         지도 위에 시각화('folium')

         시각화 소프트웨어('Tableau', 'Spotfire', 'Qlikview')

 

         - 대시보드

         BI(Business Intelligence) 도구

         ex) 'Tableau', 'PowerBI', 'Google Analytics'

 

     2) 공부자료

         'Information is Beautiful(Book/Online)'

         Online Resources, 196p

 

 

3. 데이터 분석 소프트웨어

     1) 데이터 분석 소프트웨어

         - KNIME, RapidMiner, Orange, SAS

         - 사용 편의성, 데이터 분석을 위한 다른 오픈 소스와의 연계, 스크립팅 기능 등에서 차이가 존재.

         - 스크립팅: 데이터 분석 소프트웨어에서 파이썬이나 R과 같은 프로그래밍 언어를 사용하는 것.

                           사용자가 원하는 기능을 코딩으로 추가하거나 외부 코드와 연동해 다양한 분석 기법을 활용할 수 있다.

 

 

4. 웹 크롤링

     1) 웹 크롤링 기법

         1. HTTP & HTML을 활용:

               HTTP 통신을 이용해 원하는 웹 페이지의 HTML 소스 코드를 다운로드한 후 이를 적절히 파싱해 필요한 데이터를 추출.

         2. URL 주소를 알기 어려울 때는 웹 브라우저를 이용해 사람이 직접 데이터를 받는 모습을 따라 하는 프로그램을 만들어 다운로드.

         3. API(데이터를 다운로드할 수 있도록 만들어진 인터페이스) 활용:

               데이터 제공자가 API 서비스를 제공할 때 사용, API로 원하는 데이터를 지닌 서버에 요청해 데이터를 받음. 

파싱(Parsing): 문장이나 문서를 일정한 규칙에 따라 분해하는 것. 원하는 정보를 추출하는 프로그램(Parser)

API(Application Programming Interface):  프로그램 간의 상호작용을 사전에 약속된 방식을 이용해 지원하는 매개체

 

  • 웹 크롤러(Web Crawler, python package)

         - 'requests': HTTP 요청을 보낼 수 있음(get 함수, post 함수를 이용)

         - 'BeautifulSoup': HTML 문서를 Parsing

         - 1) API 서비스 제공자에게 서비스 키를 요청해 API 사용 권한을 부여받습니다.

         - 2) 서비스 URL에 서비스 키와 원하는 데이터를 특정하기 위한 파라미터를 추가해 요청  URI를 만듭니다.

         - 3) 크롤러에서 API를 호출해 데이터 제공자에게 응답을 받습니다.

         - 웹 브라우저를 활용해 크롤러를 구현하고자 할 때 사용하는 패키지는 'seleium'입니다.

         - 이를 이용하면 다양한 종류의 웹드라이버를 활용할 수 있습니다.

보통 API 서비스 제공자는 공식 홈페이지에서 이용가이드를 제공하므로 예제를 참고하면 사용하는 데 큰 어려움이 없을 것 입니다. 

 

 

5. 프로그래밍

     1) 빅데이터를 위한 기초 지식 1

         - 함수

         - 클래스

         - 모듈

         - 패키지

         - 라이브러리

         - 프레임워크

         - 소프트웨어

         - 도구(Tool, 툴)

 

     2) 프로그래밍 언어

         - Python

         - R

         - JAVA

         - JavaScript

         - Kotlin

 

     3) 자료 구조와 알고리즘

     자료구조)

         - 선형구조: 리스트, 스택, 큐

         - 비선형구조: 트리, 그래프

     알고리즘)

         - 정렬: 버블 정렬, 병합 정렬, 퀵 정렬

         - 탐색: 트리 탐색

         - 알고리즘의 성능: 알고리즘의 성능 평가에는 '복잡도(점근 표기법, O - big o)' 사용

         - 점근 표기법: 어떤 함수의 입력값이 증가함에 따라 그 출력값이 얼마나 증가하는지를 표현하는 것.

         - 알고리즘의 복잡도: 시간 복잡도 & 공간 복잡도

 

     4)  공부자료

         - p. 226

 

6. 수학 및 통계학

     1) 수학

         - 선형대수: 벡터와 행렬의 다양한 의미와 활용법을 이해하는 학문.

         - 고윳값과 고유벡터, 행렬식 등을 이용하면 SVD(Singular Value Decomposition, 특잇값 분해), 조르당 분해(Jordan Decomposition) 등 과 같이 행렬을 분해해 좀 더 효율적으로 표현할 수 있는데, 이는 PCA(Principal Component Analysis, 주성분 분석), LDA(Linear Discriminant Analysis, 선형 판별 분석), MDS(Multi-dimensional Scaling, 다차원 척도법)와 같은 행렬의 고윳값 분해를 이용한 머신러닝 기법의 이론적 바탕이 됨.

 

         - 해석 기하: 공간, 각, 길이, 연산 등을 정의하고 그 성질을 탐구.(선형대수에서 다루는 벡터 공간과 선형 사상의 개념에 직관성과 엄밀성을 부여)

         - 벡터 사이의 유사도를 측정, 내적 공간을 정의함으로써 벡터 공간을 기하적으로 이해할 수 있게 함.

         - 이는 머신러닝 기법 중 클러스터링 기법이나 SVM(Support Vector Machine)에 쓰이고, 벡터의 직교성, 사영, 회전 등과 같은 개념은 PCA나 선형 회귀의 이론을 제시.

 

         - 최적화: 목적 함수의 최댓값이나 최솟값을 찾는 방법을 탐구하는 응용 수학의 한 분야

         - 비선형 함수의 최적값을 찾는 문제는 대부분 함수의 기울기를 이용하는데, 이를 위해서는 편미분 지식이 필요합니다. 최근에 많이 쓰이는 딥러닝 모델의 학습에도 SGD(Stochastic Gradient Descent, 확률적 경사하강법)와 같이 기울기를 이용한 반복 알고리즘을 사용합니다. SVM은 QP(Quadratic Programming, 이차 계획법)의 해법을 사용하는 등 다양한 머신러닝 기법을 최적화로 정의할 수 있음.

 

     2) 통계학

         - 일반 통계학: 데이터 수집과 실험 설계의 방법, 결과 분석 방법 등 데이터 분석을 위한 기초 지식을 습득할 수 있는 학문.

         - 표본 추출 방법, 확률과 분포, 검정, 추론, 상관분석, 분산분석 등과 같은 개념을 이해할 수 있음.

         - 회귀분석: 여러 분석 모형을 배우고, 모형 적합, 변수 선택, 모형 선택 등의 개념과 데이터 분석에 필요한 분석 모형 관련 기초 지식을 습득할 수 있음. 선형회귀, 영향점 진단, 더미 변수, 다중공선성 등의 개념을 이해할 수 있습니다.

         - 심화 과목: 수리 통계학(확률 번수의 확률분포, 표본분포, 극한분포, 추정, 가설, 검정, 추론, 통계량 등을 다룸)

         - 범주형 데이터 분석/ 이산형 자료 분석은 범주형 데이터에 대한 분석 방법이나 로지스틱 모형, 로짓 모형, 모형 선택, 적합도 검정, 기대 도수 추정 등을 다룹니다.

         -  다변량분석은 다변량 데이터에 대한 분석 방법을 다룸.

         - 시계열 분석은 시계열 데이터에 대한 분석 방법을 다룸.

         - 베이지안 통계는 주관적 확률, 결정 이론, 사전분포, 사후분포, 극한분포, 베이지안 추정, 베이지안 검정 등을 다룸.

 

         3) 정보 이론

         - 최적화 문제를 푸는데 많이 쓰임.

         - 클로드 섀넌(Claude E. Shannon)은 엔트로피라는 개념을 도입해 정보를 수학적으로 정의하고 계량화(bit).

         - 여러 확률 변수의 결합 정보량, 조건부 정보량 등도 정의할 수 있음.

         - 특히 분포를 비교하는 KL-발산이나 크로스 엔트로피는 분포의 우도 사이의 비율과 같은 의미를 가지며, 함수의 손실함수를 정의하는 등 머신러닝의 곳곳에서 등장.

 

         4) 공부자료

         - p. 239

 

 

7. 머신러닝

     1) 머신러닝

         - 지도학습(Supervised Learning): 모델에 과거 정답을 제공한 상태에서 미래 정답을 예측하는 문제

         예측해야하는 레이블이 연속적인 값을 갖고 있으면 '회귀(Regression) 문제'

         레이블이 연속되지 않고 서로 단절돼 있는 이산적인 값의 카테고리를 구분하는 문제를 '분류(Classification) 문제'

 

         - 비지도학습(Unsupervised Learning): 모델에 정답 없이 데이터만 제공한 상태에서 데이터의 패턴을 알아내는 문제

         내재된 패턴을 설명할 수 있는 변수를 추출해 만드는 모델을 '잠재 변수(Latent Variable) 모델'

         미리 정해진 분류 기준 없이 비슷한 특성의 데이터 모임을 생성하는 것을 '군집(Clustering) 분석'

         비지도학습 문제를 해결할 때는 주로 '차원 감축(Dimensionality Reduction)' 기법을 사용

         -> '차원의 저주'완화, 군집화나 시각화를 효율적으로 진행, ex) 'PCA', 'Manifold Learning'

 

         - 강화학습(Reinforcement Learning): 모델이 시스템과 상호작용하며 최적의 결정을 내려야 하는 문제

 

         2) 지도학습

         - 지도학습의 개요

일반화: 학습에 사용하지 않은 데이터를 예측하고 분류하는 것, 지도학습의 목표.

일반화 오차: 모델의 일반화 성능을 표현하는 개념

학습 오차: 확보한 데이터(학습 데이터셋 / 훈련 데이터셋)에서 성능을 측정하면 되기 때문에 계산 용이.

테스트 오차: 학습에 사용된 적이 없는 데이터(테스트 데이터셋)를 얼마나 잘 예측하는지를 나타냄. 테스트 성능.

 

과적합(Overfitting): 테스트 오차는 학습 오차와 함께 줄어들다가 어느 지점을 지나 오히려 커진 상태.

과소적합(Underfitting): 테스트 오차가 학습 오차와 함께 계속 줄어드는 상태, 편차가 큰 상태.

알맞은 모델은 과대적합과 과소적합 사이에 존재, 이 개념은 '편차-분산 트레이드오프(Bias-Variance Tradeoff)'로 설명할 수 있음.

분산: 학습에 사용하는 데이터셋이 바뀜에 따라 모델의 출력이 얼마나 변하는지를 나타냄.

편차: 학습 데이터셋과 모델이 계산한 결과가 엇나가는 것을 '편차'라고 함.

분산이 크다는 것은 데이터셋이 조금 바뀌어도 모델이 많이 변화하는 것, 잡음까지 외워버린 것.

과적합 상태는 모델의 분산이 너무 커져버린 상태.

편차가 크다는 것은 학습 데이터셋의 정보를 모델이 충분히 학습하지 못한 것. 과소적합 상태.

지도학습 모델링의 목적은 모델의 분산과 편차를 모두 줄이는 것.

 

과소적합 상태 탈출: 더 복잡한 모델을 학습시키기

과대적합 상태 탈출: 1. 학습데이터의 양을 늘리기 2. 덜 복잡한 모델 사용 3. 정칙화(Regulariazation)

Examples of Regulariazation) Ensemble(Bagging, Boosting)기법, 데이터 증강, 정규화 손실함수(Penalized Loss Function) 사용, 조기 학습 정지(Early Stopping) 등. 인공 신경망 모델은 몇몇 노드를 비활성화하는 Dropout기법을 사용함.

 

준지도학습(Semi-Supervised Learning): 레이블을 갖고 있는 데이터와 레이블이 없는 데이터를 모두 사용해 모델을 만드는 문제

능동적 학습(Active Learning): 준지도학습 설정에서 모델이 능동적으로 다음 레이블링돼야 할 데이터를 선택할 수 있는 상황에서 모델을 만드는 문제 - 레이블링에는 많은 비용이 들기 때문에 효율적임.

 

         3) 지도학습 프로세스

데이터 수집 > 데이터셋 정의 > 지도학습 기법 선택 및 모델 구축 > 모델 성능 평가 > 모델 선택 > 모델 배포 + 피드백 > 데이터 수집 >>

 

1. 데이터 수집:

'도메인 지식' 활용하여 데이터의 품질 점검

 

2. 데이터셋 정의:

데이터를 용도별로 나눠 저장(학습, 검증, 테스트)

검증 데이터셋(Validation Set)은 테스트 데이터셋과 비슷한 개념으로, 검증 오차(Validation Error)를 계산해 모델의 성능을 측정하고, 이렇게 측정한 모델 성능을 사용해 최종 모델을 선택합니다. 하이퍼파라미터를 결정하는 데 쓰이는 데이터로, 현업의 관례에 따라 훈련, 검증, 테스트 데이터셋은 보통 6:2:2의 비율로 정하지만, 훈련 테스트셋을 가장 큰 비중으로 하면 나머지 데이터셋의 비중을 임의로 변경가능.

클래스 불균형: 분류 문제에서 발생, 클래스가 한쪽으로 치우쳐 있는 상황으로 데이터가 적은 클래스의 특성을 학습하기 어려움.

층화 추출법(Stratified Sampling): 데이터가 여러 클래스에 고르게 분포되어 있을 때 그 비율을 유지하면서 무작위로 데이터 추출해 데이터셋을 정의.

Oversampling / Undersampling: 클래스의 비중을 비등하게 맞춰주는 기법. 이상치 탐지(Anomaly Detection) 분야와 연관하여 큰 가치가 있음.

리샘플링: 데이터가 부족할 때 데이터셋의 일부를 여러 번 다시 추출해 작은 데이터셋을 여러 개 만들고, 이를 새로 수집한 데이터로 간주하여 사용.

ex) 교차검증(Cross-Validation), 부트스트래핑(Bootstrapping),  잭나이프 샘플링(Jackknife Sampling) 등

교차검증: k-fold Cross-Validation, 테스트 데이터셋을 제외한 데이터셋을 여러 개의 부분 집합으로 분할한 후 각 부분 집합이 학습 데이터셋과 검증 데이터셋 모두에 사용될 수 있도록 학습과 모델 성능 평가를 여러 번 진행.

 

3. 지도학습 기법 선택 및 모델 구축:

지도학습 기법) 선형 회귀, 의사결정나무(분류), 다층신경망(모수를 사용하는 모델)

손실함수('목적 함수')를 정의하고, 이 값을 최적화

하이퍼파라미터: 다층신경망 모델 - 은닉층의 개수나 노드 수, 의사결정나무 모델 - 모델의 깊이 등 학습 과정 중에도 변하지 않는 값.

 

4. 모델 성능 평가

예측 모델 - MSE(Mean Squared Error), RMSE(Root Mean Squared Error), MAE(Mean Absolute Error)

분류 모델 - 정오분류표(Confusion Matrix), 미리 지정한 cut-off 또는 역치(Threshold)의 초과 여부에 따라 클래스 분류

일반적인 성능 평가 지표는 정확도(Accuracy)로 평가. 특정 클래스가 더 중요하다면 클래스에 따라 정밀도(Precision), 재현율(Recall), 특이성(Specificity), F1 점수(F1 Score), AUROC(Area under Receiver Operating Characteristic) 사용.

ex) 정밀도는 모델이 중요 클래스라고 예측한 것 중에서 실제로 중요 클래스에 해당하는 데이터의 비율(실제/모델), 재현율은 실제로 중요 클래스에 속하는 데이터 중 모델이 중요 클래스라고 예측한 데이터의 비율(모델/실제)

 

5. 모델 선택

모델 구축에서 모수 추정을 제외한, 지도학습 기법 선택과 하이퍼파라미터 선택을 포함하는 과정으로, 지도학습 기법과 하이퍼파라미터의 조합 중 가장 적절한 것을 고르는 과정입니다. 모델 성능 평가에서 소개한 지표를 활용해 각 조합의 성능을 평가한 후 가장 좋은 성능의 조합을 선택. - 검증 데이터셋(Validation Set) 이용하여 모델 선택

일반적으로 현업에서는 도메인 지식을 이용해 지도학습 기법을 선택하고, 하이퍼파라미터 선택에는 좀 더 효율적인 탐색 알고리즘을 사용.

하이퍼파라미터 탐색 기법에는 그리드 서치(Grid Search), 랜덤 서치(Random Search), 베이지안 최적화(Bayesian Optimization) 등이 있습니다.

Grid Search - 가능한 범위에서 하이퍼파라미터 값을 일정한 간격으로 분할해 탐색하는 방법

Random Search - 무작위로 하이퍼파라미터 값을 찾는 방법

Bayesian Optimization - 특정 하이퍼파라미터 값이 최적일 확률을 베이지안 방식으로 계산해 최적의 하이퍼파라미터 값을 체계적으로 탐색하는 것

 

6. 모델 배포 - 피드백

시간 일관성(Time Consistency)의 부재가 발생하거나 개념 변화(Concept Drift)가 일어날 수 있기 때문에 꾸준한 관리 필요.

시간 일관성 데이터셋(Time Consistency Data Set)을 정의해 모델을 검증하기도 함. 변화하는 데이터를 다룰 때는 모델의 성능을 정기적으로 점검해야 하고, 성능 저하가 관측되면 과거의 데이터는 제외하고 새로 수집된 데이터만으로 모델을 다시 구축해야 합니다.

 

          4) 지도학습 기법

          선형회귀(Linear Regression): 독립변수와 종속변수와의 관계를 밝히는 데 사용하는 기법.

예측을 강화하기 위해 '목적함수'에 '정칙화항'을 추가한 '정규화 선형회귀 기법'을 많이 사용함.

ex) Ridge, LASSO, Elastic Net

변수 선택과 차원 감축을 위한 '전진선택회귀(Forward Selection Regression)', '후진제거회귀(Backward Elimination Regression)', '단계적회귀(Stepwise Regression)' 등이 있음.

기본적인 선형회귀 모델은 예측 모델이지만, '로지스틱회귀(Logistic Regression)'라는 특수한 형태의 회귀식을 사용하면 분류 문제를 해결하는 데도 사용할 수 있음.

 

          서포트 벡터 머신(SVM, Support Vector Machine):

데이터의 카테고리를 정하는 경계선을 찾아 분류하는 지도학습 기법입니다. 경계선이 선형으로 그려지기 때문에 데이터의 모양에 따라 고차원으로 사상하는 '커널 트릭' 작업이 필요할 때도 있다. 해당 경계선을 찾는 데 사용하는 '서포트 벡터', '마진', '경계', '2차 계획법' 등의 개념을 사용해 회귀 분석을 할 수도 있는데, 이를 '서포트 벡터 회귀(Support Vector Regression, SVR)' 라고 함.

 

          의사결정나무(Decision Tree)

각 입력 변수에 재귀적인 if-then 규칙을 적용해 결과를 예측하는 기법.

'Random Forest', 'Boosting Tree'와 같은 앙상블, 부스팅 기법을 함께 사용하기도 함.

결과의 가중 평균을 취하는 방식으로 회귀 분석에 사용하기도 함.

 

          k-근접 이웃법(k-Nearest Neighbors, k-NN)

예측 대상과 가장 근접한 k개의 레이블을 바탕으로 예측하고자 하는 데이터의 레이블을 정하는 지도학습 기법.

Lazy Learning: 레이블 예측에 관심이 있는 데이터에서만 예측을 진행하면 되기 때문에 따로 '학습' X.

복잡한 모수 추정 과정을 거치지 않아도 된다는 간편함이 있지만, 가장 근접한 k개의 데이터를 찾아내야 하므로 특성과 데이터 수가 증가할수록 연산량의 부담이 매우 커집니다.

 

          인공 신경망 - 퍼셉트론과 다층퍼셉트론

인공 신경망(Artificial Neural Network, ANN)은 선형 함수와 활성화 함수로 이뤄진 퍼셉트론을 여러 개 사용하는 방식의 머신러닝 기법.

비정형 데이터(이미지, 텍스트, 음성 등)와 같이 특성 사이의 관계를 사람이 쉽게 알기 힘든 데이터를 모델링하는 데 쓰임.

이렇게 여러 층의 퍼셉트론층을 쌓아올리는 것이 '딥러닝(Deep Learning) 기법'.

important words: 가중치, 활성 함수, 단일 은닉층(Single Hidden Layer)' 모델 - Universal Approximation Theorem, 다층 퍼셉트론, '순전파' 과정 - 다층 페섭트론에서는 입렵값 층에서 은닉층으로, 은닉층에서 그다음 은닉층으로 가중치를 곱하고, 활성함수를 적용 

 

          인공 신경망 학습

역전파(backpropagation) - 출력값과 정답 값의 차이인 오차를 출력값에서 입력값 방향으로, 즉 모델의 역방향으로 전파해 각 가중치가 조정되도록 하는 것.

손실함수 - 오차를 계산하는 식, 주어진 데이터와 문제, 모델의 목적을 고려해 결정, ex)평균제곱오차(MSE), 교차엔트로피(Cross-Entropy)

경사하강법(Gradient Descent)

확률적 경사하강법(Stochastic Gradient Descent, SGD)

모멘텀(Momentum)

AdaGrad, RMSProp, Adam 등과 같은 여러가지 최적화 방법이 있음.

 

          인공 신경망 - CNN(Convolutional Neural Network)

 합성곱(Convolution) 연산을 이용하는 인공 신경망 모델, 이미지, 비디오 등과 같은 데이터에서 뛰어난 성능을 발휘함.

합성곱층(Convolutional Layer), 풀링층(Pooling Layer), ReLU층, 완전 연결층(Fully Connected Layer) 등으로 구성돼 있음.

최대풀링(Max-pooling)/최소풀링(Min-pooling)

 

          인공 신경망 - RNN(Recurrent Neural Network)

텍스트, 보이스, 시계열 등의 순서열(Sequence) 데이터에 뛰어난 성능을 발휘하고, 번역, 감성 분석, 시계열 예측 등과 같은 분야에서 많이 활용되고 있음. 이전 시점의 은닉 상태와 현재 시점에 주어진 입력값을 받아 현재 시점의 은닉 상태를 계산하는 부분과 은닉 상태로부터 출력값을 계산하는 부분으로 나눌 수 있는데, RNN이 순서열 데이터에 좋은 성능을 발휘하는 이유는 첫 부분에서 찾을 수 있음.

But, 순서열이 길어지면 모델이 먼 시점에 대한 상관성을 표현하지 못하는 문제 발생 - 기울기 소실(Vanishing Gradient), 기울기 폭발(Exploding Gradient)

이를 해결하기 위해 LSTM(Long Short-term Meomory), GRU(Gated Recurrent Unit) 등의 모델이 제안

기본적인 RNN 모델들은 양방향의 상관성 정보를 추출할 수 없는 구조로 이를 해결하기 위해 '양방향 RNN(Bidirectional RNN)'이 제안.

 

딥러닝 모델 구조

- 오토인코더(Autoencoder)

- GAN(Generative Adversarial Network)

- 트랜스포머(Transformer)

 

임베딩(Embedding): 어떤 데이터를 숫자형 데이터인 벡터로 바꾸는 작업 혹은 그 결과로 얻은 벡터 자체 

- One-Hot Encoding

- Dense Representation: BERT, TF-IDF, skip-gram, Word2Vec, FastText, ELMo, GPT

어텐션(Attention)

 

          5) 비지도학습

         - 비지도학습 개요

데이터에 레이블이 없을 때 사용.

간접적 또는 정성적 평가 지표를 이용해 모델의 성능 평가

현실에서 오히려 더 많이 마주침.

 

         - 비지도학습 프로세스

정량적 지표

- 하이퍼파라미터를 찾는 데 사용(k-means - clusters 갯수, PCA - 주성분의 개수, GMM - 가우시안 분포의 개수)

- 군집내의 데이터가 얼마나 가까운지와 군집간의 거리가 얼마나 먼지를 측정

- 실루엣(Silhouette): 위의 방법을 직접적으로 사용해 군집의 질을 단편적으로 측정

- 각 군집이 내포하는 분산의 합이 전체 데이터의 분산에서 차지하는 비중 - 설명 분산(Explained Variation)

군집의 개수에 따라 설명 가능한 분산을 나타낸 후 Elbow 방법을 사용할 수도 있고, PCA일 때 스크리 그림(Scree Plot)을 사용해 비슷한 분석을 진행할 수도 있습니다. 

정보이론적 접근법: 군집화의 왜곡을 평가 지표로 사용

교차검증법: 각 하이퍼파라미터로 테스트셋에서 군집화를 적용한 후 평가 지표를 각 테스트셋에서 계산해 사용하는 교차검증법도 있습니다.

분산분석(ANOVA) 방법: 각 군집이 잘 나눠졌다고 가정한 후 각 군집 간에 통계적으로 유의한 차이가 있는지를 검정

이 단계가 마무리되면 각 군집의 특성을 알 수 있음. 정성적 평가는 시각화를 동반할 때가 많기 때문에 PCA, t-SNE와 같은 기법을 사용해 사람이 볼 수 있는 3차원 이하의 공간으로 차원 축소를 진행.

 

         6) 비지도학습 기법

         k-means

군집 분석(Clustering) 방법 중 하나

첫 번째 가정 : 중심점(Centroid)을 기준으로 기준으로 그 주변에 분포한다는 것

두 번째 가정 : 한 개체는 한 군집에만 속한다는 것

세 번째 가정 : 각 개체와 그 개체가 속한 군집의 중심점 사이의 거리를 모두 더한 값이 작을수록 군집화의 결과가 좋다는 것

다섯 가지의 한계점 :

첫째, k 값, 즉 몇 개의 군집을 데이터를 나눌지 미리 정해야 한다는 것 - 해결법: 계층적 군집화(Hierarchical Clustering)

둘째, 중심점의 초깃값에 따라 군집화 결과가 바뀔 수 있다는 것 - 해결법: 초깃값 테스트

셋째, 군집 대상이 블록 집합이 아닐 때는 군집화 성능이 저하된다는 것 - 해결법: DBSCAN 알고리즘 이용

넷째, 이상치에 민감 - 해결법: k-medians 이용

다섯째, 한 개체가 한 군집에만 속하는지 여부만 알 수 있고, 속하는 정도는 표현 X - 해결법: fuzzy C-means(Soft k-means)이용

 

         PCA(Principal Component Analysis)

가장 대표적이고 빈번하게 사용되는 차원 축소(Dimensionality Reduction) 방법

수직인 부분 공간(Orthogonal Subspace)으로 사영하는 비지도 학습 기법

분석의 대상이 되는 데이터가 고차원일 때 차원의 저주는 물론 변수 간 선형 상관성이나 시각화의 어려움 등 여러 가지 문제 해결

한계점:

첫째, 변수의 단위에 따라 PCA 결과가 달라질 수 있음 - 해결법: PCA 전에 각 변수를 표준화해 해결

둘째, 선형 변환을 이용하기 때문에 주어진 변수끼리 비선형 관계에 있을 때 적절한 차원 축소 어려움 - Kernel PCA/Autoencoder

셋째, PCA는 범주형 데이터에는 사용할 수 없음 - MCA(Multiple Correspondence Analysis)를 사용해 해결

 

          GMM(Gaussian Mixture Model)

가장 흔히 사용되는 모수적 혼합 모델(Parametric Mixture Model) 중 하나로, 여러 개의 가우시안 확률밀도함수를 조합해 주어진 데이터의 확률밀도함수를 추정하는 비지도학습 군집 분석 기법.

잠재 변수를 이용해 각 가우시안 분포의 평균과 분산을 EM알고리즘으로 추정해 데이터의 확률밀도함수를 모델링.

보편 추정자(Universal Approximator): 이론적으로는 충분한 수의 가우시안 확률 밀도함수를 사용하기만 한다면 모든 확률밀도를 추정할 수 있음.

 

         오토인코더(Autoencoder)

오토인코더는 차원 축소, 이상치 탐지(Anomaly Detection), 노이즈 제거(Denoising) 등에 자주 사용되는 인공 신경망 모델

주어진 데이터의 차원을 축소했다가 복원(Reconstruction)하는 과정에서 데이터의 중요한 특성을 학습하는 '비지도학습 기법' 또는 '자기 지도학습 기법'입니다. 이 구성은 인코더(Encoder), Decoder, 코드(Code/Bottleneck/Latent Feature 등으로 불림, 복원 오류(Reconstruction Error)로 이뤄져 있음. Representation: 복원 오류가 적게 잘 표현되어야 함.

관련 모델: Stacked Autoencoder, Sparse Autoencoder, Denoising Autoencoder, VAE(Variational Autoencoder)

 

         GAN(Generative Adversarial Network)

이미지 생성(Image Generation)에 많이 이용되는 인공 신경망 모델로, 두 모델을 서로 적대적으로 학습시키는 비지도학습 기법

생성 모델(Generator)과 실제 이미지와 생성 모델이 생성한 가짜 이미지를 구분하는 것이 목표인 분류 모델(Discriminator)로 나뉨.

두 모델은 서로 적대적/경쟁적으로 학습

목표: 생성 모델이 만든 이미지가 분류 모델이 진짜인지 구분하기 어려울 정도로 실제에 가깝게 하는 것

 

         7) 강화지도

 

8. 데이터 파이프라인 및 클라우드

     1) 데이터 파이프라인

         - 데이터가 지나가는 길, ex) 쇼핑몰 ~ 데이터 웨어하우스 까지 이동한 경로

         - ETL(Extraction, Transformation, Load): 추출, 가공, 적재를 뜻하며 데이터 파이프라인 중 하나

         - 아키텍처: 데이터의 특성과 사용자의 요구사항등을 고려해 다양한 데이터 솔루션이나 플랫폼을 조합해 만든 데이터 처리 구조.

         - 고려사항

         1. 데이터의 유입 방식 / 변동 가능성 - Bounded Data(고정 데이터) & Unbounded Data(추가 유입 가능성 o)

         2. 데이터 처리 방식 - '배치(batch)' & '스트리밍(streaming)' / Lamda Architecture(batch & streaming 둘 다 적용 가능)

         3. 데이터 저장 방식 - 데이터 레이크 / 웨어하우스, 어떤 분산 저장 시스템 사용할지, 데이터베이스 종류에 따라 파이프라인에 반영.

정형 데이터: 숫자로 표현된 데이터 / 숫자로 표현하기 좋은 데이터

비정형 데이터: 텍스트, 이미지, 사운드, 비디오 데이터 등이 이에 해당 / 비정형 데이터를 사용하는 데 필요한 새로운 데이터 파이프라인과 아키텍처에 대한 고민이 필요함.

 

     2) 클라우드

         - 클라우드 서비스: 설비를 갖추기 위해서는 많은 비용필요, 이러한 부담을 줄이기 위해 인터넷을 이용해 원격으로 외부 자원을 사용할 수 있는 서비스

         - 기업이 자체적으로 IT 설비를 갖추고 이용하는 것을 '온프레미스(On-Premise)'라고 함.

         - 외부 설비를 필요할 때 마다 사용하는 클라우드 방식을 '온디맨드(On-Demand)' 또는 '오프 프레미스(Off-Premise)'라고 함.

         - Data Engineer의 주요 업무가 데이터 파이프라인을 클라우드상에서 구현하는 것. 여러 클라우드 서비스 공부 필요.

         - 클라우드 서비스 업체는 자사 클라우드 서비스 관련 자격증 제도를 운영하고 있습니다.

         - ex) Amazon - AWS, Microsoft - Azure, Google - GCP

         - 클라우드 컴퓨팅 종류: Public Cloud, Private Cloud, Hybrid Cloud, Multi Cloud