검수요청.png검수요청.png

퍼셉트론

위키원
이동: 둘러보기, 검색
퍼셉트론

퍼셉트론(Perceptron)은 머신러닝에서 이진 분류자의 감독 학습을 위한 알고리즘이다.

개요[편집]

퍼셉트론은 임계값 함수라고 불리는 이진 분류기를 학습하기 위한 알고리즘으로, 입력 를 출력 값 에 매핑한다.

위의 은 실제 가중치의 벡터, 는 도트 제품 이며, 여기서 은 퍼셉트론에 대한 입력 수, 은 치우침이다. 치우침은 결정 경계를 출발지로부터 멀리 이동시키고 어떤 입력값에도 의존하지 않는다. (0 또는 1)의 값은 를 이항분류 문제의 경우 양수 또는 음수로 분류하는 데 사용된다. 가 음수일 경우, 분류기 뉴런을 0 임계값 이상으로 밀기 위해서는 입력의 가중 조합이 보다 큰 양의 값을 생성해야 한다. 공간적으로 치우침은 결정 경계의 위치를 변경한다. 학습 세트가 선형 분리가 아닌 경우, 개념 학습 알고리즘은 종료되지 않는다. 벡터가 선형적으로 분리 가능한 학습이 아니라면 모든 벡터가 적절하게 분류되는 지점에 도달하지 못할 것이다. 선형으로 분리되지 않은 벡터로 문제를 해결할 수 없는 가장 유명한 예로는 부울 독점 문제이다. 모든 이항 함수와 학습 행동에 대한 의사결정 경계의 솔루션 공간을 참조에서 연구한다. 신경망의 맥락에서 퍼셉트론은 단위 계단 함수 (Heaviside step function)를 활성화 함수로 사용하는 인공 뉴런이다. 이 알고리즘을 멀티레이어 퍼셉트론과 구별하기 위해 퍼셉트론 알고리즘을 단층퍼셉트론이라고 부르기도 하는데, 이는 좀 더 복잡한 신경망에 대한 잘못된 표현이다. 선형 분류기로서 단층 수용체는 가장 단순한 피드포워드(feedforward) 신경망이다.[1]

역사[편집]

개념론 알고리즘은 미국 해군 연구소의 자금으로 1958년 프랭크 로젠블랫(Frank Rosenblatt)에 의해 코넬항공연구소에서 발명되었다. 이 수용 체론은 프로그램이 아닌 기계로 의도되고 IBM 704용 소프트웨어에 처음 구현된 반면, 후속적으로 Mark 1 수용체로 주문 제작 하드웨어에 구현되었다. 이 기계는 이미지 인식을 위해 설계되었다. 그것은 400개의 광전지를 가지고 있었고, 임의로 뉴론에 연결되었다. 가중치는 전위차계로 암호화되었고, 학습 중 가중치 업데이트는 전기 모터에 의해 수행되었다. 미 해군이 주관한 1958년 기자회견에서 로젠블래트은 신생 인공지능 커뮤니티에서 격론을 일으켰던 지각변동에 대한 성명을 발표했다. 뉴욕타임스는 로젠블래트의 진술을 토대로 "우리가 개발한 인공지능은 스스로 학습해서 걷고 말하며, 보고, 쓸 수 있게 될 것이다. 그리고 종국에는 자신의 존재를 인지할 것으로 기대한다."라고 보도했다. 초기의 퍼셉트론은 유망해 보였지만, 수용자들이 많은 종류의 패턴을 인식하도록 훈련될 수 없다는 것이 빠르게 증명되었다. 이로 인해 신경망 연구 분야는 여러 해 동안 정체되었는데, 그 후 두 개 이상의 층을 가진 피드포워드 신경망(feedforward neural network)이 하나의 층을 가진 수용체보다 처리 능력이 더 크다는 것이 인식되었다. 단층퍼셉트론은 선형적으로 분리할 수 있는 패턴을 학습할 수 있을 뿐이다. 일부 단계 활성화 기능이 있는 분류 작업의 경우 단일 노드는 패턴을 형성하는 데이터 지점을 나누는 단일 선을 가진다. 더 많은 노드가 더 많은 분할선을 만들 수 있지만, 그러한 선들은 어떻게든 결합되어야 더 복잡한 분류를 형성할 수 있다. 그러한 점에서 다층퍼셉트론은 다른 분리할 수 없는 많은 문제들을 해결하기에 충분했다.

1969년에 마빈 민스키(Marvin Minsky)와 세이모어 파퍼트(Seymour Papert)가 발간한 퍼셉트론즈(Perceptrons)라는 책은 이러한 계층의 네트워크가 XOR 기능을 배우는 것은 불가능하다는 것을 보여 주었다. 그러나 민스키와 파퍼트 모두 다층퍼셉트론이 XOR 기능을 생산할 수 있다는 것을 이미 알고 있었다. 그럼에도 불구하고 자주 오인된 민스키와 파퍼트의 책은 신경망 연구에 대한 관심과 자금 후원을 크게 감소시켰다. 이로 인해 신경망 연구가 1980년대에 부활할 때까지 10년이 더 걸리게 되었다.

커널 퍼셉트론 알고리즘은 1964년 아이저먼(Aizerman) 및 기타 사람들에 의해 도입되었다. 마진 한계 보장은 1998년 일반 비분리 사례에서 프룬드(Freund)와 샤피어(Schapire)에 의해 먼저 퍼셉트론 알고리즘에 대해 소개되었고, 최근에는 2013년 모히리(Mohri)와 로스타미자데(Rostamizadeh)에 의해 이전의 결과를 연장하고 새로운 L1 한계를 극복할 수 있게 되었다.

수용체는 생물학적 뉴런의 단순화된 모델이다. 생물학적 뉴런 모델의 복잡성은 신경 행동을 완전히 이해하기 위해 종종 요구되지만, 연구는 지각자 같은 선형 모델이 실제 뉴런에서 볼 수 있는 어떤 행동을 만들어낼 수 있다는 것을 시사한다.[1]

학습 알고리즘[편집]

아래는 단층셉트론에 대한 학습 알고리즘의 예시이다. 숨겨진 레이어가 존재하는 다층 수용체의 경우 백프로파게이션과 같은 보다 정교한 알고리즘을 사용해야 한다. 퍼셉트론에 의해 모델링되고 있는 활성화 기능이나, 기본 과정이 비선형이라면 활성화 기능이 차별화되는 한 델타 규칙과 같은 대체 학습 알고리즘을 사용할 수 있다. 그럼에도 불구하고, 비선형 활성화 기능을 가진 다층 수용체에 대해서도 아래 단계에서 설명하는 학습 알고리즘이 종종 작동할 것이다. 여러 개의 수용체가 인공 신경망에서 결합될 때, 각각의 출력 뉴런은 다른 모든 것들과 독립적으로 작동하기 때문에, 각각의 출력을 학습하는 것은 고립된 것으로 간주될 수 있다.

정의[편집]

먼저 몇 가지 변수를 정의한다.

  • 은 수용자의 학습율이다. 학습 속도는 0과 1 사이이며, 값이 클수록 체중 변화가 더 불안정해진다.
  • 은 입력 벡터 에 대한 수용체론으로부터의 출력을 나타낸다.
  • 샘플의 '교육 세트'로, 다음과 같은 경우
    • 차원 입력 벡터이다.
    • 는 해당 입력에 대한 수용체의 원하는 출력값이다.

특징의 값은 다음과 같다.

  • th 훈련 입력 벡터의 번째 기능의 값이다.

가중치를 나타내기 위해 다음을 사용한다.

  • th 입력 특성의 값에 곱하기 위한 '중량 벡터'의 th 값이다.
  • , 는 사실상 바이어스 상수 대신 사용하는 바이어스이기 때문이다.

의 시간 의존성을 보여주기 위해 다음을 사용한다.

  • 는 시간 의 무게 이다.[1]

단계[편집]

1. 중량과 임계값을 초기화한다. 가중치는 0 또는 작은 무작위 값으로 초기화할 수 있다. 아래 예에서 우리는 0을 사용한다.

2. 교육 세트 의 각 예 에 대해 입력 와 원하는 출력 에 대해 다음 단계를 수행한다.

  • 실제 출력 계산:
  • 가중치 업데이트
, 모든 특징에 대해 , 는 학습 비율이다.

3. 오프라인 학습의 경우, 반복 오류 가 사용자가 지정한 오류 임계값 보다 작거나 미리 정해진 횟수의 반복이 완료될 때까지 두 번째 단계를 반복할 수 있으며, 여기서 's'는 다시 샘플 세트의 크기일 수 있다.

알고리즘은 2a 및 2b 단계 후에 가중치를 업데이트한다. 이러한 가중치는 훈련 세트의 모든 쌍이 이러한 단계를 거칠 때까지 기다리지 않고 즉시 훈련 세트의 쌍에 적용되고 이후 업데이트된다.[1]

수렴[편집]

수용체는 선형 분류기 때문에, 훈련 세트 가 선형으로 분리할 수 없는 경우, 즉 하이퍼플레인(hyperplane)에 의해 음의 예로부터 분리될 수 없는 경우, 모든 입력 벡터를 정확하게 분류한 상태로 결코 도달하지 않는다. 이 경우 표준 학습 알고리즘에 따라 점진적으로 대략적인 해결책이 접근되지 않고 대신 학습이 완전히 실패하게 된다. 따라서 훈련 세트의 선형 분리 가능성을 선험적으로 알 수 없는 경우 아래의 훈련 변형 중 하나를 사용해야 한다. 훈련 세트가 선형적으로 분리될 수 있는 경우, 수용자는 수렴할 것을 보장한다. 더욱이, 훈련 중 수용자가 체중을 조정하는 횟수에 상한선이 있다. 두 등급의 입력 벡터는 여백 이 있는 하이퍼플레인, 즉 중량 벡터 와 편향 조건 이 있다고 가정해 본다. 즉, 모든 에 대해 중량 벡터 가 있고, 모든 에 대해 이 있고 가 있는 편향 용어 이 있으며, 여기서 은 입력 에 대한 퍼셉트론의 원하는 출력 값이다. 또한 는 입력 벡터의 최대 규범을 나타내도록 한다. 1962년 노비코프(Novikoff)는 이 경우 퍼셉트론 알고리즘이 업데이트를 한 후 수렴한다는 것을 증명했다. 입증의 개념은 무게 벡터는 항상 음의 도트 제품이 있는 방향으로 경계된 양에 의해 조정되므로 에 의해 위에 경계될 수 있다는 것인데, 여기서 는 무게 벡터에 대한 변화의 수이다. 그러나 알 수 없는 만족스러운 중량 벡터가 존재한다면, 모든 변화는 입력 벡터에만 의존하는 양의 양만큼 이 알 수 없는 방향으로 진행되기 때문에 아래에도 로 경계할 수 있다.[1]

논리 회로[편집]

AND 게이트[편집]

아래의 표는 AND 게이트의 진리표이다.

INPUT OUTPUT
A B A NAND B
0 0 0
0 1 0
1 0 0
1 1 1

이 AND게이트를 퍼셉트론으로 표현해 보겠다. 이를 위해서는 ​ 의 값을 적절하게 정해야 한다.

위 식일 때, AND 게이트의 조건을 만족한다.

NAND 게이트[편집]

NAND 게이트는 Not AND를 의미하며 AND 게이트의 출력을 반대로 한 것과 같다.

INPUT OUTPUT
A B A NAND B
0 0 1
0 1 1
1 0 1
1 1 0

OR 게이트[편집]

OR 게이트는 입력 신호 중 하나 이상이 1이면 출력이 1이 되는 논리 회로다.

INPUT OUTPUT
A B A OR B
0 0 0
1 0 1
0 1 1
1 1 1

위의 각 게이트(AND, NAND, OR)의 진리표들을 보면, 퍼셉트론 구조는 모두 동일하며 다른것은 매개변수의 값뿐이다. 따라서, 매개변수의 값만 적절히 조정하면 AND, NAND, OR을 구현할 수 있다.[2]

극복[편집]

XOR
한계

퍼셉트론의 한계는 선형으로 분류를 할 수 있지만 XOR와 같이 선형 분류만 가능하며 비선형 분류는 불가능하다는 점이다. XOR 논리는 배타적(exclusive) 논리연산이다. 아래의 진리표를 보면, x1과 x2 중 어느 한쪽이 1일 때만 1을 출력한다.[3]

x1 x2 x3
0 0 0
1 0 1
0 1 1
1 1 0

위의 그림을 보면 XOR에서는 선형으로(직선 하나로) 분류가 불가능함을 알 수 있다. 퍼셉트론의 한계를 간략히 말하면 직선 하나로 나눈 영역만 표현할 수 있어 XOR과 같은 데이터 형태는 분류가 불가능하다는 점이다. 단일 퍼셉트론으로는 XOR을 분류할 수 없지만, 다층 퍼셉트론을 만들면 이를 극복할 수 있다. 다층(multi-layer)이라는 말은 하나의 퍼셉트론에 또 다른 퍼셉트론을 덧붙인다는 의미로 볼 수 있다. 단층 퍼셉트론이 비선형 영역을 분리할 수 없다는 것이 문제이며 다층으로 할 경우 비선형으로 이를 해결할 수 있다. 층을 겹겹이 쌓아나가면서 선형 분류만으로는 풀지 못했던 문제를 비선형적으로 풀 수 있게 된다.

다층퍼셉트론[편집]

다층퍼셉트론은 1986년에 발표되어, 소개되자마자 새로운 가능성으로 엄청난 주목을 받았다. 1960년대에 거의 소멸되다시피한 신경망 연구의 부활을 알리는 신호탄이었기 때문이다. 물론 그 이전에도 몇 가지 신경망 모델들이 연구되고 발표되었으나 본격적인 횃불을 올린 것은 바로 다층퍼셉트론 모델이었다. 다층퍼셉트론이 발표된 지 얼마 되지 않아 미국의 세즈노스키(Sejnowski)는 역전파 학습 알고리즘을 이용한 다층퍼셉트론 모델을 사용하여 문자음성으로 합성하는 네토크(NETtalk) 모델을 개발하였다. 이 모델은 미국에서 열린 컴퓨터 관련 학술 대회에 빠짐없이 전시되어 신경망의 새로운 유행에 일조하였다. 수백 번의 전시를 통하여 텍스트발음할 수 있는 신경망의 능력에 많은 사람들이 감탄하였으며 그것을 계기로 신경망 연구에 입문하는 사람들이 급격히 불어났다. 다층퍼셉트론의 가장 성공적인 적용의 예는 XOR 문제다. 이 문제는 전술한 바와 같이 0과 1의 입력 가운데 똑같은 입력쌍에 대해서는 0이 출력되고 서로 다른 입력에 대해서는 1이 출력되도록 학습하는 문제다.

1960년대에 단층퍼셉트론이 해결할 수 없었던 학습에 관한 대표적인 이 문제를 해결함으로써 신경망 연구는 새로운 출발점을 맞이하였다. 이를 계기로 많은 사람들이 신경망에 대한 기본적인 이해를 하게 되었으며 다수의 사람들이 신경망 연구에 몰두하였다. 미국의 이브 쇼빈(Yves Chauvin)같은 사람은 XOR 문제에 대하여 은닉 유닛의 수 및 학습계수의 변화가 학습의 속도에 주는 영향을 조사하였다. 여러 번의 실험 결과 단지 두 번만이 지역 최소점에 빠져 정확한 해를 구할 수 없었고 나머지 경우에는 모두 정확한 해를 구하였다.

다층퍼셉트론의 또 다른 성공적인 적용은 패리티 문제(Parity)였다. 패리티 문제는 입력 패턴이 홀수 개의 1을 포함한 경우에만 1을 출력하는 문제인데 매우 유사한 입력에 대해 다른 출력을 내지 않으면 안되므로 일반적인 네트워크를 이용하여 풀기에는 쉽지 않은 문제다. 중간층의 내부 표현을 통하여 이 문제를 정확하게 풀었다는 것은 다층퍼셉트론이 뛰어난 기능을 지녔음을 의미한다고 볼 수 있다.

그 외 다층퍼셉트론이 해결한 초창기의 문제들로는 부호화(Encoding) 문제, 대칭성 시메트리(Sy-mmetry) 문제, 덧셈 문제, 부정(Negation) 문제, T-C 판별 문제 등이 있다. 이러한 문제 해결에 있어서의 결정적인 요인으로는 은닉층을 사용함으로써 신경망의 내부 표현이 풍부하게 되었다는 점이다. 이를 계기로 하여 음성인식음성합성을 비롯한 다층퍼셉트론 모델의 본격적인 응용이 이어졌다.[4]

각주[편집]

  1. 1.0 1.1 1.2 1.3 1.4 Perceptron Wikipedia - https://en.wikipedia.org/wiki/Perceptron
  2. Excelsior-JH, 〈01. 퍼셉트론 - Perceptron〉, 《티스토리》, 2018-09-12
  3. 데이터 분석하는 문과생 싸코, 〈문과생도 이해하는 딥러닝 (1) - 퍼셉트론 Perceptron〉, 《티스토리》, 2017-9-27
  4. 136 다층 퍼셉트론의 응용〉, 《전자신문》, 1994-08-04

참고자료[편집]

같이 보기[편집]


  검수요청.png검수요청.png 이 퍼셉트론 문서는 인공지능 기술에 관한 글로서 검토가 필요합니다. 위키 문서는 누구든지 자유롭게 편집할 수 있습니다. [편집]을 눌러 문서 내용을 검토·수정해 주세요.