품목정보
발행일 | 2023년 09월 25일 |
---|---|
쪽수, 무게, 크기 | 356쪽 | 183*235*30mm |
ISBN13 | 9791169211451 |
ISBN10 | 1169211453 |
발행일 | 2023년 09월 25일 |
---|---|
쪽수, 무게, 크기 | 356쪽 | 183*235*30mm |
ISBN13 | 9791169211451 |
ISBN10 | 1169211453 |
Chapter 1 벡터, 파트 1: 벡터와 벡터의 기본 연산 1.1 NumPy로 벡터 생성 및 시각화하기 _1.1.1 벡터의 기하학적 해석 1.2 벡터 연산 _1.2.1 두 벡터의 덧셈 _1.2.2 벡터의 덧셈과 뺄셈의 기하학적 해석 _1.2.3 스칼라-벡터 곱셈 _1.2.4 스칼라-벡터 덧셈 _1.2.5 전치 _1.2.6 파이썬에서 벡터 브로드캐스팅 1.3 벡터 크기와 단위벡터 1.4 벡터-내적 _1.4.1 내적의 분배 법칙 _1.4.2 내적의 기하학적 해석 1.5 그 외 벡터 곱셈 _1.5.1 아다마르곱 _1.5.2 외적 _1.5.3 교차곱과 삼중곱 1.6 직교벡터 분해 1.7 마치며 연습 문제 Chapter 2 벡터, 파트 2: 벡터의 확장 개념 2.1 벡터 집합 2.2 선형 가중 결합 2.3 선형 독립성 _2.3.1 수학에서의 선형 독립성 _2.3.2 독립성과 영벡터 2.4 부분공간과 생성 2.5 기저 _2.5.1 기저 정의 2.6 마치며 연습 문제 Chapter 3 벡터 응용: 데이터 분석에서의 벡터 3.1 상관관계와 코사인 유사도 3.2 시계열 필터링과 특징 탐지 3.3 k-평균 클러스터링 연습 문제 Chapter 4 행렬, 파트 1: 행렬과 행렬의 기본 연산 4.1 NumPy에서 행렬 생성과 시각화 _4.1.1 행렬 시각화와 인덱싱, 슬라이싱 _4.1.2 특수 행렬 4.2 행렬 수학: 덧셈, 스칼라 곱셈, 아다마르곱 _4.2.1 덧셈과 뺄셈 _4.2.2 행렬 ‘이동’ _4.2.3 스칼라 곱셈과 아다마르곱 4.3 표준 행렬 곱셈 _4.3.1 행렬 곱셈 유효성에 관한 규칙 _4.3.2 행렬 곱셈 _4.3.3 행렬-벡터 곱셈 4.4 행렬 연산: 전치 _4.4.1 내적과 외적 표기법 4.5 행렬 연산: LIVE EVIL(연산 순서) 4.6 대칭 행렬 _4.6.1 비대칭 행렬로부터 대칭 행렬 생성하기 4.7 마치며 연습 문제 Chapter 5 행렬, 파트2: 행렬의 확장 개념 5.1 행렬 노름 _5.1.1 행렬의 대각합과 프로베니우스 노름 5.2 행렬 공간(열, 행, 영) _5.2.1 열공간 _5.2.2 행공간 _5.2.3 영공간 5.3 계수 _5.3.1 특수 행렬의 계수 _5.3.2 덧셈 및 곱셈 행렬의 계수 _5.3.3 이동된 행렬의 계수 _5.3.4 이론과 실제 5.4 계수 응용 _5.4.1 벡터가 열공간에 존재하나요? _5.4.2 벡터 집합의 선형 독립성 5.5 행렬식 _5.5.1 행렬식 계산 _5.5.2 선형 종속성과 행렬식 _5.5.3 특성 다항식 5.6 마치며 연습 문제 Chapter 6 행렬 응용: 데이터 분석에서의 행렬 6.1 다변량 데이터 공분산 행렬 6.2 행렬-벡터 곱셈을 통한 기하학적 변환 6.3 이미지 특징 탐지 6.4 마치며 연습 문제 Chapter 7 역행렬: 행렬 방정식의 만능 키 7.1 역행렬 7.2 역행렬의 유형과 가역성의 조건 7.3 역행렬 계산 _7.3.1 2×2 행렬의 역행렬 _7.3.2 대각 행렬의 역행렬 _7.3.3 임의의 정방 최대계수 행렬의 역행렬 _7.3.4 단방향 역행렬 7.4 역행렬의 유일성 7.5 무어-펜로즈 의사역행렬 7.6 역행렬의 수치적 안정성 7.7 역행렬의 기하학적 해석 7.8 마치며 연습 문제 Chapter 8 직교 행렬과 QR 분해: 선형대수학의 핵심 분해법 1 8.1 직교 행렬 8.2 그람-슈미트 과정 8.3 QR 분해 _8.3.1 Q와 R의 크기 _8.3.2 QR 분해와 역 8.4 마치며 연습 문제 Chapter 9 행 축소와 LU 분해: 선형대수학의 핵심 분해법 2 9.1 연립방정식 _9.1.1 연립방정식을 행렬로 변환하기 _9.1.2 행렬 방정식 다루기 9.2 행 축소 _9.2.1 가우스 소거법 _9.2.2 가우스-조던 소거법 _9.2.3 가우스-조던 소거법을 통한 역행렬 계산 9.3 LU 분해 _9.3.1 치환 행렬을 통한 행 교환 9.4 마치며 연습 문제 Chapter 10 일반 선형 모델 및 최소제곱법: 우주를 이해하기 위한 방법 10.1 일반 선형 모델 _10.1.1 용어 _10.1.2 일반 선형 모델 구축 10.2 GLM 풀이 _10.2.1 해법이 정확할까요? _10.2.2 최소제곱법의 기하학적 관점 _10.2.3 최소제곱법은 어떻게 작동할까요? 10.3 GLM의 간단한 예 10.4 QR 분해를 통한 최소제곱법 10.5 마치며 연습 문제 Chapter 11 최소제곱법 응용: 실제 데이터를 활용한 최소제곱법 11.1 날씨에 따른 자전거 대여량 예측 _11.1.1 statsmodels을 사용한 회귀 분석 표 _11.1.2 다중공선성 _11.1.3 정규화 11.2 다항식 회귀 11.3 그리드 서치로 모델 매개변수 찾기 11.4 마치며 연습 문제 Chapter 12 고윳값 분해: 선형대수학의 진주 12.1 고윳값과 고유벡터의 해석 _12.1.1 고윳값과 고유벡터의 기하학적 해석 _12.1.2 통계(주성분 분석) _12.1.3 잡음 감쇠 _12.1.4 차원 축소(데이터 압축) 12.2 고윳값 구하기 12.3 고유벡터 찾기 _12.3.1 고유벡터의 부호와 크기 불확정성 12.4 정방 행렬의 대각화 12.5 대칭 행렬의 특별함 _12.5.1 직교 고유벡터 _12.5.2 실수 고윳값 12.6 특이 행렬의 고윳값 분해 12.7 이차식, 정부호성 및 고윳값 _12.7.1 행렬의 이차식 _12.7.2 정부호성 _12.7.3 ATA 는 양의 (준)정부호 12.8 일반화된 고윳값 분해 12.9 마치며 연습 문제 Chapter 13 특잇값 분해: 고윳값 분해의 다음 단계 13.1 SVD 개요 _13.1.1 특잇값과 행렬의 계수 13.2 파이썬에서 SVD 13.3 행렬의 SVD와 계수-1 ‘계층’ 13.4 EIG로부터 SVD _13.4.1 ATA 의 SVD _13.4.2 특잇값의 분산 변환과 설명 _13.4.3 행렬의 조건수 13.5 SVD와 MP 의사역행렬 13.6 마치며 연습 문제 Chapter 14 고윳값 분해와 SVD 응용: 선형대수학의 선물 14.1 고윳값 분해와 SVD를 사용한 주성분 분석(PCA) _14.1.1 PCA의 수학 _14.1.2 PCA 수행 단계 _14.1.3 SVD를 통한 PCA 14.2 선형판별분석 14.3 SVD를 통한 낮은 계수 근사 _14.3.1 SVD를 이용한 잡음 제거 14.4 마치며 연습 문제 APPENDIX A 파이썬 튜토리얼 A.1 왜 파이썬을 사용하나요? A.2 IDE(통합 개발 환경) A.3 로컬 및 온라인에서 파이썬 사용하기 A.4 변수 A.5 함수 A.6 시각화 A.7 수식을 코드로 변환하기 A.8 출력 서식과 f-문자열 A.9 제어 흐름 A.10 실행 시간 측정 A.11 추가 학습 A.12 마치며 |
초6 아들이 2년 전부터 코딩을 독학하고 있습니다. 최근에는 취미로 게임 개발을 공부하는데 수학적인 부분이 있어 어떻게 사용하는지 궁금해하길래 이 책이 궁금증을 해소해줄까 싶어서 구매하였습니다. 내용 자체가 이해할까싶어 읽어보고 어려우면 하지 말라고 했는데 다행히 첫 시작은 잘 이해하고 저에게 설명도 해주고 파이썬으로 실행도 해보네요. 다른 전문 서적 중 어려워서 포기한 책도 있었는데 이 책은 끝까지 볼 수 있을 것 같아요. 아이가 이해하는 것으로봐서는 설명이 쉽게 잘 되어 있다고 생각되어지네요.
개발자를 위한 실전 선형대수학
지은이 : 마이크 X 코헨
옮긴이 : 장정호
출판사 : 한빛미디어
대학교 1학년 때 선형대수학 과목을 참 재미있게 공부했었습니다. 당시에는 행렬들이 연산을 통해 이론적으로 증명되는 과정들이 정말 즐겁다는 생각이 들었었는데, 1학년이었던 2008년으로부터 어느덧 15년이란 시간이 흘러버렸습니다. 선형대수학 지식들은 가물가물하지만, 어쩌다보니 관련된 직종에 종사하게되어서, 선형대수학 이론적 지식이 필요할 때가 생각보다 꽤나 많이 있었습니다. 잊어버렸던 그 때의 기억을 되살려야 했지만, 다시 공부할 열정까지는 없어서였는지 소홀해지기 일쑤였네요.
이번에 "개발자를 위한 실전 선형대수학" 책을 통해서 실무적으로 필요한 선형대수학 지식을 정말 알차게 공부할 수 있었던 계기가 된 것 같습니다. 파이썬 코드 베이스로 진행되는 책이면서도, 필요한 선형대수학 이론적 개념들에 대해 필수적인 부분만 쏙쏙 알려주는 책이다보니 "밸런스"가 좋다는 생각을 할 수 밖에 없었습니다. 두꺼운 전공서적을 통해서는 긴 시간에 걸려 차곡 차곡 쌓아나가겠지만, 요즘 같은 시대엔 모두가 신속하게 원하는 지식을 얻고 싶어 하잖아요? 그런 니즈에 충실한 책입니다.
추천독자
책을 읽으면서, 이 책을 읽으면 아주 유용할 것으로 예상되는 독자는 다음과 같았습니다.
데이터과학 분야/머신러닝 혹은 AI분야/응용통계학 분야에 종사하는데, 선형대수학에 대한 이론이 필요하신 분
선형대수학의 깊이있는 증명 보다는, 응용분야를 이해하기위한 개념을 빠르게 습득하고 싶으신 분
선형대수학을 공부하던 중, python으로 선형대수학이 어떻게 응용되는지를 체험해보고 싶으신 분
저는 1번의 케이스로, 선형대수학에 대한 공부가 필요하긴 했으나, 아주 오랜 시간을 투자할 수는 없는 직장인입니다. 하루에 1-2시간의 공부로 1달정도 공부했을 때 충분히 훑어볼 수 있는 정도의 가벼운 느낌의 서적을 원했는데, 그정도의 느낌으로 딱 적합했다고 생각합니다.
목차
Chapter 1. 벡터, 파트1 : 벡터와 벡터의 기본 연산
Chapter 2. 벡터, 파트2 : 벡터의 확장 개념
Chapter 3. 벡터 응용 : 데이터 분석에서의 벡터
Chapter 4. 행렬, 파트1 : 행렬과 행렬의 기본 연산
Chapter 5. 행렬, 파트2 : 행렬의 확장 개념
Chapter 6. 행렬 응용 : 데이터 분석에서의 행렬
Chapter 7. 역행렬 : 행렬 방정식의 만능 키
Chapter 8. 직교 행렬과 QR 분해 : 선형대수학의 핵심 분해법 1
Chapter 9. 행 축소와 LU 분해 : 선형대수학의 핵심 분해법 2
Chapter 10. 일반 선형 모델 및 최소제곱법 : 우주를 이해하기 위한 방법
Chapter 11. 최소제곱법 응용 : 실제 데이터를 활용한 최소제곱법
Chapter 12. 고윳값 분해 : 선형대수학의 진주
Chapter 13. 특잇값 분해 : 고윳값 분해의 다음 단계
Chapter 14. 고윳값 분해와 SVD 응용 : 선형대수학의 선물
부록 A : 파이썬 튜토리얼
최근 그래프 머신러닝에 관심이 생겨서, 논문을 팔로업하다보니 각종 수학 기호들과 거의 씨름을 하다시피 했던 것 같습니다. 이 책에서는 가장 먼저, 논문들에서 수도없이 많이 보았던 아래 수식이 무엇을 의미하는가 부터 시작합니다. 어렴풋하게 알고있다고 생각했는데, 정확하게 확인하니 간지러운 곳을 시원하게 긁어주는 느낌이었달까요...
x ∈ Rn
n은 차원을 의미하며, R은 Real number의 약자 실수입니다. 벡터의 차원을 나타낸다고 간단히 이해할 수 있겠네요.
이 처럼 이 책의 1장에서부터는, 아주 기초적인 내용을 파이썬으로 어떻게 표기하는지, 수식적 기호로 어떻게 표현하는지에 대해 친절하고 '딱 필요한 만큼' 알려주고 있습니다. 표현 뿐만 아니라 벡터의 연산에 대해서도 다룹니다. 3 by 1 열벡터와 1 by 3 행벡터에 대한 덧셈 연산을 수행하면 어떻게될까? 궁금하시면 바로 책을 통해 확인하실 수 있습니다.
AI에서 정말 많이도 사용되는 전치(transpose)에 대해서도 1장에서 간략히 다뤄주어요. 데이터 행렬에 자신의 전치행렬을 곱해서 어쩌구저쩌구 하는 것들, 관련 분야 공부해보신 분들이라면 정말 많이 보셨을 겁니다. 1장에서 전치에 대한 개념을 간략히 살펴봐주고, 뒷 장에서는 이 부분에 대해 조금 더 딥하게 설명이 들어갑니다. 이처럼, "왜 이게 되는거야??? 정말 답답하네!" 하면서 진도가 안나갔던 부분들을 명쾌하게 설명해준다는 것이 이 책의 매력인 것 같습니다.
우리가 역행렬에 대한 개념을 알고있어야 하는 이유. 데이터 과학을 공부하다보면 분류를 위한 회귀방정식 혹은 군집화를 수행하게 됩니다. 회귀방정식은 말그대로 어떤 벡터 인풋이 주어질 때 계수(행렬)들을 추정해서, 그 방정식을 기준으로 인풋벡터를 분류하는것이라 할 수 있겠지요. 벡터가 인풋이 된다면 우리는 행렬방정식을 풀어야만 합니다. 방정식을 풀 때 필요한 것은? a * (1/a) = 1이 되는 것과 마찬가지로, A * (A^-1) = 단위행렬 I 와 같이, 행렬에서 1을 의미하는 단위행렬을 만들 수 있는 인풋값의 역이라고 생각할 수 있습니다.
이 부분에 대해서 몇 줄 써져 있지 않은데도 참 이해가 잘 되었습니다. 저자분의 논리전개가 굉장히 자연스러워서, 논리점프가 그다지 없고 이해하기가 쉽게 집필되어있다는 것을 새삼 감탄했던 부분이라 서평에 적게 되었네요. 역행렬에서 비가역행렬에 대한 개념을 정리해주는 과정이 굉장히 부드럽고 이해하기가 편안했어요.
총평
현재 공부하면서 조금 궁금하다고 느꼈던 파트, 이해가 필요했던 파트를 중점적으로 공부해보았습니다. 연습문제 부분에는 실제 증명을 시켜주시는 부분도있고, 그 증명을 파이썬을 통해 해보라는 재미난 과제도 존재합니다. 연습문제까지 하나하나 직접 고민하며 풀어보기에는 시간이 부족해서, 아무래도 1회독을 더 진행할 예정이네요. :D
이 책의 정말 특장점이라고 할 수 있는 부분은 "이해하기 쉽고 자연스러운 번역"에 있는 것 같습니다. 보통 이론적 개념이 들어가는 책의 경우, 한국어가 아닌 다른언어로 작성된 책을 번역하여, 다소 이해하기 어려운 낯선 단어들과 비문들 때문에 공부하기가 쉽지 않은 경우가 많은데, 이 책의 경우는 한국인 분이 직접 저술하셨다고 해도 믿을만큼 자연스러운 번역이라, 왠지 역자님의 커리어를 한 번 더 들여다보게 되었습니다. (당연히! 원서의 내용이 알차고 충실했다는 것도 한 몫했겠다고 생각합니다. 빛나는 책의 빛나는 번역에 정말 감사드립니다.)
두 번째 장점이라면, 이해를 위한 수식과 도식을 충분히 활용하면서도, 너무 깊이있게 들어가지 않는 밸런스. 밸런스적인 측면이었습니다. 개념을 적당히 설명하면서도 파이썬 코드로 이해하기 쉽게, 또한 응용분야에서 어떻게 활용되는지까지 짧은 페이지에 명시적으로 전달하는것은 보통 능력이 아니라고 생각하기 때문이에요. 직장에서 많이 해보셔서 아시겠지만, ppt 100장 만들고 1시간 세미나하긴 쉽지만, 같은 내용을 ppt 10장에 10분 요약하는 것은 정말 쉽지 않은 능력이지요. 그냥 모든것 Cut해버리는 것이 아니라, 요약을 하는 것이니까요.
세 번째 장점, 여럿이 그룹 스터디를 하기에 정말 적절한 책이라는 점입니다. 저는 혼자서 일단 회독을 시작하게 되었지만, 만약 기회가 된다면 이 책의 지식이 필요한 3-4명의 스터디원을 구해서 다시 한번 회독을 진행해도 좋을 것 같단 생각이 들어요. 혼자서 하기 보다 연습문제를 나눠서 풀어보는 시간을 갖는다면, 시간을 절약하며 선형대수학에 대해 공부를 훨씬 쉽게 할 수 있을 것이란 생각이 들었기 때문입니다. 생각보다 연습문제가 진짜 알차게 구성되어 있습니다.
머신러닝, AI 종사자분들 중 선형대수학의 기초가 다소 약하신분들에게 정말 강력 추천해드리고 싶습니다. 만약 스터디를 진행하면, 책의 챕터 이론부분들을 요약정리하면서 블로그나 노션에 작성해야겠다는 계획을 세우게 되었습니다. 혹시라도 동참하시고 싶으신분이 있다면 연락주시기 바랍니다.
본 서평은 출판사로부터 책을 제공받아 주관적으로 작성한 글입니다.
선형대수(linear algebra)는 데이터분석 혹은 기계학습을 학습하는데 있어 기초를 탄탄하게 할 수 있는 기초 중 하나입니다. 실제로 어떻게 쓰이는지 예시를 본다면 다음과 같습니다.
첫째로 딥러닝을 통한 임베딩 스페이스를 발견하기 전에는 단어와 문서 사이에 보이지 않는 관계를 가정하여 pLSA (probabilistic Latent Semantic Analysis) 라는 방법을 사용했습니다. 좀 더 쉽게 설명하자면 각 문서가 어떤 토픽으로 구성되었나 하는 것들을 분석하기 위해서 이러한 작업을 했다고 생각하시면 됩니다. 이 책에서는 pLSA의 기반이 되는 특이값 분해 (Singular Value Decomposition)을 설명하고 있습니다.
둘째로 바로 앞에 언급한 임베딩 스페이스에서는 서로간의 유사성을 측정하기 위해 코사인 유사도를 사용하는데 이 책에서 설명하고 있는 벡터-내적 연산을 활용합니다.
이 외에도 선형대수의 기초적인 개념은 다양한 곳에서 쓰이고 있습니다. 이 책은 선형대수에서 중요한 핵심 개념들을 설명하고 있는데 어떤 분야를 공부하기 위해 선형대수를 보게 되었는지 생각하시면서 이 책을 보신다면 더욱 도움이 될 것이라 생각합니다. 물론 선형대수 자체에 흥미를 느껴 이를 탐구하고자 할 때에도 좋은 책이라 생각합니다. 파이썬의 numpy 라이브러리와 함께 잘 설명하고 있기에 추후 데이터 분석 혹은 기계학습 모델링을 할 때 기초가 부족하여 막히는 경우는 없을만큼 내용이 잘 정리된 책이라 생각합니다.
좀 더 자세한 리뷰는 아래의 링크 참조 부탁드립니다.
- https://altari.io/2023/10/30/Practical_Linear_Algebra_for_Data_Science.html