MG
[ML / Andrew Ng] Neural Networks - Applications 본문
neural network는 여러 기능을 할 수 있는데 그 중 하나가 논리 게이트이다. 위 그림에서는 대표적으로 AND, OR 게이트를 예시로 들었다. 간단하게 설명하자면 AND 게이트는 두 입력변수 중 하나라도 0이면 0을 출력하고 OR 게이트는 둘 중 하나라도 1이면 1을 출력한다.
우리는 weight인 theta의 값을 적절히 정함으로써 이를 구현할 수 있다. 자세한 값은 위 그림을 보면 알 수 있다. 똑같이 x1, x2에 0, 1을 각각 대입한 경우가 나타난다. 하지만 theta값에 따라 h값이 달라지는 것을 확인할 수 있다. 우리는 이렇게 논리 게이트를 설계할 수 있다.
위 게이트를 여러개 엮어 우리는 XNOR 게이트라는 것을 구현할 것이다. 그 전에 NOR 게이트를 먼저 알아야한다. 여기서 N은 not으로 출력값을 반대로 출력시키는 것이다. 0은 1로 1은 0으로 이렇게 말이다. 그렇게 된 input을 OR 연산시킨다. 그 값이 바로 a2인데 1이 하나라도 들어가면 0이 출력되는 것을 확인할 수 있다. 그렇게 a1은 AND 게이트, a2는 NOR 게이트로 값을 받는다. 그리고 이 값을 a3로 다시 출력한다.
이제 XOR 게이트에 대해서 알아보자. XOR 게이트는 두 input이 다르면 1을 출력하고 같으면 0을 출력한다. 그래서 1, 0을 입력받으면 1을 출력하게 되고 그 외에는 0을 출력한다. 그리고 우리의 최종목표인 XNOR 게이트는 XOR의 반대 버전이다. 두 입력값이 같으면 1, 다르면 0을 출력하는 것이다.
이제 모든 게이트가 뭔지 알아보았고 구성도 알아보았으니 계산을 해보자. a1, a2는 각각 AND, NOR 게이트로 구현이 되서 위와 같이 값이 나오게 된다. 0, 0이나 1, 1처럼 입력값이 같으면 0, 1이 되고 나머지는 0, 0이 되는 것을 확인할 수 있다. 이를 a3로 보내는데 여기서 OR 게이트가 적용된다. 그렇게 되면 0, 1은 1로 0, 0은 0으로 출력되게 된다. 결과적으로 입력값이 같으면 1이 다르면 0이 출력되는 XNOR 게이트가 구현된 것을 확인할 수 있다.
multiclass classification을 NN으로 구현해보자. binary classification은 class가 2개 뿐이니 0 또는 1만 출력하게 된다. 하지만 multiclass는 그 중 하나를 선택해야 하니 h의 크기를 그 수만큼 늘려주면 된다. 위 그림의 예시처럼 class가 4개라면 h를 4x1 행렬로 만들고 각각에 0 또는 1을 출력받는다. 그 중 가장 큰 값을 1로 체크하게 되고 결과로 하나의 class를 출력하게 된다.
'컴퓨터과학 > AI_ML강의 (Andrew Ng)' 카테고리의 다른 글
[ML / Andrew Ng] Neural Networks - Backpropagation in Practice (0) | 2022.05.17 |
---|---|
[ML / Andrew Ng] Neural Networks - Cost Function ans Backpropagation (0) | 2022.05.17 |
[ML / Andrew Ng] Neural Networks - Model Representation (0) | 2022.05.10 |
[ML / Andrew Ng] Neural Networks - Motivations (0) | 2022.05.09 |
[ML / Andrew Ng] Regularization - Solving the Problem of Overfitting (0) | 2022.05.06 |