잠룡물용 [847641] · MS 2018 · 쪽지

2018-11-29 18:36:41
조회수 10,033

학습이란 무엇인가? -3편

게시글 주소: https://snu.orbi.kr/00019535790

1편에서 중요했던 말을 또다시 반복해봅시다.


 똑같은 유형이고똑같은 문제이며똑같은 방법을 풀리는 똑같은 생각을 요구하는 풀이인데왜 앞에 쉬운 문제는 풀었으면서뒤에 어려운 문제는 풀지 못하는가????


제가 이 똑같은 구절을 3번째나 반복하는 이유는결국 이 한 문장을 통해서 학습이란 무엇인가를 설명할 수 있었기 때문입니다.


말씀드린 것처럼 전 삼반수생입니다처음 수능을 한번 치고재수해서 한번 쳤는데 그때 터져버리고, 2번째 수능점수로 부산대를 걸쳐놓고 삼반수를 했습니다.(제가 부산에서 재수 삼수를 했습니다)


부산대학교에 기초교양 과목 중에서 컴퓨팅 사고라는 과목이 있습니다말 그대로 컴퓨터처럼 생각하는 방법컴퓨터를 직접 다루는 게 아니라 컴퓨터처럼 효율적이고 과학적으로 생각하는 방법을 배우는 과목입니다전 돌이켜 보았을 때 대학교에서 이 수업이 제일 좋았던 것 같습니다.


(당시 제가 사용했던 교재)


저도 비록 컴퓨터를 자주 쓰는 사람이지만, ‘알고리즘이라는 단어를 특별히 중요하게 배우거나 사용한 적이 없습니다저도 이 수업을 들으면서 처음으로 좀 제대로 된 깊이의 컴퓨터 언어에 대해서 공부하게 되었습니다따라서 저 또한 알고리즘을 비롯한 컴퓨터 용어에 대해서는 문외한이었으며특별한 소양이 필요하지 않음을 미리 말씀드립니다.



이제부터 제가 쓰는 용어에 큰 부담감을 갖을 필요 없이제가 주장하는 바를 찬찬히 따라오시면 충분히 모두 이해할 수 있을 것입니다.

 

처음으로 알고리즘에 대해 배웠을 때저는 매우 충격을 먹었습니다왜냐여태 배운 언어나 기능 중에서 가장 과학적이고 객관적이었기 때문입니다.


우리가 쓰는 언어(자연어)는 추상적이고 애매하고정보가 손실되는 내용이 많습니다참 아름답다정말 예쁘다매우 훌륭한 작품이다등 사람마다 받아들이는 수준이 달라지고문화나 인종사회에 따라 그 쓰임새가 다양합니다실제로 일상생활의 대화에서도 완벽히 100% 이해하지 못하고 넘어가는 상황도 많으며그 때는 맥락을 동원해서 나머지 부분을 채웁니다.



반면 컴퓨터에서 쓰는 언어(기계어)는 매우 과학적이며 객관적이고 정확합니다. 2보다 큰 수가 있으면 A루트를 진행하라, 2보다 작은 수이면 B루트를 진행하라이런 식으로 아주 명료하고 현실적입니다컴퓨터에게 알고리즘을 입력할 때조금이라도 모호하거나 추상적인 부분이 있다면 그 알고리즘은 작동하지 않습니다모든 조건과 상황에 대해서 명확한 지시와 기준이 있어야 하고그 기준들에 따라 컴퓨터는 작업을 수행합니다.



(당시 필자가 배웠던 알고리즘 중 하나명확히 제시된 기준들을 바탕으로 결론이 달라진다)


컴퓨터에게 문제를 푸는 과정은 일련의 알고리즘입니다컴퓨터는 제시된 정보를 받는 순간 알고리즘을 시작하여기준에 따라 어떤 갈래로 뻗어나갈지 판단을 합니다만약 그 기준이 자연어에서 쓰는 것과 비슷하게 추상적이고 부정확하다면 컴퓨터는 일을 수행할 수 없습니다알고리즘은 반드시 정확하고 명확하게 기준을 제시하여그 이후 어떤 작업을 해야하는지 객관적으로 보여주어야 합니다.



인간에게도 마찬가지로 알고리즘이 존재합니다제가 바로 설명하기로 했던 두 번째 용어, ‘시냅스입니다인간의 뇌 속에는 수많은 시냅스 회로들이 존재하며그 시냅스 회로들이 어떻게 연결되고 생성되어 있느냐에 따라 우리의 생각과 행동이 결정됩니다저는 알고리즘을 이과적인 표현이라고 생각하고, ‘시냅스를 문과적(생물학에 좀 더 가까운표현이라고 생각합니다표현만 다를 뿐이지 이들은 우리에게 똑같은 점을 시사합니다. ‘문제를 해결하는 일련의 과정



여러분은 어릴 적에 독수리 타법으로 타자를 치던 것이 기억나시나요우리가 처음 컴퓨터를 배울 때는 지금처럼 300타가 넘어가는 빠른 속도로 입력하지 못하고손가락으로 하나하나 일일이 찾아서 문자를 입력했습니다지금은 필자 또한 매우 빠른 속도로양손으로 타자를 치고 있습니다과거에 비해 어떻게 이런 발전이 가능했던 것일까요?



그것은 바로 여러분과 제 머릿속에 시냅스 회로가 생성되었기 때문입니다마치 컴퓨터에 존재하는 알고리즘처럼우리 뇌에 생성된 시냅스는 몸과 생각이 일련의 과정에 따라 움직이게끔 명령합니다우리가 자주 오랫동안 타자를 양손으로 칠수록우리 뇌에는 양손으로 빠르게 타자를 칠 수 있는 시냅스 회로가 생성됩니다그리고 그 시냅스 회로를 자주 사용할수록시냅스 회로는 더 선명하고 오랫동안 기억에 남으며 더 빨라집니다.



우리가 컴퓨터를 학습시킨다고 표현합니다컴퓨터를 학습시키는 것은 어떻게 이루어집니까알고리즘을 입력함으로써 이루어집니다컴퓨터가 일련의 알고리즘을 입력받으면어떤 문제가 제시되었을 때 알고리즘에 따라 그 문제를 풀어나갑니다.



우리가 어떤 것을 스스로 학습한다고 표현합니다사람을 학습시키는 것은 어떻게 이루어집니까뇌 속에 시냅스 회로를 생성함으로써 이루어집니다머릿속에 시냅스 회로가 생성되었기 때문에어떤 문제 상황이 주어졌을 때 우리는 그 시냅스 회로를 따라 생각하고 행동합니다.



용어 설명이 길었습니다제가 굳이 이 알고리즘과 시냅스라는 용어를 설명하는 까닭은이 두 용어가 곧 학습할 때 핵심적인 역할을 하기 때문입니다.


제 주위 동창이나 후배 중에선 컴퓨터에 종사하는 친구들이 많습니다이 친구들에게 제가 쓴 칼럼 학습이란 무엇인가? -1,2의 내용을 설명해주면이들은 정말 빠르게 제가 말하는 의도를 이해합니다.


이 모습을 보고 저는 학습이 알고리즘과 시냅스와 긴밀하게 연결되어 있다는 인상을 받게 되었습니다. ‘알고리즘이라는 단어를 사용하여, 2편에서 나온 약수개수 구하기 문제를 풀지 못하는 중학생을 설명해보겠습니다.



 그 중학생은, ‘약수개수 구하기 문제를 해결하는 일련의 명확하고 뚜렷한 알고리즘이 머릿속에 없기 때문에 쉬운 문제는 풀면서똑같은 유형의 어려운 문제는 풀지 못하는 것이었습니다.


 즉 제가 내린 학습의 정의는 적절하고 명확한 알고리즘(시냅스)을 머릿속에 입력하였느냐?’입니다만약 그 중학생이 약수개수 구하기 문제에 관한 명확한 알고리즘을 머릿속에 학습시켜 두었다면큰 숫자가 나오든 작은 숫자가 나오든 매우 일관된 방법과 논리로 문제를 해결할 수 있었을 것입니다.


 곧 학습이란 알고리즘을 세우는 것이라 할 수 있겠습니다.


 결국 제가 처음 제시한 질문을 답할 수 있습니다똑같은 유형이고똑같은 문제이며똑같은 방법을 풀리는 똑같은 생각을 요구하는 풀이인데왜 앞에 쉬운 문제는 풀었으면서뒤에 어려운 문제는 풀지 못하는가????



 답은 알고리즘을 제대로 세우지 못했기 때문입니다정확한 알고리즘을 세웠다면같은 유형이며 같은 방법으로 풀리는 문제를 반드시 풀 수 있었어야 합니다.

rare-세종대왕

0 XDK (+0)

  1. 유익한 글을 읽었다면 작성자에게 XDK를 선물하세요.