Develop/ML·DL

인공신경망 - 다차원 배열의 계산을 알아보자.

YOOZI. 2025. 2. 4. 18:49
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