1) 신경망
인간두뇌에 대한 계산적 모델을 통해 인공지능을 구현하려는 분야가 신경망.
뇌생리학의 연구에 따르면 인간 두뇌는 신경세포 개 정도이다. 신경세포의 축색돌기는 다른 신경세포의 수상돌기와 연결되는데, 이 연결부위를 신경연접이라한다. 신경연접을 통해 신경세포들은 전기화학적인 신호를 주고 받는데, 다른 신경세포에서 보내 온 신호를 증폭하거나 감쇄하여 받는다. 받아들인 신호는 세포체(cell body)에서 합성되어, 일정 임계값 이상이면, 신경세포는 축색돌기를 통해서 신호를 내보낸다. 신경연접은 신경세포의 기능을 결정하는 부분인데, 인간 두뇌에는 약 개의 신경연접이 있다고 한다. 이러한 단순한 신경세포들을 이용하여 인간 두뇌는 지능, 감정, 자율신경 조절과 같은 일을 해낸다.
2) 퍼셉트론
1958년 Frank Rosenblatt, 1928~1971)이 제안한 초창기 신경망 모델. Perceptron은 신경세포를 네트워크 형태의 계산모델로 표현한 것.
퍼셉트론은 다수의 신호(input)을 입력받아서 하나의 신호(output)를 출력한다 이는 뉴런이 전기신호를 내보내 정보를 전달하는 것과 비슷해 보인다. 그리고 뉴런의 수상돌기나 출색돌기처럼 신호를 전달하는 역할을 퍼셉트론에서는 weight가 그 역할을 한다. 가중치라고 부르는 이 weight가 그 역할을 한다. 가중치라고 부르는 이 weight는 각각의 입력신호에 부여되어 입력신호와의 계산을 하고 신호의 총합이 정해진 임계값을 넘었을 때 1을 출력한다. 넘지 못하면 0 또는 –1을 출력한다
각 입력신호에는 고유한 weight가 부여되며 weight가 클수록 해당 신호가 중요하다고 볼 수 있다. 여기서 기계학습이 하는 일은 이 weight(입력을 조절하니 매개변수로도 볼 수 있음)의 값을 정하는 작업이라고 할 수 있다. 학습 알고리즘에 따라 방식이 다를 뿐 이 weight를 만들어내는 것이 학습이라는 차원에서는 모두 같다고 할 수 있다.
퍼셉트론의 출력 값은 앞에서 말했듯이 1 또는 0(or-1)이기 때문에 선형 분류 모형이라고도 볼 수 있다. 보통 실수형의 입력 벡터를 받아 이들의 선형 조합을 계산하는 것이며 다른 포스팅에서 다룬 벡터의 내적과도 유사하다.
과 같이 되며 여기에서 b를 편향(bias)라고 할 수 있다. 기계학습 분야에서는 모델이 학습 데이터에 과적합(overfitting)되는 것을 방지하는 것이 중요하다. 여기서 과적합이라 함은 모델이 엄청 유연해서 학습 데이터는 귀신같이 잘 분류하지만, 다른 데이터를 넣어봤을 때는 제대로 성능을 발휘하지 못하는 것을 말한다. 어느 데이터를 넣어도 일반적으로 잘 들어맞는 모델을 만드는 것이 중요하다.
따라서 앞에서 설명했듯이 편향은 θ(theta)로 학습 데이터(Input)이 가중치와 계산되어 넘어야 하는 임계점으로 이 값이 높으면 높을 수록 그만큼 분류의 기준이 엄격하다는 것을 의미한다. 그래서 편향이 높을 수록 모델이 간단해지는 경향이 있으며 (변수가 적고 더 일반화 되는 경우) 오히려 과소적합(underfitting)의 위험이 발생하게 된다. 반대로 편향이 낮을수록 한계점이 낮아 데이터의 허용범위가 넓어지는 만큼 학습 데이터에만 잘 들어맞는 모델이 만들어질 수 있으며 모델이 더욱 복잡해질 것이다. 허용범위가 넓어지는 만큼 필요 없는 노이즈가 포함될 가능성도 높다. 이를 편향과 분산의 트레이드오프 관계라고 보통 부르며 기회가 되면 이 부분을 더 다뤄보도록 하겠다.
XOR 논리는 exclusive(배타적) 논리연산이다. 아래의 진리표를 보면, x1과 x2 중 어느 한쪽이 1일 때만 1을 출력한다.
x1 |
x2 |
y |
0 |
0 |
0 |
1 |
0 |
1 |
0 |
1 |
1 |
1 |
1 |
0 |
아래 그림을 보면 XOR에서는 선형으로 (직선 하나로)분류가 불가능함을 알 수 있다
출처: http://ecee.colorado.edu/~ecen4831/lectures/NNet3.html
퍼셉트론의 한계를 간략히 말하면, 직선 하나로 나눈 영역만 표현할 수 있어 XOR과 같은 데이터 형태는 분류가 불가능하다는 한계가 있다.
-----------------------------------------------------------------------------------------------------------------------------------
다른 신경세포의 축색돌리로 부터 오는 입력 신호를 로 표현하고, 신경연접에서 신호의 감쇄 또는 증폭 정도를 가중치 벡터
로 나타낸다. 세포체 내에서의 신호의 합성은
여기서, W0는 바이어스 항이라 하고, W0 = W0*1 = W0*W0으로 놓을 수 있으므로 항상 X0 =1의 값을 갖는 특수한 0번째 입력을 추가하여 식을 간략하게 한것이다. -W0 는 신호 출력의 임계값이다. 합성된 신호의 임계값 이상이면 신호를 출력하는데, 퍼셉트론은 sigmoid와 다른 step function을 사용하여 1 또는 -1 값을 출력한다. 계단함수와 같이 출력값의 형태를 결정하는 함수를 전달함수 또는 활성화 함수(Activation Function)라고 한다. 입력 x에 대한 퍼셉트론의 출력 y는 아래와 같이 표현 가능하다.
f는 퍼셉트론의 전달 함수를 나타내는데, 퍼셉트론은 계단 함수를 전달함수로 사용한다.
위와 같이 LTU로 된 단순 퍼셉트론의 학습 원리가 있다. 먼저 가중치를 임의의 값으로 초기화 한후 학습 패턴 x 를 입력하여 퍼셉트론 출력 f가 목표 출력 y와 같으면 가중치를 변경하지 않고, 다르면 가중치를 변경하는 방식으로 학습한다. 퍼셉트론 출력이 목표 출력과 일치하지 않는 경우는 다음과 같이 두 가지가 있으며 각각의 경우 가중치 변경 규칙을 다음과 같다.
• 목표 출력 y=1 인데인 f=-1 경우: 가중치 w를 w+x로 증가시킨다
• 목표 출력 y=-1인데인 f=1 경우: 가중치 w를 w-1로 감소시킨다
이와 같은 방식으로 학습예를 반복적으로 관측하면서 가중치를 변경하면 선형분리가 가능한 분류 문제의 경우 올바른 분류기를 학습해 낼 수 있음을 증명할 수 있다. 이를 퍼셉트론 학습 규칙이라고 한다.
학습에서 가중치 벡터 w 와 임계값 요소 b를 결정한다. 나중에 식을 간단하게 전개하기 위해, 항상 1값을 주는 입력 X0=1을 추가하고, 이에 대한 가중치를 b로 만들어주면, s를 벡터연산으로 표현 할 수 있다.
따라서, 로젠벨트의 퍼셉트론은 하나의 선형 임계뉴런(LTU, Linear Threshold Unit) 으로 구성된 신경망이다. 후에 나오는 다수의 뉴런으로 구성된 다층퍼셉트론과 명확히 구별하기 위하여 경우에 따라서는 퍼셉트론을 단순 퍼셉트론(Simple Perceptron)이라 부르기도 한다.
퍼셉트론은 초창기에 숫자 인식과 같은 흥미로운 결과들을 보여주며, 많은 관심을 끌었지만, XOR(exclusive OR)와 같은 단순한 문제도 해결할 수 없는 단점이 있다. 퍼셉트론은 기본적으로 선형으로 표현되는 결정 경계만을 설정하는데, XOR는 선형 경계로 부류들을 분리할 수 없는 문제이다. 이러한 문제를 선형 분리 불가(linearly inseparable problem)라고 한다. 결국, 퍼셉트론은 선형 분리불가 문제에는 적용할 수 없다는 것이다.
단일 퍼셉트론으로는 XOR을 분류할 수 없지만, 다층 퍼셉트론을 만들면 이를 극복할 수 있습니다. 다층(multi-layer)이라는 말은 하나의 퍼셉트론에 또 다른 퍼셉트론을 덧붙인다는 의미로 볼 수 있다. 단층 퍼셉트론이 비선형 영역을 분리할 수 없다는 것이 문제이며 다층으로 할 경우 비선형으로 이를 해결할 수 있다.
□
'2. 인공지능 > 2-3. 기계학습' 카테고리의 다른 글
2-3-13. 신경망(서포트 벡터 머신) (0) | 2018.02.25 |
---|---|
2-3-11. 신경망(다층 퍼셉트론) (0) | 2018.02.18 |
2-3-9. 군집화 알고리즘 (0) | 2018.02.14 |
2-3-8. k-근접이웃 알고리즘 (0) | 2018.01.24 |
2-3-7. 결정트리 (0) | 2018.01.22 |