출처 : https://www.springboard.com/blog/machine-learning-interview-questions/
머신러닝 기초
- Bias & Variance
- Bias : 참값과 추정값들의 차이
- Variance : 추정값들의 흩어진 정도
- train data에 bias를 최대한 낮출 경우 모델 복잡도가 높아져 variance가 커지고,
variance를 줄이기 위해 모델 복잡도를 낮출 경우 bias가 높아지는 trade-off 관계가 존재 - Supervised & Unsupervised ML
- 지도 학습 (Supervised Learning) : 정답 알려주며 학습, label된 train data 필요, 분류 + 회귀
- 비지도 학습 (Unsupervised Learning) : 정답을 따로 알려주지 않는 학습, 군집화
- 강화 학습 (Reinforcement Learning) : 상/벌 reward를 주어 상을 최대화 및 벌을 최소화 - KNN vs K-means
- KNN : 지도 학습
- K-means : 비지도 학습 - ROC curve
- 다양한 임계값에서 True Positive Rate(=TP/TP+FN, 정답이 Positive인 것들 중 정답 맞춘 비율)와 False Positive Rate(=FP/FP+TN, 정답이 Negative인 것들 중 정답 맞춘 비율) 값을 나타낸 것
- ROC curve 면적인 AUC가 클수록 정확도 높다고 판단 - Precision & Recall
- Precision = TP / (TP+FP)
- Recall = TP / (TP+FN) - Bayes' Theorem
- 사전 지식이 주어졌을 때의 사후 확률
- P(A|B) = P(B|A)P(A) / P(B)
- P(A) : A의 사전확률, P(B) : B의 사전확률, P(B|A) : A가 주어졌을 때 B의 조건부 확률, P(A|B) : A의 사후확률 - Naive Bayes
- 특성 사이 독립
- 실제 적용이 가능함에도 불구하고 실제 데이터에서는 사실상 볼 수 없는 가정이므로 'naive'라고 칭함
- 조건부 확률을 모두 곱하여 구하는 것이 실제로는 볼 수 없는 가정이므로 - Lasso (L1 Regularization) & Ridge (L2 Regularization)
- 정규화를 통해 계수 크기를 줄여 다중공선성을 방지하며 모델을 더욱 단순하게 만듦
- Ridge : 모든 항에 오차를 확산 (라플라스 사전확률)
- Lasso : 가중치를 1 또는 0으로 할당하는 변수 많도록 더 sparse하며 binary함 (가우시안 사전확률) - Type 1 & Type 2 Error
- Type 1 : False Positive
- Type 2 : False Negative - 푸리에 변환 (Fourier Transform)
- 일반 함수를 대칭 함수의 중첩으로 분해
- 오디오 신호, 센서 데이터에서 feature 추출 시 사용 - Probability & Likelihood
- Probability : 관측값(구간)이 분포 안에 얼마의 확률로 존재할지 나타냄 (확률 분포 고정)
- Likelihood (가능도) : 관측값이 어떤 확률 분포에서 왔을지에 대한 확률
- Discrete 사건 : 확률 = 가능도
- 연속 사건 : 특정 사건이 일어날 확률이 전부 0으로 계산되어 확률 ≠ 가능도 = pdf 값
- Maximum Likelihood (최대 우도 추정) : 각 관측값에 대한 총 가능도를 최대로 하는 분포 - Deep Learning & Machine Learning
- 딥러닝은 머신러닝의 일부로, 뉴럴 네트워크를 통해 역전파 등으로 학습 진행 (unsupervised) - Generative & Discriminative model
- Generative model : 데이터가 생성되는 과정을 p(Y), p(X|Y)로 정의하고 베이즈 정리를 통해 p(Y|X)를 간접 도출, 데이터 범주 분포를 학습
- Discriminative model : 데이터가 주어졌을 때 레이블이 나타날 조건부확률 p(Y|X)을 직접적으로 반환, 결정경계를 학습 - Cross-Validation
- 작은 데이터셋에 대해 모든 데이터가 최소 1번 이상 test set으로 쓰이게 하는 교차 검증 - Decision Tree
- Pruning(가지치기)을 통해 모델 복잡성 줄이고 예측 정확도 높이기 위해 예측력이 약한 가지는 제거 - Model Accuracy & Performance
- Accuracy Paradox : 모델 성능 측정 시 정확도만 가지고 판단하는 것은 좋은 지표가 아님
- ex: 범주 A 발생률이 지배적이고 test set의 99%가 범주 A이면 정확도는 높아짐 → Precision, Recall 등 이용 - F1 score
- 모델 Precision과 Recall에 대한 조화 평균
- 조화 평균은 큰 값에 패널티를 주어 작은값 위주로 평균을 내어 imbalanced data에 유리 - Ensemble
- 모델 과적합을 감소시키고 더 robust 하게 만들어 줌
- Bagging : data를 bootstrap하여 각 dataset에 모델을 만든 뒤 평균 또는 voting으로 결과 도출 (variance 감소)
- Random Forest : Bagging에서 모델이 가지치기를 할 때 m개의 변수만 고려 (전체 변수 개수의 제곱근)
- Boosting : 잘 학습되지 않은 data에 대해 가중치를 주어 학습 (bias 감소) - 과적합(overfitting) 피하기
- 모델 간단하게 만들기 (변수 개수 줄이기)
- k-fold cross validation 사용
- 정규화 사용 - 평가 지표
- 눈금 의존 오차 : MAE(Mean Absolute Error, 평균 절대 오차), RMSE(Root Mean Squared Error, 제곱근 평균 제곱 오차)
- 백분율 오차 (단위 상관 X) : MAPE(Mean Absolute Percentage Error, 평균 절대 백분율 오차) - Logistic Regression
- 회귀 함수를 sigmoid 함수를 통해 분류하는 것으로, 일정 threshold 이상 넘을 때를 기준으로 분류
- Odds : 사건 A가 발생하지 않을 확률 대비 일어날 확률 (odds를 통해 sigmoid 함수 도출 가능) - Kernel Trick
- 해당 차원 좌표를 계산하지 않고 고차원 공간에서 활성화할 수 있는 커널 - R square
- 선형 모델이 주어진 자료에 적합한 정도를 측정하는 결정 계수
- 1 - 추정 모형 MSE / 평균 관측 값 MSE
딥러닝 기초
- 활성화 함수(Activation Function) 종류
- sigmoid : 역전파 과정에서 기울기 소실되는 문제 발생
- tanh : sigmoid의 기울기 소실 문제 해결
- ReLU : 특정값에 수렴하지 않음
- Leaky ReLU : 음수에서 기울기가 0되는 ReLU 문제 해결
- softmax : 다중 클래스 분류 시 사용 - Loss Function
- MSE
- Cross Entropy - Optimizer
- 배치 경사 하강법 : 오차 구할 때 전체 데이터 고려
- 확률적 경사 하강법 (SGD) : 오차 구할 때 랜덤으로 1개 데이터 고름
- 미니 배치 경사 하강법 : 오차 구할 때 정해진 개수 데이터 고름
- Momentum : 직전 SGD 접선 기울기 일부 비율 반영하여 local minimum 탈출
- Adagrad : 각 매개변수마다 learning rate 다르게 하기
- RMSprop : Adagrad에서 learning rate 과도하게 낮아지는 것 방지
- Adam = Adagrad + RMSprop (방향 + 학습률) - epoch & batch size & iteration
- epoch : 순전파, 역전파가 끝난 상태
- batch size : 매개변수 업데이트 할 데이터 개수
- iteration : 한 epoch 위해 필요한 batch size 수 (=전체 데이터 / batch size) - RNN
- 입출력 sequence 단위로 처리
- 설계방식 : 일대다 / 다대일 / 다대다 - LSTM
- 입력 게이트 : 현재 정보 기억하기 위한 게이트
- 삭제 게이트 : 기억을 삭제하기 위한 게이트
- 출력 게이트 : 출력을 위한 게이트 - GRU
- 리셋 게이트 : 과거 정보 일부 지우는 게이트
- 업데이트 게이트 : 현재 정보 얼마나 취할지 결정하는 게이트
반응형
'REVIEW > INTERN+INTERVIEW' 카테고리의 다른 글
[NLP] 자연어처리 기초 (for 기술면접 대비) (0) | 2020.06.25 |
---|---|
[CS] Python 기초 (for 기술면접 대비) (2) | 2020.06.25 |
[CS] 자료구조 (for 기술면접 대비) (0) | 2020.06.25 |
[INTERVIEW] 엔씨소프트 2020 Summer Intern 면접 준비 (10) | 2020.06.16 |
[INTERVIEW] 네이버 NLP 직군 인턴 면접 후기 (0) | 2020.02.25 |