인공지능 시대, 코딩은 선택이 아닌 생존 전략입니다

코딩은 미래를 지배하는 기술의 언어, 당신의 가능성을 열어줄 열쇠입니다.

강의자료/인공지능수학

[인공지능 수학]랭크(rank)

원당컴1 2025. 3. 11. 17:03

랭크(rank)란

랭크(rank)는 행렬 A에서 선형 독립인 행 혹은 열의 개수를 의미한다. 예를 들어 행렬 A를 1행과 2행의 선형 조합으로 3행을 만든다고 하면 다음과 같이 1행과 2행을 더해서 3행을 만들 수 있다.

예)

[313103]  

[313103416]

이때 선형 독립인 행 개수는 2가 된다. 따라서 행렬의 랭크는 2이다.

행렬의 랭크는 그 행렬에서 선형 독립인 행 벡터(또는 열 벡터)의 최대 수를 나타낸다. 이를 통해 행렬이 표현할 수 있는 선형 방정식 시스템의 자원을 알 수 있다.

랭크(rank)의 계산 방법

1. 가우스 소거법을 이용한 계산 방법

A=[123456789] 

위와 같은 행렬이 있다면 다음과 같이 연산을 한다.

- 행 사다리꼴 형태로 변환 : 행렬을 다음과 같은 연산을 통해 행 사다리꼴 형태로 변환

  • 행의 교환
  • 행의 스칼라 곱셈
  • 행의 덧셈 또는 뺄셈

- 행렬 변환 : 첫 번째 열을 기준으로 선형 독립인 행을 찾는다.

첫 번째 행을 기준으로 나머지 행에서 첫 번째 요소를 0으로 만들기 위해 행 연산을 수행한다.

1) 첫 번째 행을 두 번재 행에 4배하고 뺀다.

[123036789]

2) 첫 번째 행을 세 번째 행에 7배하고 뺀다.

[1230360612]

- 두 번째 행을 기준으로 세 번째 행의 두 번째 요소를 0으로 만들기 위해 행 연산을 수행한다.

두 번째 행을 세 번째 행에 2배하고 뺀다.

[123036000]

- 랭크 계산 : 변환된 행렬에서 0이 아닌 행의 수를 센다. 위의 예제에서는 첫 번째와 두 번째 행만 0이 아니므로 랭크는 2이다.

2. 행렬의 최소 행렬식을 이용하여 랭크 구하기

행렬의 랭크를 최소 행렬식(minor)을 사용해 구하는 방법은 행렬식이 0이 아닌 가장 큰 하위행렬(submatrix)을 찾는 과정이다.

1) 행렬의 차수(dimension)결정 : 주어진 행렬 A의 크기를 결정한다. 예를 들어 위의 행렬이라면 3*3 godfufdlek.

2) 하위 행렬 구하기: k*k 크기의 모든 하위 행렬을 찾는다. k는 1부터 min(행,열)까지의 모든 정수값을 가진다.

3) 행렬식 계산 : 각 k*k 하위 행렬의 행렬식을 계산한다. 행렬식이 0이 아닌 가장 큰 k값을 찾는다. 이 값을 찾기 위해 다음 단계를 거친다.

1x1 하위 행렬의 행렬식 계산: 각 1x1 하위 행렬의 행렬식을 계산합니다. 행렬의 각 원소가 1x1 하위 행렬이 됩니다.

|1|=1,|2|=2,|3|=3,|3|=3,|6|=6,|7|=7,|8|=8,|9|=9

모든 1x1 하위 행렬의 행렬식은 0이 아닙니다.

2x2 하위 행렬의 행렬식 계산: 다음으로 2x2 하위 행렬의 행렬식을 계산합니다.

A11=|1203|=1(3)20=3

A12=|1306|=1(6)30=6

A21=|0378|=08(3)7=21

A22=|3689|=39(6)8=27+48=21

모든 2x2 하위 행렬의 행렬식은 0이 아닙니다.

3x3 하위 행렬의 행렬식 계산: 마지막으로 전체 3x3 행렬의 행렬식을 계산합니다:

det(A)=|123036789|

이를 계산하려면 주어진 행렬의 첫 번째 행을 기준으로 전개합니다:

det(A)=1|3689|2|0679|+3|0378|

각 부분 행렬식을 계산합니다:

|3689|=(39)(68)=27+48=21

|0679|=(09)(67)=42

|0378|=(08)(37)=21

이를 행렬식 전개에 대입하면:

det(A)=121242+321=2184+63=0

전체 행렬의 행렬식은 0입니다.

4) 랭크 결정 : 행렬의 랭크는 행렬식이 0이 아닌 가장 큰 하위 행렬의 차원이다. 이 예제에서는 모든 2*2 하위 행렬의 행렬식이 0이 아니므로 행렬의 랭크는 2이다.

 

인공지능과 머신러닝에서 랭크는 어디에서 사용되는가?

행렬의 랭크는 인공지능과 머신러닝에서 다양한 응용 분야에서 중요한 역할을 한다.

1. 데이터 전처리 : 고차원 데이터를 저차원으로 변환하는 데 사용된다. 랭크 감소(rank reduction)는 데이터의 중요한 정보를 보존하면서 차원을 줄여 계산 효율성을 높이는 방법 중 하나이다. 예를 들어 주성분 분석(PCA)은 고차원 데이터를 저차원으로 투영하여 차원을 축소하는 기술이다.

2. 선형 회귀 분석 : 독립 변수와 종속 변수 간의 선형 관계를 분석하는데 사용된다. 행렬의 랭크를 통해 독립 변수들이 선형적으로 독립인지 확인 할 수 있으며, 다중 공선성을 피할 수 있다.

3. 추천 시스템 : 사용자 - 아이템 평점 행렬의 랭크를 감소시켜 추천 시스템을 구현할 수 있다. 예를 들어 넷플릭스의 영화 추천 시스템은 사용자와 영화 간의 상관관계를 분석하여 추천 알고리즘을 설계 할 수 있다.

4. 자연어 처리(NLP): 단어 임베싱(word embedding)에서 행렬의 랭크는 벡터 공간의 차원을 나타내며,유사한 의미를 가진 단어들을 저차원 공간으로 표현하여 문장 내 의미를 분석하는 데 사용된다.

5. 이미지 압축 : 행렬 분해를 통해 이미지를 압축하고 효율적으로 저장할 수 있다. 싱글러 벡터 분해(SVD)는 행렬의 랭크를 사용하여 이미지 데이터의 주요 특징을 추출하고 압축하는 방법 중 하나이다.

 

랭크를 활용한 프로젝트 아이디어

1. 영화 추천 시스템 

- 행렬 분해 기법(예:SVD)를 사용하여 저차원 공간에서 사용자와 영화의 상관관계를 분석하여 추천 알고리즘을 통해 사용자에게 맞춤형 영화를 추천

2. 이미지 압축 및 복원

- 행렬 분해 기법(예:SVD)를 사용하여 이미지 데이터를 압축하고, 압축된 데이터를 기반으로 원본 이미지를 복원 후 원본 이미지와 복원된 이미지 간의 품질 비교를 통해 압축 효율성을 평가

3. 텍스트 요약 시스템

- 텍스트 데이터를 TF-IDF 행렬로 변환하고 행렬의 랭크를 사용하여 중요한 정보를 추출하여 문서나 기사의 주요 내용을 요약하는 시스템 구축

4. 주성분 분석(PCA)기반 데이터 시각화

- 주성분 분석(PCA)를 사용하여 데이터를 2D 또는 3D 공간으로 축소한 수 데이터의 주요 특징을 시각적으로 파악할 수 있다.

 

사업자 정보 표시
원당컴퓨터학원 | 기희경 | 인천 서구 당하동 1028-2 장원프라자 502호 | 사업자 등록번호 : 301-96-83080 | TEL : 032-565-5497 | Mail : icon001@naver.com | 통신판매신고번호 : 호 | 사이버몰의 이용약관 바로가기