기계학습 기말고사 전략
총 7문제가 출제되며, 문제 유형은 세 가지로 나뉩니다.
- 개념을 묻는 단답식 문제
- 계산 문제
- 코딩 빈칸 채우기 문제
시험 준비 전략
- 개념, 계산, 코딩 부분만 집중해서 공부하면 된다.
- 계산 문제는 예제에서 출제되었으며,
- 코딩 문제는 실습 시간에 다루었던 부분의 빈칸 채우기로 출제된다.
문제 유형
- 주관식
- 객관식
- 약술형
문제 예시
개념 문제
- 단답식 문제:
- dropout, fastText, positional embedding, GloVe 등을 설명하는 단답형 문제.
- 개념 채우기
- GloVe, Transformer 구조에서 빈칸을 뚫어놓고 채우는 형태.
계산 문제
- Transformer 구성요소 적기 - transformer
- Attention 계산 문제 - transforemr, RNN
- Backpropagation 수식 작성 및 계산 - ANN
- K-SOM (가중치 수정 및 계산) - clustering
- Convolution 결과 계산하기 - CNN
코딩 문제
- GAN 학습 코드에서 빈칸 채우기:
- real cost, fake cost 구하는 부분에서 빈칸 세 개
- gan에서 zeros, ones 함수, D(G(z)) 구조와 관련된 코드 작성
핵심 요약
- 개념: 주요 용어와 구조 이해 (e.g., GloVe, Transformer, dropout)
- 계산: 예제 문제에 집중 (Attention, Backpropagation, K-SOM, Convolution)
- 코딩: 실습 코드 빈칸 채우기 연습 (GAN 관련 코드 및 구조 이해)
정의 문제
인공신경망 (ANN)
- 인간의 뇌 신경망을 모방한 모델로, 다수의 노드와 레이어로 구성된 학습 알고리즘.
퍼셉트론
- 가장 기본적인 인공신경망 모델로 입력 값을 선형 결합하여 이진 분류하는 알고리즘.
기울기 소실 문제 (Vanishing Gradient)
- 역전파 시 기울기가 0에 가까워져 학습이 잘 되지 않는 문제.
적합 (Fitting)
- 모델이 데이터에 맞게 학습하는 정도. **과적합(Overfitting)**과 **과소적합(Underfitting)**이 존재.
정규화 (Regularization)
- 과적합을 방지하기 위해 모델의 복잡도를 제어하는 기법 (예: L1, L2 정규화).
드롭아웃 (Dropout)
- 신경망의 일부 노드를 학습 시 무작위로 비활성화하여 과적합을 방지하는 기법.
Residual Connection
- 입력 데이터를 다음 레이어에 그대로 더해주는 연결 방식으로, 기울기 소실 문제 해결에 도움.
CNN (Convolutional Neural Network)
- 이미지 데이터 처리에 특화된 신경망으로, 컨볼루션 연산을 활용.
채널
- 이미지의 색상 정보를 나타내는 차원. (예: RGB 이미지 = 3채널)
패딩
- 입력 데이터 주위에 0을 추가하여 출력 크기를 유지하거나 확장하는 기법.
필터 (커널)
- 특징을 추출하기 위해 입력 데이터에 적용되는 작은 행렬.
특징 맵
- 필터를 적용한 결과로 얻어지는 출력 데이터.
업샘플링, 다운샘플링 (Pooling)
- 업샘플링: 해상도를 높임.
- 다운샘플링: 해상도를 낮춰 데이터 크기를 줄임 (예: Max pooling).
이산 표현
- 데이터를 연속적인 값이 아닌 이산적인 값으로 표현하는 방법.
원-핫 인코딩
- 범주형 데이터를 0과 1로만 표현하는 방법.
공기 행렬
- 단어-문서 빈도를 나타내는 행렬.
코사인 유사도
- 두 벡터의 각도를 기반으로 유사도를 측정하는 방법.
차원의 저주
- 데이터 차원이 너무 높아 학습 효율이 저하되는 문제.
특이값 분해 (SVD)
- 행렬을 특이값을 기준으로 분해하여 차원을 축소하는 기법.
Word2Vec
- 단어를 벡터로 변환하는 방법으로, 단어 간 의미를 반영함.
GloVe
- 단어 벡터를 학습할 때 전체 단어 빈도를 고려하는 방법.
fastText
- 단어를 문자 단위로 쪼개어 벡터화하는 기법으로, 미등록 단어도 처리 가능.
RNN (Recurrent Neural Network)
- 순차 데이터(시퀀스)를 처리하는 신경망으로, 이전 정보를 기억함.
FNN (Feedforward Neural Network)
- 데이터를 순방향으로만 전달하는 신경망 구조.
LSTM (Long Short-Term Memory)
- RNN의 단점인 장기 의존성 문제를 해결한 모델.
Seq2Seq (Many-to-Many Model)
- 입력 시퀀스를 출력 시퀀스로 변환하는 모델 (예: 번역).
Attention Model
- 입력의 특정 부분에 더 집중하는 메커니즘.
QKV (Query, Key, Value)
- Attention에서 사용되는 개념으로, Query(질의), Key(키), Value(값)을 통해 가중치를 계산.
GAN (적대적 생성 신경망)
- 생성자와 판별자가 서로 경쟁하며 데이터를 생성하는 모델.
생성자 (Generator)
- 새로운 데이터를 생성하는 역할.
판별자 (Discriminator)
- 데이터가 진짜인지 가짜인지 판별하는 역할.
군집화 (Clustering)
- 비슷한 데이터끼리 묶는 비지도 학습 기법.
코사인 유사도
- 벡터 간의 각도를 비교하여 유사도를 계산.
유클리디안 거리
- 두 점 사이의 직선 거리.
DBSCAN
- 밀도를 기반으로 데이터를 클러스터링하는 알고리즘.
K-SOM
- 자기조직화 맵으로, 데이터의 구조를 시각화하며 클러스터링하는 신경망.
트랜스포머의 구조
- 인코더 (Encoder)
- 디코더 (Decoder)
- 멀티 헤드 어텐션 (Multi-Head Attention)
- 포지션 인코딩 (Positional Encoding)
- 피드 포워드 네트워크 (Feed Forward Network)
- 잔차 연결 및 정규화 (Add & Norm)
- 출력 레이어 (Output Layer: Linear + Softmax)
CNN
코드 문제
- real cost를 구하는 부분:
- real_cost = criterion(real_output, real_labels)
- fake cost를 구하는 부분:
- fake_cost = criterion(fake_output, fake_labels)
- zeros, ones 함수 사용:
- real_labels = torch.ones(batch_size, 1) # 진짜 데이터 라벨 fake_labels = torch.zeros(batch_size, 1) # 가짜 데이터 라벨
- D(G(z)) 구조:
- fake_output = D(fake_data)
정리:
빈칸 위치:
- real_cost = criterion(real_output, real_labels)
- fake_cost = criterion(fake_output, fake_labels)
- real_labels = torch.ones(batch_size, 1), fake_labels = torch.zeros(batch_size, 1)
- fake_output = D(fake_data)