본문 바로가기
데이터사이언스/인공지능을 처음공부하는 사람들을 위한 글

데이터사이언스 인공지능에 필요한 능력

by 미스터탁 2022. 12. 12.

 

데이터 사이언티스트 / 인공지능을 전공하기 위해서 또는 취업을 하기 위해서는 최소한 크게 두가지 능력을 필요로 한다.

 

1. 수리적/통계학적 능력

2. 컴퓨팅 능력 (프로그래밍 능력)

 

머신러닝 알고리즘을 이해하고 새로운 모델이나 방법론을 개발 하기 위해서는 수학적인 능력을 필요로 한다. 사실, 데이터를 불러 들이고, 머신 러닝 모델을 학습시키고 새로운 데이터에 대해 예측 값을 구하는 일은 수학적인 능력을 필요로 하지 않는다. 심지어는, 프로그래밍 능력도 필요 없다. 그럼에도 불구하고 수학적인 능력을 필요로 하는 이유는 무엇일까?

 

데이터 사이언티스트의 역할은 '데이터를 불러들이고, 머신러닝 모델을 적합'시키는 것에서 끝나지 않는다. 우리가 다루어야 하는 많은 데이터들은 굉장히 많은 문제를 가지고 있고, 그 문제를 해결하기 위해서는 다양한 방법을 시도 해야 한다. 기존에 나와 있는 방법들을 적용하는 것을 넘어서, 그 문제의 특징을 파악하고 문제를 풀기 위한 새로운 방법을 만들어 내야 한다. 새로운 방법을 만들기 위해서는 기존의 방법들을 제대로 이해하는 것이 먼저다. 그렇기 때문에, 수학적인 능력이 필수적으로 필요하다. 

 

아무리 코딩을 잘하더라도, 기존 알고리즘의 이해가 부족하다면 새로운 알고리즘을 생각하기는 어렵다. 예를 들어, 일반적인 데이터 사이언스 문제 즉, 표 형식의 데이터(Tabular data)를 가지고 학습할 때에는 Tree기반의 모델 (xgboost, randomforest 등) 이 딥러닝 보다 우월 하다. 최근, 딥러닝이 엄청난 발전을 거듭하고 있지만, 여전히 전통적인 문제에서는 Tree기반 ensemble모델이 좋은 성능을 보인다. 여러분들은 이 현상을 제대로 설명할 수 있는가? 이유는 무엇일까? 그렇다면, 딥러닝에서도 ensemble모델 만큼의 성능을 나오게 할 수 있는 방법이 있을까? 이 질문에 대해 답변 하기가 어렵다면, 머신러닝과 딥러닝에 대한 이해가 부족한 것이다. 

 

컴퓨팅 능력은 내 머릿속에 있는 알고리즘이나 방법들을 실제로 구현시킬수 있는 도구라고 생각한다. 데이터를 불러들이고 모델을 적합하는 수준은 프로그래밍이 아니다. 최소한 데이터를 원하는 형태로 전처리 할 수 있고, 원하는 방법론을 개발 할 수 있는 수준은 되어야 프로그래밍을 잘한다 라고 말할 수 있다.

 

굳이 두 가지 능력중에 하나만을 골라야한다면 필자는 수학적인 능력을 고를 것이다. 사실 알고리즘을 구현하는 것은 다른 사람이 대신 해줄 수 있지만, 새로운 알고리즘이나 방법론을 개발하는 것은 누가 대신 해 주기 어렵기 때문이다.

 

내가 만약 고등학생이라면, 가장 이상적인 전공 케이스는 수학과 + 컴퓨터공학과 일것이다. 당연히 모든 내용을 다 커버할 수 있기 때문이다. 하지만, 학교 생활이 매우 매우 힘들어 질 것이 분명하다. 최근 데이터사이언스학과 인공지능학과가 생기기 때문에, 해당 학과를 진학하게 된다면 대부분의 내용들을 커버할 수 있으리라 생각한다. 그게 아니면, 산업공학과나 통계학과가 알맞을 듯 싶다. 

 

더불어, 한가지 능력을 추가한다면 도메인 지식에 대한 이해 이다. 이는 사실 어떤 도메인에서 일하느냐에 따라 달라질 것이다. 내가 제조데이터 사이언스를 한다면, 당연히 제조업에 대한 이해를 필요로 한다. 주식 예측 문제를 풀고자 한다면, 당연히 주식시장에 대한 이해를 필요로 할 것이다. 이 부분에 대해서는, 자주 협업을 통해 이루어지기도 한다. 

반응형

댓글