늦깍이로 시작한 컴퓨터교육과 교육대학원 첫 학기를 보내면서수학이론이 인공지능에서구현되는 코드만큼이나 중요하다는 것을 깨달았다. 학기가 마친 후임용고시 이래 다시는 펴보지 않았던 수학 전공 책을 다시 펼쳐보았다. 하지만 이내 도대체 어떤 전공책을 어디까지 어떤 관점에서 봐야할 지 감이 오지 않았다. 이 때문에 멋쩍어하며 꺼냈던 책을 다시 책장에 꽂아두었다.
그러던 중 캠브리지에서 발간한 Mathematics for Machine Learning이라는 책을 알게 되었다. 이 책을 차근차근 공부를 하면서 비로소 인공지능에서 수학이 어떻게 활용이 되고 얼마나 중요한 요소인지 조금씩 알 수 있었다.지난 2016년 알파고의 등장 때부터 4년 동안 찾지 못했던 인공지능의 교육의 방향이 드디어 어렴풋이 보였다. 상공회의소에서의 직무 연수, 교육대학원의 수업, 그리고 수학과 인공지능을 연결해주는 책을 만나면서 비로소 흩어져있던 인공지능 교육의 퍼즐이 하나씩 제자리를 잡고 조그씩 연결되고 있었다.
이 과정에서 학교에서 가르치고 있는 수학교육에 대한 이해도 더 깊어졌다. 대학생 때 과외까지 포함하면 인생의 절반인 20년 넘도록 수학을 가르치고 있었지만 ‘수학은 배우는 이유가 뭐에요? 이 내용은 배워서 어디 써먹어요?’라는 말에 대답을 하기가 어려웠다. 수학에서 벗어나 다른 무엇인가를 해봐야 수학이 어떻게 활용이 되는지 알 수 있는데, 전공 수업이나 임용고시, 이후 학교에서는 교과서 및 문제집의 입시 수학의 바다에서만 허우적거리다보니 진짜 수학을 경험할 기회가 없었다.인공지능을 통해 수학이 얼마나 화려한 역할을 하고 있는지를 처음으로 느낄 수 있었다. 특히 머신러닝에서 수학적 모델링은 현실 세계의 현상을 수학의 세계로 끌어오는 역할을 한다. 이 과정에서 대부분의 데이터들은 벡터의 형태로 표현이 되며 행렬은 선형대수학의 영역에서 벡터를 다루고 공간의 관계를 보여주는 훌륭한 도구이이다. 따라서 데이터를 다루려면 벡터를 다루어야 하므로 머신러닝에서는 행렬이 필수적이다. 파이썬에서 numpy 모듈을 배우는 이유는 바로 행렬 연산을 할 수 있기 때문이다.
선형대수학 뿐만이 아니다. 다변수 미적분학이서는 눈에 보이지 않는 n차원 공간에서 벡터를 함수로 표현한다. 그 함수의 변화율을 다루고 가장 빠른 방향을 미분을 통한 gradient를 통해 찾아낸다.많은 학생들이 기피하는 확률과 통계가 데이터 특성과 전처리 과정, 딥러닝의 cost function 등에서 이렇게 활용이 되고 있다는 것이 신기하기만 했다.순수 수학은 아름다운 진리였고 이성(reasonality)을 향한 끊임없는 편지였지만 수학 밖에서는 각 학문을 풀어가는 만능 해결사 무기이자 설계의 바탕이었다. 수학 교사들이 인공지능을 만약 배운다면 수학과 혹은 수학교육과에서 보지 못했던 놀라운 또 하나의 시각을 가질 수 있을 것이며 고전이 아닌 미래의 언어로서 수학을 재해석할 수 있을 것이다.
SW 교육에 대한 고민도 많이 해결되었다. 이전에는 정보 교과서 정도의 파이썬에 대한 기본적 수준으로 교육하면 좀 부족하지 않을까 걱정을 했다. 이 때문에 numpy, pandas같은 라이브러리를 더 배우고 가르쳐야 하는지 확신이 서지 않았다. 하지만 데이터를 처리하고 행렬을 다루는 Numpy, 데이터를 분석하는 Pandas, 머신 러닝에 활용하는 Tensorflow와 같은 기능들은 대학생이 된 이후 천천히 배워도 늦지 않다는 결론에 다다랐다.
실제로 온라인 수험생 카페에서 이론에 대한 지식 없이 오픈 소스를 활용해서 생활기록부를 채우고 자기소개서를 썼다가 면접에서 낭패를 본 사례를 본 적이 있었다. 마치 악보를 전혀 읽을 수 없고 곡에 대한 이해도 없는 상태에서 '캐논’만 계속 열심히 연습한다면 어떻게 될까?사랑에 콩깍지가 씌워져있는 이벤트성 프러포즈에는 성공할지 몰라도 전문가들이 심사하는 음대 입시에 합격할 수는 없을 것이다.
인공지능도 마찬가지이다. 우리 학생들이 입시에서 만나는 분들은 모두 전문가들이 아닌가. 우리는 겉보기가 아닌 가능성과 잠재력으로 승부를 해야하는 유망주가 되어야한다. 그렇다면 어떻게 인공지능을 이해하고 역량들을 쌓아가야 이러한 잠재력과 역량들을 키워갈 수 있을까?
How to AI?
이 글에서는 2장 이후부터 학생들이 어떻게 인공지능을 준비하는 것이 좋을지 하나의 과정을 제시하려고 한다. 이 글의 방법이 반드시 정답이라는 보장도 없고, 특히 입시에 관해서는 각 학생마다 배경 지식과 환경이 다르므로 획일화된 방법이나 관점이 존재하지 않는다. 하지만 막연한 나머지 방향성이 없이 ‘일단 닥치는 대로 배워두자’는 접근은 위험하다. 지금 꼭 해야 하는 것은 무엇인지, 지금 해두면 좋은 것은 무엇인지, 당장은 연관이 없어도 계발을 해두어야 하는 자질은 무엇인지, 그리고 언젠가 배우겠지만 지금 당장은 하지 않아도 되는 것은 무엇인지 구분할 수 있어야 한다. 그래야 소중한 고등학교의 시간과 대학 진학 이후의 시행착오를 조금이나마 줄여나갈 수 있고 무엇을 강조하며 어필해야 할지도 알 수 있고 진로에 있어서 큰 그림을 그릴 수 있을 것이다.
인공지능 방면으로 진로를 생각하고 있다면 인공지능에 대한 관심, SW 구현 능력, 그리고 수학 3가지의 요소의 균형이 필요하다고 개인적으로 생각한다. 반드시 순서가 있는 것은 아니다. 어떤 방향이든 시작할 수 있고, 두루두루 함께 시작할 수도 있다. 다만 균형을 조금씩 잡는 것은 필요하다. 이에 대해 하나씩 살펴보자.
1) 인공지능에 대한 관심
취업이 잘 되기 때문에 특정한 학과를 선택할 수도 있겠지만 관심과 가능성을 가질 때 그 진로에 다다를 가능성은 매우 크다. 대부분의 학문이나 진로가 비슷한 성격이 있는데, 한 걸음 떨어져서 멀리서 볼 때는 멋있고 장밋빛 미래를 약속하는 것처럼 보인다. 하지만 정작 그 전공을 택해보면 공부할 것도 많고 해야 할 것들, 하고 싶지 않은 것들도 그 안에 잔뜩 들어있다는 것을 보게 된다. 이때 진로에 대한 관심사와 확신, 열망이 있으면 이러한 어려움들을 뚫어내는데 큰 힘이 된다.
앞서 살펴본 대로 인공지능은 다양한 부분에서 활용이 된다. 따라서 인공지능을 전공한 후에 창업을 생각하거나 어떠한 상품으로 개발을 하기 위해서는 인공지능을 만약 활용할 수 있다면 어떤 일들을 할 수 있는지를 살펴볼 수 있다. 예를 들어 대학생이 되어서 공부를 하던 중 보험이란 부분에 관심을 가지게 되었다고 해보자. 다양한 확률과 불확실성으로 보험 금액을 산출하는데 이 부분에서 전문가에 대한 비용과 다양한 인건비, 유지비용 등이 차지하는 비용이 상당하다. 만약 여기에 AI를 활용해보면 어떨까? 실제로 미국의 레모네이드라는 AI 보험 회사는 인공지능을 활용해서 고객의 패턴을 파악하고 최적화된 보험 상품을 추천 및 제공하고 있으며 가입 및 지급 모든 부분을 챗봇으로 운영하고 있다. 후발 주자이다 보니 누적된 데이터는 많지 않지만 잘 정제된 질 높은 데이터를 활용할 수 있다는 장점으로 그 부분을 상쇄하고 있다. 다만 인공지능을 30% 정도 활용하고 나머지는 70%는 사람이 처리하지만, 그 70%의 대부분에서 인공지능을 활용한 처리를 하고 있기 때문에 처리 비용이 대폭 낮아졌다.
이처럼 인공지능에 대한 관심은 ‘어떻게 인공지능을 활용할 수 있을까’에 대한 많은 가능성들을 발견할 수 있는 시각을 키워줄 수 있다. 또한 인공지능은 이미 개발이 완료된 것이 아니기 때문에 하루가 다르게 새로운 활용 사례와 기술에 대한 기사 및 소식이 쏟아진다. 이 부분은 대학생이 되더라도, 진로로 진출한 이후에도 당연히 관심을 가져야 할 부분이다.
2) 코딩에 대한 관심
SW를 활용해 코딩을 하는 것에 관심이 많은 학생들은 개발자를 꿈꾸는 경우가 많다. 개발자도 웹 개발자, 앱 개발자, 데이터베이스 엔지니어, 데이터 과학 전문가 등 다양한 부분이 많은데 이 중에서 AI 개발자도 하나의 좋은 진로 선택이 될 수 있다.
학생 때 배우는 컴퓨터 언어들은 대부분 확장성을 지니고 있다. 하나를 배우고 나면 추가적으로 배울 수 있거나 구현할 수 있는 부분들이 많은데, 최근 대부분의 정보 교과서에서 택하고 있는 Python의 경우 이러한 확장성에 있어서 특히 강점을 지니고 있는 언어이다. 이러한 코딩을 잘 구현하는 장점이 있으면 컴퓨터 관련 전공 진입 장벽이 꽤 낮아지는 효과를 누릴 수 있다. 일단 합격하고 나면 기본적으로 컴퓨터를 다루어서 원하는 결과를 만들어내는데 큰 자신감을 가질 수 있기 때문이다. 이 때문에 인공지능에 관심을 가진 고등학생들이 대부분 필수적으로 코딩 활동을 병행하고 있다.
적어도 고등학교 때는 코딩에 대한 관심과 기본적인 언어 정도를 익혀놓는 것만으로도 충분하다. 대학에 진학을 해보면 수시뿐만 아니라 정시를 통해서 입학한 동기들도 만나게 되는데, 대학의 교육 과정상 컴퓨터 언어를 모른다는 가정하에 기본적인 컴퓨터 언어부터 시작할 수밖에 없다. (하지만 고등학교 때보다 놀라운 속도로 기본적인 내용을 끝내게 된다) 만약 학업이나 대학 입학에 큰 영향을 주지 않는 한도 내에서 더 확장해서 배우는 것은 얼마든지 가능하다.
컴퓨터 언어의 기본적인 내용을 배우고 나면 인공지능을 다루기 전에 데이터를 처리할 수 있는 numpy, 분석 도구 툴인 Pandas, 그리고 시각화 라이브러리인 Matplotlib, 딥러닝의 툴인 keras, tensorflow 등을 배울 수도 있다. 이러한 도구들은 다양한 데이터를 가지고 연습을 해야 손에 익으므로 공개되어있는 실전 데이터들을 다루는 책들을 통해 배울 수도 있고, 온라인 강의에서 예제 데이터를 가지고 실습을 하는 과정도 많이 개발되어 있다.
3) 수학에 대한 관심
인공지능은 수학을 기반으로 작성이 된 알고리즘이기 때문에 수학에 대한 이해가 없이는 그 구조나 흐름을 파악하기가 어렵다. 대부분의 연구 결과나 참고할 자료들은 수학의 이론에 기반하여 수식으로 작성이 되어 있으므로 수학에 대한 이해가 없다면 ‘무엇을 의미하는지’를 파악하기가 어려워진다.
수학은 이론을 기반으로 논리적으로 차곡차곡 증명해가며 완결성이 있게 구성이 되어있지만 인공지능은 그렇지 않다. 설계는 수학으로 해나가지만 그 설계에서 선택하는 함수나 구현 방법에 대해서 “왜?”라는 질문을 하면 “이 방법으로 하면 잘 되거든.”이라고 답을 할 수밖에 없다. 따라서 계속적으로 시행착오를 통해 더 좋은 방법을 찾아가야 하고 개선점을 끊임없이 발견해야 하는 특성이 있기 때문에 수학은 인공지능 분야에서 없어서는 안 될 존재이다. 인공지능 알고리즘에서 이해할 수 없는 어떠한 현상이 발생했다면 수학에서 그 원인을 찾아야 하고, 이를 해결하기 위한 방법을 또한 찾아내야 한다.
이화여대 민조홍 교수의 Gradient-Explosion free algorithm (2020.12.17 대한수학회 심포지엄 중)
지난 2020년 12월 17일 대한수학회에서 온라인으로 개최한 ‘제2차 인공지능과 대학 수학 심포지엄’이 열렸다. 이 학회에서 이화여대 민조홍 교수는 현재 딥러닝의 문제점으로 신경층의 깊이가 비약적으로 증가함에 따른 미분값 소멸 및 폭발 발생 가능성을 제시하였다. 미분값 폭발이라는 현상이 일어나면 기존에 일어났던 학습이 다 사라지게 되는데, 2013년 Bengio의 연구에서 이러한 현상이 오차 함수의 불연속성이라는 측면 때문에 발생한다는 것을 파악하게 되었다. 그래서 오차 함수의 불연속이 일어나지 않는 Stable Region이 어디인지를 연구하고, 이 영역에서 initial point를 설정한 결과 미분값 폭발이 일어나지 않는다는 내용의 Gradient-Explosion free algorithm을 2020년에 발표하였다. 이는 수학이 인공지능의 불완전한 인공지능의 알고리즘을 어떻게 해결할 수 있는지, 수학이 인공지능에 있어서 왜 필수적이며 중요한지를 잘 보여주는 사례라고 할 수 있다.
만약 고등학생이라면 이러한 전공 수학의 기초가 될 수 있는 고등학교 교육과정에 충실할 필요가 있다. 당장 수업 시간에 배우는 내용은 인공지능이 아닌 교과서와 입시와 관련한 문제 풀이가 대부분이겠지만 문제 풀이 외에 배우는 개념은 생각 이상으로 매우 중요하다. 입시에서는 문제 풀이가 중요하지만 입시 이후 대학에 들어가게 되면 풀었던 입시 문제들이 아닌 개념 위에 전공 및 기초 수학 내용이 쌓이기 때문이다.
한 걸음 더 나간다면 대학에서 배우게 되는 내용들은 어떤 것들이 있는지를 미리 파악하고 있으면 큰 도움이 된다. 하나하나 예시를 들어가며 천천히 풀이를 해주는 고등학교와 달리 대학에서는 많은 양의 내용을 개념의 흐름에 따라 빨리 진행이 된다. 따라서 미리 각 과목마다 배우는 이유와 구조, 그리고 인공지능에서 이러한 과목들이 왜 필요한지를 파악해두면 수학 때문에 길을 잃는 일은 좀 줄어들 것이라고 생각한다.