반복영역 바로가기
주메뉴로 바로가기
좌측메뉴로 바로가기
본문으로 바로가기

Home News&ActivityISysE Blog

ISysE Blog

프린트페이스북

"Applied Artificial Intelligence LAB" 문일철 교수님

2016.06.01 11:57

축제의 달 5월이 끝이 나고, 어느새 우리는 기말고사와 대학원 진학에 관심을 쏟아야 하는 때를 맞이했습니다. 하지만, 축제의 여운이 쉽게 가시지는 않네요.   대학원을 준비하고 있는 산업 및 시스템공학과 학생들에게 지금 인기 있는 연구주제는 무엇일까요? <이세돌 vs 알파고>의 대국 이후, 많은 학생들은 ‘인공지능’ ‘머신러닝’ 등에 깊은 관심을 가지게 된 것 같습니다. 산업 및 시스템공학과에서 문일철 교수님이 연구하고 계시는 Applied Artificial Intelligence LAB 역시, 현재 산업 및 시스템공학과 학생들의 뜨거운 관심을 받고 있는데요.   이번 기사에서는 문일철 교수님을 만나 뵙고, ‘자료구조와 알고리즘 응용’ 수업에 관한 이야기와, 인공지능과 머신러닝의 시대에서 우리 산업 및 시스템공학과 학생들은 어떤 스탠스를 취해야 하는지 들어보았습니다.  


 

"Applied Artificial Intelligence LAB 문일철 교수님"

   

안녕하세요, 교수님. 그럼인터뷰를시작하겠습니다

 

l Q. 자료구조 및 알고리즘 응용수업에서는 어떤 언어를 배우게 되나요?  그 언어를 사용하는 이유에 대해서도 알고 싶습니다

2011년 봄까지는 신하용 교수님께서 자바로 강의하셨고, 2011년 가을부터 파이썬으로, 다시 1년 후 신하용 교수님과 상의하여 매트랩으로 전환하여 현재까지 강의를 진행하고 있다. 나는 이제 다시 파이썬으로 전환하면 좋겠다는 생각을 가지고 있다. 신하용 교수님과 공동으로 이 강좌를 맡고 있는 만큼, 혼자서 결정할 수가 없기에 향후 신교수님과 상의를 통해 결정할 것이다.   매트랩으로 ‘자료구조 및 알고리즘 응용’ 수업을 강의하게 된 것은, 매트랩이라는 언어가 수리적인 계산에 매우 유용하고, 대학원 교육이나 업계에 진출하게 되어 과학적 컴퓨팅 능력을 요하는 전문적인 위치에 있을 때, 매트랩이 그러한 컴퓨팅 능력을 잘 지원하기 때문이다. 매트랩 자체는 파이썬이나 R과 비견되는 언어인데, R은 통계적인 분야에 강점을 가지고, 매트랩은 수리적인 계산 분야에서 강점을 가진다. 파이썬은 범용적으로 쓰이는 언어라는 장점이 있다. 만약 공학계열에서 여러가지 Planning 이라던지, AI, Data Analysis 등을 연구할 때에는, R 혹은 매트랩이 큰 도움이 될 것이라고 판단하였다. R은 김희영 교수님의 공학통계 수업시간에서 다루기 때문에, 매트랩까지 구비하면 훌륭한 실력을 갖게 될 것이라고 판단한다.   파이썬으로의 변경을 생각하는 이유는 파이썬의 SciPy나 NumPy와 같은 특정 라이브러리들이 상당히 발전하게 되면서, 공학 및 통계적인 수리 기능도 강화되는 추세이기 때문에, 최근의 추세를 반영하고자 하는 의향으로 생각하게 되었다. 다만 기술에 일희일비하기 원하지 않기 때문에, 당분간(향후 1년 정도)는 매트랩으로 강의를 유지할 것 같다.

 

l Q. 자료구조 및 알고리즘 응용수업에서 사용하는 언어를 미리 공부해보는 것이 도움이 되나요? 만약 수강전에 미리 언어를 공부해 본다면, 어떤 자료를 가지고 공부하면 될까요?

 

수강 전에 매트랩을 공부하는 것은 분명히 도움이 될 것이다. 미리 배워보고 싶다면, 학교의 IT 강좌를 활용하길 권장한다. 하지만, 학생들이 프로그래밍 만을 위해 시간을 쓸 수 없다는 것을 알기 때문에 선수학습이 필요하지 않도록 강의를 진행하고 있다. 매트랩을 미리 배우지 않아도, 수업에 성실히 임한다면 충분히 따라갈 수 있다. 혹시 프로그래밍적 스킬이 약한 학생이라면, 미리 IT강좌를 통해 조금 더 스킬을 강화시킨 뒤 수강하는 것도 좋다.   산업 및 시스템공학과 학생들이 프로그래밍 공부를 어떻게 하면 좋겠냐고 물어보는 경우가 많은데, 연구실의 석사 졸업생 김00이 생각나서, 이야기를 해주고 싶다. 이 학생은 연구실에서 inverse reinforcement learning이라는 강화학습 일종의 머신러닝을 공부하였고, 석사 논문을 쓰고 졸업을 한 학생이다. 우리 연구실은 일주일에 한 번 정도 ‘어떤 것을 공부했는지/ 어떤 것을 하고 싶은 지/ 도와줄 수 있는 것은 무엇인지’ 등을 이야기하는 면담시간을 가지는데, 김00 학생은 석사 마지막 학기 때, 취직하기가 막막하다고 1주일 동안 웹 프로그래밍을 열심히 공부했다고 면담하였다. 이 때 너무 화가 나서 학생을 다그쳤던 기억이 난다. 할 줄 아는 것이 그렇게나 많은데, 취직이 안 될 거라고 생각했기 때문이다. 프로그래밍을 아무리 잘 해봐야 초임이 그렇게 높기 어렵고, 평생 그것을 한다 하더라도 높은 연봉을 받지는 못한다. 학과에서의 프로그래밍 교육은 기술로 돈 버는게 핵심이 아니라, 프로그래밍을 더 잘하는 사람을 활용하기 위한 것이다. 활용을 위하여 산업 및 시스템공학과 학생들은 기본을 알아야 하는 것이다. 프로그래밍을 전혀 모르면, 비용이나 개발 기간을 가늠 할 수 없기 때문에, 경영과 관리를 위해 필요한 수준으로 프로그래밍을 이해하는 것이 중요하다. 그리고 본인의 새로운 수리적 아이디어를 프로그래밍으로 선보이는 것도 중요하다. 밑바닥부터 프로그래밍을 시키려고, 프로그래밍을 자신의 주요 스킬로 익히게 하려고, 나라에서 산업공학을 교육시키는 것이 아니다.   내 지도학생이었던 김OO학생은 던전앤파이터 게임의 인공지능을 만드는 엔씨소프트 인공지능 연구실에서 병역특례중이다. 나는 이게 산업공학과 학생들이 흔히 하는 잘못된 생각과 올바른 해결방법이라고 본다. 프로그래밍 스킬을 배우려는게 아니라, 자신의 수학적 아이디어를 구현할 수 있도록 배우는 것이고, 더더욱 갈고 닦아야 하는 것은 수리적인 문제해결 능력이다. 절대로 프로그래밍만으로 전산과 학생들을 이길 수 있다고 생각해선 안 된다. 그들은 시스템 프로그래밍, OS, 네트워크, 데이터베이스 등의 각 강의를 다양한 언어로 모두 다 듣고 졸업을 하는데, 어떻게 코딩 실력만으로 전산과를 이길 수 있다고 생각하나. 이기지 못할 싸움은 하지 말아야 하고, 그들이 싸우지 못하는 곳에서 싸워야 한다. 그것이 바로 수리적인 문제해결 능력인 것이다. 전산학과 학생들이 수리, 통계 과목을 듣는 일은 잘 없을 것이다. 그런 것들을 활용하는 능력에서 싸워야 한다. 프로그래밍 기술만으로 싸울 부분은 도망가야 한다.

 

저도 막연히 프로그래밍을 공부해야 겠다는 생각을 많이 하곤 했는데, 정말 중요한 것이 무엇인지 교수님 덕분에 알게 된 것 같습니다.

   

l Q. 산업시스템공학과에서 개설되는 전공과목중에서, 프로그래밍을 배우는 과목의 비율이 많이 높지는 않은데요, 학생들에게 도움이 만한 학과에서 개설되는 전산관련 과목들이 있을까요?

 

 

이 부분에 대해서는 많은 이야기를 했지만, 그래도 전산과 학생들 레벨에서 프로그래밍을 다투고 싶으면, OS(운영체제)와 SP(시스템 프로그래밍), PL(프로그래밍 언어), 이렇게 세 개의 강의 정도를 더 들으면 전산학과 학생들보다 더 잘하진 못해도, 비슷하게 맞출 수 있는 정도의 실력은 가질 수 있을 것이다.

   

자료구조와 알고리즘 응용수업에 관한 이야기는 잘 들었습니다. 프로그래밍 능력과 관련하여, 산업시스템공학과학생들에게 시사하는 바가 클 것 같아요. 이번에는, 교수님이 계시는 연구실에 대해서 여쭤보고싶어요. 요즘 정말 인기가 많더라구요.

 

l Q. 최근 이세돌 VS 알파고 대국과 더불어 머신러닝과 인공지능에 대한 관심이 높아지고 있는데요, 문교수님 연구실에서는 어떠한 연구를 하고 계신지 궁금합니다.

 

우리 연구실은 인공지능 방법론을 활용하여 국가의 여러가지 정보를 기계가 분석할 수 있게 하는 이론 및 기술을 연구한다. 카이스트에서 인공지능을 다루는 연구실 중, 전산과, 전자과를 포함해서 연구의 범위가 가장 넓다고 자부할 수 있다. 인공지능도 세부적으로 들어가면 기계학습 방법론을 포함하여 다양한 이론 및 적용분야들이 있는데, 우리 연구실은 Agent라고 부르는 작은 크기의 AI부터 대용량의 Supervised 및 Unsupervised 기계학습을 다루기 때문에 범위가 상당히 넓다. 적용 사례는 우리 연구실 논문이나 프로젝트 홈페이지를 참고하면 될 것 같고, 국방 분야, 무기 체계 개발 분야, War-game, 재난 대비 분야 등에 활용되는 연구를 하고 있다.   우리 연구실에서 나오는 결과물 중 일부는 바로 실전에 적용되기 때문에, 학생들만의 힘으로 모든 이론 공부와 기술 개발을 할 수 있는 것은 아니다. 학생들은 특히 이론 개발 분야, 즉 수리적 모델 개발분야에 치중하게 된다. 나의 철학은 ‘각자가 잘 할 수 있는 것만 잘하자. 잘하는 것은 무조건 잘하자.’ 이기 때문에, 학생들은 수리적인 인공지능 기계학습 모델 개발 및 프로토타이핑에 집중할 수 있는 환경을 구성하고 있다. 우리 연구실은 국방이나 정부의 정책결정에서 핵심적인 연구를 담당하고 있기 때문에, 연구실의 1차 개발물을 실제 프로젝트 개발물로 개발하는 스텝이 따로 존재한다. 이러한 프로그래머뿐만 아니라 행정원 분도 있어서, 학생들이 행정업무에 신경을 쓰지 않아도 되도록 하고 있다. 스태프 직원들은 나와 10년 가까이 호흡을 맞춰 온 분들이어서, 과제를 수행하는 대학원생들의 충실한 도움이자 조언자가 된다.

 

교수님의 철학이 반영된 연구실의 인프라, 정말 멋지네요! 다음으로는, 학생들이 익명으로 요청한 질문들을 여쭤볼게요.

 

l Q. 인공지능 관련분야가 뜨고 있지만, 구글 같은 기업에서 이미 연구를 진행하고 있기에, 좋은 주제를 찾기도 어려울 것 같습니다. 산공과 석박사로서 인공지능분야를 연구했을, 어떠한 강점이 있는지, 산업공학적 지식을 어떤 주제의 연구에서 어떤 방식으로 적용시킬수 있는지 궁금합니다.

 

  

과거의 데이터를 많이 받아들일수록, 특정 과업을 기계가 더 잘 수행할 수 있게 만들 수 있는 프로그램을 머신러닝이라고 부른다. 과거에는 최적이지 않았던 규칙과 변수를 데이터를 기반으로 더욱 최적인 것으로 바꾸는 게 머신러닝이라는 과정이라고 할 수 있다. 자연스럽게 산공과의 핵심인 최적화가 떠오르게 되는데, 과거의 데이터라는 통계자료를 활용하여 최적화를 이뤄낸다는 것은 산업공학의 양대산맥인 통계와 최적화를 활용한다는 것을 의미한다. 즉 머신러닝은, 산업공학과의 핵심적인 경쟁 분야가 되어야 한다. 이것은 전자 및 전산이 하는 분야라고 치부하게 되면 우리의 전공인 최적화도 다른 분야에 일부 양보하고, 통계도 마찬가지로 양보하는 결과에 이를 것이다. 나는 전산학 박사이지만 산업공학이 기계학습에 상당한 지분을 가지고 있다는 사실을 인정하고, 산업공학이 분명히 머신러닝에 매우 가까운 학문 분야라고 생각한다. 예를 들어, 기계학습의 강화 학습 같은 경우에는 핵심 방법론이 Markov Decision Process인데, 이것은 산업공학에서 처음 시작된 모델이다.   인공지능 관련 연구는 최근 많이 진행되고 있다. 사람처럼 사고하고 판단할 수 있는 기계를 만든다는 것이 얼마나 어렵고 도달하기 어려운 도전인지를 알면, 이런 질문이 나오진 않을 것 같다. 전자상거래와 같은 얕은 이슈는 금방 구현 하지만, 인공지능은 상상하지 못할 만큼 깊은 이슈다. 사람처럼 말하고 생각하고, 정치도 하고 경제도 하는 지능을 생각해낼 수 있을까? 이것은 이번 세기에 될 문제가 아닐지도 모른다. 연구할 문제는 상당히 많고 레드오션이 되진 않을 것이다. 끝이 보이는 것들이 많지만, 인공지능은 끝이 보이지 않는다. 알파고는 바둑을 잘 두는 게임기에 불과할 뿐이다.

   

l Q. 전산과목을 주로 배우지 않는 산공과학생들이, ‘머신러닝/데이터마이닝분야에서 전산학과 학생들과 비교하여, 어떠한 방향으로 강점을 가질 수 있나요?

 

산업공학과 학생들을 지난 5년간 직접 가르쳐 보고, 대학원생까지 지도해본 결과 몇 가지 느낀 점이 있다. 산업공학과 학생들은 구현 차원에서 프로그래밍 실력이 상당히 부족한 것을 두려워하는데, 그것은 예상할 수 있는 바이고, 그렇게 되어야만 하는 것이라고 생각한다. 그렇지 않으면 전산 전공의 존재 이유가 없기 때문이다. 하지만, 본인이 정말 잘해야만 하는 통계 및 최적화에서도 실력이 부족하다는 느낌이 든다. 대학원생들에게 MLE가 무엇인지를 물어봐도 대답하지 못하는 현 작태로는 당연히 산공과는 어중이떠중이 집합으로 남을 수 밖에 없고, 전과의 종착지일 수밖에 없다. 산업공학 전공으로써 의미를 살리고 싶으면, 어떻게 하면 코딩을 더 잘할 수 있을까 고민하지 말고, 최적화와 통계에 몰입하며 그것을 뒷받침할 수 있는 수준의 구현 능력을 갖추길 바란다. 그렇기 위해서는 추가적으로 수학과의 선형대수나 해석학도 수강하는 것이 좋을 것이다. 자신이 약한 것을 꼬집고 지적을 해야지 나중에 강해지는 것이라고 생각한다. 산업공학과 학생들의 대다수는 주력이어야 하는 부분에서 강하지 않고, 산업에 도움이 되야 하는 부분에서도 도움이 되지 못한다. 수리적 능력과 구현적 능력 둘 중에 하나를 선택한다면, 수리적인 능력을 빨리 선택해야 한다. 수학적, 통계적 기본실력이 있는 학생들이 되길 바란다.

       

교수님들의 이야기를 들을때면, 항상 망치로 머리를 얻어맞은듯한 기분이 듭니다. 수학적, 통계적 능력에 대한 욕망은 가지지 않았으면서, 어느샌가부터 프로그래밍능력에 관심을 가지고, 그것을 열심히 하려고 했던 저 자신이 부끄러워지기도 하네요. 여러분들은, 다른 기술을 익히기위해, 산업공학의 근간인 수리적능력과 통계적능력을 등한시하는 일이 없기를 바랍니다.

 

손성민

Son Seongmin

E-mail: ssma93@kaist.ac.kr

Phone: 010-6823-1119

 

ListEditDelete