[유성민의 사이버안전 칼럼] 0.000000095의 오차로 생긴 참사가 주는 교훈
  • 유성민 IT칼럼니스트 (dracon123@naver.com)
  • 승인 2016.06.01 15:05
이 기사를 공유합니다

 

지난 3월 이세돌과 알파고의 바둑대전은 전 세계 이목을 집중시켰다. 특히 이세돌이 우세하게 알파고를 이길 것이라는 예측을 뒤엎고 알파고가 이세돌을 4:1로 이기자, 모든 사람들은 경악을 금치 못했다. 알파고 이전까지 바둑은 기계들이 접근할 수 없는 영역이었는데, 고려해야 할 바둑의 수가 우주 원자 개수보다 많은 250150 수로 슈퍼컴퓨터의 연산능력을 벗어나기 때문이다. 알파고는 이러한 불가능을 이겨내고 바둑천재 이세돌을 이겼다. 이제 인공지능이 세상에 좀 더 가까워졌음을 의미하는 신호다.

인공지능은 앞으로 인간의 삶에서 많은 부분을 차지할 것으로 보인다. 영국 옥스퍼드 대학교는 로봇의 대체로 2033년에는 현재 직업의 44%가 사라질 것이라는 전망을 내놨다. 이는 그만큼 인공지능의 발달로 로봇이 할 수 있는 영역이 많아질 것임을 시사한다. 

IBM의 경우 이미 자체 인공지능 시스템인 왓슨을 개발해 의료, 금융, 법률자문, 특허심사 등 다양한 분야에서 전문 서비스를 제공하고 있다. 왓슨은 인간의 언어인 자연어를 이해하고 처리할 수 있는 인공지능이다. 특히 의료분야에서 실적이 두드러지는데 왓슨을 200만권의 의료서적, 150만 환자 기록, 60만건 이상의 진단서를 학습시키고 미국 내 1, 2위 암진료 센터에 적용해 운영 중에 있다. 2014년 미국 임상종양학회에 따르면 왓슨의 암 진단 정확성은 82.6%로 매우 높은 것으로 조사됐다.

기계의 장점은 실수 없이 정확한 서비스를 제공한다는 점이다. 그리고 인공지능을 갖춘 로봇은 거기에 덧붙여 수준 높은 서비스를 제공할 것이다. 그런데 한가 지 의문이 있다. 기계든 로봇이든, 이러한 것들은 실수하는 '사람'에 의해서 만들어 진다는 것이다. 그렇다면 기계는 정말로 실수가 없는 것일까?

이진수 계산법이 만들어낸 0. 000000095의 오차

1991년 2월 25일, 걸프전쟁으로 사우디아라비아에 주둔하고 있었던 미 공군기지는 뜻밖의 스커드 미사일 공격으로 큰 피해를 입었다. 기지에 있었던 병사들은 당시 막사에서 휴식을 취하고 있었기 때문에 미사일 공격에 아무런 대처 없이 당할 수밖에 없었다. 그래서 사망자 28명, 부상자 100명이 속출했다. 이는 걸프전쟁에서 미국이 입은 가장 큰 피해였다.

그런데 한 가지 의문점은 미군기지에는 미사일 공격 시 이를 저지할 수 있는 패트리엇 체계가 갖춰져 있었다는 것이다. 참고로 패트리엇은 아군기지로 공격해오는 미사일을 격추시켜 공격을 저지하는 시스템이다. 그런데 왜 스커드 미사일을 저지하지 못하고 이런 대참사를 불러오고만 것일까?

패트리엇은 1/10초 단위로 시간을 잰다. 문제는 바로 모든 시스템들은 10진수가 아닌 2진수를 기반을 체계로 계산 하는데 패트리엇도 예외가 아니다. 1/10을 이진수로 표현하면0.000110011001100110011...로 표현된다. 패트리엇의 경우 24비트 기반이기 때문에 소수점을 포함한 24자리까지만 계산한다. 25자리부터는 수치를 반영하지 않기 때문에 시스템에서 1/10초를 잴 때마다 0.000000095초의 오차가 발생한다. 그리고 이를 1시간으로 환산화면 0.0034초의 누적오차가 발생한다. (0.000000095 X 10 X 3600=0.0034)

소수점 9번째 자리의 시간계산 오차는 사소한 것처럼 보일 수 있다. 그러나 초당 2058m를 날아다니는 미사일 속도를 고려할 때 절대 무시할 수 없다. 특히 패트리엇을 계속해서 운영시킬 경우 시간을 재는데 있어 오차는 계속 누적되고 미사일을 탐지의 정확성도는 떨어진다. 가령 1시간 동안 패트리엇을 운영할 경우 7m의 거리오차가 발생한다. 100시간의 경우 시간오차는 0.3433초이고 거리오차는 이보다 훨씬 늘어난 687m나 된다.

패트리엇을 탐지해서 목표물을 요격하기 위해서는 최대 20시간을 넘어서는 안 되는데, 이스라엘의 경우 패트리엇을 연속으로 8시간 이상 운영하지 못하게 해 오차가 55m 이상 되지 않도록 했다. 그러나 당시 미국은 이러한 오차를 무시했고 운영방침도 따르지 않았다. 미국의 미국회계감사보고서에 따르면, 당시 패트리엇을 100시간 넘게 연속으로 운영한 것으로 밝혀졌다. 그래서 패트리엇은 스커드 미사일을 탐지했지만 너무나 큰 오차범위 때문에 이를 저지할 수 없었다.

단위 오차로 인한 화성탐사의 실패

1991년 사우디아라비아의 스커드미사일 참사는 작은 실수가 얼마나 큰 재앙을 불러올 수 있는지를 보여준 사건이다. 이러한 사건 외에 미국항공우주국 또한 작은 실수로 6억 달러의 손실을 입은 적이 있다.

1999년 1월 미국은 화성의 기후를 측정하기 위해 '화성 궤도 위성'을 발사했다. 그리고 1999년 9월 위성은 화성의 궤도에 진입하기 시작했고 약 40분 동안 화성을 탐사하기 시작한다. 그러나 갑자기 위성과 통신이 두절되었다. 한 마디로 6억 달러짜리 위성이 우주로 사라져 버린 것이다.

원인은 바로 화성을 돌던 위성의 고도가 예상한 것보다 너무 낮았던 것이었다. 1999년 9월 29일 미국항공우주국은 더 정확한 원인규명을 위해 조사에 나섰는데, 확인결과 위성속도변화를 계산하는 프로그램인 'SM_Force (Small force)'에 사용된 속도변수가 4.45배 작게 계산되어 있는 것을 발견했다. 이 값은 위성궤도의 변화를 계산 하는 데에 사용하는 값으로 위성이 화성궤도의 고도위치에 중요한 역할을 한다.

정확한 원인을 규명하자면, 실수는 바로 잘못된 단위 기입에 있었다. 위성 시스템의 전체 단위는 국제표준인 1N·s으로 표시되어 있는 반면 SM-Force에 사용된 값만 단위가 미국식인 1lb·s를 사용한 것이다. 그래서 위성의 속도는 단위차이만큼인 4.45배만큼 작은 값이 사용되었고 오차가 계속 누적되면서 예상고도인 226km가 아닌 그보다 훨씬 낮은 57km로 진입해 버린 것이었다.

시스템의 오차와 인공지능

앞의 두 사례는 시스템의 오차로 일어난 사건들이다. 첫 사례는 시스템 자체의 정확성이 낮아서 발생한 사건이고 다른 하나는 사람의 작은 실수로 야기된 사건이다. 이 사건들은 인공지능 시대를 맞이할 우리에게 어떤 점을 시사할까.

앞의 두 사건은 1990년대 발생한 것으로 약 25년전 일이다. 지금 시스템 구조의 복잡성과 비교하면 과거의 시스템구조는 원시수준이다. 특히 인공지능을 구현하기 위한 시스템 구조는 지금 시스템 구조보다 훨씬 더 복잡하다. 앞서 살펴보았듯이 Yes 혹은 No 밖에 대답 못하는 2진수 기반의 시스템이기 때문에 정확성이 떨어지고 실수하는 사람이 시스템을 만들기 때문에 시스템 자체를 완벽하게 구현할 수 없다. 다시 말해 기계도 실수할 수 있다는 점이다. 거기에 더해 인공지능의 경우 기계가 스스로 생각하게 하기 때문에 고려해야 요소들이 더 많아지는데, 이는 기계의 실수 가능성을 증가시킨다.

지금까지 기계들은 단순반복 작업만 하면 되었기 때문에 시스템에서 고려해야 할 예상범위들은 정해져 있었다. 그러나 인공지능은 다르다. 인공지능 시스템은 복잡한 환경에서 스스로 생각하고 반응해야 하기 때문에 고려해야 할 요소들은 훨씬 더 많아진다. 물론 시스템 구조자체가 복잡해진다는 사실은 말할 필요도 없다. 자율주행자동차를 생각해보자. 복잡한 도로에서 자동차는 스스로 운전할 것이다. 단순 도로주행이 아닌 다른 자동차들과 함께 실제 도로에서 움직여야 하기 때문에 다른 자동차들의 움직임, 거리상황, 날씨 등을 파악해야 하기 때문에 고려해야 하는 요소들이 많다. 가령 앞차가 급정차 했을 때, 빨간 불일 때 보행자가 갑자기 도로로 뛰어 들었을 경우, 옆 차가 갑자기 뛰어 들었을 경우 등 고려해야 한다.

그래서 복잡한 상황들을 인공지능에 구현하기란 어렵다. 인공지능을 구현하더라고 예측하지 못한 변수 때문에 오류가 발생하고 만다. 바둑대전 시 이세돌이 예상치 못한 수를 뒀을 때 알파고가 버그로 대처 못한 것도 같은 맥락이다. 바둑의 경우 단순 버그로 끝나기 때문에 큰 문제는 없다. 그런데 전쟁에서 사용되는 킬러로봇의 경우는 어떨까? 아군과 적군을 인지하는 센서 능력의 정확성 부족 및 예측하지 못한 상황발생으로 죄 없는 사람들을 죽이는 일들이 일어날 수 있다. 자율주행자동차도 마찬가지이다. 예측하지 상황발생 시 자동차에 버그가 발생해 자동차가 갑자기 중지 시 뒤 차와 충돌해 사고가 발생할 수 있다. 이외에도 인공지능 도입으로 발생할 수 있는 피해는 많다.

인공지능을 생활에 적용하면 복지에 큰 향상을 가져다준다는 점은 부인할 수 없는 사실이다. 그러나 위에서 언급했듯이 시스템이 가지고 있는 기본적인 오류 때문에 인공지능을 완벽하게 구현할 수 없다. 그리고 인공지능의 오류로 인한 피해는 반드시 발생할 것이다. 그렇기 때문에 인공지능이 확산되기 전에 사람들은 사회적으로 기계의 실수를 받아들일 준비가 되었는지 확인해 볼 필요가 있다. 그리고 발생했을 때 책임은 누구에게 있는지 명확하게 하고 어떻게 대처할지에 대한 방안도 명확하게 해야 한다.

 

 

이 기사에 댓글쓰기펼치기