오늘 알아볼 것은 인공신경망(artificial neural network)이다.
딥러닝에 대해 정의를 할 때 인공신경망 알고리즘을 사용한 머신러닝 기법이라고 했었다.
그렇다면 인공신경망은 무엇을 말하는 걸까?
인공신경망에 대해 알아 보기 앞서 퍼셉트론에 대해 알아보자
퍼셉트론은 사람의 뇌 신경 세포 동작과정을 흉내내어 만든 수학적 모델이다.
위 사진에 보이다 싶이 뉴런의 구조를 유사하게 구성된 것을 알 수 있다.
이때 뉴런과 퍼셉트론은 다음과 같이 대응된다.
뉴런 | 퍼셉트론 |
---|---|
세포체(cell body) | 노드(node) |
가지돌기(dedrite) | 입력(input) |
시냅스(synapse) | 가중치(weight) |
축삭(axon) | 출력(output) |
여기서 퍼셉트론은 학습이 가능한 초기 신경망 모델으로 볼 수 있다.
그리고 퍼셉트론의 구조가 하는 역할은 다음과 같다.
구조 | 역할 |
---|---|
입력층 | 외부로부터 입력데이터를 받는다. |
가중치 | 각 입력층의 뉴런에 가중치가 곱해진다. 이 가중치는 학습과정에서 조정된다. |
편향 | 가중합에 추가되어 결정 경계를 조정한다. |
활성화 함수 | 가중합에 편향을 더한 결과가 활성화 함수에 의해 처리되어 출력이 결정된다. 퍼셉트론에서는 주로 계단함수가 쓰인다. |
가장 단순한 퍼셉트론 형태로 단층 퍼셉트론이 있다.
여기서 퍼셉트론은 입력을 받아서 가중치를 적용하고, 그 결과를 합산하여 하나의 출력을 내보내는 구조로 이루어져있다.
이를 위와 같은 수식으로 사용될 수 있다.
위 수식에서는 합산된 결과를 기준으로
0 이상일때는 1을, 0 미만일때는 0을 출력하는 계단 함수가 적용되어 있다.
위의 계단 함수와 같이 퍼셉트론에서는 합산된 결과에 대해 활성화 함수를 거치게 된다.
활성화 함수에 대해서는 차후에 포스팅을 하도록 하겠다.
다층 퍼셉트론은 단층 퍼셉트론을 쌓아서 만든 퍼셉트론이라고 생각을 하면 된다.
단층 퍼셉트론은 입력층과 출력층으로만 이루어진다면,
다층 퍼셉트론은 입력층과 출력층 사이에 최소 한개 이상의 은닉층을 갖게된다.
각 층은 다수의 뉴런으로 이루어져 있으며 비선형 활성화 함수를 통해 서로 연결된다.
이러한 구조 덕분에 다층 퍼셉트론은 복잡한 비선형 관계를 모델링 할 수 있고, 단층 퍼셉트론으로는 해결못하는 XOR 문제도 해결할 수 있다.
일반적으로 다층 퍼셉트론(MLP)와 인공신경망(ANN)은 동일한 개념을 지칭하는 경우가 많다.
그래도 이 둘을 구분해 말할 때에는 다음과 같은 차이점이 있다.
즉 다층 퍼셉트론은 인경망의 한 형태이며, 인공신경망이 좀더 광범위한 범주임을 알 수 있다.