각 입력 데이터를 보고 인공지능이 0부터 9까지의 수 중에서 어떤 수로 예상하는지 알려주는 모습입니다. 첫 번째 줄에서는 인덱스 값 6에 0.6이라는 값이 들어 있습니다. 나머지 숫자는 그보다 작은 숫자들이 있죠. 이는 인공지능 모델이 이미지를 보고, 그 이미지가 숫자 6일 확률이 가장 높다고 생각한 것입니다.
이렇게 예상한 모습이 총 10,000개가 있습니다. 이러한 모습으로 출력될 수 있었던 이유는 소프트맥스 함수를 사용하였기 때문입니다.
TIP
소프트맥스 함수를 사용하면 출력값을 0부터 1까지의 숫자 중 하나로 변환해 줍니다. 그리고 모든 출력값을 더하면 1이 된다는 특징이 있습니다.
그렇다면 우리가 만든 인공지능은 결과를 무엇이라고 나타내어야 할까요? 바로 가장 높은 확률이 나온 6이겠죠? 이때 넘파이의 argmax 함수를 사용합니다. argmax 함수는 여러 데이터 중에서 가장 큰 값이 어디에 있는지를 나타내기 때문입니다.
그림 16-15와 같은 행렬 데이터에서 argmax 함수를 사용하기 위해서는 열 중에서 가장 큰 것을 고를지, 행 중에서 가장 큰 것을 고를지 알려줘야 합니다. 이때 기준을 정해주는 것이 바로 axis입니다. axis=0은 각 열(세로)에서 가장 큰 수를 고르는 것이고 axis=1은 각 행(가로)에서 가장 큰 수를 고른다는 의미입니다. 우리는 각 행(가로)에서 가장 큰 값을 찾아야 하기 때문에 axis=1로 설정합니다. 그 결과 첫 번째 넣은 데이터의 정답이 6이라는 것을 알 수 있습니다. 이제 argmax 함수를 사용하여 인공지능 모델이 예측한 모든 값을 predicted_classes 변수에 넣겠습니다.