AI TECH/TIL

week7,8 면접 준비

prefer_all 2022. 12. 14. 11:03

생각이 필요한 나만의 답변

Q. 좋은 모델의 정의는 무엇일까요?

 

더보기

모델을 사용하는 이유는 과거의 데이터들을 가지고 미래에 들어올 데이터에 대한 결과를 예측하기 위함이다. 모든 경우의 수에 대해서 학습데이터를 모을 수 있다면 좋겠지만 그것은 현실적으로 불가능하기 때문에 일반화 능력이 잘 된 모델이 좋은 모델이라고 할 수 있다.

 

그러나 서비스의 목적에 따라, 좋은 모델의 정의가 달라질 수 있다. 예를 들어 속도가 중요한 서비스는 약간의 성능을 포기하더라도, 자원을 덜 사용하는 모델이 적합할 수 있다.


앙상블

 

Q. 앙상블이란 무엇이고, 방법에는 어떤 것들이 있는가?

 

더보기

앙상블은 여러 개의 classifier가 예측한 결과를 조합해서 최종 결과를 내는 방법이다.

많은 모델들이 있기 때문에, 한 모델에서 예측을 엇나가게 하더라도, 어느 정도 보정이 되기 때문에 보다 일반화된 (generalized) 모델을 만들 수 있다는 장점이 있다.

 

앙상블에는 Bagging, Boosting, Voting이 있다.

1. Bagging :

- 주어진 데이터셋에서 여러번의 복원 랜덤 샘플링을 통해 새로운 데이터셋들을 만들어낸 뒤(Bootstrap) 이를 weak learner로 훈련시켜 결과를 Voting하는 방식이다. 대표적인 예시로는 Random Forest가 있다.

- 병렬로 학습을 진행하며, 오버 피팅이 문제라면 Bagging이 적합하다.

 

2. Boosting :

- 이전 모델의 오답 데이터에 가중치를 높게 부여한 뒤 다음 모델에서 학습을 하는 방법이다. 예시로는 XGBoost, LightGBM가 있다.

- 순차적으로 학습을 진행하며 Bagging에 비해 error가 낮다. 즉, 성능이 좋다. 개별 결정 트리의 낮은 성능이 문제라면 부스팅이 적합하다.

- 하지만 속도가 느리고, 오답을 맞추기 위해 오답에 더 집중하여 학습시키기 때문에 오버피팅의 문제가 있다. 

 

3. Voting :

- 여러 개의 모델들을 학습 시킨 뒤 투표를 통해 결과를 결정하는 방식이다.

- Hard Voting과 Soft Voting으로 나눌 수 있다.

    - Hard Voting : weak learner들의 예측 결과를 다수결 투표로 선정한다.

    - Soft Voting : weak learner들의 예측 확률값의 평균 또는 가중치 합을 최종 결과로 선정한다.

 

 

Q. 여러분이 서버를 100대 가지고 있습니다. 이때 인공신경망보다 Random Forest를 써야 하는 이유는 뭘까요?

 

더보기

Random Forest는 분류, 회귀분석 등에 사용되는 앙상블 머신러닝 모델로, 여러 개의 decision tree(의사 결정 트리)를 형성하고 새로운 데이터 포인트를 각 트리에 동시에 통과시키며, 각 트리가 분류한 결과에서 투표를 실시하여 가장 많이 득표한 결과를 최종 분류 결과로 선택한다. (의사 결정 나무와 bagging을 혼합한 형태) 즉, 문제를 여러 개로 나눈 후 각각에 대한 답을 구하고 그 결과를 합치는 방법이기 때문에, 다수의 서버가 존재해서 병렬적인 처리가 가능할 때 사용하기 용이하다. (랜덤 포레스트는 각 서버를 모델의 특성을 이해하는 단일 결정 트리 (Decision tree) 로 병렬적이게 구성해서 서버를 활용할 수 있다.)

 

반면, 인공 신경망은 end-to-end learning으로, 각 단계에 의존적이다. 따라서 하나의 서버 자체가 모델의 특성을 모두 이해하는 end-to-end 구조로 직렬적이게 구성된다.

 

따라서 서버를 적극적으로 활용할 수 있는 Random Forest가 더 적절하다.

 

 

Q. 50개의 작은 의사결정 나무는 큰 의사결정 나무보다 괜찮을까요? 왜 그렇게 생각하나요?

 

더보기

50개의 작은 의사결정 나무의 결과를 취합하는 것이 경우에 따라 큰 의사결정 나무보다 좋은 성능을 발휘할 수 있다. 구체적으로는 과적합 정도가 적고, 데이터 노이즈에도 강하다.

 

 

여러 개의 의사결정 나무는 random forest처럼 bagging 기법을 사용한 모델로 볼 수 있다.

Bagging (Bootstrapping aggregating)은 샘플을 여러 번 뽑아(Bootstrap) 각 모델을 학습시켜 결과물을 집계(Aggregration)하는 방법이다.

 

 

큰 트리는 작은 편향(bias)와 큰 분산(variance)를 갖기 때문에, 매우 깊이 성장한 트리는 훈련데이터에 대해 과적합(overfitting)하게 될 수있다.

Random Forest 방식으로 학습하면, 트리들의 편향은 그대로 유지하면서, 여러 데이터셋/여러 경우에 대해 학습하기 때문에 분산을 감소시킬 수 있다. 또한 한 개의 결정트리의 경우, train 데이터에 있는 노이즈에 대해 매우 민감하지만, 여러 트리들을 만들면서 평균을 내면, 노이즈에 대해 강인해질 수 있다.

 


Cost, Activation function

Q. Non-Linearity라는 말의 의미와 그 필요성은?

 

더보기

비선형성(non-linear)은 직선적인 특성을 가지고 있지 않다는 뜻이다.

신경망에서는 활성화 함수로 비선형 함수를 써야 한다. 우리가 활성화 함수를 쓰는 이유는 모델의 비선형성을 증가시켜, 기존 특징 공간을 더 좋은 특징 공간으로 변환해 선형 분류가 쉬워지도록 하는 것이다.

 

예를 들어, 활성화 함수로 선형 함수를 쓰면 층을 아무리 깊게 해봤자 'hidden layer가 없는 신경망'과 다를게 없다.

즉, 활성화 함수로 선형 함수를 쓰면 신경망의 층을 깊게하는 의미가 없어진다.

 

Q. Cost function과 Activation function에 대해 설명해주세요.

 

더보기

1. Cost function(비용 함수)은 목표 결과와 모델이 생산한 결과를 어떻게 비교할 것인가를 결정한다.

두 결과의 차이를 의미하는 Cost의 값은 optimizer에 의해 parameter가 갱신되면서 변화한다. 그리고 Cost function의 값이 작아지는 최적의 parameter을 찾는 과정을 최적화라고 부른다.

MSE, MAE, cross-entropy 가 Cost func의 예시이다.

 

2. Activation function(활성 함수)는 입력 신호의 총합을 출력 신호로 변환하는 함수이다. 순전파 시 비선형성을 부과한다.

Sigmoid, Relu, Hyperbolic Tangent 등의 Activation Function를 통해, 어떤 값을 버리고, 어떤 값을 내보낼지를 결정 할 수 있다.

 

+ cost function과 loss function의 차이

 

더보기

loss func는 single data set을 다룬다.

cost func는 전체 데이터의 오차를 다룬다. 즉, loss func의 합(평균에러)를 다룬다.

따라서, 순간 순간의 loss를 판단할 때는 loss func를 사용하고, 학습이 완료된 후에는 cost func를 확인하면 된다.

 

+ task별 사용하는 Cost, Activation function

 

+ sigmoid function과 softmax function를 비교하시오.

 

더보기
sigmoid func softmax func
logistic regression 에서 binary-classification 문제 에서 사용 logistic regression 에서 multi-classification 문제에서 사용
확률의 총 합은 1이 아님 확률의 총 합 = 1
Activation 함수로 사용될 수 있음(실제 사용 하지 않음) 출력층에서 사용됨(확률 표현)
큰 출력 값은 그 class에 해당할 가능성이 높지만 실제 확률 값을 나타내는 것은 아님 큰 출력 값은 그 class에 해당할 가능성이 높다는것을 뜻하며 실제 확률을 나타냄

 

Q. sigmoid보다 ReLU를 많이 사용하는 이유는?

 

더보기

1. Sigmoid보다 ReLU를 많이 사용하는 이유는 vanishing gradient 문제 때문입니다.

Gradient는 Chain Rule에 의해 미분값을 연쇄적으로 곱해주는데, Sigmoid의 경우 기울기가 항상 0과 1사이 값이므로 계속 곱해주면 0으로 수렴할 수 밖에 없습니다.

ReLU는 값이 음수일 때는 기울기가 0, 양수일 때는 항상 1이므로 vanishing gradient 문제를 막을 수 있습니다. (음수일 때는 기울기가 0이여서 Dying ReLU문제가 존재 → Leaky ReLU)

 

2. ReLU 함수는 Sigmoid처럼 특별한 연산이 필요하지 않기 때문에 연산 속도가 빠르다는 장점이 있습니다.

 

Q. Activation function의 종류에 대해 설명해보세요. (sigmoid, tanh, relu)

 

더보기

1. Sigmoid 함수= Logistic 함수

  • 함수값이 [0,1] 로 제한된다
  • 중심값이 0.5 이다
  • Vanishing Gradient 문제

 

2. Hyperbolic Tangent (tanh)

  • 함수값이 [-1,1] 로 제한된다
  • 중심값이 0 이다
  • Vanishing Gradient 문제

 

3. Rectified Linear Unit (ReLU)

  • x > 0 : 기울기 1인 직선, x < 0 : 값 0
  • Sigmoid, tanh에 비해 연산이 빠르다
  • Sigmoid, tanh에 비해 Gradient가 출력층과 멀리 있는 Layer까지 전달할 수 있다. Sigmoid, tanh의 경우, x값이 매우 크거나 작을 때, 미분값이 0에 가까워집니다. 따라서 gradient vanishing에 취약하지만, relu의 경우, x값이 커져도 미분값이 1로 유지되기 때문에 gradient가 출력층과 멀리 있는 Layer까지 전달될 수 있습니다.
  • 특정 범위에서 neuron 이 죽게 된다
  • ReLU activation은 x = 0인 점에서 미분 불가능합니다. Backpropagation을 위해, x = 0인 점에서 특히 1로 정의하여 활용하기도 합니다.
  • 선형이 아닌 비선형
  • 양 극단값이 포화되지 않음

용어 정리

 

Q. Local Minima와 Global Minima에 대해 설명해주세요.

 

더보기

Global Minima는 경사하강법을 통해 Cost Function의 최소값을 찾을때 도달하는 극소점이다.

기울기가 0이 되는 다른 지점을 Local Minima라고 한다.

 

Q. feature vector란 무엇인가요?

 

더보기

feature vector는 데이터의 특징을 정량화한 벡터이다.

 

Q. Cross Validation이란 무엇이고 어떻게 해야 하는가?

 

더보기

Cross Validation(교차 검증)이란 데이터 셋을 train set + validation set으로 분리한 뒤, validation set을 통해 검증하는 방식이다.  


교차 검증은 오버피팅 문제를 해결하고자 한다. 보통은 train set 으로 모델을 훈련, test set으로 모델을 검증한다. 고정된 test set을 통해 모델의 성능을 검증하고 수정하는 과정을 반복하면, 결국 내가 만든 모델은 test set 에만 잘 동작하는 모델이 된다. 즉, test set에 과적합(overfitting)하게 되므로, 다른 실제 데이터를 가져와 예측을 수행하면 엉망인 결과가 나와버리게 된다.    

뉴럴 네트워크 학습에 있어서 많은 hyper parameter가 존재하는데 cross validation을 통해서 최적 hyper parameter을 찾고 값을 고정해서 학습할 수 있다.

+ 교차 검증의 일반적인 방법으로는 k-fold가 있는데 전체 데이터셋을 k개로 나누어 fold 한 개를 validation data로, 나머지 k-1개를 train data로 분할하는 과정을 반복함으로써 train 및 validation data를 교차 변경하는 방법이다.

 

https://prefer-all.tistory.com/110


Q. deep learning이전의 전통적인 인공신경망이 가지는 일반적인 문제점은 무엇일까요?

인공신경망 = 퍼셉트론

 

더보기

인공신경망은 선형적으로만 회귀, 분류를 수행하기 때문에 레이어를 깊게 쌓지 못했고, 때문에 XOR 문제 같은 복잡한 문제를 풀지 못하는 문제점이 있다. 그리고 depth를 조금만 깊게 쌓아도 연산 시간이 오래걸린다.

하지만 시그모이드와 같은 비선형 함수를 선형 모델에 추가하여 XOR 문제를 해결하고, 편미분 체인룰을 사용한 backpropagation(오차역전파) 방법으로 모델을 업데이트할 수 있게 되면서 레이어를 깊게 쌓은 딥러닝 인공신경망이 발전하였다. 그리고 오늘날에는 정규화와 같이 학습을 잘할 수 있는 테크닉이 많아졌다.

 

인공신경망과 머신러닝은 다른 단어이다.

인공신경망은 뉴럴 네트워크 그 자체(모델 하나)를 의미하고, 머신러닝은 여러 모델의 해석을 포함한 모든 과정을 의미한다. 

 

머신러닝

 

Q. 다른 좋은 머신 러닝 대비, 오래된 기법인 나이브 베이즈(naive bayes)의 장점을 옹호해보세요.

 

더보기

NaiveBayes(나이브 베이즈)는 데이터를 나이브(단순)하게 독립적인 사건으로 가정하고, 이 독립 사건들을 베이즈 이론에 대입시켜 가장 높은 확률의 레이블로 분류를 실행하는 알고리즘이다. 즉, 데이터가 각 클래스에 속할 특징 확률을 조건부 확률을 기반으로 계산한다.

 

나이브 베이즈는 가장 단순한 지도 학습(supervised learning) 중 하나로, feature 간의 연관 관계를 고려하지 않는다. 따라서 빠르고, 효율적이다는 장점이 있다. 또, 잡음과 누락 데이터를 잘 처리하므로 스팸 필터링, 비정상적인 상황 감지와 같은 이진 분류에서 활용된다. 범주형 데이터(categorical data)에 효과적이고, 데이터 크기에 상관없이 잘 처리한다.

 

하지만 모든 데이터의 특징을 독립적인 사건이라고 분류하기 때문에 다른 분류 모델에 따라 제약이 크다. 그리고 수치 속성으로 구성된 많은 데이터셋에 대해 이상적이지 않다.

https://prefer-all.tistory.com/246

https://panython.tistory.com/13

https://swingswing.tistory.com/148

http://w3devlabs.net/wp/?p=17273

 

Q. Random Forest의 장단점을 설명해보시오.

 

더보기

Random Forest의 특징은 bootstrap을 이용하여 학습 데이터셋에서 다양한 샘플을 추출하여 일부만 한번의 학습에 사용한다는 것이다. 데이터 샘플링 및 변수 선택을 통해 의사 결정 나무의 다양성을 확보할 수 있다. 이를 통해 예측의 변동성이 줄어들고, 과적합을 방지할 수 있어 결측치에 대해 강건하다는 장점을 가진다.

 

그러나 데이터의 수가 많아지면 의사결정나무에 비해 속도가 크게 떨어지고, 결과에 대한 해석이 어렵다는 단점이 있다.

 

Q. OLS(ordinary least square) regression이란 무엇인가?

 

더보기

단순선형회귀에서 가장 중요한 것은 이러한 에러를 최소화할 수 있는 a와 b 파라미터 값을 찾는 것이다. 이 과정을 Ordinary Least Squared error (OLS)라고 한다. 더 정확하게는, 모델이 에러의 제곱(squared errors)을 최소화하는 것이다.

 

단순선형회귀

 

SVM

 

Q. SVM은 왜 반대로 차원을 확장시키는 방식으로 동작할까요? 거기서 어떤 장점이 발생했나요?

 

더보기

SVM은 비선형 분류 문제를 처리할 때, 데이터의 차원을 증가시켜서 문제를 단순화시킨다.

현재 차원에서 데이터를 선형적으로 분류(classification)하기 힘든 경우에 데이터의 차원을 고차원(무한차원)으로 확장한 후 경계평면(thresholding hyperplane)을 찾는 원리가 사용된다. 데이터의 차원을 확장하는 것은 손쉬운 예로 (x,y)를 (xy, x^2y, xy^2, ... ) 등과 같이 확장하는 것을 생각하면 된다.

 

Q. SVM의 장, 단점을 설명하시오.

 

더보기

SVM의 장점

  • 분류 문제나 예측 문제에 동시에 쓸 수 있다
  • 오류 데이터의 영향이 적다 (오류 데이터에 영향을 덜 받는다, 오류 데이터가 들어와도 이를 잘 처리한다)
  • 신경망 기법에 비해 과적합 정도가 덜하다
    • 모든 관측값들의 벡터를 살필 필요 없이 supporting vector로 decision boundary를 정하기 때문에 업데이트도 빠르고 효율적임.

SVM의 단점

  • kernel과 모델 파라미터를 조절하기 위한 테스트를 여러 번 해야 최적화된 모형을 만들 수 있다 (모형 구축 시간이 오래 걸린다, 여러 개의 조합 테스트가 필요하다)
  • 결과에 대한 설명력이 떨어진다 (신경망과 같이 해석이 어렵고 복잡한 블랙 박스 형태로 되어 있다)
    • 물론 많은 노드의 뉴럴네트워크와 비교하면 SVM은 인자를 바꾸는 parameter가 정해져 있어서 각 parameter의 역할을 확인하는 게 쉽다.

딥러닝

Q. 머신러닝과 딥러닝의 차이는?

 

더보기

딥러닝은 머신러닝의 한 분야로, 인공신경망을 여러 층으로 깊게 쌓아 학습하는 방법이다.

딥러닝은 머신러닝이 처리하기 어려운 비정형 데이터에 적합하다.

또한 머신러닝은 사람이 제공하는 feature을 이용해 학습을 진행하는 반면, 딥러닝은 task에 있어 중요한 feature를 스스로 추출하여 학습한다. 따라서 대량의 데이터라면 딥러닝은 사람이 인지하지 못한 중요한 feature를 찾아낼 수 있다.

 

 

Q. 지금 나오고 있는 deep learning 계열의 혁신의 근간은 무엇이라고 생각하시나요?

 

더보기

Transformer 구조가 딥러닝 계열의 혁신의 근간이라고 생각한다.

Transformer는 auto-regressive 구조, 순환 구조로 인한 gradient vanishing, exploding 등 기계 번역 분야에서 LSTM, GRU의 한계를 극복하기 위해 제안되었지만, 현재는 NLP뿐만 아니라 CV 분야에서도 좋은 성능을 보여주고 있다.

 

encoder + decoder 구조는 다양한 task에 적용 가능하고, attention 메커니즘을 통해 병렬화가 가능하고 auto-regressive 구조의 한계를 극복할 수 있게 되었다.


정규화

 

Q. 정규화를 왜 해야 할까? 정규화의 방법은 무엇이 있는가?

* Normalization VS Regularization

 

더보기

정규화는 Generalization(일반화)가 잘 되도록 학습에 반대되도록 규제를 거는 것이다.

딥러닝은 알고리즘 특성 상 복잡도가 높아 과적합이 발생하기 쉽다. 따라서, 학습을 방해함으로써 학습 데이터에만 잘 동작되는 게 아니라 test data에도 잘 작동되도록 하는 것을 목표로 한다.

Normalization은 데이터에 규제를 거는 것이라면, Regularization은 dropout, L1/L2 정규화와 같이 모델에 테크닉적으로 규제를 건다.

 

Normalization은 데이터의 feature들의 분포(scale)를 조절하여 균일하게 만드는 방법으로, feature간의 분포(scale)차이가 매우 큰 경우, 큰 scale을 가지는 feature가 작은 scale을 가지는 feature보다 모델에 더 많이 반영되기 때문에 Normalization을 통해 모델에 반영되는 scale을 동일하게 만든다. 학습 속도 개선, 노이즈가 작아지므로 오버피팅을 억제하는 효과가 있다. 

 

대표적인 정규화의 방법에는 Data augmentation, Drop out, Batch normalization 이 있다.

Data 증강은 Label이 변하지 않는 한에서 Data set 늘리는 것입니다.

Drop out은 뉴럴 네트워크의 weight를 0으로 바꾸는 방식이다.

Batch normalization은 각 layer마다 정규화하는 layer을 두어 변형된 분포가 나오지 않도록 조절해서 internal covariance shift를 줄인다. Internal covariance는 네트워크의 각 layer나 activation마다 입력값의 분산이 달라지는 현상이다. 다시 말해, 학습하는 과정 자체를 전체적으로 안정화해서 layer을 깊게 쌓을 때 성능 향상 효과가 있다.

 

deep learning book 7 chapter 

https://prefer-all.tistory.com/112

답변 추가

 

 

Q. L1, L2 정규화에 대해 설명해주세요

 

더보기

L1(Lasso), L2(Ridge) 정규화는 오버피팅(과적합)을 막기 위해 사용된다.

(모델을 학습시킨다는건 결국 모델의 Weight matrix를 좋은 방향으로 업데이트해나가는 것이다. 그런데 이 Weight 중 일부가 학습과정 중 과도하게 커져버린다면, 몇몇개의 인풋에 극단적으로 의존하는 상황이 벌어지고, 이 경우 모델의 일반화 성능은 감소할 것이다. 이때 L1, L2 정규화는 특정 Weight가 과도하게 커지지 않게끔 락(Lock)을 걸어주는 역할을 한다)

 

L1 정규화는 cost function에 가중치의 절대값을 더해준다. 기존의 cost function 에 가중치(W)의 크기가 포함되면서, 학습의 방향이 단순하게 cost function의 값이 작아지는 방향으로만 진행되는 것이 아니라, 가중치(W) 또한 작아지는 방향으로 학습이 진행됩니다. 이때 λ 는 상수로 0에 가까울 수록 정규화의 효과는 없어진다.

L2 정규화는 cost function에 가중치의 제곱을 더함으로써 L1 정규화와 마찬가지로 가중치가 너무 크지 않은 방향으로 학습된다

L1 Regularization은 가중치 업데이트 시, 가중치의 크기에 상관 없이 상수값을 빼면서 진행된다. 때문에 작은 가중치들은 거의 0으로 수렴 되어, 몇개의 중요한 가중치들만 남게 된다. 그러므로 몇 개의 의미 있는 값을 끄집어내고 싶은 sparse model 같은 경우에는 L1 Regularization이 효과적이다. feature selection에도 L1이 효과적이다. 다만, L1 Regularization은 아래 그림처럼 미분 불가능한 점이 있기 때문에 Gradient-base learning 에는 주의가 필요하다.

L2 Regularization은 가중치 업데이트 시, 가중치의 크기가 직접적인 영향을 미친다. 따라서, L2는 L1 보다 가중치 규제에 좀 더 효과적이다.

 

 

Q. L1, L2 Norm과 Loss에 대해 설명하라

더보기

Norm은 두 벡터 사이의 거리를 측정하는 방법으로, 벡터 p,q의 각 원소들의 차이의 절대값의 합인 L1 Norm과 벡터 p,q의 직선 거리인 L2 Norm이 있다.

 

L1 loss는 실제값과 예측값 사이의 오차의 절대값들의 합이고, L2 loss(LSE, Least squares error)는 오차의 제곱의 합이다.

[비교] L2 loss는 Outlier의 더 큰 영향을 받는다(L1 loss는 outlier에 대해 robust(덜 민감)하다) / L1 loss는 0인 지점에서 미분이 불가능하다는 단점이 있다.

 

 

Q. GAN에서 Generator 쪽에도 Batch Normalization을 적용해도 될까?

더보기

discriminator와 generator에도 BN을 적용해도 됩니다. 하지만 BN은 sample에 변동을 주어 모델을 불안정하게 할 수 있기 때문에 discriminator의 input과 generator의 output에는 적용하는 것을 피해야 합니다.


Q. 스팸 필터에 logistic regression을 많이 사용하는 이유는 무엇일까요?

linear regression VS logistic regression

 

더보기

Linear Regression의 경우 범위가 ∞ 부터 +∞ 까지여서 확률적으로 바라볼 수 없어 분류 문제로 확장할 수 없다.

 

Logistic Regression은 Sigmoid function을 통해 결과값을 0에서 1 사이의 값으로 예측하기 때문에 이를 확률로 바라볼 수 있다. 또한 그 확률에 따라 0.5 이상은 1, 0.5 미만은 0으로 분류하기 때문에 스팸인지 아닌지를 분류하는 스팸필터 문제에 적합하다.

 

 

Q. 회귀/ 분류 시 알맞은 metric(성능 평가 요소)은 무엇일까?

 

더보기

회귀 task의 대표적인 metric는 Mean Squared Error(평균제곱오차),

분류 task는 Cross Entropy이다.

 

MSE는 오차를 제곱한 평균의 값으로, 오차가 커질 수록 손실 함수 값이 빠르게 증가하는 특징이 있다. 

 

Cross Entropy가 분류 문제에 쓰이는 이유는 N개의 라벨을 갖는 문제를 풀 때 output 중 가장 큰 값의 index만 고려하기 때문이다. 즉, 분류 문제는 해당 값이 높기만 하면 될 뿐 얼마나 높은 지를 고려하지 않아도 되는데, CE를 최소화하는 것은 logit이라고 불리는 y hat의 값을 높이는 것이기에 분류 문제를 잘 풀 수 있다.

 

https://prefer-all.tistory.com/107

 

 

Q. OLS(ordinary least square) regression의 공식은 무엇인가요?

 

더보기

단순선형회귀(Simple Linear Regression)의 공식과 그래프는 다음과 같다.

 

단순선형회귀에서 가장 중요한 것은 이러한 에러를 최소화할 수 있는 a와 b 파라미터 값을 찾는 것이다. 식을 fitting하는 과정을 Ordinary Least Squared error (OLS)라고 한다. 

 

MSE, MAE는 평가 지표로, OLS로 나온 여러 식들 중에 오차가 적은 식을 평가할 수 있다. 


차원

 

Q. 차원의 저주란 무엇인가?

 

더보기

차원의 저주란 차원이 증가하면서 학습 데이터 수가 차원의 수보다 적어져서 성능이 저하되는 현상이다. 즉, 차원이 증가할 수록 변수는 증가하는데, 개별 차원 내에서 학습할 데이터 수는 적어진다.

 

이를 해결하기 위해서는 차원을 증가시킨만큼 더 많은 데이터를 추가하거나 PCA, LDA, LLE, MDS와 같은 차원 축소 알고리즘으로 차원을 줄여 해결할 수 있다.

 

https://prefer-all.tistory.com/281

 

Q. dimension reduction기법으로 보통 어떤 것들이 있나요?

 

더보기

차원 축소는 피처 선택(feature selection)과 피처 추출(feature extraction)으로 나눌 수 있다.

(1) 피처 선택은 특정 피처에 종속성이 강한 불필요한 피처는 제거하고 데이터의 특징을 잘 표현하는 주요 피처만 선택하는 것을 말한다.

(2) 피처 추출은 기존 피처를 저차원의 피처로 압축하여, 피처를 함축적으로 잘 설명할 수 있도록 저차원으로 매핑하는 것을 말한다. 

내용 추가 필요

 

 

Q. PCA(Principle Component Analysis)란 무엇인가?

 

더보기

PCA는 데이터의 분산(variance)을 최대한 보존하면서 서로 직교하는 새 기저(축)를 찾아, 고차원 공간의 표본들을 선형 연관성이 없는 저차원 공간으로 변환하는 기법이다. 이 과정에서 데이터의 공분산 행렬을 기반으로 고유 벡터를 생성하고 이렇게 구한 고유 벡터에 입력 데이터를 선형 변환한다. 즉, 데이터 하나 하나에 대한 성분을 분석하는 것이 아니라, 여러 데이터들이 모여 하나의 분포를 이룰 때 이 분포의 주 성분을 분석한다.

 

PCA는 대표적인 차원 축소에 쓰이는 기법으로, 높은 차원의 데이터들을 분석하여 그 중에서 핵심이 되는 차원을 뽑아내서 차원을 낮춘다. 예를 들어 (1, 2, 1), (3, 6, 0), (2, 4, 5), (4, 8, 3)이라는 4개의 3차원 데이터가 있다고 가정할 때, 첫 번째와 두 번째 요소는 서로 관계가 있다. 첫 번째 요소의 2를 곱하면 두 번째 요소이다. 따라서 실제로 두 요소 중에서 하나만을 기술해도 나머지 하나는 알 수 있고, 위 데이터 중 겹치는 차원 하나를 제거해서 (1, 1), (3, 0), (2, 5), (4, 3) 과 같이 쓸 수 있다.

 

 

 

Q. PCA는 차원 축소 기법이면서, 데이터 압축 기법이기도 하고, 노이즈 제거기법이기도 합니다. 왜 그런지 설명해주실 수 있나요?

 

더보기

PCA(Principle Component Analysis)는 입력 데이터의 공분산 행렬을 기반으로 고유 벡터를 생성하고 이렇게 구한 고유 벡터에 입력 데이터를 선형 변환하여 차원을 축소하는 방법이다. 차원은 곧 입력 데이터의 피처를 뜻하므로 데이터 압축 기법으로 볼 수도 있다.

 

또한 PCA는 고유값이 가장 큰, 즉 데이터의 분산이 가장 큰 순으로 주성분 벡터를 추출하는데, 가장 나중에 뽑힌 벡터보다 가장 먼저 뽑힌 벡터가 데이터를 더 잘 설명할 수 있기 때문에 노이즈 제거 기법이라고도 불린다.

 

 

Q. LSA, LDA, SVD 등의 약자들이 어떤 뜻이고 서로 어떤 관계를 가지는지 설명할 수 있나요?

 

더보기

SVD(Singular Value Decomposition, 특이값 분해):

mxn 크기의 행렬 A를 아래와 같이 분해하는 걸 의미한다.

 

LSA(Latent Semantic Analysis; 잠재 의미 분석) :

통계적인 의미(빈도)만 담긴 DTM나 TF-IDF 행렬에 truncated SVD를 적용하여 차원 축소시키고 잠재적인 의미를 끌어낸다. Truncated SVD는 SVD와 똑같으나 상위 n개의 특이값만 사용하는 축소 방법이다. 이 방법을 쓸 경우 원행렬로 복원할 수 없다. 축소된 차원에서 벡터가 비슷한 단어들을 같은 토픽으로 묶는 등 토픽 모델링 알고리즘으로 사용될 수 있다.

 

LDA(Latent Dirichlet Allocation; 잠재 디리클레 할당):

단어가 특정 토픽에 존재할 확률(디리클레 분포)과 문서에 특정 토픽이 존재할 확률(또다른 디리클레 분포)을 결합확률로 추정하여 토픽을 추출한다. 문서들이 토픽들의 혼합으로 구성되며, 토픽들은 확률 분포에 기반하여 단어들을 생성한다고 가정하고 데이터가 주어지면 문서가 생성되던 과정을 역추적한다.

 

+ SVD VS PCA:

SVD는 PCA와 유사한 행렬 분해 기법을 사용하나 정방 행렬(square matrix)를 분해하는 PCA와 달리 행과 열의 크기가 다른 행렬에도 적용할 수 있다. 즉, 반드시 정사각형 행렬이거나 대칭행렬이 아니더라도 성립된다.

+ LDA VS PCA:

PCA가 데이터가 분산이 큰 축을 찾는 것이라면, LDA는 클래스들을 잘 구분할 수 있는 축을 찾는 것이다.

+ LSA VS LDA:

LSA는 DTM, TF-IDF를 차원 축소 하여 차원에서 근접 단어들을 토픽으로 묶는다.

LDA는 단어가 특정 토픽에 존재할 확률과 문서에 특정 토픽이 존재할 확률을 결합확률로 추정하여 토픽을 추출한다.

내용 이해 필요

 

 

Q. 텍스트 더미에서 주제를 추출해야 합니다. 어떤 방식으로 접근해 나가시겠나요?

 

더보기

토픽 모델링을 사용한다. 대표적인 토픽 모델링 기법으로는 LDA 가 있다.

LDA는 각 문서의 토픽 분포와 각 토픽 내의 단어 분포를 추정한다.


수학

Q. Markov Chain을 설명하시오.

 

더보기

markov chain은 현재 발생하는 사건의 확률이 바로 이전에 발생한 사건의 확률에 의해 결정되며, 비슷하게 다음 발생할 사건의 확률이 현재 발생한 사건의 확률에 의해 영향을 받게되는 모델이다.
chain이라는 이름처럼 연속되는 사건들이 서로 독립적인 사건이 아니라 이전 사건에 의해 다음 사건의 확률이 정해진다.

예를들어, 동전 던지기는 n번째 상태가 n+1번째 상태에 영향을 주지 않지만 날씨 예측 같이 연속적인 현상을 단순히 표현할 때는 오늘의 날씨가 맑다면 내일의 날씨는 맑을지 비가 내릴지를 확률적으로 표현하는 Markov chain을 가정할 수 있다.


평가지표

Q. ROC 커브에 대해 설명해주실 수 있으신가요?

 

더보기

ROC 커브는 이진 분류 모델의 성능을 표현하는 지표이며, 가능한 모든 threshold에 대해 FPR과 TPR의 비율을 표현한 것이다.

  • TPR (True Positive Rate): 1인 케이스에 대해 1로 바르게 예측하는 비율 (Sensitivity), 암 환자에 대해 암이라고 진단
  • FPR (False positive rate): 0인 케이스에 대해 1로 틀리게 예측하는 비율 (1-Specificity), 정상에 대해 암이라고 진단

Threshold가 높아질수록 TPR과 FPR은 함께 비례적으로 낮아지고, Threshold가 낮아질수록 TPR과 FPR은 함께 비례적으로 높아진다.

 

ROC 커브가 좌상단에 붙어있을 수록(FPR은 낮게, TPR은 높게) 더 좋은 이진 분류 모델이다. 

 

+ 적합한 Threshold 값은 어떤 task이냐에 따라 달라진다. 예를 들어, 감기에 대해서는 Threshold가 높아도 상관없지만(감기가 아니라고 판단하더라도), 암의 경우에는 Threshold가 높아서는 안된다.