강몬드의 프로그래밍 이야기

신경망과 딥러닝 1.퍼셉트론 본문

학습/딥러닝

신경망과 딥러닝 1.퍼셉트론

강몬드 2016. 1. 19. 16:50

퍼셉트론(Perceptron) 

   신경망은 무엇인가? 이에 대답하기 위해, 퍼셉트론이라 불리는 인공뉴런의 한 종류를 설명한다. 퍼셉트론은 1950년~1960대에 과학자 Frank Rosenblat이 개발하였다. 근래의 인공뉴런으로 많이 사용되는 개념은 퍼셉트론을 기반으로 한 시그모이드 뉴런이 있다. 시그모이드 뉴런은 간단히 설명될 수 있지만 왜 시그모이드 뉴런이 나오게 되었는지는 퍼셉트론을 먼저 이해할 필요가 있다.

 

  그럼 퍼셉트론이란 무엇일까? 퍼셉트론은 2진(Binary, 0과1)값을 갖는 다중의 입력을 하나의 2진수 값으로 출력하는 모델이다. 그림 1은 퍼셉트론의 구조이다.



<그림 1. 퍼셉트론의 구조>

   위 그림은 입력이 3개인 퍼셉트론 구조이다. 입력은 더 많거나 더 적을 수 있다. Rosenblatt은 출력을 계산하는 간단한 규칙을 제안했다. 그는 입력이 출력에 미치는 중요성을 수치 값으로 표현하였고 이를 weights(w1,w2,,...,)로 정의하였다. 그리고 출력은 2진수 값이였는데 weighted sum 이 임계값보다 적으면 0, 그렇지 않으면 1을 출력한다. 여기서 임계값은 가중치와 마찬가지로 실수 값은 갖는다. 수식 2는 임계값의 의한 출력 수식의 표현이다.



<수식 1. 출력 계산 수식>


   퍼셉트론은 간단한 수학 계산 모델로 볼 수 있는데 이를 통해서 입력 값이 결과에 미치는 영향력을 정해서 결정을 내리는 장치로 생각할 수 있다. 간단한 예제를 보자.


   주말이 오고 도시에 치즈 축제가 열린다고 들었다고 하자. 그리고 너는 치즈를 좋아하고 축제에 갈지 안 갈지를 정해야 한다. 우리는 결정을 내릴 때 세 가지 요건을 고려해야 한다.


1. 날씨가 좋은지?

2. 여자 친구가 같이 가기를 원하는지?

3. 축제가 대중교통에서 가까운지? (차가 없다고 가정)


   우린 위 3가지 요인들을 입력 x1, x2, 그리고 x3으로 표현할 수 있다. 예를 들어, x1 = 1이라면 날씨가 좋은 거다.


   우리는 치즈를 좋아하고 축제도 가고 싶지만 여자 친구가 싫다하면 결정하기 힘들다. 또 당일 날씨까지 안 좋다면 더욱 가기 싫어진다. 이럴 때 결정을 해주는 퍼셉트론 모델을 만들자. 먼저 가중치를 정하자. w1 = 6, w2 = 2, w3 = 2처럼 각각의 조건마다 가중치가 다르다. w1이 가장 큰 이유는 날씨 따라 선택이 크게 좌우되기 때문이다. 마지막으로 퍼셉트론의 임계값은 5로 정하자.


   이렇게 만들어진 모델은 날씨가 좋은지 아니면 나쁜지, 그리고 여자 친구가 원하는지, 축제가 대중교통에서 가까운지 상황을 입력받고 결정을 만들어준다.

   

   우리는 이 모델을 개인에 맞게끔 가중치와 임계값을 바꿔서 모델의 결정을 바꿀 수 있다. 예를 들어, 임계값을 3으로 정하자. 그땐 임계값이 5일 때보다 날씨와 여자 친구, 대중교통으로부터 받은 요인에서 축제에 갈 확률이 높아진다. 이 의미는 임계값이 작을수록 우리가 축제에 가게 될 확률이 높아지는 것이다.


   그러나, 퍼셉트론 모델은 실제 상황에서 결정을 만드는 모델로 적용하기엔 적합하지 않다. 그림 3은 퍼셉트론의 집합으로 더 추상적인 결정을 내릴 수 있는 모델을 설계하였다.



<그림 2. 퍼셉트론으로 설계된 모델>

   위 그림에서 왼쪽부터 1-layer,2-layer,3-layer라고 층으로 분류할 수 있다. 첫 번째 층에서의 입력들은 각각이 세 개의 결정을 출력 한다. 또 두 번째 층에서의 출력은 세 번째 층의 입력으로 사용되어 weighted sum을 구한 뒤 output을 출력한다. 두 번째 층에서 나온 출력은 첫 번째 층의 출력보다 더 추상적이고 복잡한 단계이다. 심지어 세 번째 층의 퍼셉트론은 더 추상적인 결정을 할 수 있다. 여기서 망의 층이 많아질수록 복잡한 결정을 만들 수 있단 걸 알 수 있다. 예를 들면, 치즈 페스티벌 외에 햄버거, 힙합, 체육 페스티벌들이 있을 때 그 페스티벌이 열리는 장소로 갈지 말지를 결정할 수 있다. 나는 치즈에 환장하지만 햄버거가 있는 곳은 가기도 싫다. 그러나 체육 페스티벌에 참여해야하고 힙합 페스티벌에는 여자 친구가 가기를 원한다. 나의 결정은? 말로 설명하기 복잡한 이런 추상적인 결과를 퍼셉트론으로 이뤄진 여러 층의 모델로 상황별 입력을 통해 결정을 만들 수 있다.


   위에서 퍼셉트론을 정의할 때 단일 출력을 가진다고 정의하였다. 그런데 위에 그림에선 하나의 퍼셉트론이 다중의 출력을 갖고 있다. 단지 출력이 여러 개의 퍼셉트론의 입력으로 사용되어짐을 그림으로 표현했을 뿐이지 여전히 하나의 퍼셉트론은 하나의 출력을 갖는다.


   퍼셉트론의 수식을 간단하게 바꿔보자. 먼저  로 쓸 수 있다. 또 임계값을 항등식 반대편으로 이동할 수 있다. 그리고 임계값을 bias로 표현하면  이다. 수식 4는 임계값 대신에 bias를 사용한 퍼셉트론의 수식이다.



<수식 2. 퍼셉트론의 수식 표현 2>

   bias의 값이 크면 출력이 1이 되므로 퍼셉트론의 출력에 영향을 미치는 변수라고 생각할 수 있다. 또는 다른 말로 퍼셉트론이 활성화되어질지를 정한다고도 할 수 있다. 이는 수식에서 간단한 변화를 줬지만 앞으로의 내용이 더 쉽게 이해되게끔 도와준다. 앞으로는 임계값대신에 bias를 사용한다.


출처 : http://neuralnetworksanddeeplearning.com/index.html


-

'학습 > 딥러닝' 카테고리의 다른 글

신경망과 딥러닝 3.신경망의 구조  (0) 2016.01.25
신경망과 딥러닝 2.시그모이드 뉴런  (0) 2016.01.23
Error when using classify in caffe  (0) 2016.01.14
혼자 생각  (0) 2016.01.12
컨볼루션 신경망 시각화  (0) 2015.12.22
Comments