전체메뉴

검색
팝업창 닫기
이메일보내기

수치연산 노이즈의 가공할 위험

수치연산 노이즈란 산술계산 과정에서 발생하는 뜻하지 않은 오차를 말한다. 수치를 반올림할 때 발생하는 반올림 오차, 이산체계 구축과정에서 발생하는 오차 등이 대표적이다.

수치연산 노이즈는 계산된 결과를 왜곡시키거나 쓸모없게 만든다. 심지어는 시추선을 침몰시키거나 탐사선 발사 실패의 원인이 되며, 군사무기에서 수치연산 노이즈가 발생할 경우 많은 인명의 살상까지 초래한다.

인간은 경제·산업·과학·공학 등 다양한 분야에서 수치적 시뮬레이션을 활용하고 있는 만큼 수치연산 노이즈는 피할 수 없는 숙명과도 같다. 하지만 이 역시 인간에 의해 제어될 수밖에 없는 영역이라고 할 수 있다.

자료제공: 한국과학기술단체총연합회 과학과 기술

수치연산 노이즈는 응용수학, 특히 수치해석학에서 전문적으로 정의돼 사용되는 용어는 아니다. 인터넷 백과사전 등에 나와 있는 사전적 의미에 의하면 '특별한 의미 없이 뜻하지 않게 발생한 산술적 오차'를 지칭한다. 다시 말해 어떤 징후를 보여 주는 의미를 가진 데이터가 아니라 단순히 산술계산 과정에서 발생하는 뜻하지 않은 부산물이라고 할 수 있는 것이다.

이는 컴퓨터 모델링이나 프로그래밍을 하는 과정에서의 실수 또는 하드웨어적인 실패에서 발생하는 오차와는 다르다. 수치를 반올림할 때 발생하는 반올림 오차, 이산체계 구축과정에서 발생 하는 오차처럼 필연적으로 발생할 수밖에 없는 숙명적 과제라고 할 수 있다.

일반적으로 어떤 숫자에 대해 반올림을 하면 근사값이 되기 때문에 근원적으로 오차가 생길 수밖에 없다. 예를 들어 0.2751을 0.275로 반올림하면 0.0001의 오차가 발생하게 되고, 0.28로 반올림하게 되면 0.0049의 오차가 생긴다. 이 때문에 반올림을 한 후 서로 비슷한 수치끼리 뺄셈을 하거나 반복되는 계산을 하면 오차가 무시할 수 없는 수준으로 커지게 된다.

이는 이산체계 구축과정에서도 마찬가지다. 이산체계는 이산(離散) 수학을 기초로 하고 있는데, 미적분과 같이 연속의 개념을 사용하지 않고 선택과 배열, 그래프, 알고리즘, 의사결정과 최적화 같은 연속돼 있지 않은 수의 체계를 다루기 때문에 오차가 발생한다.

이처럼 뜻하지는 않았지만 피할 수 없는 오차에는 산술계산 과정에서 발생하는 오차를 비롯해 오염 영향을 일으키는 오차 등 종류도 많다. 오염 영향이란 오차가 주변 영역에까지 전반적으로 영향을 미치는 것을 말한다.

수치연산 노이즈에 의한 부정확한 해

컴퓨터의 산술계산 과정에서 발생하는 반올림 오차는 기계가 다룰 수 있는 숫자 범위의 유한성 때문에 필연적이라고 할 수 있다. 컴퓨터가 실제 화면에 보이는 숫자보다 훨씬 더 많은 단위로 계산을 한다고 하더라도 기계 상에서 이뤄지는 산술계산이 항상 정확하다고 보기는 어렵다.

단지 수치연산이 아주 작은 오차에만 영향을 받고, 그것 역시 통제가 가능하기를 바랄 수 있을 뿐이다. 반올림 오차가 치명적인 결과를 초래한 대표적 사례는 지난 1991년 2월 25일 발생한 패트리어트 미사일의 스커드 미사일 요격 실패다.

일반적으로 패트리어트 미사일은 미사일 자체만 가리키는 것이 아니다. 레이더시스템, 연산시스템, 유도시스템, 발사시스템의 집합체를 의미한다. 일단 레이더시스템이 상공을 감시하다 비행물체가 포착되면 고도, 위치, 속도 등의 데이터를 연산시스템에 넘기게 된다. 그러면 연산시스템은 비행물체의 정체를 식별하고 미사일의 발사 방향과 각도 등을 계산해 발사시스템으로 전송한다.

또한 패트리어트 미사일이 발사되면 연산시스템이 유도시스템에 해당 비행물체의 비행 방향과 패턴 등의 데이터를 넘겨 패트리어트 미사일을 비행물체까지 유도하도록 한다.

그런데 걸프전 당시 사우디아라비아 다란의 미군기지에 있던 패트리어트 미사일이 이라크에서 날아온 스커드 미사일 요격에 실패한 것. 당시 시스템 시계는 10분의 1초를 기반으로 하고 있었는데, 이를 이진법으로 표현하면 0.00011001100110011…이 된다. 이 무한 반복은 고정점 24비트 표현으로 저장되고, 이 과정에서 반올림 오차가 발생한 것이다.

미국 일리노이 주립대학의 컴퓨터공학과 교수 로버트 스킬이 지적했듯 이는 아주 작은 오차다. 하지만 100시간 이후의 결과를 상정해 봤을 때 이 같은 작은 오차는 엄청나게 큰 숫자, 즉 100×60×60×10이 된다. 그리고 그 작은 시간의 차이와 더불어 서브루틴의 반복적인 호출 누적이 결국은 600m의 거리 차이를 낳게 한다. 서브루틴이란 한 프로그램 내에서 필요할 때마다 되풀이해서 사용할 수 있는 부분적 프로그램을 말한다.

이 같은 반올림 오차로 인해 패트리어트 미사일은 미군기지에 있는 막사로 날아오는 스커드 미사일을 요격하지 못했고, 이는 28명의 병사가 목숨을 잃고 98명의 병사가 부상을 당하는 결과로 귀결됐다.

사실 이 같은 조사 결과 역시 미국 정부가 발표한 것이다. 이 때문에 다른 오차에 대한 의구심이 남아있는 상태다.

일반적으로 방정식의 해를 찾기 위해 사용되는 가우스 알고리즘은 몇 번의 기본적인 반복 산술 연산을 통해 해를 찾아낸다. 하지만 이 같은 연산들이 오차를 초래할 수도 있기 때문에 가설에 의해 유도된 정확한 해와 실제 계산을 통해 얻어진 근사해의 오차를 평가할 수 있는 도구가 필요하다. 근사해란 말 그대로 방정식의 정확한 풀이에 가까운 풀이를 말한다.

수치해석학은 가설에 의해 유도된 정확한 해와 계산에 의해 얻어진 근사해의 오차를 분석한다. 하지만 높은 차원에서는 수치 연산 노이즈가 때때로 계산된 결과를 왜곡하고 쓸모없게 만들어 버리기도 한다.

컴퓨터 시뮬레이션에서는 이 같은 수치연산 노이즈의 영향을 최소화하고 통제하기 위해 반복 풀기 방법이 사용된다. 그럼에도 불구하고 컴퓨터 시대를 사는 사람들은 필연적으로 수치연산 노이즈에 의해 교란되어진 부정확한 해를 받아들여야 할지도 모른다.

시추선 침몰과 탐사선 발사 실패

미분(微分)이란 잘게 쪼개는 것을 의미한다. 함수의 그래프를 무수히 잘게 쪼개 아주 작은 값만큼 x의 값을 증가시켰을 때 증가되는 함수 값의 변화량을 조사하고 싶어 만들어진 것이다. 이때 변수는 몇 개로 국한된다.



편미분은 한두 가지 변수 이외의 모든 변수는 마치 상수처럼 취급하는 것을 말한다. 각개 변수들의 상관관계를 고려하지 않고 함수값의 변화량을 알고 싶을 때 이용하는데, 일상생활에서의 많은 응용을 수치적으로 다루기 위해서는 편미분 사용이 불가피하다.

수학적 모델링의 입장에서 편미분 방정식을 풀기 위해서는 무한차원의 공간에서 벌어지는 현상을 유한차원의 공간에서 계산이 가능한 이산체계로 전환해야 한다. 그런데 이 같은 이산체계 구축과정에서 오차가 발생한다. 가장 대표적인 사례는 지난 1991년 8월 23일 발생한 노르웨이의 슬레이프니르 A 시추선 침몰이다.

조사에 따르면 이 시추선의 침몰은 유한요소법에 의해 산출된 탄성 모델의 근사해 오차 때문이었다. 유한요소법은 물체를 유한한 개수의 요소로 분할한 후 각각의 영역에 대해 계산해 나가는 방법인데, 이산체계를 구축할 때 자주 쓰인다. 그런데 유한요소법 근사해의 오차로 물체의 강도가 47%나 과대평가 됐고, 이는 시추선 구조물의 두께가 충분하게 만들어지지 못하도록 하는 결과를 가져왔다.

반올림 오차와 이산체계 구축과정에서 발생하는 오차는 주어진 문제를 제대로 풀었는가에 대한 끊임없는 의문을 던진다. 사실 실질적인 계산에 있어서 수치적인 시뮬레이션은 모델 오차와 불확실한 데이터를 수반한다. 따라서 수학적으로 분석을 하고, 정확한 모델을 유도하는 것은 상당히 미묘하고 조심스러운 작업이다.

정확한 모델링이 얼마나 중요한지는 영국 런던에 있는 밀레니엄 다리의 예를 통해 알 수 있다. 런던의 밀레니엄 다리는 지난 2000년 6월 보행자 전용 다리로 완공됐다. 하지만 다리가 일반인에게 공개된 지 이틀 만에 통행이 금지됐다. 다리를 건너던 보행자들이 다리의 흔들림을 강하게 느낀 것. 밀레니엄 다리는 보완 공사를 통해 2002년 재차 공개됐다.







밀레니엄 다리의 흔들림은 '긍정적 피드백' 현상에 의해 야기됐다. 당초 다리를 건너던 사람들의 자연스러운 흔들림 동작이 작고 비스듬한 다리의 동요를 일으켰고, 이 같은 다리의 동요는 재차 사람들의 스텝에 리듬감을 줌으로써 사람들이 걸을 때 그 흔들림을 타면서 걷도록 했다.

이 같은 일련의 프로세스는 다리가 동요하는 폭을 증가시켜 정상적인 통행에 문제를 일으킬 수준으로 확대됐다. 이는 다리를 건너는 보행자들의 무게에 의해 생성되는 흔들림을 예상하지 못한 채 모델링을 했기 때문이다.

수학자들이 이 같은 필연적 오차들을 제어한다고 하더라도 여전히 어떤 문제를 푸는 데 있어 100% 성공이 보장된다고 보기는 어렵다. 수치연산 노이즈는 물론 프로그램하는 과정에서의 실수와 하드웨어의 불량 또한 문제가 될 수 있기 때문이다. 프로그램 과정에서 발생할 수 있는 오차의 피해를 극단적으로 보여준 것이 바로 역사상 가장 비쌌던 하이픈이라고 불리는 무인 탐사선 마리너 1호의 발사 실패다.

마리너는 지난 1962년부터 1975년까지 운용된 미국의 행성 탐사선으로 1호부터 10호까지 발사됐다. 지난 1962년 7월 22일 발사된 최초의 행성 탐사선 마리너 1호는 금성 근접 통과의 임무를 띠고 발사됐다. 하지만 발사 293초 후 비행 시스템에 오류가 발생해 발사에 실패하고 파괴 명령에 의해 폭파됐다.

지금까지도 마리너 1호의 발사 실패 원인은 명확히 규명되지 않고 있다. 하지만 가장 잘 알려진 가설은 마리너 1호의 프로그램에서 하이픈(-) 하나가 빠져 그렇게 됐다는 것이다.

지난 1994년 미국 버지니아 주에 있는 린치버그 칼리지의 토마스 나이스리 교수는 펜티엄 컴퓨터가 몇 가지 나눗셈 연산을 정확하게 하지 못한다는 점을 발견했다. 예를 들어 펜티엄프로가 1/824633702441을 정확히 계산할 수 없다는 것. 이는 하드웨어적인 실패의 예라고 할 수 있다.

치명적이지만 없어선 안 될 도구

수치연산 노이즈는 피할 수 없이 발생하는 현상이며, 따라서 주의를 기울여 제어할 수밖에 없다. 물론 수학자들은 반올림 오차에 대해 많은 정보를 가지고 있고, 이산체계를 구축할 때 발생하는 오차에 대해서도 대부분 제어가 가능하다고 말한다.

또한 과학기술은 매시간 극적으로 발전하고 있어 수치연산 노이즈를 제어하는 데 많은 도움을 주며, 이는 더 많은 분야로의 도전을 가능하게 하고 있다.

하지만 여전히 수학적, 그리고 수치적 모델링은 오차의 발생 가능성을 100% 배제할 수 없다. 특히 불가능했던 분야로의 도전은 또 다른 수치연산 노이즈를 발생시킬 것이다.

이처럼 수치연산 노이즈는 치명적일 수 있다. 그럼에도 불구하고 수치적 시뮬레이션은 경제, 산업, 과학, 그리고 공학 등 다양한 분야에서 없어서는 안 되는 중요한 도구다. 인간은 수치연산 노이즈로부터 자유로울 수 없을지도 모른다. 하지만 이 같은 수치연산 노이즈는 또한 인간에 의해 효율적으로 제어될 것이다.





글_카르스텐 가르스텐센 독일 훔볼트대학교 수학과 교수
이은정 연세대학교 계산과학공학과 교수
< 저작권자 ⓒ 서울경제, 무단 전재 및 재배포 금지 >
주소 : 서울특별시 종로구 율곡로 6 트윈트리타워 B동 14~16층 대표전화 : 02) 724-8600
상호 : 서울경제신문사업자번호 : 208-81-10310대표자 : 손동영등록번호 : 서울 가 00224등록일자 : 1988.05.13
인터넷신문 등록번호 : 서울 아04065 등록일자 : 2016.04.26발행일자 : 2016.04.01발행 ·편집인 : 손동영청소년보호책임자 : 신한수
서울경제의 모든 콘텐트는 저작권법의 보호를 받는 바, 무단 전재·복사·배포 등은 법적 제재를 받을 수 있습니다.
Copyright ⓒ Sedaily, All right reserved

서울경제를 팔로우하세요!

서울경제신문

텔레그램 뉴스채널

서경 마켓시그널

헬로홈즈

미미상인