4-3 Applications 본문

ML & DL/Coursera-ML

4-3 Applications

eremo2002 2019. 1. 16. 11:16

뉴럴넷이 어떻게 복잡한 non-linear function 계산하는지 알아본다.













분류문제를 풀기위해 로지스틱 회귀로 non-linear decision boundary 만들어 오른쪽과 같이 class 분류하였다.

XOR 혹은 XNOR non-linear classification 문제다. 뉴럴넷으로도 non-linear classification 문제를 있다.












먼저 linear model 있는 AND 논리연산이 뉴럴넷으로 어떻게 만들어지는지 보자

Sigmoid input으로 들어가는 값이 x1, x2 변수 외에 bias unit 고려해서 3개의 unit 존재하며 다음 unit 연결된 wire 파라미터는 다음과 같다. 따라서 우리가 구하게 output h(x) g(-30 + 20*x1 + 20*x2)이다.

진리표에 따라 x1, x2 값에 따라 h(x) 0, 0, 0, 1이라는 AND 연산의 결과값이 동일하게 나오게 된다.








OR연산도 똑같음























뉴럴넷을 이용하여 AND, OR 논리연산을 구현할 있다는 것을 확인하였다.

NOT 연산도 이러한 방법을 사용하여 구할 있다.








뉴럴넷을 이용하여 이전보다 복잡한 이러한 논리연산도 만들 있다.











XNOR 모두 0이거나 모두 1 때만 결과값이 1이다.

이러한 논리연산은 2개의 unit 가지는 하나의 히든 레이어를 만들어서 구현할 있다.





























신경망을 이용하여 Multi-class 문제를 어떻게 분류하는지 알아본다.












멀티클래스 문제를 풀기 위해선 로지스틱 회귀를 이용했을 배웠던 One-vs-all 기법을 확장한다. 우리가 4가지 클래스를 가지는 문제를 푼다고 해당 이미지가 자동차인지 아닌지 여기서 끝내는 것이 아니라 주어진 이미지를 4가지 카테고리로 나눠서 보행자, 자동차, 오토바이, 트럭인지 4가지 하나로 분류해야 한다.

 

따라서 마지막 출력 레이어의 유닛의 수는 우리가 풀고자 하는 문제의 class 수로 설정해줘야 한다. 여기서 마지막 레이어의 유닛 수는 4개가 된다. 하나의 unit 하나의 로지스틱 회귀 classifier 되는 것이다.

그러므로 신경망이 출력한 결과 값은 4차원의 벡터가 된다. 출력 레이어의 unit class 대응되어 첫번째 유닛은 보행자를 구분하고, 두번째 유닛은 자동차를 구분하기 위해 사용된다.

 

만약 출력값 h(x) [1, 0, 0, 0]이라는 벡터가 나왔다면 input 보행자라고 대답한 것이고 [0, 1, 0, 0]이라면 자동차라고 대답한 것이다.












이전에 로지스틱 회귀를 배울 라벨을 1, 2, 3 같은 값에 대응시켰지만 여기선 하나의 열벡터로 대응된다.

다시 말하지만 신경망의 출력 레이어가 4개의 로지스틱 회귀 classifier unit 가지고 있으므로 h(x) 최종적으로 4차원 벡터가 된다.

이러한 메커니즘이 신경망을 이용하여 multi-class classification문제를 푸는 방법이다.









'ML & DL > Coursera-ML' 카테고리의 다른 글

5-2 Backpropagation in Practice  (0) 2019.01.21
5-1 Cost function and Backpropagation  (0) 2019.01.18
4-2 Neural Networks  (0) 2019.01.15
4-1 Neural Networks Motivation  (0) 2019.01.15
3-4 Solving the Problem of Overffiting  (0) 2019.01.11
Comments