2024. 1. 6. 22:29ㆍ책/데이터 과학자를 위한 인터뷰 문답집
1.피처 정규화
수치형 데이터에 대한 피처 정규화가 중요한 이유는?
모든 특징을 대략적으로 비슷한 수치 구간 내로 이동시킬 수 있음
두 가지 방법
- 선형함수 정규화(min - max scailng)
데이터에 대해 선형변환을 진행하여 결괏값이 [0, 1] 범위에 투영되도록 만듬
- 표준 정규화(z-score)
- 데이터를 평균이 0이고 표준편차가 1인 분포상으로 투영시킴
왜 수치형 데이터에 대해 정규화를 진행해야 하는가?
정규화되지 않은 데이터를 사용하면 비교적 많은 반복 과정을 거쳐야만 최적해를 찾을 수 있는 반면 정규화를 거치면 더 바르게 경사하강법을 이용해 최적해를 찾을 수 있음
2. 범주형 피처
데이터 정제 작업을 진행할 때 범주형 피처는 어떻게 처리해야 하는가?
- 순서형 인코딩 (=대소관계 - <, >)
- 원핫인코딩
- 원핫인코딩 시 주의할 점
- 희소 벡터를 활용하여 공간을 절약할 것
- 피처 선택을 통해 최대한 차원을 줄일 것
- 고차원 피처의 문제점
- K-최근접 이웃 알고리즘에서 고차원 공간하의 두 점 사이의 거리는 측정이 매우 어려움
- 로지스틱 회귀 모형에서 파라미터의 개수가 차원에 증가에 따라 함께 증가함
- 이진 인코딩
3.고차원 결합 피처의 처리 방법
결합 피처란 무엇인가?
고차원 결합 피처는 어떤 방식으로 피처 엔지니어링 해야 하는가?
- 데이터 사이에 존재하는 복잡한 관계를 보다 잘 적합하기 위해 피처 엔지니어링 단계에서 일차원의 불연속 특성을 쌍으로 조합시켜 고차원의 결합피처로 만드는 작업을 진행
- 차원 축소로 인해 파라미터 수가 줄어듬(두 피처를 잘못 조합할 경우 과적합, 파라미터 과다 문제가 발생하므로 효율적인 방법을 통해 결합 피처를 구할 것)
<참고자료 출처>
[박정현의 데이터사이언스 시작하기] ⑤ 피처 엔지니어링 (1)
https://www.aitimes.com/news/articleView.html?idxno=134428
4.결합 피처
효율적인 결합 피처는 어떻게 찾을 수 있는가?
의사결정 트리를 이용하여 피처 조합을 찾는 방법 - 그래디언트 부스팅 의사결정 트리 사용
- 이진 트리의 잔차를 활용해 트리를 구성하는 아이디어임(12장 참고)
5.텍스트 표현 모델
텍스트 표현 모델에는 어떤 것들이 있는지?
각 모델의 장단점은 무엇인가?
- BOW, N-GRAM모델
BOW(BAG OF WORDS)
- 가장 기초적인 텍스트 표현 모델
- 각 텍스트를 순서에 상관없이 단어 단위로 나눠 한 가방에 담는 방식
- 모든 문단의 텍스트를 단어 단위로 쪼갠 후 하나의 긴 벡터로 표현
- 벡터 중의 각 차원은 하나의 단어를 대표하고, 해당 차원에 대응하는 가중치는 해당 단어가 문장에서 얼마나 중요한지를 나타냄
- 일반적으로 TF-IDF를 사용하여 가중치 계산
TF(t,d)는 단어 t가 문장 d에서 출현하는 빈도를 뜻함
IDF(t)는 역빈도이고, 단어 t가 의미를 전달함에 있어서 어떤 중요도를 가지는지를 계산
- 특정 문서에서 특정 단어의 빈도 수가 높으며, 전체 문서에서는 해당 단어를 포함하고 있는 문서가 적으면 TF-IDF값이 높아짐
- 만약 하나의 단어가 많은 문장에 출현한다면 그 단어는 비교적 자주 사용하는 단어이며 어떤 문장에서 특수한 의미를 구별하는 데 큰 공헌을 못할 가능성이 높음. 따라서 가중치에 패널티를 부여하는 것
문장을 단어 단위로 구별하는 것은 좋은 방법이 아님. 예를 들어 natural language processing이라는 단어를 natural, language, processing이라는 세 가지 단어로 분리한다면, 각각의 단어가 표현하는 의미와 세 가지 단어를 조합했을 때의 의미가 크게 다름
일반적으로 이렇게 자주 함께 출현하는 n개의 단어를 한 그룹으로 구성하여 독립적인 피처로 생각하여 벡터로 표현한 것이 N-gram 방법임
- 토픽 모델
- 문서 집합에서 대표성을 가진 주제를 찾기 위한 통계적 모델
- 워드 임베딩과 딥러닝 모델
워드 임베딩
- 단어를 정량화하는 모델들의 통칭
- 각 단어를 저차원 공간(일반적으로 k=50~300차원) 상의 고밀도 벡터에 투영시키는 것
- K차원 공간의 각 차원은 하나의 잠재적인 토픽으로 볼 수 있지만, 토픽 모델에서의 토픽처럼 직관적이지는 못함
딥러닝
- 완전 연결 네트워크(초기 딥러닝 모델인 다층 퍼셉트론)과 비교 했을 때 합성곱 신경망과 순환 신경망은 더욱 효율적으로 텍스트의 피처를 잡아낼 뿐만 아니라, 네트워크에서 학습해야 하는 파라미터 수를 줄임으로써 훈련 속도를 향상시키고 과적합 위험을 낮췄음
<참고자료 출처>
TF-IDF에 관하여.(Hyun Jin Kim)
https://khyunjin1993.medium.com/tf-idf에-관하여-e141632a6a57
6.word2vec
- 현재까지 가장 많이 사용되는 워드 임베딩 모델 중 하나
- 은닉층이 한 개인 얕은 층을 가진 신경망 모델의 한 종류
word2vec은 어떤 알고리즘이고, LDA와는 어떤 차이점과 관련이 있는가?
CBOW
- 상하 주변에 출현하는 단어들에 기반해 현재 단어의 생성확률을 예측하는 것(주변 단어를 통해 중간 단어 예측)
skip-gram
- 현재 단어에 기반해 상하 텍스트에 있는 각 단어의 생성확률을 예측(중심단어를 통해 주변단어 예측)
- CBOW, skip-gram 모두 입력층, 투영층, 출력층으로 구성된 신경망으로 표현될 수 있음
LDA는 텍스트 내 단어들의 공동 출현 관계를 이용해 단어를 주제별로 군집화 함. 이는 텍스트-단어 행렬에 대한 분해라고도 이해할 수 있음. 즉, 텍스트-주제, 주제-단어라는 두 가지 확률분포를 얻는 것
Word2Vec은 상하 텍스트-단어 행렬을 학습하는 것이고, 여기서 상하 텍스트는 몇개의 단어로 구성되어 있음.
이렇게 얻은 단어 벡터 표현은 상하 텍스트에서의 공동 출현 관계를 더 많이 포함하게 됨. 즉, 만약 두 단어가 대응하는 Word2Vec벡터의 유사도가 비교적 높다면, 그들이 같은 상하 텍스트 중에 출현할 가능성이 높다는 것을 뜻함
7.이미지 데이터가 부족할 때는 어떻게 처리해야 할까요?
이미지 분류 문제에서 훈련 데이터가 부족하다면 어떤 문제를 일으키는가?
어떻게 데이터 부족이 야기하는 문제들을 완화할 수 있는가?
- 이미지 분류 문제에서 훈련 데이터가 부족하다면 과적합 문제가 발생함. 즉, 모델이 훈련 데이터상에서는 좋은 성능을 보여줄 수 있지만, 테스트 데이터상에서의 일반화 성능이 저조해지는 문제임
해결 방안은 크게 두 가지가 존재
- 모델에 기반을 둔 방법
- 모델의 간략화(비선형모델을 선형모델로 바꾸는 등), (L1, L2와 같은 정규화 항 추가, 앙상블 학습 사용, 드롭아웃 하이퍼파라미터 설정 등)
- 데이터에 기반을 둔 방법
- 대표적으로 데이터 확장 방법이 있음. 즉, 선험점 지식에 기반해 특정한 정보를 남긴다는 전제하에서 초기 데이터를 변환시켜 데이터 확장 효과를 얻음
- 이미지 공간에서 직접 작업하는 방식 외에 먼저 이미지의 피처를 추출하여 피처 공간 내에서 변환을 진행하고, 일반적인 데이터 확장 혹은 SMOTE와 같은 업샘플링을 이용하는 방법도 존재
- 생성적 적대 신경망과 같은 생성모델을 활용하여 새로운 샘플을 추가하는 방법도 존재
- 이미 있는 다른 모델이나 데이터를 빌려와 전이학습을 진행하는 방법도 존재
<참고자료 출처>
Word2Vec, Word to Vector