02.인공신경망의 원리

in #kr7 years ago (edited)

인공 뉴런
인공 뉴런이란 사람의 뇌가 뉴런들로 되어있는것을 본따 인공적으로 만든 함수입니다.
입력 여러개를 일정한 값을 곱해 합쳐서 내보내죠.
(출처: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/)()
우선 이 그림의 파란선과 빨간선을 직선으로 구분해보세요. 꺽이는 점이 없이요.
아마 많이 구별해도 아래 그림처럼만 할 수 있을거에요.
(최대로 많이 해보자. 그래도 불가능한 부분이 있다.)()
이게 함수 하나로 이루어진 인공 뉴런의 한계입니다. 간단한 것은 구분 가능하지만, 복잡한 것은 구분 불가능하죠.
이를 해결하기 위해 여러 방법들이 생겨납니다. 여러개를 연결시키고, 차원을 늘려 생각하는 것이죠.

여러개?
여러개의 인공뉴런을 연결시켜볼까요?
위 방법을 사용하면 이제 한개로 할수 없었던 것을 할 수 있게 되죠.

선 하나로도 잘그어집니다. 그러니깐, 인공신경망은 그림을 구기고, 선긋고를 엄청 반복하여 결과를 내놓는 거죠.
예를 들어 나선모양의 파란색선과 붉은 선을 분류하는 사진을 보시죠.

이런식으로 분류할 수 있습니다. 이것이 인공 신경망의 원리입니다.