Deep learning/이론(hands on machine learning)

1. 케라스를 사용한 인공 신경망 소개 - 퍼셉트론

jwjwvison 2021. 5. 30. 18:56

<뉴런을 사용한 논리 연산>

 인공 뉴런 모델은 하나 이상의 이진(on/off) 입력과 이진 출력 하나를 가진다. 인공 뉴런은 단순히 입력이 일정 개수만큼 활성화되었을 때 출력을 내보낸다.

 이 네트워크가 어떤 일을 하는지 알아보자.

 

<퍼셉트론>

 퍼셉트론(perception)은 가장 간단한 인공 신경망 구조 중 하나로 퍼셉트론은 TLU(threshold logic unit) 또는 이따금 LTU(linear threshold unit)라고 불리는 조금 다른 형태의 인공 뉴런을 기반으로 한다. 입력과 출력이 (이진 on/off 값이 아닌) 어떤 숫자이고, 각각의 입력 연결은 가중치와 연관되어 있다. TLU는 입력의 가중치 합을 계산

 한 뒤 계산된 합에 계단 함수(step function)을 적용하여 결과를 출력한다. 즉, h(x)=step(z), 여기에서 z=x^tw 이다.

TLU: 입력의 가중치 합을 계산한 다음 계단 함수를 적용하는 인공 뉴런

 

 퍼셉트론에서 가장 널리 사용되는 계단 함수는 헤비사이드 계단 함수이다. 이따금 부호 함수를 대신 사용하기도 한다.

 TLU를 훈련한다는 것은 최적의 w0,w1,w2를 찾는다는 뜻이다.

 

 퍼셉트론은 층이 하나뿐인 TLU로 구성된다. 각 TLU는 모든 입력에 연결되어 있다. 한 층에 있는 모든 뉴런이 이전 층의 모든 뉴런과 연결되어 있을 때 이를 완전 연결 층(fully connected layer) 또는 밀집 층(dense layer)라고 부른다. 퍼셉트론의 입력은 입력 뉴런(input neuron)이라 불리는 특별한 통과 뉴런에 주입된다. 이 뉴런은 어떤 입력이 주입되는 그냥 출력으로 통과시킨다. 입력층(input layer)는 모두 입력 뉴런으로 구성된다. 보통 거기에 편향 특성이 더해진다(xo=1). 전형적으로 이 편향 특성은 항상 1을 출력하는 특별한 종류의 뉴런인 편향 뉴런(bias neuron)으로 표현된다. 다음 그림은 입력 두 개와 출력 세 개로 구성된 퍼셉트론이다. 이 퍼셉트론은 샘플을 세 개의 다른 이진 클래스로 동시에 분류할 수 있으므로 다중 레이블 분류기(multilabel classifier)이다.

 각 출력 뉴런의 결정 경계는 선형이므로 퍼셉트론도 (로지스틱 회귀 분류처럼) 복잡한 패턴을 학습하지 못한다. 하지만 로젠블라트는 훈련 샘플이 선형적으로 구분될 수 있다면 이 알고리즘이 정답에 수렴한다는 것을 증명했다. 이를 퍼셉트론 수렴 이론(perceptron convergence theorem)이라고 한다.

 

 사이킷런은 하나의 TLU 네트워크를 구현한 Perceptron 클래스를 제공한다.