728x90
행렬 연산
오늘은 다차원 배열 계산에 대해 알아보자.
오늘의 배움 |
|
1. 다차원 배열
- 정의: 2차원 이상의 차원을 가지는 데이터 구조
- 핵심 개념 한 줄 설명: 여러 차원으로 구성된 숫자들의 격자 구조
- 인공지능에서는 주로 행렬(Matrix) 또는 텐서(Tensor)라는 용어로 사용
핵심 공식: Y = W⋅X + b
W: 가중치 행렬 / X: 입력 데이터 / b: 편향 / Y: 출력값
- 딥러닝에서 자주 다루는 이미지 처리 문제와 관련할 때도 보통 4차원 텐서로 이미지 데이터를 표현한다.
📚 실제 예시로 이해하기 [일상적인 예시] 표 형식의 데이터: 엑셀 시트처럼 행과 열로 구성 이미지: 가로×세로×색상 채널의 3차원 구조 [실무/현업 예시] 이미지 처리: (배치크기, 높이, 너비, 채널) 형태의 4차원 텐서 자연어 처리: (문서 수, 문장 길이, 단어 벡터) 형태의 3차원 텐서 |
2. 핵심 개념 정리
- [다차원 배열 기초]
- 정의: 2차원 이상의 데이터 구조
- 작동 원리: 인덱스로 각 차원의 위치 접근
- 특징: NumPy로 효율적 처리
import numpy as np
# 2차원 배열 생성
arr_2d = np.array([[1, 2], [3, 4]])
- [행렬의 내적]
- 정의: 두 행렬을 곱하는 연산
- 작동 원리: 첫 행렬의 행과 둘째 행렬의 열을 곱하고 합산
- 특징: 차원이 맞아야 계산 가능
- numpy.dot() 또는 @ 연산자를 사용하여 수행
A = np.array([[1, 2], [3, 4]])
B = np.array([[5, 6], [7, 8]])
# 행렬의 내적 계산
C = np.dot(A, B)
print(C)
# 또는
C = A @ B
print(C)
- [차원 변환]
- 방법: reshape, transpose 사용
arr = np.array([1, 2, 3, 4])
arr_2d = arr.reshape(2, 2)
- [브로드캐스팅]
- 방법: 크기가 다른 배열 간 연산
A = np.array([[1, 2], [3, 4]])
b = np.array([10, 20])
result = A + b # b가 자동으로 확장
구분 | 1차원 배열 | 2차원 배열 | 3차원 이상 |
형태 | 벡터 | 행렬 | 텐서 |
특징 | 단순 나열 | 표 형식 | 복잡한 구조 |
활용 | 단순 데이터 | 표 데이터 | 이미지/동영상 |
연산 | 벡터 연산 | 행렬 연산 | 텐서 연산 |
numpy를 이용해 계산할 수 있다.
728x90
'Develop > ML·DL' 카테고리의 다른 글
인공신경망-손실함수를 알아보자. (4) | 2025.02.04 |
---|---|
인공신경망 - 출력층 설계를 알아보자. (0) | 2025.02.04 |
비지도 학습을 알아보자. (2) | 2025.02.02 |
배열_리스트를 알아보자. (0) | 2025.02.02 |
인공신경망 - 활성화 함수를 알아보자. (0) | 2025.02.02 |