본문 바로가기
취준 기록

[취준] 딥러닝 면접 대비 질문 리스트 (for 데이터 사이언티스트)

by davidlds 2025. 5. 17.
반응형

데이터 사이언티스트.
정말로 정보를 찾기가 힘든 직종이다.
취업하는 과정이 험난하고 막막하다.
나는 다음 세대가 더 편하게 취업을 했으면 하는 생각에 취업 준비 기록을 남긴다.

 

딥러닝 면접 대비를 위한 질문 리스트이다.

깃허브에 통합 버전이 있는데 안들어갈거 같아서 여기다 추가로 적는다.

 

원본은 여기.

여러 사이트와 깃허브를 참고했다.

그분들께 무한한 감사를 드립니다.

그런 의미에서 나의 리스트도 공공재로 쓰면 된다.

 

다만 면접 대비에서도 언급했던 것처럼 꼭 반드시 자신의 언어로 답변을 다시 준비하도록 하자.

면접 대비 글은 여기.

 

[취준] 5번째, 데이터 사이언티스트 면접 준비

데이터 사이언티스트.정말로 정보를 찾기가 힘든 직종이다.취업하는 과정이 험난하고 막막하다.나는 다음 세대가 더 편하게 취업을 했으면 하는 생각에 취업 준비 기록을 남긴다.코딩 테스트가

davidlds.tistory.com

 

 

면접대비 짤

 

면접

  • 자신감과 진정성

🧐 사용 방법

  • 질문에 대한 답변을 패드에 손으로 쓰며 외운다.
  • 마크다운의 목차(Outline)를 클릭하여 펼친다.
  • 질문만 보고 답변을 연습한다.

 

[딥러닝]

딥러닝이란 무엇인가

  • 머신러닝의 한 종류로 인공신경망을 기반으로 데이터에서 패턴을 학습하여 새로운 데이터에 대한 예측을 하는 알고리즘 입니다.

딥러닝과 머신러닝의 차이를 설명하라

  • 딥러닝은 모델이 특징 추출, 학습을 자동으로 수행합니다.
  • 머신러닝은 사람이 특징을 설계하고 모델은 학습만 합니다.

오버피팅과 언더피팅의 차이점

  • 오버피팅은 학습 데이터를 외우는 것처럼 과하게 학습하여 일반화 성능이 낮습니다. 기술적으로 설명하면 특정 뉴런에 대한 의존도가 매우 높은 상태 입니다.
  • 언더피팅은 아직 학습 데이터의 패턴을 제대로 학습하지 못한 상태입니다.

FC layer와 CNN layer의 차이점을 설명하라

  • FC layer는 모든 뉴런이 연결되어 있고 입력 데이터를 고차원 공간에서 다른 차원으로 변환합니다.
  • CNN layer는 필터를 사용해서 주변 데이터와의 관계와 지역적 패턴을 추출합니다.

비선형이란 무엇이고 왜 필요한가

  • 비선형은 직선 즉 선형 함수로 설명할 수 없는 복잡한 관계를 뜻합니다.
  • 어려운 문제들은 비선형성을 추가해 복잡한 패턴을 학습해야 해결할 수 있습니다.

sigmoid 대신 relu를 사용하는 이유를 설명하라

  • sigmoid는 S자 형태로 음수에서 0에 가까워지고 양수에서 1에 가까워집니다.
  • relu는 음수에서 0이고 양수에서 입력값 그대로를 출력합니다.
  • sigmoid는 상대적으로 gradient vanishing 문제에 더 취약합니다. relu의 경우 출력 값의 상단 제한이 없지만 sigmoid의 경우 출력값이 0과 1 사이로 제한되기 때문에 기울기가 매우 작아지는 gradient vanishing 문제를 초래합니다.

relu가 곡선 함수를 근사하는 방법을 설명하라

  • relu는 여러 뉴런의 활성화 상태를 조합해 복잡한 비선형 함수를 근사할 수 있습니다. 각 뉴런의 활성화 여부를 on/off하면 곡선 함수를 근사할 수 있습니다.

gradient vanishing의 근본적인 원인을 설명하라

  • 활성화 함수의 영향, 체인룰의 영향 두가지가 있습니다. 시그모이드의 경우 활성화 함수의 기울기가 0에 가까워져 결국 가중치를 업데이트하지 못합니다. 이를 방지하기 위해 relu를 사용하더라도 기울기가 0인 구간이 여전히 존재하기 때문에 chain rule에 의해 역전파 과정에서 낮은 층까지 도달하면 기울기가 0에 급격하게 가까워져 업데이트가 되지 않는 문제가 있습니다.

gradient descent의 개념을 설명하라

  • 손실함수를 최소화하기 위해 가중치를 반복 업데이트하는 최적화 알고리즘입니다.
  • 손실함수가 가장 작은 지점이 최적값 즉 해인데, n차 함수 형태인 손실함수의 최솟값을 구하는 방법은 미분해서 0인 지점으로 다가가는 것입니다. 여기서 미분이 gradient, 0으로 다가가는 것이 descent 입니다.

경사하강법 그래프의 x축과 y축의 의미를 설명하라

  • x축은 모델의 가중치, y축은 loss value를 뜻합니다.

GD 중에 때때로 loss가 증가하는 이유를 설명하라

  • 첫번째로 learning rate가 너무 크면 한번의 업데이트에서 minima를 지나칠 수 있습니다. 두번째로 미니 배치 간의 분포 차이로 인한 변동성이 있을 수 있습니다. 세번째로 loss function의 landscape가 복잡해 local minima를 탈출할 때 발생할 수 있습니다.

GD와 SGD의 차이를 설명하라

  • GD는 전체 데이터셋을 모두 사용하여 느리지만 안정적으로 학습합니다.
  • SGD는 데이터셋의 일부를 사용하여 빠르게 학습하지만 불안정할 수 있습니다.

RMSprop과 Adam에 대하여 설명하라

  • RMSprop은 기울기의 제곱에 대한 지수이동평균을 이용해 학습률을 동적으로 조절하는 방법입니다. 기울기가 큰 파라미터의 학습률을 줄여 더 안정적으로 학습을 진행합니다.
  • Adam은 여기에 모멘텀을 추가하여 더 빠르고 효율적으로 학습하는 방법입니다.

모멘텀을 수식으로 설명하라

  • 물리학적 관점의 관성을 알고리즘화한 것입니다. 기존 가중치에 속도인 모멘텀을 더해줍니다. 이번 단계의 속도는 이전 단계의 속도와 이번 단계의 기울기를 조합해 계산합니다.

backpropagation에 대하여 설명하라

  • 입력에서 출력 방향인 순방향을 계산해 예측값을 구하고 loss를 구합니다.
  • loss를 출력에서 입력 방향으로 전파하며 가중치를 얼마나 바꿔야 오차가 줄어드는지 계산합니다. 이것은 chain rule에 의해 각 가중치에 대한 그라디언트를 계산하면 얻을 수 있습니다. (그라디언트 = 현재 가중치가 얼마나 잘못되었는지에 대한 벡터)
  • 계산된 가중치를 학습률과 곱해 모든 가중치를 업데이트 합니다.
  • (손 계산)
    • 순전파: 출력 계산과 활성화 함수 대입 반복 후 최종 예측값 도출
      • sum(입력값 * 웨이트) = 출력값
      • 출력값을 활성화 함수에 넣고 계산 (x에 대입 y 도출)
    • 손실값: 예측값과 실제값을 MSE 공식에 넣고 loss 계산
      • 1/n (sum(손실 - 예측)^2)
    • 역전파: loss의 그라디언트를 러닝 레이트와 곱해 빼서 업데이트
      • (새 웨이트) = (기존 웨이트) - (그라디언트 loss) * (러닝 레이트)
      • (그라디언트 loss) ∇C = dC/dw (loss의 웨이트 편미분)
      • dC/dw (loss의 웨이트 편미분) = dC/dO * dO/dz * dz/dw (체인 룰)
      • 체인 룰: 두 변수의 미분 관계를 모를 때 각각 아는 미분값으로 연쇄적으로 연결해서 해결
      • dC/dO (loss의 아웃풋 편미분) * dO/dz (아웃풋의 활성화 함수 z노드 아웃풋 편미분) * dz/dw (z노드 아웃풋의 웨이트 편미분)

local minima로 인해 딥러닝이 안되는 매커니즘을 설명하라

  • 모델이 local minima에 빠지면 더 나은 global minima에 도달하지 못하고 성능 개선이 멈춰버립니다.

saddle point 문제에 대하여 설명하라

  • 차원 공간에서 한 방향에서는 최소값을 가지지만 다른 방향에서는 최대값을 가지는 지점을 말합니다. 한 방향에서 미분이 0이 나오고 다른 방향을 줄이려다가 원래 방향의 값이 증가할 수 있는 문제로, 더이상 학습을 진행하지 않을 수 있습니다.
  • 초기 값을 다양하게 설정하거나 모멘텀 기법을 사용하여 해결할 수 있습니다.

찾은 해가 global minima인지 판단하는 방법은 무엇인가

  • loss function landscape를 시각화하거나 다양한 초기값으로 학습해서 최소값에 변화가 있는지 비교해봅니다.

지도학습과 비지도학습의 objective funtion과 차이를 설명하라

  • 지도학습은 실제값과 예측값의 loss를 계산하고 최소화하는 방법을 사용합니다. (ex. MSE, CE)
  • 비지도학습은 데이터의 구조를 파악하고 군집이나 밀도를 목표로 합니다. (ex. 클러스터링, PCA)

과적합 방지를 위해 사용하는 방법을 모두 설명하라

  • dropout, regularization, batch norm, 데이터 증강 기법, early stopping 등이 있습니다.

dropout의 개념과 사용하는 이유를 설명하라

  • 드롭아웃은 학습 시 무작위로 무작위로 뉴런을 비활성화하여 특정 뉴런에 의존하지 않도록 합니다.
  • 과적합을 방지하고 모델의 일반화 성능을 높일 수 있습니다.

정규화(regularization)에 대하여 설명하라

  • 과적합 방지를 위한 제약조건으로 L1, L2 등이 있습니다. 이 값을 실제 손실함수에 패널티로 더해주면 모델은 가중치의 크기를 줄이는 방향으로 학습합니다.
  • L1은 lasso로 가중치의 절대값 합을 패널티로 부과합니다. 모델에 중요하지 않은 특성의 가중치를 0으로 만들어 희소성을 유지합니다.
  • L2은 ridge로 가중치의 제곱 합을 패널티로 부과합니다. 전체적인 특성의 가중치를 작은 값으로 만들어 과적합을 방지합니다.

정규화(norm)와 표준화(stand)의 차이점을 설명하라

  • 정규화(normalization)는 데이터를 0에서 1 범위로 변환하는 것이고 표준화(standardization)는 평균은 0 분산은 1이 되도록 변환하는 것입니다.

정규화(norm)을 하는 이유를 설명하라

  • 학습 중에 특성 간의 크기 차이를 제거하고 특정 뉴런의 의존도가 너무 높지 않도록 하여 학습을 안정화 시킵니다.

batch normalization의 개념과 사용하는 이유를 설명하라

  • 배치 노멀라이제이션은 각 미니배치 입력의 평균과 분산을 0과 1로 조절합니다. 따라서 초기값에 의해 특정 미니배치가 과하게 학습되는 과적합 현상을 방지해줍니다.

batch norm과 layer norm의 차이를 설명하라

  • 입력 텐서의 (batch, 이미지 토큰 수, dim)이 (64, 196, 768)인 예시로 설명하겠습니다.
  • batch norm은 같은 토큰 같은 dim에서 batch를 기준으로 값을 정규화하는 것입니다. 입력 값의 분포가 학습 중에 변하는 것을 방지합니다. 하지만 배치에 의존적이기 때문에 작은 배치에서는 효과가 불안정할 수 있습니다.
  • layer norm은 같은 토큰 같은 batch에서 dim을 기준으로 값을 정규화하는 것입니다. 같은 샘플 내의 뉴런의 의존도 편향을 방지합니다. 따라서 배치에 독립적이고 작은 배치에서도 안정적으로 동작합니다.

softmax 함수에 대하여 설명하라

  • 여러 클래스의 점수를 확률로 변환하는 함수 입니다. 모든 출력값의 합이 1이 되도록 normalization 해줍니다.

softmax 함수의 수식을 설명하라

  • 여러 개의 실수값을 입력받아 0에서 1 사이의 확률값으로 변환하는 함수 입니다. 각 입력값에 지수함수를 적용하고 (해당 지수값) / (모든 지수값의 합)으로 나타낼 수 있습니다.

분포가 불균형한 데이터를 분류 할 때 발생하는 문제는 무엇인가

  • 구성 비율이 낮은 클래스가 무시되어 모델이 편향되고 성능이 떨어집니다.
  • 오버샘플링이나 언더샘플링을 사용하면 문제를 해결할 수 있습니다.

cost function과 activation function을 설명하라

  • cost function은 loss function으로 실제값과 예측값의 차이를 계산합니다. (ex. MSE, CE)
  • activation function은 뉴런의 출력을 결정하고 모델에 비선형성을 부여합니다. (ex. relu, softmax)

파이토치와 텐서플로우의 특징과 차이를 설명하라

  • 파이토치는 더 파이써닉한 코드라 가독성이 좋습니다. 또한 실행 중에 텐서를 이용해 동적으로 그래프를 그릴 수 있어 디버깅이 편합니다.
  • 텐서플로우는 배포의 용이성과 텐서보드 시각화에 강점이 있습니다. 또한 미리 그래프를 선언해 정적인 그래프를 그릴 수 있어 속도가 빠릅니다.

하이퍼 파라미터는 무엇인지 설명하라

  • 학습 전에 사람이 직접 설정하는 파라미터로 모델의 성능에 큰 영향을 미칩니다.
  • learning rate, batch size, epoch, dim, block 수 등이 있습니다.

weight initialization 개념과 종류를 설명하라

  • 가중치의 초기값을 설정하는 방법으로 ±0.1 사이의 균일한 분포 값을 넣는 랜덤, 입출력 뉴런 수를 고려한 xavier 방법 등이 있습니다.

training set과 test set을 분리하는 이유를 설명하라

  • 모델의 일반화 성능을 객관적으로 평가하기 위해서 입니다. 과적합된 경우 학습에 사용한 데이터는 모델이 이미 외우고 있을 수 있습니다.

validation set이 필요한 이유를 설명하라

  • 하이퍼 파라미터 튜닝이나 학습 중간에 경과를 평가하기 위해서 사용합니다.

GPU를 사용하는 이유를 설명하라

  • 병렬 연산이 가능해서 CPU보다 더 빠른 속도로 학습할 수 있습니다. 딥러닝은 행렬 연산을 많이 사용하기 때문에 GPU를 사용합니다.

GPU를 두개 사용하는 방법을 설명하라

  • 배치를 나눠서 각 GPU에서 병렬로 데이터를 처리할 수 있습니다. 파이토치에서 분산학습 메서드인 DistributedDataParallel를 사용하면 됩니다.

학습에 필요한 GPU 메모리를 계산하는 방법을 설명하라

  • 배치크기 * 파라미터수 * 4(float32)로 계산할 수 있고 모델 (인스턴스, 그라디언트, 옵티마이저)를 고려해 4배 정도 됩니다.

트랜스포머의 전체적인 구조를 설명하라

  • 인코더-디코더 구조로 되어 있고 어텐션 레이어를 사용합니다. 인코더에는 셀프어텐션, 디코더에는 masked 셀프어텐션, 인코더-디코더 어텐션 구조로 되어 있습니다.
  • 인코더와 디코더의 마지막에는 Feed Forwad Network가 있고 어텐션 레이어와 FFN 뒤에는 residual connection과 norm을 진행합니다.
  • 입력이 들어오면 이를 임베딩으로 만들고 포지션 임베딩을 더해줍니다. 그리고 인코더-디코더 구조를 거친 뒤 최종 임베딩을 linear layer와 softmax를 거쳐 최종 결과를 냅니다.

트랜스포머가 위치정보를 전달하는 방법을 설명하라

  • 포지션 임베딩을 사용하여 위치 정보를 전달합니다. sin, cos 함수를 기반으로 인코딩하며 순차성은 있지만 의미 정보가 변질되지 않도록 ±1사이의 값입니다. 주기성을 이용하여 각 위치마다 고유한 패턴을 만들어냅니다.

어텐션 매커니즘의 과정을 수식으로 설명하라

  • 입력 임베딩에 Q, K, V 매트릭스를 내적해 Q, K, V 벡터를 먼저 얻을 수 있습니다.
  • 현재 단어의 Q와 모든 단어의 K의 전치행렬을 각각 내적하여 각각의 어텐션 스코어를 구하고 이를 softmax 함수에 넣어 각각의 어텐션 웨이트를 구합니다.
  • 각각의 어텐션 웨이트를 각각의 V와 곱한뒤 모두 더해 컨텍스트 벡터를 구할 수 있습니다.
  • 이 컨텍스트 벡터는 QKV 벡터와 같은 사이즈의 행렬이며 다음 시점의 모델에 입력입니다.

어텐션 매커니즘의 Q, K, V 벡터의 정성적인 의미를 설명하라.

  • Q는 현재 단어가 필요로 하는 정보에 대한 representation 입니다. 그리고 K와 V는 입력 시퀀스의 각 단어에 대한 특징으로 보통 같은 값을 사용하지만 용도가 다릅니다. K는 어텐션 스코어 계산에 사용되며 V는 컨텍스트 벡터 계산에 사용됩니다.
  • 어텐션 스코어는 현재 단어의 Q와 각 단어 K의 유사도를 의미하며 어텐션 웨이트는 현재 단어에 대한 각 단어의 중요도를 의미합니다.
  • 컨텍스트 벡터는 현재 시점에서 각 단어 간의 중요도에 대한 요약을 의미합니다.

인코더 셀프 어텐션과 디코더 셀프 어텐션의 차이를 설명하라

  • 인코더 셀프 어텐션은 모든 단어를 사용할 수 있지만 디코더 셀프 어텐션은 마스킹 때문에 현재 위치 까지의 단어만 사용할 수 있습니다. 또한 인코더-디코더 어텐션의 경우 인코더 셀프 어텐션의 결과를 Q로 디코더 셀프 어텐션의 결과를 K, V로 사용합니다.

BERT와 GPT의 차이점을 설명하라

  • BERT는 양방향 인코더 기반으로 입력 시퀀스의 모든 토큰을 사용할 수 있고 Masked Language Model 과 Next Sentence Prediction으로 학습합니다. 반면에 GPT는 단방향 디코더 기반으로 현재 위치 까지의 단어만 사용할 수 있고 다음 단어를 예측하는 task로 학습합니다. BERT는 문장을 이해하거나 분류하는데 강점을 보이고 GPT는 텍스트 생성에 강점을 보입니다.

랭체인에 대하여 설명하라

  • 랭체인은 LLM을 쉽고 효율적으로 사용할 수 있게 도와주는 프레임워크 입니다. GPT, 클로드 처럼 회사가 다른 여러 AI 모델을 API를 사용해 같이 사용할 수도 있고, 외부 데이터를 LLM에 쉽게 연결할 수도 있습니다.

RAG에 대하여 설명하라

  • RAG는 Retrieval Augmented Generation으로 LLM이 답변할 때 외부 데이터베이스에서 관련 정보를 찾아와서 참고하면서 대답하는 방식입니다. 예를 들어, 회사 내부 문서를 참고해서 답변하는 것입니다. 최신 정보를 사용할 수 있는 장점과 출처가 있기 때문에 할루시네이션이 적은 장점이 있습니다.
  • 문제점은 우리가 사용하는 PDF, 워드, 엑셀 같은 문서들이 출판용 구조이거나 테이블로 되어 있어 파싱 문제로 잘 작동하지 않습니다.
  • 해결하기 위해 전처리와 텍스트 추출을 하는 것이 필요합니다.

ToD에 대하여 설명하라

  • ToD는 Task-oriented Dialogue로 특정 목적을 달성하기 위한 대화 시스템입니다. 예를 들어, 식당 예약 같은 구체적인 작업을 완료하기 위한 대화 태스크 입니다. NLU, DST, DP, NLG 4가지 모듈로 구성되어 있습니다.

CNN의 연산과정을 설명하라

  • 입력 이미지에 필터를 슬라이딩하며 컨볼루션 연산을 수행합니다. 이때 필터와 이미지의 각 부분을 곱하고 더하면서 특징을 추출합니다. 또한 활성화함수로 비선형성을 추가하고 풀링 레이어로 피쳐맵의 크기를 줄입니다.

ResNet의 핵심 개념을 설명하라

  • residual connection을 통해 더 깊은 층으로 구성된 모델도 학습이 가능합니다. 이전 블럭의 결과를 이번 블럭의 결과에 더해주는 구조로 gradiant vanishing 문제를 해결하고 깊은 층의 레이어도 학습할 수 있습니다.

MobileNet의 핵심 개념을 설명하라

  • 기존 컨볼루션을 depth-wise, point-wise conv로 대체했습니다. 연산을 두단계로 나눠서 하면 연산량이 크게 줄어드는데 이 트릭을 사용한 것입니다. depth-wise conv는 채널 간의 정보는 혼합되지 않고 공간적 특징만 추출하며 3x3 커널을 사용합니다. point-wise conv는 공간적 정보는 건드리지 않고 채널의 정보만 혼합해 특징을 추출하며 1x1 커널을 사용합니다.

EfficientNet의 핵심 개념을 설명하라

  • 네트워크의 depth, width, resolution을 균형있게 키우는 것입니다. compound scaling이라고 해서 작은 베이스 모델을 만들고 세가지 요소를 동시에 키워나갑니다.

CNN과 ViT의 차이를 설명하라

  • 두 모델 모두 특징 추출을 하는 모델이지만 추출 매커니즘에 차이가 있습니다. CNN은 로컬 픽셀들 간의 관계에서 패턴을 찾고 ViT는 이미지 패치들 간의 관계에서 패턴을 찾습니다. CNN은 부분적 특징을 추출하는데 강점을 보이고 ViT는 전역적 관계를 추출하는데 강점을 보입니다.

CNN과 ViT에서 XAI 방법론을 설명하라

  • CNN은 주로 Grad-CAM, Class Activation Map을 사용해 이미지의 어디 부분을 보고 판단했는지 시각화 합니다. ViT는 어텐션 맵을 통해 각 패치가 다른 패치와 얼마나 상호작용을 하는지 봅니다.

CNN에 비해 ViT의 학습 속도가 느린 이유를 설명하라

  • CNN은 커널을 사용하고 픽셀 사이에 관계가 있다는 가정을 아키텍처에 내포하여 학습합니다. 반면 ViT는 이런 가정이 없고 패치 사이의 관계에서 특징을 추출합니다. 따라서 가정 없이 학습하는 ViT는 모든 관계를 새로 학습해야하기 때문에 학습 속도가 느립니다.
  • 계산 복잡도 측면에서도 셀프 어텐션 연산은 시퀀스 길이의 제곱에 비례하고 컨볼루션 연산은 커널 크기와 이미지 크기에 비례합니다.

ViT가 프리트레이닝이 필요한 이유를 트랜스포머와 연결하여 설명하라

  • CNN는 주변 픽셀과 관계가 있다는 가정이 있지만 ViT는 이런 가정이 없기 때문입니다. 트랜스포머 구조는 원래 NLP 태스크를 위해 만들어졌습니다. 텍스트는 단어 단위로 나뉘어지는데 이미지에서도 인위적으로 패치 단위로 나누게 됩니다. 이 과정에서 CNN과 같은 가정이 사라지고 모든 관계를 새로 학습하기 때문에 프리트레이닝이 필요합니다.
  • 대규모 데이터셋으로 프리트레이닝을 하면 이미지의 일반적인 특성을 학습할 수 있습니다. 이 일반적인 특징이 세부 태스크나 작은 데이터셋에서 좋은 성능을 낼 수 있게 합니다.

inductive bias에 대하여 설명하라

  • 학습하는 과정에서 생긴 사전 가정으로 인간의 선입견과 유사합니다. 학습 데이터나 아키텍처에 의해 발생합니다.
  • CNN의 경우에는 근처 픽셀 간에 관계에 대한 인덕티브 바이어스가 생기고, ViT의 경우 상대적으로 인덕티브 바이어스가 없지만 패치 단위로 이미지를 나누는 것에 대한 인덕티브 바이어스가 있습니다.

딥러닝 이전에 detection에 사용했던 방법을 설명하라

  • 이미지의 경계와 방향을 분석하는 HOG와 이미지의 밝기 차이를 특정하여 눈코입의 패턴을 감지하는 Haar와 같은 방법이 있습니다.

Faster R-CNN의 모델에 대하여 설명하라

  • Faster R-CNN은 2 stage 디텍션 모델입니다. Fast R-CNN에 select search 대신 RPN을 사용해 속도를 개선한 모델입니다. RPN이 객체가 있을 만한 영역을 먼저 찾은 후 Fast R-CNN이 객체를 분류하고 박스를 정교하게 조정합니다.
  • RPN: Region Proposal Network, ROI (Region of Interest)를 자동 생성
  • 장점으로 ROI 풀링과 ResNet 백본의 영향으로 정확도가 높습니다.
  • 단점으로 네트워크가 2단계로 진행되어 실시간 처리가 어렵고 모듈수가 많아 구조가 복잡합니다.

YOLO의 모델에 대하여 설명하라

  • YOLO는 1 stage 디텍션 모델입니다. 이미지를 그리드로 나누고 한번에 객체 검출을 수행하는 방식을 사용합니다. 각 그리드 셀이 객체의 클래스와 바운딩 박스를 한번에 예측하고 NMS로 중복된 박스를 소거합니다.
  • NMS: Non-Maximum Suppression, 중복 검출 결과를 제거하는 후처리 기법입니다. 하나의 객체에 대하여 여러개의 바운딩 박스가 예측되면, 박스 중에 컨피던스 스코어가 가장 높은 박스만 선택합니다. 이 박스와 많이 겹치는 (IoU가 높은) 박스는 제거합니다.
  • 장점으로 실시간 처리가 가능할 정도로 빠르고 end-to-end CNN 형태로 구조가 간단합니다.
  • 단점으로 격자 기반 예측 방식으로 인해 작은 크기의 객체 인식 성능이 낮고 속도에 중점을 뒀기 때문에 상대적으로 정확도가 낮습니다.

가장 선호하는 객체인식 알고리즘을 설명하고 장단점을 설명하라

  • YOLO 입니다. 실시간 처리가 가능하며 end-to-end 모델이라는 점이 제가 추구하는 방향이랑 동일하기 때문입니다.

DETR 모델에 대하여 설명하라

  • DEtection TRansformer는 메타 연구진이 발표한 객체 인식 모델입니다. 기존 모델의 복잡한 후처리 과정인 RPN과 NMS를 없애고 트랜스포머를 사용해 end-to-end로 학습이 가능합니다. 그리고 고정된 숫자의 object query를 사용해서 이미지 내 객체를 직접 예측하고, object query에서 FFN을 통해 객체의 클래스와 위치를 예측합니다.

CLIP 모델에 대하여 설명하라

  • Contrastive Language-Image Pre-training은 오픈AI가 발표한 멀티모달 모델입니다. 이미지와 텍스트를 같은 스페이스에 매핑해서 둘 사이의 관계를 학습하는 모델로 contrastive learning을 사용합니다.
  • contrastive learning: 같은 이미지-텍스트 쌍은 가깝게, 관계없는 이미지-텍스트 쌍은 멀게 학습히는 방법입니다. cosine similarity로 유사도를 계산하는 InfoNCE Loss를 사용합니다.

LLaVA 모델에 대하여 설명하라

  • LLM 모델인 LLaMA에 CLIP의 비전 인코더를 연결한 멀티모달 모델입니다. instruction tuning으로 시각-언어 데이터의 기본 능력을 학습하고 GPT-4의 데이터로 미세조정을 했습니다.
  • instruction tuning: CLIP의 이미지 임베딩을 LLM의 토큰 임베딩과 정렬하는 것을 목적으로 하며, CLIP의 이미지 임베딩을 LLM의 토큰 임베딩으로 변환하는 프로젝션 레이어를 학습합니다.

최신 VLM 모델에 대하여 설명하라 (2025.02)

  • DALL-E-3, GPT-4V, Claude 3, MoE-LLaVA, LLaVA-CoT 등이 있습니다. 이미지 인코더와 기존 LLM을 합치는 방향으로 연구가 진행되고 있고 MoE 나 CoT 같은 메서드가 활용되고 있습니다.
  • MoE: Mixture of Experts, 여러 전문가 네트워크를 조합해 효율적인 추론을 하는 방식입니다.
  • CoT: Chain of Thought, 복잡한 추론을 단계적으로 수행하는 방식입니다.

avg pooling과 max pooling의 차이를 설명하라

  • 풀링 레이어는 입력 데이터의 크기를 줄이면서 중요한 특징을 추출합니다.
  • avg pooling은 영역 내 모든 값의 평균을 취해 전반적인 특징을 보존하고 max pooling은 영역 내 최댓값만 선택해 가장 두드러진 특징만 유지합니다. 일반적으로 max pooling을 더 많이 사용합니다.

semantic segmentation을 설명하라

  • 이미지의 각 픽셀을 특정 클래스로 분류하는 작업 입니다. 대표적인 모델으로 FCN, U-Net이 있습니다.

CNN이 MLP보다 좋은 이유는 무엇인가

  • CNN은 필터를 사용하는데 이는 곧 파라미터를 공유하는 것으로 메모리를 효율적으로 사용할 수 있고 주변 픽셀과의 관계를 학습할 수 있습니다.

CNN의 파라미터 수를 계산하는 방법을 설명하라

  • (커널 크기 * 커널 크기 * 입력 채널 * 출력 채널) + 출력 채널 입니다.

볼츠만 머신을 설명하라

  • 현재 딥러닝 네트워크의 전신인 restricted 볼츠만 머신은 가시층과 은닉층으로 구성되어 있습니다. 각 층의 노드들은 확률적 상태를 가지며 실제값과 재구성값의 차이를 가중치 업데이트에 활용합니다. 역전파 알고리즘 없이 학습하는 초기의 딥러닝 알고리즘 입니다. 이 RBM이 곧 FC layer와 동일한 구조를 가집니다.

오토인코더를 설명하라

  • 입력을 압축했다가 복원하는 비지도학습 모델입니다. 인코더는 입력을 저차원으로 점차 압축하고 디코더는 압축된 정보를 원본 차원으로 점차 복원합니다.

 

 

끝.

반응형