본문 바로가기
Study

[불공단 스터디] 처음 만나는 AI 수학 with 파이썬 리뷰 3일차 - 선형대수

by 잇포에듀 2022. 9. 15.
반응형

[불공단 스터디] 처음 만나는 AI 수학 with 파이썬 리뷰 3일차 - 선형대수

처음 만나는 AI 수학 with 파이썬 스터디 리뷰 3일차 기록입니다.

 

지난 스터디 때는 3장 기초 수학 편을 공부했었는데요.

 

[불공단 스터디] 처음 만나는 AI 수학 with 파이썬 리뷰 2일차

 

[불공단 스터디] 처음 만나는 AI 수학 with 파이썬 리뷰 2일차

[불공단 스터디] 처음 만나는 AI 수학 with 파이썬 리뷰 2일차 처음 만나는 AI 수학 with 파이썬 스터디 리뷰 2일차 기록입니다. ​ 컴퓨터가 망가져서 복구하려다 포기하고 큰 맘먹고 컴

it4edu.tistory.com

 

오늘은 이 책의 4장. 선형대수 편 스터디 내용을 정리해 봅니다.

 


4장. 선형대수

 

 

먼저 4.1절에서는 스칼라, 벡터, 행렬, 텐서의 개념을 간단하게 설명합니다.

 

 

 

스칼라는 일반 숫자형 변수로, 벡터는 NumPy의 1차원 배열을 이용해서 정의합니다.

 

a = np.array([1, 2, 3])


같은 방법으로 정의할 수 있습니다. 비슷한 방식으로 행렬은 NumPy의 2차원 배열로, 텐서는 NumPy의 다차원 배열을 이용하여 구현할 수 있습니다.

 

b = np.array([[1, 2, 3], [4, 5, 6])

 

 

4.2절에서는 벡터의 내적과 놈의 의의와 계산 방법을 배웠습니다.

​내적은 Numpy의 dot() 함수로 구할 수 있습니다. 또한 sum() 함수를 사용해서 각 요소의 곱의 총합으로도 구할 수 있습니다. 

 

np.dot(a, b)

 

놈은 벡터의 크기를 나타내는 양입니다. 놈은 NumPy()의 linalg.norm() 함수를 이용해서 구할 수 있습니다. L2 놈과 L1놈에 대해서 간략하게 설명도 합니다.

 

4.3절에서는 행렬의 곱에 대해 배웠습니다. 행렬의 곱셈을 오랜만에 만나네요.

 

 

행렬곱을 전체 행과 열의 조합으로 계산하는 건 힘들지만 NumPy의 dot() 함수를 이용하면 간단하게 계산할 수 있습니다. 

 

그리고 요소별로 곱하는 아다마르 곱은 스칼라 곱의 연산자 *를 사용합니다. 참 쉽죠.

 

 

4.4절에서는 전치 행렬(Transverse Matrix)에 대해 4.5절에서는 행렬식과 역행렬에 대해 다룹니다.

 

전치는 행렬의 배열명에 .T를 붙이면 됩니다.

 

a.T

 

행렬식은 linalg.det() 함수로, 역행렬은 linalg.inv() 함수로 쉽게 구할 수 있습니다. 

 

 

이어서 4.6절에서는 선형변환에 대해 다루는데, 인공지능에서는 뉴럴 네트워크로 정보를 전파시키는데 선형변환을 사용한다고 합니다.

 


책에 나온 선형변환을 파이썬 코드를 작성하여 아래 그림처럼 그려보기도 하였습니다. matplotlib.pyplot의 quiver() 함수를 이용하여 벡터 화살표를 그렸습니다. 변환 전의 벡터와 변환 후의 벡터를 색깔로 구분하여 그렸습니다. (책에 있는 코드를 따라 작성했더니...)

 

 

마지막으로 4.7절에서는 고윳값과 고유벡터, 4.8절에서는 코사인 유사도에 대해 공부하였습니다. 고윳값과 고유벡터는 선형대수와 양자역학 공부할 때 많이 계산했었는데, 인공지능에서는 데이터를 요약하는 주성분 분석이라는 기법에 이용된다고 합니다.

 

NumPy의 linalg.eig() 함수로 고윳값과 고유벡터를 동시에 구할 수 있습니다.

 

코사인 유사도는 벡터끼리의 방향의 가까운 정도를 나타냅니다. 2개 벡터의 방향이 얼마나 일치하고 있는지를 나타내는 지표로 인공지능에서 자주 사용된다고 합니다. 코사인 유사도를 구하는 기본 함수는 따로 없는 것 같고 내적과 놈을 구해서 직접 계산을 했습니다.

 


이렇게 오늘의 스터디를 마무리합니다. 오랜만에 선형대수의 기초 내용들을 복습하니 재미있었습니다. 저자가 쉽게 쓰려고 노력한 흔적들이 보여서 선형대수를 전혀 배워본적 없는 분들도 기본적인 수학 지식이 있다면 많이 어렵지 않게 읽어내려갈 수 있을 것 같습니다.

 

다음 편 미분 파트도 기대가 됩니다. ^^ 

 

재미있게 잘 읽었습니다!!

 

https://cafe.naver.com/codingbeginner

 

개프로 | 개발자 되기 프로젝트[파이... : 네이버 카페

프린이, 코생아 등 프로그래밍 입문자 모여서 함께 코딩 공부해요! - 파이썬, C언어, 자바, 딥러닝 등

cafe.naver.com

 

 

https://bit.ly/3QCkz31

 

처음 만나는 AI 수학 with Python - YES24

인공지능을 공부하는데 필요한 기초 수학개념을 한 권에 모았다!『처음 만나는 AI 수학 with Python』은 인공지능을 공부하는데 기본이 되는 수학 개념을 소개하는 도서로 독자가 수학을 잘 하도록

www.yes24.com

 

 

 

 

 

반응형

댓글