인공 뉴런
인공 뉴런이란 사람의 뇌가 뉴런들로 되어있는것을 본따 인공적으로 만든 함수입니다.
입력 여러개를 일정한 값을 곱해 합쳐서 내보내죠.
(출처:https://deeplearning4j.org/kr/neuralnet-overview)
예를 들어 1,2,3이란 숫자를 가중치를 0.1, 0.2, 0.3으로 두고 이 인공 뉴런에 넣으면, 입력 × 가중치의 합인
1×0.1 + 2×0.2 + 3×0.3 = 0.1+0.4+0.9=1.4가 튀어나오는 거죠.
이제 이 값을 어떠한 함수에 넣습니다. 이 함수는 활성 함수라고 하고, 예전엔 시그모이드 함수(이에 대해선 전 포스트인 https://steemit.com/kr/@n7484443/01를 참조해주세요)를 사용했죠. 물론 현재는 효율을 위해 ReLU라는 함수를 쓰고 있지만요. 비교적 간단한 형태이지만, 그로 인해 한계점이 나타납니다.
우선 이 그림의 파란선과 빨간선을 직선으로 구분해보세요. 꺽이는 점이 없이요.
아마 많이 구별해도 아래 그림처럼만 할 수 있을거에요.
이게 함수 하나로 이루어진 인공 뉴런의 한계입니다. 간단한 것은 구분 가능하지만, 복잡한 것은 구분 불가능하죠.
이를 해결하기 위해 여러 방법들이 생겨납니다. 여러개를 연결시키고, 차원을 늘려 생각하는 것이죠.(출처:http://colah.github.io/posts/2014-03-NN-Manifolds-Topology/)()
(최대로 많이 해보자. 그래도 불가능한 부분이 있다.)()
여러개?
여러개의 인공뉴런을 연결시켜볼까요?
위 방법을 사용하면 이제 한개로 할수 없었던 것을 할 수 있게 되죠.
선 하나로도 잘그어집니다. 그러니깐, 인공신경망은 그림을 구기고, 선긋고를 엄청 반복하여 결과를 내놓는 거죠.
예를 들어 나선모양의 파란색선과 붉은 선을 분류하는 사진을 보시죠.
이런식으로 분류할 수 있습니다. 이것이 인공 신경망의 원리입니다.