5급 공채 2차

2026년 5급 공채 기술 2차 인공지능

문제 4개 · 100점. 참고 답안·채점 기준은 앱에서 볼 수 있습니다.

제1문 (20점)

인공지능에 관한 다음 물음에 답하시오. (총 20점)
  1. (1) 아실로마 인공지능 원칙에서 윤리와 가치에 대한 인공지능 원칙 중 실패의 투명성, 가치 일치, 개인정보보호에 대하여 설명하시오. (10점)
  2. (2) 설명가능한 인공지능(XAI, eXplainable Artificial Intelligence)과 책임있는 AI(Responsible AI)에 대하여 설명하시오. (5점)
  3. (3) 「인공지능 발전과 신뢰 기반 조성 등에 관한 기본법」 제2조(정의)에서 정의하고 있는 ‘고영향 인공지능’에 대하여 설명하시오. (5점)

제2문 (25점)

다음은 3개 클래스(C_{{1}} , \, \, C_{{2}} , \, \, C_{{3}}) 분류 문제에 대해 출력 노드의 예측 점수 벡터 z를 계산한 결과이다. 다음 물음에 답하시오. (총 25점)
예측 점수 벡터 z = [ \, z_{{1}} , \, \, z_{{2}} , \, \, z_{{3}} \, ] = [ \, \, \ln ( 30 ) , \, \, \ln ( 6 ) , \, \, \ln ( 4 ) \, ]
(단, z_{i}(i = 1 , \, \, 2 , \, \, 3)는 클래스 C_{i}에 속할 예측 점수이다)
  1. (1) 예측 점수 벡터 z를 입력으로 하는 softmax 함수를 통하여, 각 클래스의 정답 확률 벡터 {\hat{{y}}} \, = [ \, {\hat{{y}}}_{{1}} , \, \, {\hat{{y}}}_{{2}} , \, \, {\hat{{y}}}_{{3}} \, ]을 구하시오. (10점)
  2. (2) 실제 정답 클래스가 C_{{1}}인 경우, 이를 원-핫 인코딩(one-hot encoding)으로 표현하시오. (5점)
  3. (3) 실제 정답 클래스가 C_{{1}}인 경우, 교차 엔트로피를 이용한 손실(L)을 구하시오. (단, 교차 엔트로피 계산 시 자연 로그를 사용한다. \ln ( 2 ) \approx 0.69, \ln ( 3 ) \approx 1.10, \ln ( 5 ) \approx 1.61) (10점)

제3문 (25점)

2차원 평면 위의 점들을 k-NN(k-nearest neighbor; k-최근접 이웃) 방법으로 분류하고자 한다. 2차원 평면 위에는 Class 1과 Class 2 중 하나의 클래스(class)에 포함되어 있는 8개의 학습 데이터(x, y)가 있다. 그리고, 어느 클래스에도 아직 포함되지 않은 3개의 테스트 데이터(test data) A, B, C가 있다. 다음 물음에 답하시오. (총 25점)
○Class 1([그림]):(2, 2), (3, 4), (4, 4), (5, 4)
○Class 2([그림]):(6, 6), (8, 7), (10, 8), (11, 7)
○테스트 데이터([그림]):A(7, 4), B(8, 4), C(9, 3)
[그림]
  1. (1) k-NN 분류 방법을 단계별로 설명하고, 위에서 제시한 3개의 테스트 데이터, A, B, C가 속하게 될 클래스를 결정하시오. (단, k=3이고, 거리는 유클리드 거리(Euclidean distance)를 사용한다) (15점)
  2. (2) k-NN 방법이 지도 학습(supervised learning)과 비지도 학습(unsupervised learning) 중 어떤 학습에 해당되는지 설명하시오. (5점)
  3. (3) 학습 데이터의 양이 많아지면 k-NN 방법을 이용하여 분류할 때, 더 많은 메모리를 필요로 하고 계산 속도가 느려질 수 있다. 그 이유에 대하여 설명하시오. (5점)

제4문 (30점)

다음은 트랜스포머(transformer) 아키텍처에서 사용되는 핵심 기술인, 단일 헤드(single-head) 셀프 어텐션(self-attention)에 관한 설명이다.
입력 문장의 각 토큰(token)에 대해 생성된 고차원 임베딩(embedding) 벡터 x_{{i}}에 대해 다음 과정을 수행한다.
(1) 각 임베딩 벡터 x_{{i}}(i=1, 2, …, n)에 대해 쿼리(Query), 키(Key), 밸류(Value) 가중치 행렬 W_{{Q \,}}, W_{{K \,}}, W_{{V}} \,를 곱하여 쿼리 벡터 q_{{i}}, 키 벡터 k_{{i}}, 밸류 벡터 v_{{i}}를 생성한다.
(2) 각 임베딩 벡터의 쿼리 벡터와 다른 임베딩 벡터들(자기 자신 포함)의 키 벡터 사이의 내적(dot product) 연산을 통해, 각 토큰마다 다른 토큰들과의 상관 관계를 표현해주는 어텐션 점수(attention score)를 계산한다.
(3) 쿼리 벡터별로 계산한 각 키 벡터에 대한 어텐션 점수 벡터를 softmax 함수에 적용하여 정규화한다.
(4) 밸류 벡터 행렬 [v_{{1}} \, \, v_{{2}} \, \, \cdots \, \, v_{{n}}]에 쿼리 벡터별로 정규화된 어텐션 점수 벡터를 곱하여 문맥 벡터(context vector)를 생성한다.

2개의 임베딩 벡터 x_{1}과 x_{2}로 구성된 문장이 입력되었을 때, 다음 물음에 답하시오. (단, 모든 계산 결과는 반올림을 통해 소수점 아래 둘째 자리까지만 표현한다) (총 30점)
x_{{1}} = \left[ pile {1 \\ 1} \right], x_{{2}} = \left[ pile {1 \\ 0} \right], X = {bmatrix {x_{1} \ x_{2}}}
W_{{Q}} = \left[ {matrix {1 1 \\ 0 1}} \right], W_{{K}} = \left[ {matrix {1 0 \\ 0 1}} \right], W_{{V}} = \left[ {matrix {1 3 \\ 2 2}} \right], \frac{{1}}{{1 + e}} \approx 0.27
  1. (1) 주어진 입력 문장에 대한 쿼리 벡터 q_{i}, 키 벡터 k_{i}, 밸류 벡터 v_{i}를 구하시오. (단, i=1, 2) (12점)
  2. (2) 어텐션 점수 행렬 R = \left[ {matrix {r_{11} r_{12} \\ r_{21} r_{22}}} \right]을 구하시오. (단, r_{ij}는 i번째 쿼리 벡터와 j번째 키 벡터 간의 어텐션 점수이고, 키 벡터의 차원 크기를 고려한 추가 스케일링 조정은 생략한다) (8점)
  3. (3) 어텐션 점수를 softmax에 적용해 정규화한 결과인 가중치 행렬 A = \left[ {matrix {a_{{11}} a_{{12}} \\ a_{{21}} a_{{22}}}} \right]를 구하시오. (단, a_{ij}는 i번째 쿼리 벡터의 j번째 키 벡터에 대한 어텐션 점수를 정규화한 결과이다) (5점)
  4. (4) 문맥 벡터 행렬 C \, = {bmatrix {c_{1} \ c_{2}}}를 구하시오. (단, c_{i}는 i번째 쿼리 벡터에 대한 문맥 벡터이다) (5점)
    끝