뉴럴 네트워크(Neural Network)란?
▶뉴럴네트워크란?
전통적인 컴퓨터는 데이터를 순차적으로 처리하며, 어떠한 흐릿함과 애매함 없이 명확한 체계에 의해 정확하게 수행된다.
반면 동물의 두뇌는 순차적이 아니라 병렬적으로 처리하며, 그 처리 특성중 하나가 바로 불 명확성이다.
뉴럴네트워크란, 동물의 생물학적 뇌의 기본단위인 인간의 뉴런을 모방하여 모델링한 네트워크이다.
뉴런을 모델링 하기 위해 사용하는 함수는 바로 시그모이드 함수(Sigmoid function)이다.
인간의 뉴런은 임계값(역치,threshold) 이상의 자극을 받아야만 출력이 발생한다.
이러한 자극은 가장 단순한 형태인 계단 함수(Step function)로 모사할 수 있다.
하지만 시그모이드 함수가 조금 더 부드러운 형태를 가지며 프로그래밍과 계산에 유리하므로 시그모이드함수를 사용한다.
각각의 뉴런은 1개가 아니라 여러 개의 뉴런으로 부터 입력을 받는다.
따라서 이러한 뉴런을 인공적으로 모델화 하기 위해서는 아래와 그림과 같은 구조가 필요로 한다.
해당 그림에는 3개의 계층 (Layer)이 있으며, 각 계층에는 3개의 뉴런이 있음을 확인 할 수 있다.
이러한 각각의 인공뉴런을 노트(Node)라고 부른다. 이러한 노드는 전 계층 그리고 직후 계층의 모든 노드와 연결되어 있음을 알 수 있다.
모든 노드간의 연결은 가중치 (Weight)가 존재한다. 실제로 모든 노드는 연결될 필요는 없으며, 더 창조적으로 연결될 수 있다.
그럼에도 불구하고 모든 노드 간의 연결을 하는 이유는 프로그래밍의 편리성 때문이다.
첫번째 계층은 입력계층 (Input Layer) 두번째 계층은 은닉계층 (hidden layer) 그리고 마지막 계층은 출력계층 (output layer)이다.
은닉계층 (hidden layer)은 결과값이 명백하게 드러나지 않기 때문에 은닉 계측이라고 불린다.