데이터과학을 하려면 선형대수를 꼭 배워야할까?
데이터과학, 기계학습, 데이터마이닝, 인공지능, 통계 등에 항상 따라붙는 수학이 선형대수학입니다. 이와 관련된 채용 공고에도 선형대수학에 대한 기본 또는 충분한 이해가 요건으로 붙는 경우가 많았습니다.
데이터과학을 하려면 선형대수를 꼭 배워야 하나?
이 질문에 대한 대부분의 전문가들의 답은 “그렇다”일 것입니다.
어쩌면 여러분은 “데이터과학을 하는데 선형대수학은 필요없다”는 말을 듣고 싶어서 이 포스트를 보고 있는지도 모르겠습니다.
솔직히 누군가 그렇게 말한 사람이 있다면 그건 “개뻥”입니다. 또는 속성 과정으로 금방 배우고 마스터링 할 수 있다고 말한다면 그것도 “개뻥”입니다.
“얼마만큼 깊이 또는 많이 하느냐”의 차이는 있겠지만 선형대수의 기초 지식은 반드시 필요하며 데이터과학, 데이터분석, 통계, 기계학습, 데이터마이닝과 같은 데이터 관련 고급 기술을 배울 때 선형대수는 필수적입니다. 못하면 멍텅구리가 되거나 결국에는 아예 아무것도 이해하지 못하게 됩니다.
선형대수학은 무엇인가?
무시무시한 어감을 가진 선형대수는 대수학의 한 갈래로 영어로는 “Linear Algebra”이고 “리니어 앨지브라”라고 읽습니다. 발음이 조금 까다롭기 때문에 한국인들은 “선형대수” 또는 “선대”라고 읽습니다.
선형대수학이 무엇인지 쉽게 설명하면
선형대수는 짧게 말하면 벡터와 행렬을 다루는 수학입니다.
- 벡터는 관련이 있는 숫자들을 묶어 놓은 것이고
- 행렬은 벡터 여러 개를 묶어서 사각형 깍두기로 만들어 놓은 것입니다.
이렇게 모양을 만들어 놓는 것은 안 중요한데 이렇게 서로 뭔가 관련이 있는 숫자들을 묶어서 뭉치로 만들고 이것들을 서로 곱하고 나누고 빼고 줄이고 바꾸고 이것저것 하면 숫자와 숫자의 관계나 숫자 압축, 숫자 분해이 가능하고 문제를 풀 수 있는 경우가 많아집니다.
즉 선형대수학과 미적분을 사용하면 현실에서 정답을 찾는 것이 아니라 쓸만한 결과를 거의 항상 얻어낼 수 있습니다.
선형대수의 큰 매력은 대부분의 경우에 문제를 해결할 수 있다는 것입니다. 정답이 있다는 것이 아니라 “문제를 해결”한다는 것을 이해해야 합니다.
선형대수는 수학적으로 답이 없는 문제가 있을지라도 현실적으로는 억지로라도 답을 찾거나 가장 그럴듯한 것을 찾아낼 수 있습니다.
답이 없다고 포기할 것이 아니라 가장 그럴듯하고 가장 쓸만한 것을 찾아낸다면 그것이 답인 것인데 선형대수는 그런 것을 하는데 가장 도움이 되는 수학입니다.
왜 이름이 선형대수인가?
선형은 “선의 형태”라는 뜻인데 벡터와 행렬을 다룬다고 하면서 여기에 갑자기 “선”은 왜 나오는가?
선형대수가 있으면 원형대수나 곡형대수 같은 것도 있는가? 이런 의문도 들텐데요.
쪼금 어렵게 말하면 벡터를 다차원공간상에 매핑하고 이 벡터를 여러 연산으로 바꾸게 되면 이 벡터가 차원안에서 직선으로만 움직이기 때문입니다. 벡터는 공간상의 점이라고 하면 이 벡터는 직선운동만 가능합니다. 회전해서 움직일 수 없고 직선이 아니게 바꾸는 유일한 방법은 내적이라는 계산밖에 없습니다.
쉽게 말하면 벡터를 공간에 있는 점으로 표현해서 그림을 그려놓고 이런저런 계산을 해서 이 벡터를 다시 공간상에 점을 찍어 놓고 보면 직선으로만 움직이더라는 것이 이렇게 직선으로만 움직이게 해서 숫자로 부터 어떤 의미나 관계를 찾아내기 때문에 선형대수라고 합니다.
그래서 삼각형과 원의 관계를 다루는 삼각함수가 선형대수에서는 잘 보이지 않습니다. 물론 수학자들이 하는 고등수학에는 선형대수나 삼각함수나 뭐 이것저것 섞여서 빈번하게 나오지만 그건 그 사람들 알아서 할 일이구요.
데이터과학을 위해서선형대수를 꼭 배워하는 이유?
선형대수학을 모르고 데이터과학, 통계분석, 데이터마이닝, 기계학습, 인공지능을 한다면 어떤 알고리즘이나 방법(프레임워크나 스킴)의 원리를 이해하지 못하게 됩니다.
이해하지 못하면 다룰 수 없고 알고리즘같은 것이 압도당하고 지배당하게 됩니다.
샘플 코드 복붙해서 실행하는 것인 모델 빌드나 데이터 과학의 전부가 아닙니다.
간단한 예로 선형회귀(Linear Regression)에 대해서 얘기해보면
선형회귀는 처음보면 단순하고 쉬워 보이지만 기저를 다 이해하기 상당히 까다롭고 어렵습니다. 기본을 이해하지 못하면 결국 제대로 다루지 못하고 그 보다 더 복잡하고 난해한 알고리즘은 사용하지 못합니다.
선형회귀를 이해하기 위해서는 OLS를 알아야하고 그러려면 행렬연산이나 이것저것 선형대수와 미적분을 알아야합니다. 제대로 이해하지 못한채 경험적으로 암기한 내용으로만 선형회귀를 하고 나서는 엉뚱한 선형회귀 모델을 만들어 놓고 “이게 왜이러지?”하고 고민하는 경우를 많이 봤습니다.
숫자묶음에서 특징을 추출하는 특이값분해 같은 기법도 선형대수를 배우지 않으면 1도 이해하지 못합니다.
인공지능에서 숱하게 사용하는 경사하강(Gradient Desecnt)과 역전파(Back propagation)같은 것은 선형대수와 미적분의 컬래버입니다.
어떻게 배우면 될까? 문과도 가능할까?
선형대수는 대수학 중에서 매우 쉬운 수학 중에 하나입니다.
대수학들 (미적분, 선형대수학, 위상수학 등…)중에서 쉽다는 말이지 쉽다는 것이 절대 아닙니다.
문과든 이과든 이 선형대수학은 쉬운것 같지만 그렇게 쉽지 않습니다.
그렇다고 수포자가 못할 정도의 것은 아닙니다. 이것도 역시 사람이 만든 것이기 때문입니다.
선형대수학 공부를 쉽게 접근하려면
온라인 강의를 많이 들으면 좋습니다. 요즘 유튜브에 강의가 참 많이 있습니다. 하지만 시간이 많이 든다는 것을 알아야 하고 이해가 될 때까지 반복해서 듣거나 이해가 안되면 다른 강의를 찾는 것이 좋습니다.
가장 유명한 강의이고 추천할 강의는 길버트 스트랭 MIT 교수님의 선형대수학 강의이고 자막이 있습니다.
온라인 강의가 싫으면 결국 대학교재 중에 좋은 것을 하나 읽어야 하는데 “공업수학”교재를 찾으면 됩니다. 크레이그 공업수학 책이 가장 잘 알려진 편이지만 기초가 없으면 독학하기에 조금 어렵지만 못할 것도 아닙니다.
이런 책은 이해가 안되더라도 처음부터 끝까지 다 읽어야 좋은데 고등학교 이과 수준의 수학을 다 알고 대학에서 배우는 고등수학도 일부 알아야 한다는 점입니다.
늦지 않았을까?
늦었다고 시작했을 때는 늦은 겁니다.
하지만 더 늦으면 계속 늦어지기만 할 뿐입니다.
조금씩 하다보면 언젠가는 선형대수가 만만해지는 시기가 옵니다.
물론 이럴때가 또 위험하 시기이긴 하지만 말이죠.
중요한 것은 “지금부터 해도 나는 안될꺼야” 라는생각과 “책 한 권만 떼면 금방 마스터 할 수있을꺼야” 라는 생각을 버리는 것입니다.