티스토리 뷰

반응형

#Neural Network

기본적으로 위 그림처럼 Neural Network를 구성할 수 있다. 

가장 첫 레이어는 Input Layer로 입력값을 넣는다.

마지막 레이어는 Output Layer로 출력값을 반환한다.

Input과 Output사이에 있는 모든 Layer는 보이지 않는다 하여 Hidden Layer로 불리운다.


# 기본연산


컴퓨터의 기본 연산인 AND, OR, XOR을 Neural Network로 어떻게 구현할 수 있을까?

그 중 XOR문제는 Linear하지 않기 때문에 쉽지 않아 보인다.

XOR를 해결하기 전에 AND와 OR먼저 살펴보자.


AND연산은 위와 같이 파라미터를 설정하면 한 Layer로 쉽게 구현이 가능하다.

-30, +20, +20으로 00 01 10 11 조합을 모두 계산하고 Sigmoid Function을 거치면

각각 0 0 0 1이 나옴을 알 수 있다.


다음은 OR연산이다.

-10, +20, +20로 파라미터를 셋팅하면 00 01 10 11 이 각각 0 1 1 1이 되는 것을 확인할 수 있다.

이 또한 한개의 Layer로 충분하다.



다음으로 XNOR을 구현해본다.

이는 비선형이기 때문에 한개의 Layer로 구현하는 것이 불가능하다.

따라서 앞서 배운 AND, OR, NOT연산자를 통해 여러 Layer를 붙여 구현해야 한다.

빨간색 노드를 위해 AND연산을 하고 하늘색 노드를 위해 NOT을 취한 후에 AND연산을 한다.

이 두 노드를 OR연산하면 XNOR결과가 나온다.

00 01 10 11의 출력값이 각각 1 0 0 1이 됨을 알 수 있다.

여기서 NOT연산을 취하면 쉽게 XOR이 된다.


이것만이 방법은 아니지만 이런식으로 여러개의 레이어로 즉 Neural Network를 구성하여

비선형함수를 구현하는 것이 가능하다.


#Multiple output



이제 여러가지 출력이 있는 네트워크를 구성할 수 있다.

보행자, 자동차, 오토바이, 트럭 등 4가지의 출력을 원하면

출력레이어를 4차원 벡터로 두면 된다.

각각을 [1000], [0100], [0010], [0001]로 셋팅하여 계산한다.

반응형
댓글
최근에 올라온 글
최근에 달린 댓글
Total
Today
Yesterday