ML/DL 관련 개념(+주관적 해석) 정리

 

1. 지도학습과 비지도학습의 차이점은?

- 지도학습 : label이 있는 데이터로 학습을 진행하는 것(회귀, 분류), feature와 target간의 관계를 잘 설명하는 선, 혹은 어떠한 기준점을 찾는 것이 핵심

- 비지도학습 : label이 없는 데이터로 학습을 진행하는 것(군집화, 연관규칙학습), 데이터 간 거리 혹은 관계를 바탕으로 어떠한 패턴 혹은 변수 간의 응집도를 파악하는 것이 핵심

 

2. 분류모델 정리

- KNN : 거리가 가까운 K개의 값들을 동일한 값으로 분류하는 것

- Naive Bayes : 조건부확률을 기반으로, B라는 사건이 일어났을 때를 가정해서 A가 일어날 확률(모두 독립이라 가정)

- SVM : 최대 마진을 가지도록 deicision line을 그어 학습을 진행(n차원일 때 유리)

- Decision tree : 불순도가 낮은 방향으로 분기가 나눠지면서 학습 진행

 

3. 회귀모델 정리

- 선형회귀 : 오차의 평균을 최소화할 수 있는 기울기와 절편을 찾는 것

 

4. lasso와 ridge란 무엇인가?

- lasso : l1 norm을 사용하여, 규제항을 통해 감쇠하는 효과가 있고 0으로 만들 수 있어 feature selection에 유리

- ridge : l2 norm을 사용하여, 실제값과 예측값의 차이 제곱이라는 수식을 가져 0으로 만들 수 없어 일반화 능력 개선 효과

 

5. 고유값과 고유벡터란?

- 행렬을 대표할 수 있는 값. 통계에서 평균과 분산이 있듯이 행렬에서는 위 개념이 존재

- 어떠한 행렬 A를 선형변환했을 때, 벡터를 고유벡터라고 부르고 크기를 조정하는 값은 고유값이라고 부름

 

6) PCA란?

- 데이터가 어떤 방향으로 분산되어 있는지 찾는 기법

- 공분산행렬 -> 고유값분해 -> 고유값, 고유벡터 찾기 -> 주성분을 바탕으로 한 차원축소

 

7) SVD

- 직교행렬, 대각행렬, 직교행렬을 바탕으로 행렬을 분해하는 기법

- 다시 정리

 

8) precision, recall, f1의 차이

- preicision : 모델 입장에서 평가지표로 정밀도라고 하며, 모델이 실제라고 예측한 값 중 실제로 맞은 값

- recall : 실제 값 입장에서 평가지표로 재현율이라고도 하며, 실제 값 중에서 모델이 예측하여 맞춘 값

- f1 : precision과 recall의 조화평균. 불균형 데이터에서는 특히 한 쪽으로 쏠릴 수 있기 때문에 조화평균으로 평가 진행

 

9) 모델 파라미터 추정 방법은?

- MLE : likelihood가 최대가 되도록, 즉 데이터가 분포로부터 나왔을 가능도를 최대로 하는 기법. 확률을 모두 곱한다

- MAP : 관측결과와 사전지식(사전확률)을 결합해서 최적의 모수를 찾아내는 방법

 

10) Kernel trick이란?

- 저차원 공간 -> 고차원 공간으로 매핑하여 linear하게 구분성르 긋도록 해주는 기법

 

11) FC layer(fully connected layer) = dense layer

- 모든 층의 뉴런이 다음 층에 모든 뉴런과 연결된 상태

- 2차원 벡터를 1차원 벡터로 평탄화, 활성화 함수, softmax로 분류할 때 사용되는 layer

 

12) 활성화함수

- 입력값을 non-linear하게 변환해주는 기법

- 값을 좀 더 부드럽게 혹은 직관적으로 변환해준다. (ex - relu, sigmoid)

 

13) 역전파

- 가중치 w와 b를 도출하기 위해, 출력에서 입력방향으로 chain rule을 활용하는 것

- w와 b를 구하는 것은, 즉 graident descent를 이용하여 가중치 업데이트를 해주기 위한 것

 

14) 모델의 학습과정

- 순전파 -> 역전파 -> 가중치 업데이트 -> 반복(오차가 최소로 될 때까지)

 

15) 경사하강법

- 오차함수를 따라 일정크기만큼 접선의 기울기 방향으로 내려가면서 최소값을 찾는 방법

 

16) convolution layer

- 합성곱을 이용하여 feature를 추출하는 layer. 윈도우를 일정 간격으로 이동하면서 계싼

- padding : 입력 데이터에 0을 채워 출력 크기를 동일하게 적용

- pooling : 데이터의 크기를 줄이는 기법. average pooling과 max pooling이 있음

 

17) batch normalization

- 정규화를 통해 학습을 더 빨리하기 위해서, local optimization에 빠지지 않도록 하기 위해 사용됨

- local optimization에 빠지지 않도록, 즉 데이터의 격차를 줄여 기울기가 널뛰게 하지 않도록 하는 효과

 

18) gradient vanishing이 무엇이고 어떻게 해결하는가

- gradient가 너무 작아 소멸되어, chaine rule에서 값의 연산이 제대로 이루어지지 않는 현상

- batch normalization을 통해 해결할 수 있음(batch 단위로 평균과 분산을 바탕으로 값을 정규화 시키면 값의 극단치가 평균점으로 회귀)

 

19) RNN 

- 입력값을 기억하기 위해, 순차적으로 학습이 진행되며 신경망 구조의 순환이 추가 된 것

- 단점은 단어의 SIZE가 커질 때 context vector가 모두 함축하지 못함(+장기 의존 현상) -> Attention이 나온 이유

 

20) LSTM 

- 게이트를 추가하여(일종의 컨베이어벨트) 기억할 것은 오래 기억하고, 잊어야 할 것은 잊는 게이트를 추가하여 출력값을 넘기는 기법

 

21) Attnetion

- decoder에서 encoder의 모든 출력값들을 참고하는 기법. attention weight를 활용하여 중요한 단어에 집중할 수 있는 메커니즘

 

 

728x90
반응형
  • 네이버 블러그 공유하기
  • 네이버 밴드에 공유하기
  • 페이스북 공유하기
  • 라이프코리아트위터 공유하기
  • shared
  • 카카오스토리 공유하기