이 과정은 다음 질문에 중점을 둡니다: 허용 가능한 속도와 허용 가능한 정확도로 행렬 계산을 어떻게 수행합니까?
이 과정은 2017년 여름 샌프란시스코 대학의 분석 과학 석사 과정에서 진행되었습니다(데이터 과학자가 되기 위해 공부하는 대학원생 대상). 이 과정은 대부분의 수업에 Scikit-Learn 및 Numpy와 같은 라이브러리뿐만 아니라 Numba(더 빠른 성능을 위해 Python을 C로 컴파일하는 라이브러리) 및 PyTorch(GPU용 Numpy의 대안)를 사용하여 Jupyter Notebook을 사용하여 Python으로 진행됩니다. 몇 번의 수업으로.
노트북과 함께 YouTube에서 볼 수 있는 강의 비디오 재생 목록이 제공됩니다. 강의가 헷갈리거나 너무 빨리 진행되는 경우 다음 영상의 시작 부분을 확인하세요. 이전 강의의 개념을 복습하고 종종 새로운 관점이나 다른 일러스트레이션으로 설명하고 질문에 답변합니다.
fast.ai 토론 포럼의 계산 선형 대수학 카테고리를 사용하여 질문을 하거나 생각과 리소스를 공유할 수 있습니다.
다음 목록은 nbviewer 서비스를 통해 렌더링된 이 저장소의 노트북에 대한 링크입니다. 다루는 주제:
수치선형대수학의 몇 가지 기본 개념에 대한 높은 수준의 개요부터 시작합니다.
뉴스그룹 데이터세트를 사용하여 다양한 게시물의 주제를 식별해 보겠습니다. 우리는 문서에서 어휘의 빈도를 나타내는 용어-문서 매트릭스를 사용합니다. NMF를 사용한 다음 SVD를 사용하여 인수분해합니다.
SVD의 또 다른 응용 분야는 사람을 식별하고 감시 영상의 배경을 제거하는 것입니다. 무작위 SVD를 사용하는 강력한 PCA를 다룰 것입니다. 그리고 Randomized SVD는 LU 분해를 사용합니다.
압축 감지는 낮은 방사선으로 CT 스캔을 수행하는 데 중요합니다. 즉, 더 적은 데이터로 이미지를 재구성할 수 있습니다. 여기서는 그 기술을 배우고 이를 CT 영상에 적용해 보겠습니다.
주제 모델링, 배경 제거, 선형 회귀에 SVD를 적용했습니다. SVD는 고유 분해와 밀접하게 연결되어 있으므로 이제 대형 행렬의 고유값을 계산하는 방법을 알아보겠습니다. 우리는 Wikipedia 링크의 대규모 데이터세트인 DBpedia 데이터를 사용할 것입니다. 여기서 주요 고유 벡터는 다양한 Wikipedia 페이지의 상대적 중요성을 제공하기 때문입니다(이것이 Google PageRank 알고리즘의 기본 아이디어입니다). 우리는 고유벡터를 계산하고 복잡성을 증가시키는(그리고 유용성을 증가시키는) 3가지 다른 방법을 살펴볼 것입니다.
본 강좌는 하향식 교수법으로 구성되어 있어 대부분의 수학 강좌 운영 방식과 다릅니다. 일반적으로 상향식 접근 방식에서는 먼저 사용할 모든 개별 구성 요소를 학습한 다음 점차적으로 이를 보다 복잡한 구조로 구축합니다. 이것의 문제는 학생들이 종종 동기를 잃고 "큰 그림"에 대한 감각이 없으며 자신에게 필요한 것이 무엇인지 모른다는 것입니다.
하버드 교수 데이비드 퍼킨스(David Perkins)는 '전체 학습 만들기(Making Learning Whole)'라는 책에서 야구를 비유로 사용했습니다. 우리는 아이들에게 게임을 하기 전에 야구의 모든 규칙을 암기하고 모든 기술적인 세부 사항을 이해하도록 요구하지 않습니다. 오히려 그들은 일반적인 감각으로 게임을 시작하고 시간이 지남에 따라 점차적으로 더 많은 규칙/세부 사항을 배웁니다.
fast.ai 딥러닝 강좌를 수강하셨다면, 저희가 사용한 강좌입니다. 이 블로그 게시물이나 제가 샌프란시스코 머신러닝 모임에서 한 강연에서 저의 교육 철학에 대해 더 자세히 들어보실 수 있습니다.
처음에 모든 것을 이해하지 못하더라도 걱정하지 마세요! 당신은 그렇게해서는 안됩니다. 아직 설명되지 않은 일부 "블랙 박스" 또는 행렬 분해를 사용하기 시작한 다음 나중에 더 낮은 수준의 세부 사항을 파헤쳐 보겠습니다.
시작하려면 사물이 무엇인지가 아니라 무엇을 하는지에 집중하세요.