[2018/07/23] 머신러닝 4. MNIST 데이터 & 단일 계층 & 복합 계층




Input Hidden Output
활성화함수(ReLu) 활성화함수(Softmax)

softmax의 경우 Output 값들을 다 더할 경우 1이 된다.
이때 가장 큰 출력값만 1로 하고 나머지를 다 0으로 해보자.

이렇게 할 경우 레이블 이미지가 5일 경우 마찬가지 포맷으로 하기 위해 1차월 배열 형식으로 저장해야 하
–> 원-핫 인코딩




예를 들어 이미지가 100개라면 인풋으로 100 * 784가 들어가면 출력은 100 * 10
그렇다면 그 안에 있는 hidden 은 784 * 10이 돼야한다.

A X = B
A = X^-1 B

XW = Y

이렇게 선형방정식으로 풀 수 있지만 어마어마하게 시간이 걸린다.

소프트맥스 알고리즘 사용

그 후에 손실함수를 이용해서 오차를 측정해야 한다.
여기서는 크로스 엔트로피를 사용할건데, keras 쓰면 굳이 코드 복잡하게 쓰지 않아도 된다.

reduce –> 차원 축소한다는 뜻
1일 경우 행끼리 처리한다는 뜻. 이 행렬을 보면 하나의 이미지는 100 * 784니까 하나의 행에 입력돼있을 것.
따라서 1로 해줘야 한다.

reduce_sum하는 이유는 소프트맥스 알고리즘이니까 더해서 1이 되니까 더해봐야 한다.
sumproduct라서 사실상 한 값만 남게되고, 그 값에 -1을 곱하니까 최소가 되도록 해야 맞다.

확률적 훈련

평가

y_: 정답
equal 함수 이용해서 예측한 ㄱ라벨과 실제 라벨 값을 비교하여 올바르게 추론되었는지 구한다.
근데 equal은 Boolean 형식으로 반환되기 때문에 cast 함수 이용해서 float 타입으로 바꿔준다.
cast 함수 바탕으로 정확도를 계산한다.