4-3 Applications 본문
뉴럴넷이 어떻게 복잡한 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 |