뉴런의 개념
11 Feb 2020
Reading time ~1 minute
김태영님의 블록과 함께 하는 파이썬 딥러닝 케라스
를 학습하며 정리하는 내용입니다.
인공신경망은 인간의 뉴런이 연결된 형태를 모방한 모델입니다. 딥러닝은 이 인공신경망이 발전한 개념으로 이번 포스팅에서는 이 인공신경망을 이해하기 위한 개념인 뉴런에 대해서 알아보겠습니다.
아래와 같이 인간의 뇌는 뉴런이라는 신경세포가 서로 연결된 집합체 입니다.
뉴런은 수상돌기에서 신호를 받아들이고, 축삭돌기에서 다음 뉴런으로 신호를 전송합니다. 그 사이에는 시냅스로 연결되어 있는데, 그 신호가 전달되기 위해서는 일정기준(임계값, threshold) 이상의 전기 신호가 존재 해야합니다.
인공신경망 뉴런
인공신공망의 뉴런은 위에서 본 생물학적 뉴런을 수학적으로 모델링한 것입니다. 생물학적인 뉴런이 다른 여러개의 뉴런으로부터 입력값을 받아 세포에 저장하다가 자신의 용량을 넘어서면 외부로 출력값을 내보내는 것처럼, 인공신경망 뉴런은 여러 입력값을 받아서 일정 수준이 넘어서면 활성화되어 출력 값을 내보냅니다.
뉴런을 모델링하여 나타낸 것이 아래 그림입니다.
- x0, x1, x2 : 입력되는 뉴런의 축삭돌기로부터 전달되는 신호의 양
- w0, w1, w2 : 시냅스의 강도로 입력되는 뉴련의 영향력을 나타냅니다.
- w0x1 + w1x1 + w2x2 : 입력되는 양과 해당 신호의 시냅스 강도가 곱해진 값의 합계
- f : 최종합계가 다른 뉴런에게 전달되는 신호의 양을 결정하는 규칙으로
활성화함수(Activation Function)
이라고 합니다.
세 개의 신호를 받아 하나의 신호를 전달하는 뉴런을 레고로 표현하면 다음과 같습니다. 녹색 블록은 시냅스의 강도, 빨간색과 노란색 블럭은 연산자, 파란색 블럭은 활성화 함수를 나타냅니다.
세 개의 신호가 서로 다른 뉴런 2개에 전달된다고 하면, 각 뉴런은 하나의 신호가 출력되므로 , 총 2개의 신호가 출력됩니다. 이를 레고로 표현하면 다음과 같습니다.
같은 표현이지만 세 개의 신호(x0, x1, x2)는 동일하므로 이를 겹쳐 표현하면 아래와 같습니다. 세 개의 신호가 2개의 뉴런에 연결되므로 총 연결 경우의 수는 3 x 2 = 6 개가 됩니다.
딥러닝에서 이야기하는 인공신경망은 이러한 뉴런을 여러 겹 쌓아서 만들어 내는 것입니다. 다음 포스팅에서는 뉴런의 입출력을 연결하고, 쌓아주는 Dense
라는 클래스에 대해 알아보겠습니다.
Reference
- 블록과 함께 하는 파이썬 딥러닝 케라스 (김태영 저)
- https://brunch.co.kr/@gdhan/6
- https://medium.com/qandastudy/mathpresso-머신-러닝-스터디-7-인공신경망-artificial-neural-network-c9074a223caf (메스프레소 팀블로그)