학습이란 무엇인가? -3편
1편에서 중요했던 말을 또다시 반복해봅시다.
똑같은 유형이고, 똑같은 문제이며, 똑같은 방법을 풀리는 똑같은 생각을 요구하는 풀이인데, 왜 앞에 쉬운 문제는 풀었으면서, 뒤에 어려운 문제는 풀지 못하는가????
제가 이 똑같은 구절을 3번째나 반복하는 이유는, 결국 이 한 문장을 통해서 ‘학습이란 무엇인가’를 설명할 수 있었기 때문입니다.
말씀드린 것처럼 전 삼반수생입니다. 처음 수능을 한번 치고, 재수해서 한번 쳤는데 그때 터져버리고, 2번째 수능점수로 부산대를 걸쳐놓고 삼반수를 했습니다.(제가 부산에서 재수 삼수를 했습니다)
부산대학교에 기초교양 과목 중에서 ‘컴퓨팅 사고’라는 과목이 있습니다. 말 그대로 컴퓨터처럼 생각하는 방법, 컴퓨터를 직접 다루는 게 아니라 컴퓨터처럼 효율적이고 과학적으로 생각하는 방법을 배우는 과목입니다. 전 돌이켜 보았을 때 대학교에서 이 수업이 제일 좋았던 것 같습니다.
(당시 제가 사용했던 교재)
저도 비록 컴퓨터를 자주 쓰는 사람이지만, ‘알고리즘’이라는 단어를 특별히 중요하게 배우거나 사용한 적이 없습니다. 저도 이 수업을 들으면서 처음으로 좀 제대로 된 깊이의 컴퓨터 언어에 대해서 공부하게 되었습니다. 따라서 저 또한 ‘알고리즘’을 비롯한 컴퓨터 용어에 대해서는 문외한이었으며, 특별한 소양이 필요하지 않음을 미리 말씀드립니다.
이제부터 제가 쓰는 용어에 큰 부담감을 갖을 필요 없이, 제가 주장하는 바를 찬찬히 따라오시면 충분히 모두 이해할 수 있을 것입니다.
처음으로 ‘알고리즘’에 대해 배웠을 때, 저는 매우 충격을 먹었습니다. 왜냐? 여태 배운 언어나 기능 중에서 가장 과학적이고 객관적이었기 때문입니다.
우리가 쓰는 언어(자연어)는 추상적이고 애매하고, 정보가 손실되는 내용이 많습니다. 참 아름답다. 정말 예쁘다. 매우 훌륭한 작품이다. 등 사람마다 받아들이는 수준이 달라지고, 문화나 인종, 사회에 따라 그 쓰임새가 다양합니다. 실제로 일상생활의 대화에서도 완벽히 100% 이해하지 못하고 넘어가는 상황도 많으며, 그 때는 맥락을 동원해서 나머지 부분을 채웁니다.
반면 컴퓨터에서 쓰는 언어(기계어)는 매우 과학적이며 객관적이고 정확합니다. 2보다 큰 수가 있으면 A루트를 진행하라, 2보다 작은 수이면 B루트를 진행하라. 이런 식으로 아주 명료하고 현실적입니다. 컴퓨터에게 알고리즘을 입력할 때, 조금이라도 모호하거나 추상적인 부분이 있다면 그 알고리즘은 작동하지 않습니다. 모든 조건과 상황에 대해서 명확한 지시와 기준이 있어야 하고, 그 기준들에 따라 컴퓨터는 작업을 수행합니다.
(당시 필자가 배웠던 알고리즘 중 하나. 명확히 제시된 기준들을 바탕으로 결론이 달라진다)
컴퓨터에게 문제를 푸는 과정은 일련의 알고리즘입니다. 컴퓨터는 제시된 정보를 받는 순간 알고리즘을 시작하여, 기준에 따라 어떤 갈래로 뻗어나갈지 판단을 합니다. 만약 그 기준이 자연어에서 쓰는 것과 비슷하게 추상적이고 부정확하다면 컴퓨터는 일을 수행할 수 없습니다. 알고리즘은 반드시 정확하고 명확하게 기준을 제시하여, 그 이후 어떤 작업을 해야하는지 객관적으로 보여주어야 합니다.
인간에게도 마찬가지로 알고리즘이 존재합니다. 제가 바로 설명하기로 했던 두 번째 용어, ‘시냅스’입니다. 인간의 뇌 속에는 수많은 시냅스 회로들이 존재하며, 그 시냅스 회로들이 어떻게 연결되고 생성되어 있느냐에 따라 우리의 생각과 행동이 결정됩니다. 저는 ‘알고리즘’을 이과적인 표현이라고 생각하고, ‘시냅스’를 문과적(생물학에 좀 더 가까운) 표현이라고 생각합니다. 표현만 다를 뿐이지 이들은 우리에게 똑같은 점을 시사합니다. ‘문제를 해결하는 일련의 과정’
여러분은 어릴 적에 독수리 타법으로 타자를 치던 것이 기억나시나요? 우리가 처음 컴퓨터를 배울 때는 지금처럼 300타가 넘어가는 빠른 속도로 입력하지 못하고, 손가락으로 하나하나 일일이 찾아서 문자를 입력했습니다. 지금은 필자 또한 매우 빠른 속도로, 양손으로 타자를 치고 있습니다. 과거에 비해 어떻게 이런 발전이 가능했던 것일까요?
그것은 바로 여러분과 제 머릿속에 시냅스 회로가 생성되었기 때문입니다. 마치 컴퓨터에 존재하는 알고리즘처럼, 우리 뇌에 생성된 시냅스는 몸과 생각이 일련의 과정에 따라 움직이게끔 명령합니다. 우리가 자주 오랫동안 타자를 양손으로 칠수록, 우리 뇌에는 양손으로 빠르게 타자를 칠 수 있는 시냅스 회로가 생성됩니다. 그리고 그 시냅스 회로를 자주 사용할수록, 시냅스 회로는 더 선명하고 오랫동안 기억에 남으며 더 빨라집니다.
우리가 컴퓨터를 ‘학습’시킨다고 표현합니다. 컴퓨터를 학습시키는 것은 어떻게 이루어집니까? 알고리즘을 입력함으로써 이루어집니다. 컴퓨터가 일련의 알고리즘을 입력받으면, 어떤 문제가 제시되었을 때 알고리즘에 따라 그 문제를 풀어나갑니다.
우리가 어떤 것을 스스로 ‘학습’한다고 표현합니다. 사람을 학습시키는 것은 어떻게 이루어집니까? 뇌 속에 시냅스 회로를 생성함으로써 이루어집니다. 머릿속에 시냅스 회로가 생성되었기 때문에, 어떤 문제 상황이 주어졌을 때 우리는 그 시냅스 회로를 따라 생각하고 행동합니다.
용어 설명이 길었습니다. 제가 굳이 이 ‘알고리즘’과 ‘시냅스’라는 용어를 설명하는 까닭은, 이 두 용어가 곧 학습할 때 핵심적인 역할을 하기 때문입니다.
제 주위 동창이나 후배 중에선 컴퓨터에 종사하는 친구들이 많습니다. 이 친구들에게 제가 쓴 칼럼 ‘학습이란 무엇인가? -1,2편’의 내용을 설명해주면, 이들은 정말 빠르게 제가 말하는 의도를 이해합니다.
이 모습을 보고 저는 ‘학습’이 ‘알고리즘’과 ‘시냅스’와 긴밀하게 연결되어 있다는 인상을 받게 되었습니다. ‘알고리즘’이라는 단어를 사용하여, 2편에서 나온 ‘약수개수 구하기 문제’를 풀지 못하는 중학생을 설명해보겠습니다.
그 중학생은, ‘약수개수 구하기 문제’를 해결하는 일련의 명확하고 뚜렷한 ‘알고리즘’이 머릿속에 없기 때문에 쉬운 문제는 풀면서, 똑같은 유형의 어려운 문제는 풀지 못하는 것이었습니다.
즉 제가 내린 ‘학습’의 정의는 ‘적절하고 명확한 알고리즘(시냅스)을 머릿속에 입력하였느냐?’입니다. 만약 그 중학생이 ‘약수개수 구하기 문제’에 관한 명확한 알고리즘을 머릿속에 학습시켜 두었다면, 큰 숫자가 나오든 작은 숫자가 나오든 매우 일관된 방법과 논리로 문제를 해결할 수 있었을 것입니다.
곧 ‘학습’이란 ‘알고리즘을 세우는 것’이라 할 수 있겠습니다.
결국 제가 처음 제시한 질문을 답할 수 있습니다. 똑같은 유형이고, 똑같은 문제이며, 똑같은 방법을 풀리는 똑같은 생각을 요구하는 풀이인데, 왜 앞에 쉬운 문제는 풀었으면서, 뒤에 어려운 문제는 풀지 못하는가????
답은 “알고리즘을 제대로 세우지 못했기 때문”입니다. 정확한 알고리즘을 세웠다면, 같은 유형이며 같은 방법으로 풀리는 문제를 반드시 풀 수 있었어야 합니다.
0 XDK (+0)
유익한 글을 읽었다면 작성자에게 XDK를 선물하세요.
-
다현 좋아 7
다현 좋아
-
https://youtu.be/Hb3in13xvmw 이 영상 캡쳐한건데 다현 화장...
좋은 글 감사해요~