인공 신경망의 학습과 판정
2017학년도 6월 평가원 모의고사에 출제된 인공 신경망 지문은 복잡한 인공 신경망의 구조를 그리면서 생각하는 것이 주요했던 지문이다.
1 문단
인간의 신경 조직을 수학적으로 모델링하여 컴퓨터가 인간처럼 기억, 학습, 판단할 수 있도록 구현한 것이 인공 신경망 기술이다. 신경 조직의 기본 단위는 뉴런인데, ⓐ인공 신경망에서는 뉴런의 기능을 수학적으로 모델링한 퍼셉트론을 기본 단위로 사용한다.
인간의 신경 조직을 모방하여 인간과 같은 기능을 할 수 있게 하는 인공 신경망 기술에 대한 내용이다. 인간의 신경 조직의 기본 단위가 뉴런인 것처럼 일종의 로봇 뇌인 인공 신경망의 기본 단위는 퍼셉트론인 것이다.
간단하게 뉴런=퍼셉트론이라 정리하면 되겠다.
2 문단
ⓑ퍼셉트론은 입력값들을 받아들이는 여러 개의 ⓒ입력 단자와 이 값을 처리하는 부분, 처리된 값을 내보내는 한 개의 출력 단자로 구성되어 있다. 퍼셉트론은 각각의 입력 단자에 할당된 ⓓ가중치를 입력값에 곱한 값들을 모두 합하여 가중합을 구한 후, 고정된 ⓔ임계치보다 가중합이 작으면 0, 그렇지 않으면 1과 같은 방식으로 ⓕ출력값을 내보낸다.
퍼셉트론은 여러 개의 입력값들을 받아들이는 여러 개의 입력 단자와 처리 부분, 그리고 한 개의 출력 단자로 구성되어 있다. 여러 개의 입력 단자는 각각의 가중치를 가지고 있고, 출력값을 내보내는 방식은 다음과 같다.
(입력단자 1 가중치 X 입력값 1) + (입력단자 2 가중치 X 입력값 2)+ ... = 가중합
IF 임계치> 가중합 이면 출력값 0 / 임계치=<가중합 이면 출력값 1
여기서는 입력값이 여러 개 있다는 것과 그것이 각각의 입력 단자에 들어간다는 것, 그리고 가중합보다 작지 않으면 1이라는 것은 같거나 크다는 것이라는 점을 주의해서 봐야 한다.
3 문단
이러한 퍼셉트론은 출력값에 따라 두 가지로만 구분하여 입력값들을 판정할 수 있을 뿐이다. 이에 비해 복잡한 판정을 할 수 있는 인공 신경망은 다수의 퍼셉트론을 여러 계층으로 배열하여 한 계층에서 출력된 신호가 다음 계층에 있는 모든 퍼셉트론의 입력 단자에 입력값으로 입력되는 구조로 이루어진다. 이러한 인공 신경망에서 가장 처음에 입력값을 받아들이는 퍼셉트론들을 입력층, 가장 마지막에 있는 퍼셉트론들을 출력층이라고 한다.
퍼셉트론은 출력값에 따라 두 가지로만 구분하여 입력값들을 판정할 수 있다는 것은 입력값을 통해 도출된 가중합이 임계치보다 작은지, 크거나 같은지만 구분할 수 있다는 것이다. 이러한 단순한 구조의 한계를 보완하기 위해 퍼셉트론을 다층으로 배열하여 인공 신경망을 구성하는 데, 이 것을 그림으로 표현하자면 다음과 같다.
4 문단
㉠어떤 사진 속 물체의 색깔과 형태로부터 그 물체가 사과 인지 아닌지를 구별할 수 있도록 인공 신경망을 학습시키는 경우를 생각해 보자. 먼저 학습을 위한 입력값들 즉 학습 데이 터를 만들어야 한다. 학습 데이터를 만들기 위해서는 사과 사진을 준비하고 사진에 나타난 특징인 색깔과 형태를 수치화해야 한다. 이 경우 색깔과 형태라는 두 범주를 수치화하여 하나의 학습 데이터로 묶은 다음, ‘정답 ’에 해당하는 값과 함께 학습 데이터를 인공 신경망에 제공한다. 이때 같은 범주에 속하는 입력값은 동일한 입력 단자를 통해 들어가도록 해야 한다. 그리고 사과 사진에 대한 학습 데이터를 만들 때에 정답 인 ‘사과이다 ’에 해당하는 값을 ‘1’로 설정하였다면 출력값 ‘0’은 ‘사과가 아니다 ’를 의미하게 된다.
이런 인공 신경망을 학습시키는 방법에 대한 내용이다. 입력층에 넣을 학습 데이터는 색깔, 형태처럼 특징이라는 범주를 수치화하여 구성한다. 정답에 해당하는 값(사과의 특징을 수치화한 값)과 함께 학습 데이터(다양한 형태의 사과들의 특징을 수치화한 값)를 인공신경망에 제공한다. 이때 같은 범주에 속하는 입력값은 동일한 입력 단자를 통해 들어가도록 해야 하기 때문에 ㉠의 경우에서는 색깔과 형태라는 두 범주가 있고 이 두 범주의 데이터가 2개의 입력 단자에 각각 들어가는 것이다.
5 문단
인공 신경망의 작동은 크게 학습 단계와 판정 단계로 나뉜다. 학습 단계는 학습 데이터를 입력층의 입력 단자에 넣어 주고 출력층의 출력값을 구한 후, 이 출력값과 정답에 해당하는 값의 차이가 줄어들도록 가중치를 갱신하는 과정이다. 어떤 학습 데이터가 주어지면 이때의 출력값을 구하고 학습 데이터와 함께 제공된 정답에 해당하는 값에서 출력값을 뺀 값 즉 오차 값을 구한다. 이 오차 값의 일부가 출력층의 출력 단자에서 입력층의 입력 단자 방향으로 되돌아가면서 각 계층의 퍼셉트론별로 출력 신호를 만드는 데 관여한 모든 가중치들에 더해지는 방식으로 가중치들이 갱신된다. 이러한 과정을 다양한 학습 데이터에 대하여 반복하면 출력값들이 각각의 정답 값에 수렴하게 되고 판정 성능이 좋아진다. 오차 값이 0에 근접하게 되거나 가중치의 갱신이 더 이상 이루어지지 않게 되면 학습 단계를 마치고 판정 단계로 전환한다. 이때 판정의 오류를 줄이기 위해서는 학습 단계에서 대상들의 변별적 특징이 잘 반영되어 있는 서로 다른 학습 데이터를 사용하는 것이 좋다.
학습 단계에서는 학습 데이터를 입력층에 넣고 출력층에서 출력값을 구한 후 정답에 해당하는 값에서 출력값을 뺀 오차 값을 통해 가중치를 갱신하는 방식으로 진행된다.
정답에 해당하는 값 - 출력값 = 오차 값
이 오차 값은 다시 입력층으로 돌아가 관여된 각각의 입력 단자에 있는 가중치에 더해지는 방식으로 가중치가 갱신되고 이러한 과정을 반복하여 판정 단계로 나아간다. 판정 단계에서는 오류를 줄이기 위해 대상들의 변별적 특징이 잘 반영되어 있는 서로 다른 학습 데이터를 사용하는 것이 좋다. ㉠의 경우에서는 서로 다른 다양한 사과의 데이터를 넣어 다양한 모양의 사과도 구분할 수 있는 인공 신경망을 만드는 것이다.
문제 1 윗글에 대한 이해로 적절하지 않은 것은? 답 : ⑤
① 퍼셉트론의 출력 단자는 하나이다.
② 출력층의 출력값이 정답에 해당하는 값과 같으면 오차 값은 0이다.
③ 입력층 퍼셉트론에서 출력된 신호는 다음 계층 퍼셉트론의 입력값이 된다.
④ 퍼셉트론은 인간의 신경 조직의 기본 단위의 기능을 수학적으로 모델링한 것이다.
⑤ 가중치의 갱신은 입력층의 입력 단자에서 출력층의 출력 단자 방향으로 진행된다.
가중치의 갱신은 출력층에서 도출된 오차 값을 입력층으로 다시 돌아가게 하는 방향으로 진행된다.
문제 2 윗글을 바탕으로 ㉠에 대해 추론한 것으로 적절하지 않은 것은? 답 : ④
① 학습 데이터를 만들 때는 색깔이나 형태가 다른 사과의 사진을 선택하는 것이 좋겠군.
② 학습 데이터에 두 가지 범주가 제시되었으므로 입력층의 퍼셉트론은 두 개의 입력 단자를 사용하겠군.
각각의 범주의 데이터는 하나의 입력단자에 들어가야 하기 때문에, 색깔, 형태의 두 개의 범주가 있는 ㉠의 경우에서는 두 개의 입력 단자를 사용한다.
③ 색깔에 해당하는 범주와 형태에 해당하는 범주를 분리하여 각각 서로 다른 학습 데이터로 만들어야 하겠군.
④ 가중치가 더 이상 변하지 않는 단계에 이르면 ‘사과’인지 아닌지를 구별하는 학습 단계가 끝났다고 볼 수 있겠군.
사과인지 아닌지를 구별하는 것은 판단 단계이지 학습 단계가 아니다.
⑤ 학습 데이터를 만들 때 사과 사진의 정답에 해당하는 값을 0으로 설정하였다면, 출력층의 출력 단자에서 0 신호가 출력되면 ‘사과이다’로, 1 신호가 출력되면 ‘사과가 아니다’로 해석해야 되겠군.
문제 3 윗글을 바탕으로 를 이해한 내용으로 가장 적절한 것은? 답 : ③
<보기>
아래의 [A]와 같은 하나의 퍼셉트론을 [B]를 이용해 학습시키고자 한다.
[A]
◦입력 단자는 세 개(a, b, c)
◦ a, b, c의 현재의 가중치는 각각 Wa=0.5, Wb=0.5, Wc=0.1
◦가중합이 임계치 1보다 작으면 0을, 그렇지 않으면 1을 출력
[B]
◦ a, b, c로 입력되는 학습 데이터는 각각 Ia=1, Ib=0, Ic=1
◦학습 데이터와 함께 제공되는 정답=1
이런 첫 과정을 거친다면, 가중합은 다음과 같다.
( 1 X 0.5 ) + ( 0 X 0.5 ) + ( 1 X 0.1 ) = 0.6
0.6 < 1 이기 때문에 첫 과정의 출력값은 0이 된다.
① [B]로 학습시키기 위해서는 판정 단계를 먼저 거쳐야 하겠군.
판정이 아닌 학습 단계이다.
② 이 퍼셉트론이 1을 출력한다면, 가중합이 1보다 작았기 때문 이겠군.
1보다 작은 것이 아닌 크거나 같아야 한다.
③ [B]로 한 번 학습시키고 나면 가중치 Wa , Wb , Wc가 모두 늘어나 있겠군.
오류값이 입력층으로 다시 돌아가 관여된 가중치에 더해지는 방식으로 학습되기 때문에 가중치는 모두 늘어난다.
④ [B]로 여러 차례 반복해서 학습시키면 퍼셉트론의 출력값은 0에 수렴하겠군.
0이 아닌 1에 수렴하는 것이다.
⑤ [B]의 학습 데이터를 한 번 입력했을 때 그에 대한 퍼셉트 론의 출력값은 1이겠군.
첫 과정의 출력값은 0이다.