ABOUT ME

-

Today
-
Yesterday
-
Total
-
  • 데이터 분석하는데 선형대수를 왜 공부해야해? 에 대한 답변
    머신러닝 배우기 2023. 12. 4. 14:56

    저는 대학교 때 수학과에 복수전공할 만큼 수학을 좋아했었는데, 내가 배우는 수학이 데이터 분석에 어떻게 쓰이는거지? 에 대해 연결이 된 적이 없었습니다. 수학이 중요하다고는 하는데, 데이터 분석 / 머신러닝 / 딥러닝에 도대체 어떻게 쓰이는거야... 수학도 모르겠는데 선형대수는 왜 중요하다는 거야... 라는 의문을 가지고 있었습니다. 사실 라이브러리나 오픈소스도 너무 잘되어있기 때문에 내가 굳이 수학적으로 접근하지 않아도 충분히 모든 것을 수행할 수 있을 만큼 정보가 엄청 많고 잘되어 있습니다. 그래서 더욱 깊게 생각해보지도 않았습니다. (참고로 선형대수는 벡터 공간과 선형 변환을 다루는 수학의 한 분야입니다.)

     

    그러다가 좋은 기회로 "머신러닝/딥러닝으로 이어지는 선형대수" 라는 수업을 듣게 되었는데, 그제서야 연결이 되더라구요. 저와 같은 생각을 해보신 분이 있다면 한 번 읽어보시면서 선형대수가 데이터분석할 때 어떻게 적용이되고 사용이 되는구나, 그리고 이것을 이해하면 내가 모델을 이해하거나 메커니즘을 이해하는데 많은 도움이 될 수 있겠구나를 느끼셨으면 좋겠습니다. 물론 솔직히 말하면 이해하기에 더 좋은거지 꼭 수학적으로 증명하고 계산할 필요하는 전혀 없기 때문에 선형대수 책을 사실 필요는 전혀 없습니다!

     

    한 마디로 요약하자면 "모든 것은 데이터로 표현할 수 있고, 데이터는 행렬이고, 행렬을 다루는 것은 선형대수이다." 라고 표현할 수 있습니다.

     

    모든 것은 수치 데이터로 표현할 수 있고, 데이터는 행렬이고, 행렬을 다루는 모든 계산 및 처리 방법은 선형대수를 이용합니다. 

    선형 대수는 데이터 분석 및 머신러닝에 어떻게 쓰일까요? 예시를 들어보겠습니다.

    1. 다차원 데이터 처리: 데이터 분석에서는 종종 다차원 데이터를 다루게 됩니다(이미지, 텍스트, 음성 데이터 등 모두 포함). 이미지로 예를 들면, 이미지는 픽셀로 표현이 되며 픽셀은 숫자로 나타낼 수 있습니다. 심지어 색깔도 숫자로 나타낼 수도 있어서 3차원 행렬로 표현이 가능합니다. 이미지 분석은 이 행렬을 활용해 변환 작업을 합니다. 텍스트, 음성, 영상 데이터도 마찬가지 입니다.
    2. 행렬 연산을 활용하여 연립 방정식의 선형 문제 해결: 선형 문제를 해결하거나 최적화 문제를 풀 때, 학습 데이터를 가중치와 변수들을 행렬과 벡터로 표현하여 최적의 가중치를 찾습니다. 그리고 많은 알고리즘을 증명하는데도 행렬을 사용하기 때문에 행렬 연산이 갖는 특징을 잘 알아야 합니다. 
    3. 고유값과 고유벡터: 고유값과 고유벡터는 행렬의 중요한 성질 중 하나입니다. 주성분 분석(PCA)과 같은 차원 축소 기법이나 특이값 분해(SVD)를 활용하여 특징을 추출할 수 있습니다. 
      1. PCA에서는 공분산 행렬의 고유값과 고유벡터를 구한 후, 고유값이 큰 순서대로 정렬하여 가장 큰 고유값에 대응하는 고유벡터가 첫 번째 주성분, 두 번째로 큰 고유값에 대응하는 고유벡터가 두 번째 주성분이 됩니다. 이렇게 구한 주성분들은 데이터의 분산을 크데 해주는 고유벡터를 기준으로 정렬되어 있습니다(elbow point 찾기) .PCA를 통해 주성분을 찾으면, 데이터를 주성분들로 선형 변환함으로써 차원을 축소하거나 중요한 특성을 추출할 수 있습니다. 주성분 분석은 데이터의 차원을 줄이면서도 데이터의 정보 손실을 최소화하도록 하는데, 이를 위해 고유값과 고유벡터를 이용합니다. 
      2. 특이값 분해(SVD)는 행렬을 세 개의 행렬의 곱으로 분해하는 기법입니다. 특이값 분해를 통해 얻어진 특이값 행렬은 주 대각선 상에 위치한 값들이 특이값이며, 이 값들은 행렬의 중요한 특성을 나타냅니다. 이 중요한 특성들 중에서 상대적으로 작은 특이값들은 무시하고 큰 특이값들에 해당하는 특이벡터들만 사용하여 새로운 행렬로 차원을 축소할 수 있습니다. 이를 통해 데이터의 주요한 특성을 보다 적은 차원으로 효과적으로 표현할 수 있습니다. 또한 행렬을 근사한 것으로 주요 정보를 보존하는 데 사용됩니다.

     

    정리하면, 선형대수는 데이터의 복잡한 구조를 효과적으로 다루기 위해 활용됩니다. 또한 데이터의 숨은 패턴을 발견하고 해석하는 과정에서 도움을 주는 핵심적인 역할을 수행합니다.

    1. 행렬 변환을 통해 데이터를 새로운 형태로 구성할 수 있다. 데이터의 특성에 맞게 변환할 수 있다.

    2. 차원을 축소하여 정보의 손실을 최소화하면서 데이터의 복잡성을 감소시킨다. 과적합도 방지할 수 있다.

    3. 주요 특징을 추출하여(feature selection) 모델의 성능을 향상시킨다.

     

Designed by Tistory.