랭크(rank)란
랭크(rank)는 행렬 A에서 선형 독립인 행 혹은 열의 개수를 의미한다. 예를 들어 행렬 A를 1행과 2행의 선형 조합으로 3행을 만든다고 하면 다음과 같이 1행과 2행을 더해서 3행을 만들 수 있다.
예)
이때 선형 독립인 행 개수는 2가 된다. 따라서 행렬의 랭크는 2이다.
행렬의 랭크는 그 행렬에서 선형 독립인 행 벡터(또는 열 벡터)의 최대 수를 나타낸다. 이를 통해 행렬이 표현할 수 있는 선형 방정식 시스템의 자원을 알 수 있다.
랭크(rank)의 계산 방법
1. 가우스 소거법을 이용한 계산 방법
위와 같은 행렬이 있다면 다음과 같이 연산을 한다.
- 행 사다리꼴 형태로 변환 : 행렬을 다음과 같은 연산을 통해 행 사다리꼴 형태로 변환
- 행의 교환
- 행의 스칼라 곱셈
- 행의 덧셈 또는 뺄셈
- 행렬 변환 : 첫 번째 열을 기준으로 선형 독립인 행을 찾는다.
첫 번째 행을 기준으로 나머지 행에서 첫 번째 요소를 0으로 만들기 위해 행 연산을 수행한다.
1) 첫 번째 행을 두 번재 행에 4배하고 뺀다.
2) 첫 번째 행을 세 번째 행에 7배하고 뺀다.
- 두 번째 행을 기준으로 세 번째 행의 두 번째 요소를 0으로 만들기 위해 행 연산을 수행한다.
두 번째 행을 세 번째 행에 2배하고 뺀다.
- 랭크 계산 : 변환된 행렬에서 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 하위 행렬이 됩니다.
모든 1x1 하위 행렬의 행렬식은 0이 아닙니다.
2x2 하위 행렬의 행렬식 계산: 다음으로 2x2 하위 행렬의 행렬식을 계산합니다.
모든 2x2 하위 행렬의 행렬식은 0이 아닙니다.
3x3 하위 행렬의 행렬식 계산: 마지막으로 전체 3x3 행렬의 행렬식을 계산합니다:
이를 계산하려면 주어진 행렬의 첫 번째 행을 기준으로 전개합니다:
각 부분 행렬식을 계산합니다:
이를 행렬식 전개에 대입하면:
전체 행렬의 행렬식은 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 공간으로 축소한 수 데이터의 주요 특징을 시각적으로 파악할 수 있다.
'강의자료 > 인공지능수학' 카테고리의 다른 글
[인공지능수학]확률변수,확률분포,확률함수 (2) | 2025.03.17 |
---|---|
[학생부종합전형] 행렬의 종류 판단하는 프로그램 (4) | 2025.03.10 |
[학생부종합전형]행렬계산기 (2) | 2025.03.07 |
[인공지능수학] 시그모이드 함수 (18) | 2023.08.09 |
[인공지능수학]1차 함수로 이해하는 선형 회귀 (7) | 2023.06.16 |