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

퍼셉트론

위키원
sosodam (토론 | 기여)님의 2020년 8월 11일 (화) 14:32 판
이동: 둘러보기, 검색
퍼셉트론

퍼셉트론(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. 중량과 임계값을 초기화한다. 가중치는 0 또는 작은 무작위 값으로 초기화할 수 있다. 아래 예에서 우리는 0을 사용한다.

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

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

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

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

수렴

수용체는 선형 분류기 때문에, 훈련 세트 가 선형으로 분리할 수 없는 경우, 즉 하이퍼플레인(hyperplane)에 의해 음의 예로부터 분리될 수 없는 경우, 모든 입력 벡터를 정확하게 분류한 상태로 결코 도달하지 않는다. 이 경우 표준 학습 알고리즘에 따라 점진적으로 대략적인 해결책이 접근되지 않고 대신 학습이 완전히 실패하게 된다. 따라서 훈련 세트의 선형 분리 가능성을 선험적으로 알 수 없는 경우 아래의 훈련 변형 중 하나를 사용해야 한다. 훈련 세트가 선형적으로 분리될 수 있는 경우, 수용자는 수렴할 것을 보장한다. 더욱이, 훈련 중 수용자가 체중을 조정하는 횟수에 상한선이 있다.

각주

  1. 1.0 1.1 Perceptron Wikipedia - https://en.wikipedia.org/wiki/Perceptron

참고자료

같이 보기


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