상세 컨텐츠

본문 제목

알고리즘 구현으로 배우는 선형대수 with 파이썬

새로 나온 책

by 비제이퍼블릭 2021. 12. 24. 08:51

본문

알고리즘 구현으로 배우는 선형대수 with 파이썬

부제 행렬의 기초부터 텐서를 활용한 머신러닝과 딥러닝 적용까지

저자 장철원

 

출간/배본가능일 2021년 12월 24일

정가 34,000 

페이지 592

판형 188*245

 

ISBN 979-11-6592-112-5(93000)

 

책 소개 

행렬의 기초부터 텐서를 활용한 머신러닝과 딥러닝 적용까지
선형대수 알고리즘을 직접 구현하여 내 것으로 만들자!

『선형대수와 통계학으로 배우는 머신러닝 with 파이썬』의 장철원 저자가 선형대수 기초를 다잡고 싶은 독자를 위해 집필한 선형대수 책이다. 기초적인 행렬부터 고차원 텐서까지 선형대수를 구성하는 개념 및 이론을 소개하고 독자 스스로 자신의 분야에 응용할 수 있도록 도와준다. 또한, 선형대수 이론이 의미하는 바를 자세히 설명하고 선형대수 이론을 파이썬 코드로 직접 구현함으로써 내 손으로 선형대수 라이브러리를 직접 만드는 즐거움을 선사한다.

실습은 두 파트로 나뉜다. 파이썬 실습 파트에서는 라이브러리를 사용하지 않고 순수 파이썬 코드로 선형대수 이론을 직접 구현해 봄으로써 선형대수 기본기를 탄탄하게 다진다. 넘파이 실습 파트에서는 파이썬에서 제공하는 넘파이 라이브러리를 활용해 선형대수 이론을 활용하는 방법을 다룬다.

 

저자 소개 

장철원
공부한 내용을 기록하고 나누는 것을 좋아하는 프리랜서 개발자


충북대학교에서 통계학을 전공하고 고려대학교에서 통계학 석사를 졸업했다. 이후 플로리다 주립 대학교 Florida State University 통계학 박사 과정 휴학 후 취업 전선에 뛰어들었다. 어렸을 때부터 게임을 좋아해 크래프톤 데이터 분석실에서 일했다. 주로 머신러닝을 이용해 이탈률 예측과 고객 분류 업무를 수행했다. 배틀그라운드 핵 관련 업무를 계기로 IT 보안에 흥미를 느껴, 이후 NHN IT 보안실에서 일하며 머신러닝을 이용한 매크로 자동 탐지 시스템을 개발하고 특허를 등록했다. 현재는 머신러닝 관련 책을 집필하고 강의하는 프리랜서 개발자로, 공부한 내용을 공유하는 데 보람을 느껴 블로그와 카페를 운영하고 있다. 관심 분야는 인공지능, 머신러닝, 통계학, 선형대수, 커널, 임베디드, IT보안, 사물인터넷, 물리학, 철학이다. 저서로는 『선형대수와 통계학으로 배우는 머신러닝 with 파이썬』이 있다.


• 프리랜서 개발자
• 한국정보통신기술협회 외부교수
• 패스트캠퍼스 강사
• 前) NHN IT 보안실
• 前) 크래프톤(구 블루홀) 데이터 분석실

 

목차

Chapter 01. 개발 환경 구축하기

1.1 윈도우 개발 환경 구축하기

1.2 맥 개발 환경 구축하기

1.3 리눅스 개발 환경 구축하기

Chapter 02. 파이썬 기초

2.1 기초 자료형

___ 2.1.1 숫자

___ 2.1.2 문자

___ 2.1.3 리스트(list)

___ 2.1.4 (bool)

2.2 조건문

___ 2.2.1 비교 연산자

___ 2.2.2 조건 판단 연산자

___ 2.2.3 if

2.3 반복문

___ 2.3.1 for

___ 2.3.2 while

2.4 함수

___ 2.4.1 사용자 정의 함수

___ 2.4.2 재귀 함수

2.5 깊은 복사

___ 2.5.1 mutableimmutable

___ 2.5.2 얕은 복사

___ 2.5.3 깊은 복사

___ 2.5.4 깊은 복사 구현하기

2.6 라이브러리

___ 2.6.1 라이브러리의 개념

___ 2.6.2 나만의 라이브러리 만들기

 

Chapter 03. 행렬

3.1 스칼라

___ 3.1.1 스칼라의 정의

___ 3.1.2 스칼라의 기본 연산

___ 3.1.3 파이썬 실습

3.2 벡터

___ 3.2.1 벡터의 정의

___ 3.2.2 벡터의 덧셈과 뺄셈

___ 3.2.3 벡터의 스칼라 곱

___ 3.2.4 벡터 기본 연산의 성질

___ 3.2.5 파이썬 실습

___ 3.2.6 넘파이 실습

3.3 행렬

___ 3.3.1 행렬의 정의

___ 3.3.2 행렬의 덧셈과 뺄셈

___ 3.3.3 행렬의 스칼라 곱

___ 3.3.4 행렬의 원소 곱

___ 3.3.5 행렬 곱

___ 3.3.6 행렬의 대각합

___ 3.3.7 행렬 연산의 성질

___ 3.3.8 파이썬 실습

___ 3.3.9 넘파이 실습

 

Chapter 04. 다양한 행렬

4.1 전치 행렬

___ 4.1.1 전치 행렬의 개념

___ 4.1.2 전치 행렬의 성질

___ 4.1.3 파이썬 실습

___ 4.1.4 넘파이 실습

4.2 대칭 행렬

___ 4.2.1 대칭 행렬의 개념

___ 4.2.2 대칭 행렬의 성질

___ 4.2.3 파이썬 실습

___ 4.2.4 넘파이 실습

4.3 대각 행렬

___ 4.3.1 대각 행렬의 개념

___ 4.3.2 대각 행렬의 성질

___ 4.3.3 파이썬 실습

___ 4.3.4 넘파이 실습

4.4 단위 행렬

___ 4.4.1 단위 행렬의 개념

___ 4.4.2 단위 행렬의 성질

___ 4.4.3 파이썬 실습

___ 4.4.4 넘파이 실습

4.5 영 행렬

___ 4.5.1 영 행렬의 개념

___ 4.5.2 영 행렬의 성질

___ 4.5.3 파이썬 실습

___ 4.5.4 넘파이 실습

4.6 삼각 행렬

___ 4.6.1 삼각 행렬의 개념

___ 4.6.2 삼각 행렬의 성질

___ 4.6.3 파이썬 실습

___ 4.6.4 넘파이 실습

4.7 토플리츠 행렬

___ 4.7.1 토플리츠 행렬의 개

___ 4.7.2 파이썬 실습

___ 4.7.3 scipy 실습

4.8 이중 대각 행렬

___ 4.8.1 이중 대각 행렬의 개념

___ 4.8.2 파이썬 실습

___ 4.8.3 넘파이 실습

4.9 하우스홀더 행렬

___ 4.9.1 하우스홀더 행렬의 개념

___ 4.9.2 파이썬 실습

___ 4.9.3 넘파이 실습

 

Chapter 05. 선형 시스템

5.1 선형 방정식

___ 5.1.1 선형 방정식의 정의

___ 5.1.2 선형 방정식의 예

___ 5.1.3 선형 방정식이 아닌 경우

5.2 선형 시스템

___ 5.2.1 선형 시스템의 정의

___ 5.2.2 기본 행 연산

___ 5.2.3 가우스 조르단 소거법

___ 5.2.4 가우스 소거법

5.3 동차 선형 시스템

5.4 파이썬 실습

___ 5.4.1 단계적으로 계산하기

___ 5.4.2 함수 생성 테스트

___ 5.4.3 최종 함수

5.5 넘파이 실습

 

Chapter 06. 행렬식

6.1 행렬식의 개념

6.2 행렬식 계산

___ 6.2.1 2×2 행렬의 행렬식

___ 6.2.2 3×3 행렬의 행렬식

6.3 행렬식의 성질

___ 6.3.1 삼각 행렬의 행렬식

___ 6.3.2 대각 행렬의 행렬식

___ 6.3.3 전치 행렬의 행렬식

___ 6.3.4 특정 행과 열의 원소가 모두 0일 때 행렬식

___ 6.3.5 행렬의 기본 행 연산과 행렬식

___ 6.3.6 비례하는 행과 열에 대한 행렬식

___ 6.3.7 행렬 곱과 행렬식

6.4 파이썬 실습

___ 6.4.1 단계적으로 계산하기

___ 6.4.2 재귀 함수로 구현하기

___ 6.4.3 삼각행렬 변환으로 구현하기

6.5 넘파이 실습

 

Chapter 07. 역행렬

7.1 역행렬의 개념

7.2 역행렬 계산

___ 7.2.1 2×2 행렬의 역행렬 구하기

___ 7.2.2 𝑛×𝑛 행렬의 역행렬 구하기

7.3 정사각 행렬의 거듭 제곱

7.4 역행렬의 성질

___ 7.4.1 역행렬의 거듭 제곱

___ 7.4.2 역행렬과 전치 행렬

___ 7.4.3 거듭 제곱 행렬의 역행렬

___ 7.4.4 역행렬과 행렬식

7.5 파이썬 실습

___ 7.5.1 단계적으로 계산하기

___ 7.5.2 함수로 구현하기

 

Chapter 08. 기저와 차원

8.1 벡터 공간

___ 8.1.1 벡터 공간의 개념

___ 8.1.2 부분 공간

8.2 선형 변환

8.3 선형 독립

8.4 기저

___ 8.4.1 기저의 정의

___ 8.4.2 기저와 벡터 공간

8.5 차원

8.6 행 공간ㆍ열 공간ㆍ영 공간

___ 8.6.1 행 공간ㆍ열 공간ㆍ영 공간의 개념

___ 8.6.2 행 공간ㆍ열 공간ㆍ영 공간의 성질

8.7 랭크와 널리티

___ 8.7.1 랭크와 널리티 개념

___ 8.7.2 랭크와 널리티의 성질

 

Chapter 09. 내적

9.1 내적의 개념

___ 9.1.1 내적 공간

___ 9.1.2 내적의 정의

___ 9.1.3 내적의 성질

___ 9.1.4 정사영

9.2 직교 공간과 정규 직교 공간

___ 9.2.1 직교 공간

___ 9.2.2 정규 직교 공간

___ 9.2.3 정규 직교 벡터를 활용한 좌표 표현

___ 9.2.4 직교 벡터를 활용한 좌표 표현

9.3 그램 슈미트 과정

___ 9.3.1 정사영 정리

___ 9.3.2 직교 정사영

9.4 QR분해

___ 9.4.1 기본적인 QR분해 방법

___ 9.4.2 그램 슈미트 과정을 이용한 QR분해

___ 9.4.3 하우스홀더 방법을 이용한 QR분해

9.5 파이썬 실습

___ 9.5.1 기본 내적 실습

___ 9.5.2 그램 슈미트 과정을 이용한 QR분해

___ 9.5.3 하우스홀더 방법을 이용한 QR분해

9.6 넘파이 실습

___ 9.6.1 기본 내적 실습

___ 9.6.2 QR분해 실습

 

Chapter 10. 다양한 곱 연산

10.1 외적과 크로네커 곱

___ 10.1.1 벡터의 외적

___ 10.1.2 크로네커 곱

10.2 벡터 곱

___ 10.2.1 벡터 곱의 정의

___ 10.2.2 벡터 곱의 기하학적 의미

10.3 삼중 곱

___ 10.3.1 스칼라 삼중 곱

___ 10.3.2 벡터 삼중 곱

10.4 파이썬 실습

10.5 넘파이 실습

 

Chapter 11. 고윳값과 고유 벡터

11.1 고윳값과 고유 벡터의 개념

11.2 고윳값과 고유 벡터 계산

___ 11.2.1 2×2 행렬의 고윳값과 고유 벡터 구하기

___ 11.2.2 3×3 행렬의 고윳값과 고유 벡터 구하기

___ 11.2.3 QR분해를 이용한 방법

11.3 고윳값과 고유 벡터의 성질

11.4 파이썬 실습

11.5 넘파이 실습

 

Chapter 12. 직교 행렬

12.1 직교 행렬의 개념

12.2 닮음

___ 12.2.1 닮음의 개념

___ 12.2.2 닮음의 성질

12.3 파이썬 실습

12.4 넘파이 실습

 

Chapter 13. 대각화

13.1 대각화의 개념

13.2 직교 대각화의 개념

13.3 고윳값 분해

13.4 특이값 분해

13.5 파이썬 실습

___ 13.5.1 고윳값 분해 실습

___ 13.5.2 특이값 분해 실습

13.6 넘파이 실습

___ 13.6.1 고윳값 분해 실습

___ 13.6.2 특이값 분해 실습

 

Chapter 14. LU분해

14.1 기본 행렬

___ 14.1.1 기본 행렬의 개념

___ 14.1.2 기본 행렬의 역행렬

14.2 LU분해

___ 14.2.1 LU분해의 개념

___ 14.2.2 LU분해 방법

___ 14.2.3 LU분해 쉽게 하기

___ 14.2.4 LU분해와 선형 시스템의 해

14.3 파이썬 실습

___ 14.3.1 LU분해 과정 살펴보기

___ 14.3.2 LU분해 함수 만들기

14.4 scipy 실습

 

Chapter 15. 행렬의 이차식

15.1 이차식 개념

15.2 양정치 행렬

15.3 벡터의 미분

 

Chapter 16. 텐서

16.1 텐서의 기초

___ 16.1.1 텐서의 개념

___ 16.1.2 텐서의 구성 원소

16.2 텐서의 기본 연산

___ 16.2.1 텐서의 노름

___ 16.2.2 텐서의 내적

___ 16.2.3 Rank One 텐서

___ 16.2.4 텐서의 대칭성

___ 16.2.5 대각 텐서

___ 16.2.6 텐서의 행렬화

___ 16.2.7 텐서 곱

16.3 파이썬 실습

16.4. 넘파이 실습

 

Chapter 17. 머신러닝과 선형대수

17.1 파이썬을 활용한 분석

___ 17.1.1 데이터 불러오기

___ 17.1.2 문자형 자료를 숫자형 자료로 변환

___ 17.1.3 데이터 열 추출

___ 17.1.4 데이터 열 연산

___ 17.1.5 전치 행렬 구하기

___ 17.1.6 피처ㆍ타깃 데이터 분할

___ 17.1.7 피처별 평균

___ 17.1.8 공분산 행렬

___ 17.1.9 특이값 분해

___ 17.1.10 머신러닝 적용하기

17.2 넘파이ㆍ판다스 라이브러리를 활용한 분석

___ 17.2.1 데이터 불러오기

___ 17.2.2 데이터 열 추출

___ 17.2.3 데이터 열 연산

___ 17.2.4 전치 행렬 구하기

___ 17.2.5 피처ㆍ타깃 데이터 분할

___ 17.2.6 공분산 행렬

___ 17.2.7 특이값 분해

___ 17.2.8 머신러닝 적용하기

 

Chapter 18. 딥러닝과 선형대수

18.1 파이썬을 활용한 분석

___ 18.1.1 데이터 불러오기

___ 18.1.2 피처ㆍ타깃 데이터 분할

___ 18.1.3 데이터 전처리

___ 18.1.4 이미지 데이터 확인

___ 18.1.5 -핫 인코딩

___ 18.1.6 딥러닝 적용하기

18.2 넘파이ㆍ판다스 라이브러리를 활용한 분석

___ 18.2.1 데이터 불러오기

___ 18.2.2 피처ㆍ타깃 데이터 분할

___ 18.2.3 데이터 전처리

___ 18.2.4 이미지 데이터 확인

___ 18.2.5 -핫 인코딩

___ 18.2.6 딥러닝 적용하기

 

출판사 리뷰 

추상적이고 어렵게만 느껴지는 선형대수,
더는 피하지 말고 이 책과 함께 정면 돌파하라!

선형대수는 머신러닝과 딥러닝 분야뿐만 아니라 숫자를 다루는 거의 모든 분야에서 사용됨에도 불구하고, 그 중요성에 비해 쉽게 접하기 어려운 학문이다. 하지만 이 책과 함께라면 선형대수 이론을 파이썬으로 밑바닥부터 직접 구현해 보며 선형대수의 개념을 확실하게 잡을 수 있다.

이 책은 선형대수 이론을 수식으로 설명하고 파이썬을 이용해 단계별로 구현한 후 Numpy 코드로 검증하는 과정을 거친다. 이를 통해 선형대수의 수학적 개념을 자연스럽게 이해하고 문제 해결을 위한 라이브러리 활용 방법을 학습하도록 돕는다. 이 책을 통해 선형대수를 심도 있게 이해하길 바란다.

이 책의 특징
· 선형대수 내부 알고리즘을 집중 공략하고 실전에 적용해 본다.
· 행렬, 텐서, 기저, 차원 등 선형대수 필수 이론을 자세히 다룬다.
· 추상적인 선형대수 개념을 그림으로 알기 쉽게 설명한다.

이 책의 대상 독자
· 선형대수를 공부한 경험이 있지만, 실제 사용에 어려움을 느끼는 분
· 선형대수 알고리즘을 직접 구현하고 싶은 분



소스코드 다운로드 https://github.com/bjpublic/LinearAlgebra

관련글 더보기

댓글 영역