[인공지능과 로봇] 서적: 이것이 인공지능이다

인공지능과 로봇/Survey|2020. 11. 30. 15:04

 

 


제목: 이것이 인공지능이다
저자: 김명락

 

 


[인공지능 기술에 대한 자세]
인공지능 기술이 주도하는 4차혁명시대에도 누구나 인공지능 기술에 대해 잘 알 필요는 없으며 해당 기술을 활용해서 제품을 잘 만들면 된다고 주장하고 있다. 전적으로 동의 한다. 누구나 인공지능 기술의 전문가가 될 필요는 없으며 해당 기술의 특성에 대해 잘 이해하고 해당 기술을 잘 사용해서 다양한 분야에 인공지능 기술을 적용해서 좋은 결과를 도출하는 것은 중요하다. 반면 인공지능 기술의 도입이 불필요한 분야에서도 개발과 운용에 많은 시간과 비용이 드는 인공지능 기술을 고집하는 것도 어리석은 행동일 것이다. 자신이 계획하고 있는 제품 또는 기술 개발에 가장 적합한 기술을 선택하고 해당 기술 분야의 과실을 잘 이용하도록 해야 한다.

필자의 경우 역시 최종 목표는 주어진 문제를 스스로 해결 할 수 있는 로봇을 개발하는 것이며 해당 목표 달성에 적절한 기술을 도입하거나 개발해야 할 것이다. 우선 한가지 판단이 먼저 이뤄져야 한다. 개발하고 싶은 로봇 기술에 현 인공지능 기술이 필요하며 충분한가에 대한 판단이다. 필요하다면 도입이 필요한 인공지능 기술의 종류 및 적용을 검토해보아야 한다. 해당 인공지능 기술의 현 수준이 충분하다면 더 없이 좋겠으나 부족하다고 한다면 인공지능 기술 자체의 발달을 기다리거나 필요로 하는 인공지능 기술을 스스로 연구 개발 해야 할 것이다. 그리고 후자인 경우라면 스스로가 인공지능 기술의 전문가가 될 필요가 있다. 필자의 로봇 기술 개발을 위한 인공지능 기술의 현주소 및 향후 기술 개발 가능성에 대한 판단을 위해서는 우선 인공지능 기술 자체에 대한 전반적인 조사가 필요하며 그런 이유로 지금과 같이 인공지능 서적 또는 논문을 살펴보고 있는 것이다.

여담이지만 박사과정에서의 경우 이러한 판단 없이 막연하게 로봇 기술과 인공지능 기술에 관해 개별적인 연구를 진행했다. 박사논문 초안 작성 당시 심사 교수님 중 한 분께서 논문에 명확한 주제도 없고 이것은 논문이 아닌 백서에 가깝다고 말씀하셨던 것이 생각난다. 이것 저것 진행했던 연구는 많지만 목표의식이 상당히 부족했었다. 다시금 연구 활동을 시작하는 현시점에서는 원하는 로봇 기술이 정확히 어떤 기술이며 해당 기술을 위해 필요한 인공지능이 무엇인지에 대한 명확한 정의를 내린 이후 연구 개발을 진행해야겠다. 그 외 나머지 기술에 대한 연구는 전혀 하지 않겠다. 단기 성과 또는 실적이 필요하지 않은 만큼 특정 연구 분야에서 손쉽게 성과를 얻을 수 있겠다 해서 연구에 뛰어드는 잘못은 저지르지 않겠다. 선택과 집중을 통해 불필요한 것은 과감히 버리고 최종적으로 원하는 것만을 최대한 빠르게 얻어가겠다.


[IT vs DT]
IT : information technology
DT : data technology

it의 경우 정보의 바다에서 유의미한 정보를 걸러서 선별하는 기술이며, dt의 경우 빅데이터를 수집, 정리, 관리하는 기술이다. 일반적으로 빅데이터라고 하면 데이터의 양이 많은 것을 빅데이터라고 오해하는 경우가 많은데 실제 빅데이터의 의미는 데이터 양이 많든 적든 전체 데이터를 누락 없이 온전한 상태로 가지고 있는 데이터를 뜻한다. 즉, 빅데이터를 사람들의 기준 및 필요에 따라 선택하고 분류하는 기술(예: 야후의 검색 기술)이 it 기술이며, 전체 데이터를 누락 없이 활용하도록 하는 기술이 dt 기술이다. 이때 dt 기술에서 쓰이는 데이터의 경우 분류되거나 선택된 데이터가 아닌 관계로 데이터 량이 상당하며 해당 데이터들을 활용하기 위해서는 클라우드 컴퓨팅과 인공지능 기술이 필요하게 된다.
- 클라우드 컴퓨팅: 방대한 데이터 저장
- 인공지능: 방대한 데이터를 분류 및 분석


[딥러닝]
일반인들에게는 최근 들어 딥러닝이라는 완벽히 새롭고 혁신적인 인공지능이 개발된 것으로 오해하시는 분들이 많이 있을 수 있다. 대학원 시절 인공지능에 대해 공부하면서 느낀 점은 다들 나름의 분야를 가지고 크게 다른 것처럼 설명하고 있는 이론들도 파헤쳐보면 많은 면에서 서로 크게 다르지 않은 경우가 상당하다는 점이다. 형태나 특성은 유사하지만 각각의 고유한 특성을 강조하고나 새로운 기법 등을 추가로 도입하거나 해서 차별화를 꾀하고 있다. 이 세상 대부분의 혁신은 기존의 인프라나 이론적 근거를 바탕으로 태어난 것들이다. 이 세상에 완전히 새롭게 등장하는 이론이나 기술은 극히 드물다. 딥러닝 역시 마찬가지이다.

2000년대 초반부터 약 10년간은 신경망이론의 침체기였다. 필자의 경우 해당 침체기가 끝나가는 시기에 박사과정을 하였고 신경망이론은 여러 가지 인공지능 이론 중 가장 사용하기 꺼려했던 이론 분야였다. 하지만 필자가 졸업을 한 직후부터 gpu와 클라우드, 빅데이터 개념이 본격적으로 도입되기 시작하면서 급격하고 화려하게 대중 앞에 딥러닝이란 이름으로 부활하였다. 연구실 내 신경망 이론에 집중하여 계속 연구 진행하였던 다른 박사과정 형은 현재 국내 주요 대학의 교수직에 몸담고 있다. 같이 연구실 생활을 하던 당시엔 그 박사 형이 연구하던 신경망이론이 향후 딥러닝이란 이름으로 선풍적인 인기를 끌게 될 이론이었던 것을 전혀 알지 못했다. 기존 신경망 이론에 약간의 성능 개선 정도 가능하게 하는 이론이고 기존 대비 추가적인 단계에 의해 전체 성능이 오히려 떨어지지 않을 까란 의구심을 품으며 해당 기술에 대한 연구는 결코 하지 않겠다고 생각했었던 기억이 있다. 사실 딥러닝이 대중화된 현시점에서도 남들에게 보여주기 위한 연구가 아닌 이상에는 해당 기술을 사용하고 싶지는 않다.

왜? 딥러닝을 좋아하지 않는가? 여러 가지 이유가 있다. 물론 차차 딥러닝에 대한 조사를 진행하면서 필자가 잘못 알고 있는 부분이 있었음을 확인해서 판단이 바뀔 수도 있겠지만 현재로서는 아래와 같은 이유로 딥러닝을 선호하지 않는다.
1. 이론적 안전성이 보장되지 않으며 결과 예측이 어렵다.
2. 학습에 너무 많은 시간과 컴퓨팅 파워가 필요하다.
3. 주입되는 데이터의 특성과 질에 성능이 너무 심하게 좌지우지 된다.
4. 이론에 경험적인 요소가 너무 많이 활용된다.


[알파고]
알파고는 딥러닝을 화려하게 세상에 알린 딥러닝 대중화의 일등공신이다. 하지만 알파고는 초기에 금융과 에너지 분야에 범용적으로 사용하기 위해 개발되었다고 한다. 하지만 해당 분야에서는 인공지능의 성능을 명확히 보여주기가 어렵고 검증에 오랜 시간이 필요해서 바둑에 먼저 적용해서 검증한 것이라고 한다.

인공지능 자동 매매프로그램을 개발하고 있는 필자의 생각이 전혀 틀리지는 않았던 것으로 보인다. 빅데이터를 활용하더라도 금융분야에서는 인공지능을 적용해서 성과를 내기가 아직은 시기 상조인 것으로 보인다. 빅브라더가 될 가능성이 가장 큰 구글도 어렵다면 개인인 나는 제대로 된 성과를 얻기가 거의 불가능 할 것이다. 다만, 주가 변동 정보만을 활용해서 단기투자를 하는 경우에는 인공지능을 활용해 뛰어난 수익률을 올리지는 못하겠지만 일정 수준 이상의 수익을 안정적으로 얻을 수 있을 것으로 기대하고 있다. 그리고 이미 주식 시장에서는 단기 매매에 있어서는 프로그램 매매가 매우 높은 비중을 차지하고 있다.


[성능평가]
인공지능 뿐만 아니라 어떠한 기술을 개발하든 해당 기술의 결과에 대한 평가를 해야 하며 그 평가 결과가 최대한 좋게 나오도록 이론 및 기능을 개선 해야 한다. 그리고 학습을 기반으로 하는 대부분의 인공지능 알고리즘에서는 최종적인 성능 평가 과정에서 뿐만 아니라 학습 과정에서도 연산 수행 결과에 대한 평가를 스스로 진행하고 그 결과가 더욱 더 좋게 나오도록 학습을 반복해간다. (물론 모든 학습기반 인공지능이 그렇지는 않다. supervised learning은 연산 결과에 대한 평가를 통해 최적화 및 학습 과정이 일어나도록 하지만 unsupervised learning 의 경우 연산 결과에 대한 평가를 통한 학습이 일어나지는 않는다.) 인공지능이 스스로 결과에 대한 정량적 판단을 할 수 있어야 하며, 이때 평가지표가 되는 함수를 cost function이라 한다. 그리고 cost function의 선택 및 설계는 해당 인공지능이 지향하는 목표에 따라 다양 할 수밖에 없다. 단순히 오차률을 낮춰야 하는 문제인 경우에는 평균제곱근오차(RMSE: root mean square error)를 주로 사용하면 되겠으나 그와 다른 상황에서는 또 다른 평가지표를 사용해야 할 것이다. 예를 들어 엔진의 고장 여부를 예측하는 로직을 개발한다고 가정하자. 이 경우 엔진이 고장나서 더 이상 동작할 수 없는 시점을 정확히 예측할 필요는 없다. 어쩌다 예측이 잘못되어서 엔진이 파손된 이후에야 고장 여부를 판단하게 된다면 엔진 교체 비용으로 지불해야 하는 비용이 상당하게 된다. 반대로 엔진 고장 발생을 예측해서 경고를 띄웠지만 실제로는 아직 좀 더 운행이 가능한 경우라면 크게 문제되지 않는다. 오히려 해당 경고를 통해 차량을 점검하고 차량 엔진 수명을 단축시키게 하는 요인을 미리 발견할 수 있는 기회가 될 수 있을 것이다. 정확히 며칠 이내 고장이 발생하지는 않겠지만 고장이 날 것으로 예상될 정도로 차량 상태가 좋지 않은 상태일 가능성이 매우 크며 이 경우는 차량 점검을 해보는 것이 안전 운행을 위해 꼭 필요한 조치일 것이다. 이와 같은 문제에서는 고장이 발생했으나 이를 예측하지 못했을 경우 페널티를 크게 물리고 고장으로 예측하였으나 실제로는 고장이 아닌 경우에는 페널티를 적게 물리는 쪽으로 cost function을 정의해야 할 것이다.

인공지능의 개발을 위해서는 일반적으로 cost function을 지정해줘야 하고 이는 아직은 개발자 개인의 경험 또는 역량에 크게 영향을 받는다. 인공지능이 우리가 원하는 결과를 도출해낼 수 있게 하기 위해서는 적정한 평가지표를 제시해야 하지만 시스템상 제약 또는 제한을 두어야 하는 사항을 개발자가 모두 파악해서 반영할 수는 없다. 특히나 도덕적 또는 법적 판단이 들어가야 하는 요소가 있으면 더더욱 그렇다. 단순히 시스템 전반적인 효율을 높이도록 하는 것은 크게 문제가 되지 않을 수 있으나 실제 제품화를 위해서는 반영해야 하는 요소가 많을 수 밖에 없다. 예를 들어 교통량 최적화를 위한 인공지능을 개발한다고 하였을 경우 개발자가 교통약자들에 대한 배려에 대해 간과한다고 한다면 교통약자들의 교통 인프라 사용이 더욱 어려워지는 결과를 초래하게 될 가능성이 크다. 인공지능이 만병통치약은 아니다. 인공지능을 어떻게 설계하느냐에 따라 결과의 유용성은 크게 달라 질 수 밖에 없다. 미래에 인공지능 기술이 크게 발전하고 사회 전반적인 인프라가 잘 갖춰지게 된다면 이를 극복 될 수 있겠지만 아직은 그렇지 못한 것이 사실이다. 언젠가는 개별 인공지능 개발을 위한 cost function 자체도 사회 전반적인 인프라 관리를 하는 인공지능의 산출물을 가져다 활용해서 각 개발자의 역량에 좌지우지 되지 않는 날도 오지 않을까 예상해본다.


[데이터셋 구분]
보통 전체 데이터를 크게 3가지의 데이터셋으로 나누어 사용한다.
1. training dataset: 학습용 데이터셋
2. validation dataset: 인공지능 개발 중 성능평가용 데이터셋
3. test dataset: 최종 성능 평가용 데이터셋

인공지능은 soft computing을 목표로 한다. hard computing 과 다르게 이론적으로 최적이며 정확한 결과를 출력하지 못한다. 하지만 예상되지 않거나 한 번도 발생하지 않았던 상황에서도 어느 정도 정확성을 가진 출력을 도출해낼 수 있다. 즉, 이미 알고 있고 분석되어있는 상황에 대해서는 당연하며 그 외 지금까지 경험하지 못했던 데이터셋에 대해서도 어느 정도 합당한 출력을 낼 수 있어야 한다. 데이터셋을 하나로만 가져가며 해당 데이터셋으로 학습도 하며 평가도 한다면 좋은 성능이 나올 수밖에 없다. 사실 입력으로 들어올 수 있는 데이터셋이 일정 수 이하로 정해져 있고 새로운 데이터셋의 입력이 없는 상황이라면 기존의 hard computing이 더욱 성능이 좋을 수 밖에 없으며 이러한 상황에서도 제대로 된 성능을 발휘할 수 없는 인공지능 알고리즘이라면 전혀 쓸모 없는 알고리즘일 가능성이 매우 높다. 기존에 알고 있고 경험했던 상황(training dataset)에 대해서 학습을 하고 그와는 다른 학습되지 않은 상황(validation dataset)에 대해서도 유사한 정도의 성능이 나오도록 인공지능의 개발이 이루어져야 한다. 그렇다면 테스트 데이터셋은 왜 필요한가? 학습용 데이터셋과 성능 평가용 데이터셋을 구분하였더라도 그 데이터셋들을 계속해서 활용해서 개발된 인공지능이 실제 환경에서 제대로 된 성능을 발휘할 수 있을지는 미지수이다. 인공지능을 개발하기 위해 반복적으로 두 가지 데이터셋을 활용하여 성능 향상하는 과정에서 당연히 성능은 좋아지겠지만, 이 역시 두 가지 데이터셋을 나누어 학습하고 성능 평가하는 이 환경에 대해서만 특화되어 좋은 성능을 발휘하게 된 것일지도 모른다. 그래서 최종적인 평가를 위해서는 인공지능 개발 중 사용되지 않았던 새로운 데이터셋이 필요한 것이다.


[서평]
서적 내용이 비전문가들을 대상으로 한 것이기에 인공지능 개발 자체에 대한 객관적인 설명과는 동떨어진 불필요한 내용들이 상당하다. 특히 인공지능이 큰 역할을 하는 시대에 개인들이 대처 해야 하는 방식에 관한 내용과 딥러닝이 인간의 감성을 흉내 내고 있고 인간적인 오류가 중요한 역할을 하기도 하기에 인공지능이 인의 적으로 흉내 내기를 하기도 한다는 등의 내용은 필자로서는 동의하기 어려운 내용이다. 특히 인공지능 시대에도 인간의 필요성과 감성적인 면의 중요성이 있으니 인공지능이 꼭 좋은 것만은 아니라는 주장은 받아들이기 어렵다. 인공지능은 서비스를 제공하거나 업무를 하는데 있어서도 사용자의 감정까지도 고려한 최적의 솔루션을 찾는 방향으로 발전할 것이며 이는 어디까지나 사용자인 인간의 전체적인 이익이 증대되는 결과를 가져올 것이다. 이 과정에서 기존 직업이 사라지고 도태되는 인원들이 생기는 것은 어쩔 수 없는 상황이다. 인간적인 면도 중요하니 인공지능 도입을 일부 제한하거나 늦추자는 식의 논의도 있을 수 있다. 하지만 필자의 생각은 언젠가 인공지능이 거의 완벽히 기존의 시스템을 대체하게 되는 것은 당연하며 그 과정에서의 인간적인 면의 존중과 정의 실현은 앞으로 우리가 풀어야 할 새로운 사회적 이슈이다. 그리고 그 문제 역시 인공지능을 통해 해결이 가능할 것이라 기대한다.

인공지능에 관한 주관적인 내용은 상당히 동의할 수 없는 내용이 많지만 처음 인공지능을 접하는 독자들에게 인공지능에 대한 기본적인 개념을 이해하는 데 도움이 될듯하다.


*서적 내 오류
데이터마이닝(data mining)이 데이터의 수집 과정이라고 설명하고 있으나 이는 잘못 설명된 내용이다. 데이터마이닝은 데이터 광산에서 광석 또는 보석을 캐내는 과정이다. 즉, 무의미해 보이는 데이터들에서 유의미하고 유용한 정보를 뽑아내는 방법론이다. 가장 유명한 활용 예로는 월마트에서 데이터마이닝을 통해 기저귀와 맥주간의 상관 관계가 매우 높으며 두 제품을 함께 진열하는 경우 매출이 높아진다는 결론을 데이터마이닝을 통해 도출해낸 것이다. 이는 기저귀를 사려온 젊은 남성 고객이 맥주도 함께 사는 구매 경향이 있다는 사실을 밝힌 결과이다.










반응형

댓글()