머신러닝을 위한 선형 대수학

머신러닝을 시작하기 전에 선형 대수학을 배울 필요는 없지만 언젠가는 더 깊이 파고들고 싶을 수 있습니다.

사실, 수학의 한 영역에서 다른 영역보다 먼저 개선해야 할 것을 제안한다면, 그것은 선형 대수학일 것입니다. 선형 대수학은 머신러닝 알고리즘에 대한 더 나은 직관을 이해하고 구축하는 데 필요한 도구를 제공합니다.

이 게시물에서는 선형 대수학에 대해 자세히 살펴보고 머신러닝에서 더 많은 것을 얻으려면 선형 대수학에 대한 기술과 지식을 향상시켜야 하는 이유를 살펴봅니다.

Eigen Vectors 및 SVD에 대한 방법을 이미 알고 있다면 이 게시물은 아마도 당신을 위한 것이 아닐 것입니다.



선형 대수학이란?

선형 대수학은 더 높은 차원에서 평면의 좌표와 상호 작용을 간결하게 설명하고 이에 대한 연산을 수행할 수 있는 수학의 한 분야입니다.

이것은 임의의 차원으로 대수학(미지수를 다루는)을 확장하는 것이라고 생각하면 됩니다. 선형 대수학은 선형 방정식 시스템 작업에 관한 것입니다 (선형 회귀가 그 예입니다 : y = Ax). 스칼라로 작업하는 대신 행렬과 벡터로 작업하기 시작합니다 (벡터는 실제로 특별한 유형의 행렬입니다).

대체로 선형 대수학에서 데이터는 선형 방정식의 형태로 표현됩니다. 이러한 선형 방정식은 차례로 행렬과 벡터의 형태로 표현됩니다.

— Vignesh Natarajan, “머신러닝에서 선형 대수학은 어떻게 사용됩니까?“라는 질문에 대한 답변

필드로서 선형 대수학의 표기법과 형식을 사용하여 머신러닝에 사용되는 복잡한 연산을 설명(올바른 라이브러리로 실행할 수도 있음)할 수 있기 때문에 유용합니다.

선형 대수학은 일반적으로 매우 잘 병렬화되기 때문에 널리 적용됩니다. 또한 대부분의 선형 대수 연산은 메시징 전달없이 구현할 수 있으므로 MapReduce 구현이 가능합니다.

— Raphael Cendrillon, “왜 선형 대수학이 현대 과학/계산 연구의 전제 조건입니까?“라는 질문에 대한 답변

위키피디아의 선형 대수학에 대한 추가 정보:



머신러닝을 위한 최소 선형 대수

선형 대수학은 기초 분야입니다. 이것은 표기법과 형식이 머신러닝과 관련된 개념을 표현하기 위해 수학의 다른 분야에서 사용된다는 것을 의미합니다.

예를 들어, 행렬과 벡터는 미적분학에서 사용되며, 손실 함수를 최적화 할 때 함수 도함수에 대해 이야기하고 싶을 때 필요합니다. 통계적 추론에 대해 이야기하고 싶을 때 확률에도 사용됩니다.

… 수학의 모든 곳에서 사용되므로 수학이 사용되는 모든 곳에서 사용되는 것을 찾을 수 있습니다.

— David Joyce, “선형 대수학의 요점은 무엇입니까?“라는 질문에 대한 답변

머신러닝 능력을 향상시키기 위해 최소한의 선형 대수학을 배우도록 설득한다면 다음 3 가지 주제가 될 것입니다.

  • 표기법 : 표기법을 알면 논문, 서적 및 웹 사이트에서 알고리즘 설명을 읽고 무슨 일이 일어나고 있는지 알 수 있습니다. 행렬 연산이 아닌 for 루프를 사용하더라도 적어도 함께 다룰 수 있습니다.
  • 작업: 벡터와 행렬에서 추상화의 다음 수준에서 작업하면 상황을 더 명확하게 만들 수 있습니다. 이것은 설명, 코드 및 사고에도 적용될 수 있습니다. 행렬과 벡터를 더하기, 곱하기, 반전, 전치 등과 같은 간단한 연산을 수행하거나 적용하는 방법을 배웁니다.
  • 매트릭스 인수 분해 : 다른 영역보다 더 깊은 영역이 하나 있다면 매트릭스 인수 분해, 특히 SVD 및 QR과 같은 매트릭스 증착 방법이 될 것입니다. 컴퓨터의 수치 정밀도는 제한되어 있으며 분해된 행렬로 작업하면 발생할 수있는 많은 오버플로 / 언더플로 문제를 피할 수 있습니다. 또한 라이브러리를 사용하여 빠른 LU, SVD 또는 QR 분해는 회귀 문제에 대한 최소 제곱을 제공합니다. 머신러닝 및 통계의 기반입니다.


모든 이론에 들어가려면 선형 대수학을 알아야합니다. 백서를 읽고 최첨단 알고리즘과 시스템을 고려하려면 많은 수학을 알아야합니다.

— Jesse Reiss, “컴퓨터 과학에서 선형 대수학은 얼마나 중요합니까?“라는 질문에 대한 답변


선형 대수학을 개선해야 하는 5가지 이유

물론, 저는 당신이 최소한으로 멈추기를 원하지 않습니다. 저는 당신이 더 깊이 들어가기를 바랍니다.

더 많이 알고 더 나아져야 할 필요성이 길을 따라 동기를 부여하지 않는다면, 여기에 그 추진력을 줄 수있는 다섯 가지 이유가 있습니다.

  1. 빌딩 블록: 다시 말씀드리겠습니다. 선형 대수학은 머신러닝에 필요한 미적분과 통계를 이해하는 데 절대적으로 중요합니다. 더 나은 선형 대수학은 전반적으로 게임을 향상시킬 것입니다.
  2. 더 깊은 직관: 벡터와 행렬 수준에서 머신러닝 방법을 이해할 수 있다면 작동 방식과 시기에 대한 직관력이 향상됩니다.
  3. 알고리즘에서 더 많은 정보 얻기: 알고리즘과 해당 제약 조건을 더 깊이 이해하면 응용 프로그램을 사용자 정의하고 튜닝 매개변수가 결과에 미치는 영향을 더 잘 이해할 수 있습니다.
  4. 처음부터 알고리즘 구현: 머신러닝 알고리즘을 처음부터 구현하려면 선형 대수에 대한 이해가 필요합니다. 최소한 알고리즘 설명을 읽고 벡터 및 행렬 연산을 제공하는 라이브러리를 효과적으로 사용하는 것이 좋습니다.
  5. 새로운 알고리즘 고안 : 선형 대수학의 표기법과 도구는 Octave 및 MATLAB과 같은 환경에서 직접 사용할 수 있으므로 기존 알고리즘에 대한 수정 사항과 완전히 새로운 접근 방식을 매우 빠르게 프로토타입화 할 수 있습니다.

선형 대수학은 좋든 싫든 머신러닝 여정에서 크게 등장합니다.


선형 대수학 학습을 위한 3가지 비디오 과정

선형 대수학을 강화하려는 경우 시작할 수 있는 세 가지 옵션이 있습니다.

이 게시물을 준비하기 위해 최근에 찾아서 통과한 비디오 과정과 강의입니다. 저는 각각이 품위 있고 다른 청중에게 적합하다는 것을 알았습니다.

저는 모든 비디오를 두 배로 시청하고 이러한 모든 소스와 함께 도전적으로 추천합니다. 또한 메모하십시오.

1. 선형 대수학 리프레셔

이것은 당신이 익숙해져야 할 선형 대수학의 주제에 대한 지름길입니다. 

 

이 비디오의 제목은 머신러닝을 위한 선형 대수학”이며 Patrick van der Smagt가 University Collage London의 슬라이드를 사용하여 만들었습니다.


2. 선형 대수학 집중 코스

두 번째 옵션은 Coursera 머신러닝 과정의 1주차에 선택 모듈로 제공되는 선형 대수학 집중 과정입니다.

이것은 선형 대수학에 익숙하지 않거나 전혀 익숙하지 않고 주제에 대한 첫 번째 부트 스트랩을 찾고있는 엔지니어 또는 프로그래머에게 적합합니다.

여기에는 6개의 짧은 동영상이 포함되어 있으며 여기에서 머신러닝 – 03″ 선형 대수학 검토”라는 제목의 YouTube 재생 목록에 액세스할 수 있습니다.”.

 

다루는 주제는 다음과 같습니다.

  1. 행렬과 벡터
  2. 덧셈과 스칼라 곱셈
  3. 행렬 벡터 곱셈
  4. 행렬 행렬 곱셈
  5. 행렬 곱셈 속성
  6. 반전 및 전치

3. 선형 대수학 코스

세 번째 옵션은 선형 대수학에 대한 완전한 입문 과정을 수강하는 것입니다.

칸 아카데미의 선형 대수학 스트림을 추천합니다.

이 강좌는 전체적으로 현장 확인 질문을 제공할 뿐만 아니라 제가 수강 한 어떤 대학 과정보다 훨씬 낫습니다.

Sal의 과정은 3 가지 주요 모듈로 나뉩니다.

  • 벡터 공간
  • 행렬 변환
  • 대체 좌표계(밑)

각 모듈에는 5-7 개의 하위 모듈이 포함되어 있으며 각 하위 모듈에는 2-7 분 범위의 5-25 개의 비디오 또는 질문 세트가 포함되어 있습니다 (두 배로 더 빠릅니다!).


선형 대수학을 배우기 위한 추가 리소스

보다 일반적인 조언을 찾고 있다면 “선형 대수학을 어떻게 스스로 공부할 수 있습니까?“라는 질문에 대한 답변을 확인하십시오. 여기에 진짜 보석이 있습니다.

프로그래밍 선형 대수

프로그래머 또는 엔지니어는 실습을 통해 가장 잘 배울 수 있습니다.

따라서 프로그래밍 환경이나 라이브러리를 가져 와서 테스트 데이터로 행렬 곱셈, SVD 및 QR 분해를 코딩 할 수 있습니다.

다음은 고려할 수 있는 몇 가지 옵션입니다.

  • 옥타브 : 옥타브는 MATLAB의 오픈 소스 버전이며 대부분의 작업에서 동일합니다. 이 플랫폼은 선형 대수학을 위해 제작되었습니다.
  • R: 이것은 할 수 있지만 옥타브보다는 덜 아름답습니다. 이 편리한 보고서를 확인하십시오 : “R을 사용한 선형 대수학 소개“(PDF)
  • SciPy numpy.linalg: 깔끔한 구문과 필요한 모든 작업에 액세스할 수 있는 Python 프로그래머라면 쉽고 재미있습니다.
  • BLAS : 곱셈, 역수 등과 같은 기본 선형 대수 하위 프로그램. 대부분의 프로그래밍 언어로 이식되거나 사용할 수 있습니다.
  • LAPACK: 선형 대수 라이브러리, LINPACK의 후속 버전. 다양한 행렬 인수 분해 등을 위해 갈 곳입니다. BLAS와 마찬가지로 대부분의 프로그래밍 언어로 이식되거나 사용할 수 있습니다.

Philip Klein의 “매트릭스 코딩: 컴퓨터 과학 응용 프로그램을 통한 선형 대수학”이라는 제목의 새로운 Coursera 과정에는 “매트릭스 코딩: 컴퓨터 과학 응용 프로그램을 통한 선형 대수학“이라는 제목의 책도 있습니다. 이것은 당신이 파이썬 프로그래머이고 선형 대수학을 강화하려는 경우 살펴볼 가치가 있습니다.


선형 대수학 책

저는 적용된 예제에서 가장 잘 배우지만 많이 읽습니다. 당신이 나와 같은 사람이라면 만일을 대비하여 좋은 교과서를 원할 것입니다.

이 섹션에는 초보자를 위한 선형 대수학에 대한 최고의 교과서가 나열되어 있습니다.

기초

이것은 선형 대수학의 기초를 다루는 초급 교과서입니다. 어느 쪽이든 칸 아카데미에서 과정을 수강하는 데 좋은 칭찬이 될 것입니다.



적용

이들은 선형 대수학의 적용에 더 기울어 진 책입니다.

저는 후자의 책 “행렬 계산”을 정말 좋아하는데, 그 이유는 이론과 알고리즘 의사 코드의 스니펫을 제공하기 때문입니다.  (도서관을 이용하는 대신) 처음부터 직접 절차를 구현하려는 경우 이 책이 적합할 수 있습니다.

선형 대수학에 대한 더 많은 제안은 다음을 확인하십시오: 선형 대수학 학습에 가장 적합한 책은 무엇입니까?



요약

이 게시물에서는 선형 대수학과 머신러닝 (및 실제로 더 광범위한 수학)에서 수행하는 중요한 역할을 살펴 보았습니다. 

선형 대수학, 재교육, 집중 과정 또는 심층 비디오 과정을 배우는 데 사용할 수 있는 세 가지 옵션을 모두 지금 무료로 사용할 수 있습니다. 우리는 또한 당신이 더 깊이 들어가고 싶을 경우를 대비하여 주제에 대한 최고의 교과서를 살펴 보았습니다.

이것이 선형 대수학에 대한 관심을 불러일으켰기를 바랍니다. 하나의 리소스를 선택하고 끝까지 읽거나 시청하십시오. 다음 단계로 나아가 머신러닝에 대한 이해를 높이세요.

업데이트 :이 게시물의 Reddit 토론에서 언급된 두 가지 추가 고품질 리소스는 Linear Algebra Done Right Axler 책과 Gilbert Strang (위에서 언급 한 일부 책의 저자)이 가르치는 선형 대수학에 대한 MIT 오픈 코스웨어 과정입니다.

네피리티
No Comments

Sorry, the comment form is closed at this time.