용어의 정의 편

천리길도 한 걸음부터

티끌모아 태산

Little by little one goes far

 

수백 년 간(최소 100년 이상) 실무 프로그래밍뿐 아니라, 실 생활 전반에서 에서 검증된 법칙(속담)

 

WBS(work-breakdown structure)

0, 1 뿐이라 틀리면 안 되는 컴퓨터 분야가 아닌 다른 분야에서 문제를 나누기 위해 사용하는 방법.

 

DP(Dynamic Programming), Divide-and-Conquer, Greedy Algorithm

수학, 경제학, 컴퓨터 분야에서 문제를 세분화하는 방법. 하향식 접근법이다. 나누어진 문제가 서로 독립적이어야 하고 중복되는 경우엔 동적 프로그래밍 방법이 낫다.

 

Dynamic Programming

수학자 리처드 벨만이 만든 용어, 2가지 뜻이 있다. 풀고 싶은 문제가 작은 문제로 구성되고 작은 문제 풀이의 반복으로 큰 문제를 풀 수 있는 경우. 분할 가능한 모든 작은 문제를 전체 고려할 때도 해당 용어를 사용함. 상향식 접근법이다. 그래서 최적성의 원리가 적용된 문제만 풀 수 있음. 풀이된 문제를 저장한다.(배열이나 변수에 결과값을 저장하고 그 뒤에 쓰는 구문이 있으면 동적 프로그래밍이라고 볼 수 있음)

 

Greedy Algorithm

DP 연산 시간은 풀이 시간이 오래 걸려서 나온 방법. 문제 풀이 방법을 여러 단계로 나누어 각 단계마다 최선의 선택을 하도록 함.

 

Divide-and-Conquer Algorithm

DP와 같으나 나누어진 작은 문제끼리는 교집합이 존재하지 않도록 나누어 문제를 푸는 방법. 즉, 작은 문제 정의가 서로 중복되지 않음.

 

Dynamic Programming 은 D&C Algorithm과 Greedy Algorithm을 포함하는 용어로 쓰인다. 알고리즘은 문제 풀이의 한 종류이다. D&C, Greedy의 경우 알고리즘이 postfix(뒤에 붙는 용어)로 붙고, Dynamic Programming의 경우 "-계획법"이라는 postfix 가 붙기 때문이다. 문제를 나누어서 푸는 것이 좋다는 결정을 내릴 때, 프로그래밍에서는 "동적 계획법(動的計劃法)으로 풀자"라고 말할 수 있다. 아니면, 최 상위 개념인 "천리길도 한 걸음부터"란 용어를 사용해도 되겠다. 엄밀히 따지면, greedy와 가까워 보이긴 하지만

 

AI 용어 접목

Insight

문제 풀이 방법은 Insight(통찰력), Algorithm, ML(머신러닝)으로 나누어진다. Insight는 오랜 경험을 지닌 사람이 문제의 핵심을 짚어 문제 그대로, 혹은 문제를 비틀거나 바꾸어 단번에 문제를 풀이하는 방법이다. 컴퓨터 분야에서는 문제에서 사용할 수식을 단순 구현하는 것이 아니라, 수학적 수식 자체를 바꾸어 더 빠른 방법으로 풀이한 경우를 말한다. AI는 Insight 가 있긴 하나, 인간에 비하면 매우 한정적이다. 가령, 한정된 문제 풀이에서 AI 모델은 최상의 알고리즘과 인사이트(사실, 알고리즘인지 인사이트인지 명확한 구분은 힘듦)를 발휘할 것이다. 그러나 인간의 경우 그 문제를 스스로 풀지 않고 다른 개발자를 고용해서 풀게 만들고 모든 결과물은 돈으로 환산하여 본인이 대부분 가져간다. 더한 애들은 무단으로 베끼고, 마치 자기가 다 한 것인 양 TV에 나온다.

 

Algorithm

알고리즘은 잘 알려진 문제 풀이 방법을 말한다. 여러 특수한 상황에서 쓰이는 문제 풀이 방법을 일반화하였기 때문에 알고리즘을 외움으로써 다양한 문제에 적용하여 문제 풀이를 할 수 있다.  

 

머신러닝, 딥러닝

머신 러닝에 포함된 하위 개념에 딥러닝이 있다. 머신러닝, 딥러닝 분야 직업군은 데이터 사이언티스트, 데이터 애널리스트, 데이터 엔지니어가 있다. 데이터 분석가/사이언티스트는 데이터를 분석하여 문제 풀이에 쓸 수학적 수식을 만들기 때문에 Insight와 연관되어 있다고 볼 수 있다. 데이터 엔지니어는 주어진 수식을 구현하기 때문에 Algorithm과 연결되어 있다고 할 수 있다. 그러나 기존 문제 풀이 용어(DP, Greedy 등)는 "모델"을 만드는 프로그래밍에서 국한적으로 쓸 수 있다. 

 

새로운 문제 풀이 방법, "기계학습모델"

모델은 문제 풀이 방법이긴 하나 사람이 만든 것이 아니다. 모델을 생성하는 AI 시스템(프로그램+하드웨어)은 사람이 만들지만 "모델"은 해당 시스템(AI 시스템)이 자체 생성한다. 소프트웨어는 프로그램+문서의 개념.

 

환원주의

철학 용어. 복잡하고 높은 단계의 사상이나 개념을 세부적으로 나누어서 설명할 수 있다는 뜻.

 

문제 풀이 방법 중, AI는 통찰력까지의 수준은 아직 아니지만 인간의 생각 방식을 프로그래밍으로 구현해 보니 인간보다 나을 거라는 희망과 환원 통찰력과 같은 수준으로 쓰는 용어이다. AI 역시 인간이 만든 반도체 칩 위에서 돌긴 하지만 "모델" 은 환원주의가 통용되지 않는다. 즉, 세부적으로 나눈 것을 다시 합치기 힘들다는 뜻이다. 인간의 능력이나 시간이 무한하다면 분석이 가능하겠으나 인간이 2년 간 운전하면서 알아야 할 보상 함수(강화 학습 모델 생성 프로그램 중 하나)를 10분 만에 만들어 버리는 컴퓨터와 능력 비교가 힘들기 때문에 분석이 불가능하다고 말한다. 화이트 박스 검증(소스 분석)이 불가하기 때문에 블랙박스 검증(이미 만들어진 자율 주행차나 알파고 대국 결과 등 결과만 놓고 평가)밖에 할 수 없는 상황이다.

 

 

문제 풀이 방법은 인간이 문제를 푸느냐, 컴퓨터가 문제를 푸느냐에 따라 나누어야 한다.

사람이 짠 정형화된 문제 풀이 방법을 알고리즘이라고 한다면,

컴퓨터가 짜고 성능이 매우 뛰어나서 널리 쓰이는 문제 풀이 방법을 모델이라고 한다.

 

그런 모델이 많이 모이면 인간처럼 "통찰력"을 가질 수 있고

터미네이터 영화에서는 통찰력과 더불어 스스로의 의지를 가진 AI를 스카이넷이라고 명명했다.

 

모델 생성은 인간이 하는 것이기에 정말 똑똑한 한 사람보다 커뮤니케이션 능력이 뛰어난 수많은 사람들이 오픈된 문화에서 함께 만들고 평가하는 것이 맞다. 현상이 복잡해 질 수록 모델을 만드는 명확한 목적 정의가 힘들기 때문이다. 

 

예를 들어, 최적의 건널목을 선택해 주는 최적 경로 알고리즘이 있다고 하자. 건널목 건널 때 수많은 교차로 상황을 예측해 줄 때, "시간 단축" 보다 어떤 사람에게는 마천루가 즐비한 도시에서 "따스한 햇볕"이 더 소중한 고려 사항이라는 것을 알고 모델을 생성하지 않으면 그 모델은 이미 틀린 모델이기 때문이다.

 

물론, 디오게네스의 햇빛이 모든 사람에게 적용되는 것은 아니겠지만 평등과 자유는 만인의 바람일 것이다.

 

 

- 초고입니다. 실 서적에는 이 글이 많은 개발자 손을 거치고 

  문과 출신 작가님의 손을 거쳐 퇴고되어 들어갑니다. -

물론, 욕이나 사회 비판 등 지워지는 부분도 많죠.

 

'Blog History' 카테고리의 다른 글

224  (0) 2020.05.03
223  (0) 2020.05.03
220  (0) 2020.05.03
219  (0) 2020.05.03
218  (0) 2020.05.03

+ Recent posts