2026년 5급 공채 기술 2차 인공지능
문제 4개 · 100점. 참고 답안·채점 기준은 앱에서 볼 수 있습니다.
제1문 (20점)
인공지능에 관한 다음 물음에 답하시오. (총 20점)
- (1) 아실로마 인공지능 원칙에서 윤리와 가치에 대한 인공지능 원칙 중 실패의 투명성, 가치 일치, 개인정보보호에 대하여 설명하시오. (10점)
- (2) 설명가능한 인공지능(XAI, eXplainable Artificial Intelligence)과 책임있는 AI(Responsible AI)에 대하여 설명하시오. (5점)
- (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}에 속할 예측 점수이다)
(단, z_{i}(i = 1 , \, \, 2 , \, \, 3)는 클래스 C_{i}에 속할 예측 점수이다)
- (1) 예측 점수 벡터 z를 입력으로 하는 softmax 함수를 통하여, 각 클래스의 정답 확률 벡터 {\hat{{y}}} \, = [ \, {\hat{{y}}}_{{1}} , \, \, {\hat{{y}}}_{{2}} , \, \, {\hat{{y}}}_{{3}} \, ]을 구하시오. (10점)
- (2) 실제 정답 클래스가 C_{{1}}인 경우, 이를 원-핫 인코딩(one-hot encoding)으로 표현하시오. (5점)
- (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)
[그림]
○Class 2([그림]):(6, 6), (8, 7), (10, 8), (11, 7)
○테스트 데이터([그림]):A(7, 4), B(8, 4), C(9, 3)
[그림]
- (1) k-NN 분류 방법을 단계별로 설명하고, 위에서 제시한 3개의 테스트 데이터, A, B, C가 속하게 될 클래스를 결정하시오. (단, k=3이고, 거리는 유클리드 거리(Euclidean distance)를 사용한다) (15점)
- (2) k-NN 방법이 지도 학습(supervised learning)과 비지도 학습(unsupervised learning) 중 어떤 학습에 해당되는지 설명하시오. (5점)
- (3) 학습 데이터의 양이 많아지면 k-NN 방법을 이용하여 분류할 때, 더 많은 메모리를 필요로 하고 계산 속도가 느려질 수 있다. 그 이유에 대하여 설명하시오. (5점)
제4문 (30점)
다음은 트랜스포머(transformer) 아키텍처에서 사용되는 핵심 기술인, 단일 헤드(single-head) 셀프 어텐션(self-attention)에 관한 설명이다.
2개의 임베딩 벡터 x_{1}과 x_{2}로 구성된 문장이 입력되었을 때, 다음 물음에 답하시오. (단, 모든 계산 결과는 반올림을 통해 소수점 아래 둘째 자리까지만 표현한다) (총 30점)
입력 문장의 각 토큰(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)를 생성한다.
(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
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) 주어진 입력 문장에 대한 쿼리 벡터 q_{i}, 키 벡터 k_{i}, 밸류 벡터 v_{i}를 구하시오. (단, i=1, 2) (12점)
- (2) 어텐션 점수 행렬 R = \left[ {matrix {r_{11} r_{12} \\ r_{21} r_{22}}} \right]을 구하시오. (단, r_{ij}는 i번째 쿼리 벡터와 j번째 키 벡터 간의 어텐션 점수이고, 키 벡터의 차원 크기를 고려한 추가 스케일링 조정은 생략한다) (8점)
- (3) 어텐션 점수를 softmax에 적용해 정규화한 결과인 가중치 행렬 A = \left[ {matrix {a_{{11}} a_{{12}} \\ a_{{21}} a_{{22}}}} \right]를 구하시오. (단, a_{ij}는 i번째 쿼리 벡터의 j번째 키 벡터에 대한 어텐션 점수를 정규화한 결과이다) (5점)
- (4) 문맥 벡터 행렬 C \, = {bmatrix {c_{1} \ c_{2}}}를 구하시오. (단, c_{i}는 i번째 쿼리 벡터에 대한 문맥 벡터이다) (5점)끝