-
Inference: making predictions | Advanced Learning AlgorithmMachine Learning/Stanford ML Specialization 2024. 2. 3. 09:40
지금까지 배웠던 것들을 모두 합쳐서 inferences, 즉 값을 예상하도록 만들어보자. 이 알고리즘은 forward propagation(순방향 전파)라고 한다. Handwritten digit, 즉 손으로 쓴 글자를 인식하는 모델을 예로 들어보겠다. 8x8 pixel의 이미지가 있다고 가정해보자. 여기서 라벨은 0과 1이 존재한다. 즉 디지털 이미지이다. 아래를 살펴보자.
255 255 255 255 255 255 255 255 255 255 255 0 255 255 255 255 255 255 0 0 255 255 255 255 255 255 255 0 255 255 255 255 255 255 255 0 255 255 255 255 255 255 255 0 255 255 255 255 255 255 0 0 0 255 255 255 255 255 255 255 255 255 255 255 255는 흰색을 의미하고, 0은 검정색을 의미한다. 이숫자를 위에서 보여진 색깔의 픽셀을 이용해서,recognize(인식)하기 위해서 2개의 hidden layer가 있는 Neural Network를 사용해 보겠다. 이 숫자가 1이 될 probability(확률)을 계산할것이다.
hand written digit recognition neural network 8 x 8개의 숫자, 또는 64개의 숫자에서, 1인지 예측하는 예측 확률 a^[3]로까지로 이동하면서, Neural Network에서 계산을 해나갈것이다. 2개의 hidden layer에서, 첫번째 layer에는 25개의 unit(노드 수)이 있을것이고, 두번째 hidden layer에는 15 unit이, 그리고 output layer를 이용해서 확률을 판단할것이다.
layer 1이 계산을 하게 되면, 첫번째로 x, 64개를 이용해서 계산하고, a^[1]을 아웃풋으로 내보낸다. 여기서 결과값은 노드의 갯수와 같이 25개의 숫자를 가진 벡터를 만들것이다. 그 벡터의 계산은, 아래와 같다.
지난시간에 배웠던것과 동일하다. 각 노드는 하나하나의 계산을 의미하며, 이 노드는 x1^[1]부터 x25^[1]까지 25개의 숫자를 만들어낸다. 여기서 g라는 함수는 sigmoid 함수이고, 이 sigmoid 함수의 인풋이 되는 숫자는 dot product를 이용해서 w1^1[1]값과 모든 64개의 숫자를 각각 곱하고 더해서, y-intercept인 b값을 더해주게 된다. 그 값을 sigmoid 함수의 input으로 넣어서 최종 값이 된다.
두번째 레이어도 마찬가지이다. 방금전 layer 1에서 나온 a^[1]값을 인풋으로, 그다음 레이어에서도 계산이 이루어진다. 이 hidden layer에는 15개의 노드가 있기때문에, 결과 값으로 사이즈 15의 벡터가 산출된다. 이전 레이어의 노드갯수만큼, input 벡터, 사이즈 25의 숫자들을 받아서 사용하게 된다. a^[2]를 계산해보자.
마찬가지로 25개 사이즈의 벡터 a^[1]을 이용해서, w값들이 모여있는 w1^[2]등과 sum product를 한 후, b1등의 값을 더해주고, 그 값을 g함수에 다시 넣어줘서 계산한 결과가 하나의 값이 된다. 그렇게 노드 1부터 노드 15까지, 다른 w 벡터와 b값을 이용해서 각각의 x^[2] 값을 계산하고, 15개의 숫자를 가진 벡터를 만들어내게 된다.
마지막 세번째 레이어는, output layer이고, 노드가 하나이기 때문에 출력값도 하나뿐이다. 여기서는 단 하나의 수식을 완성시켜서 그 아웃풋 값이 0.5보다 큰지 작은지를 보고, 만약 크다면 y라고 판단을 하고, 아니라면 0이라고 판단을 할 수 있다.
이렇게 Neural Network에서는 layer 1에서 2로, 그리고 3로 이동하기 때문에 forward propagation이라고 한다. 뉴런의 활성화를 앞쪽으로 전파하기 때문에 순방향(forward)으로 전파한다(propagation)라는 의미를 갖고 있다.
Reference
Advanced Learning Algorithms
In the second course of the Machine Learning Specialization, you will: • Build and train a neural network with TensorFlow to perform multi-class ... 무료로 등록하십시오.
www.coursera.org
'Machine Learning > Stanford ML Specialization' 카테고리의 다른 글