brunch

인공지능(CNN)이 숫자를 읽는 비법

그냥 신기한 인공지능공부시리즈

by 박정수
Copilot_20250726_213720.png

MNIST는 인공지능에게 대표적으로 숫자를 공부시키는 이미지 데이터베이스입니다. 표지그림처럼 4자만 해도 백만 개의 모양을 학습을 시키면서 이것도 4고 저것도 4야 하는 식으로 학습을 하는데 마치 엄마가 아이에게 사과가 나오는 Flash card 한 장을 보여 주면서, 사과야라고 하고 다 여러 개 의 ㅅ과모양 그림을 보여주고 나서 이거는 뭐지 하면 아이가 "사과"라고 대답하는 그런 과정이 학습입니다.

인공지능에게도 그저께 그림처럼 숫자의 머리에 label=5라고 써주고, 이것은 5야 라고 합니다. 그리고 3도 많이 있는데, 모양도 다양합니다. 사람마다 글씨체가 다르기 때문이죠? 왜 같은 교과서를 보고 배운 같은 반친구끼리도 쓰기는 왜 틀렸는지 그것도 궁금합니다.

3-f17a78a0.png

그리고 표지그림을 보면 한 줄에 다양한 같은 숫자이지만 다른 모양의 숫자들도 나열되어 있습니다. 다양한 이미지를 경험할수록 인공지능은 바로 숫자를 인식할 수 있습니다. 고속도로에서 과속을 하는 차의 번호판을 찍었는데, 진짜 숫자가 1237인데 7289 이렇게 판독을 한다면 장사 다 망치는 거죠. 학습은 정말 중요합니다. 예습을 많이 하고 문제를 많이 풀어본 학생이 공부가 제일 쉬웠어요 하는 논리와 같아요.

a-cnn-sequence-to-classify-handwritten-digits.png

https://saturncloud.io/blog/a-comprehensive-guide-to-convolutional-neural-networks-the-eli5-way/

그런데 실제로는 여러 단계를 거쳐서 숫자 2가 정답이라는 것을 알게 됩니다. 단순히 flash card 학습으로 끈다는 것이 아니고요. 즉 인공지능에게 이 이미지가 숫자 2라는 이미지를 전달하고 인공지능이 이를 인식하는 과정이 필요합니다.


얼굴은 고양이였는데, 다리가 코끼리처럼 코가 길고, 코뿔소처럼 뿔이난 그림이다라고 설명을 해준다면 인 인공지능이 맞출 확률이 업듯이요. 예능프로를 보면 "하루 강아지 범 무서운지 모른다"라는 문장을 보고, 앞사람에게 행동으로만 전달을 하면, 전달과정에 고양이 얼굴에 코리리 코도 붙고 이상한 그림이 만들어지고 결국 최고 판정자가, 무슨 소리야 라면서 화를 내는 그런 과정.. 상상이 되시죠?


위의 링크를 보면 gif 파일로 쉽게 그 과정들을 설명하고 있습니다. 하지만 오늘은 "학습을 한다"라고만 인지를 하세요. 우리는 사과와 배를 익히는 아직 어린아이입니다. 아이에게 "양자역학이 뭐냐면 말이야.." 그런 식은 말이 안 되죠?.


저는 세상에서 가장 쉽게 CNN을 설명하려고 많은 사례와 Python 코드를 만들었습니다. 그렇지만, 그 내용이 너무 방대하고 기술적이고, 운전만 하는 운전자에게 전기자동차의 추천 가지 부품에 대한 설명을 한다는 것은 교수의 자질주복이라 생각합니다. 래서 학습을 통해 인공지능은 도대체 무엇을 얻는데? 에 먼저 초점을 맞추기로 방향을 잡았습니다.


저도 날을 거듭할수록 이해가 높아지다 보니 설명력은 물론 궁금증도 많아졌는데, convolution은 왜 필요하죠? 왜 숫자를 맞추는데 미분이 필요하죠? softmax는 어떻게 확률을 계산하죠? 뭐 이런 부분도 인공지능비서와 대화를 하면서 정밀 분석을 해서 해답을 다 찾았어요. 가령 어디를 봤는데, 직선이거나, 원형이라면 이동하는 기울기가 틀리므로 하나는 직선이거나 사각형, 다른 하나는 방원, 비선형, 원 등으로 인지를 할 수가 있다는 것을 알았어요.


숫자에 경험이 없는 첫 번째 학습의 경우 8이라는 숫자를 32명의 연구원에게 줬을 경우 다음과 같이 답을 못네는 연구원이 나와요. 물론 첫 번째 완벽하게 맞춘 5명의 진한 노란색을 맞춘 연구원도 있어요 5/32 = 15.6%가 맞줬어요

feature_maps_at_0_epochs.png 학습 횟수=0
feature_maps_at_5_epochs.png 학습 횟수= 5회

그런데 5번의 학습으로 연구원들이 8이라는 숫자를 맞춘 경우가 대부분입니다. 두 번째 행 1 번열, 7 번열 정도요. 정답률이 30=32 = 93.7%입니다.


사실 이 8이라는 숫자는 MNIST라는 데이터베이스에 있는 사진으로, 이미 컴퓨터들이 학습을 한 상태이기 때문에 5번 만에 나오는 것이지만, 만일 제가 이런 숫자를 제시한다면 하루 종일 걸릴 수도 있어요.

다음 편에는 제가 GEMINI와 하나씩 문제를 풀어가는 과정을 보야드리고, 결국 숫자 8을 맞추는


number-3-isolated-on-white-260nw-159997232.png
33Twemoji_33-20e3.svg.png
177397407-digital-number-with-3d-effect-electronic-figure-of-number-three-flat-style (1).jpg








keyword
매거진의 이전글GEMINI STORY BOOK의 위협