파이썬에서의 Neural Network 구현과 AGI, 행렬

YoungJae Kang·2025년 4월 20일
0

머신러닝 학습

목록 보기
7/14
post-thumbnail

1. 순방향 전파의 파이썬 구현

  • 신경망의 각 계층은 입력값을 받아 가중치와 곱하고 편향을 더한 뒤, 비선형 활성화 함수를 적용하여 다음 계층으로 전달
  • 순방향 전파(Forward Propagation)는 입력에서 출력까지 데이터를 전달하며 예측값을 계산하는 과정

Python 코드 예시:

def sigmoid(z):
    return 1 / (1 + np.exp(-z))

def dense(a_in, W, b):
    z = np.matmul(a_in, W) + b
    a_out = sigmoid(z)
    return a_out
  • np.matmul은 벡터 또는 행렬 곱셈을 수행하여 효율적인 연산이 가능
  • 반복문보다 벡터화를 통해 학습 및 예측 속도를 획기적으로 향상시킬 수 있음

2. 텐서와 행렬 연산의 이해

  • Tensor는 다차원 배열로, TensorFlow에서 데이터는 일반적으로 2D 행렬로 표현됨
  • 예: (1, 2) 입력은 1x2 행렬로 처리되어 배치 학습에 유리함
  • 행렬 곱셈의 조건: A (m×n) 와 B (n×p) → AB는 (m×p) 크기의 행렬
  • 내적(dot product)을 통해 각 뉴런의 출력값을 계산할 수 있음

행렬 곱셈 예시:

  • 입력 A: 2x3, 가중치 W: 3x4 → 출력 Z: 2x4
  • Z의 각 원소는 A의 한 행과 W의 한 열의 내적 결과

3. 인공 일반 지능(AGI)에 대한 고찰

  • ANI(Artificial Narrow Intelligence): 특정 업무에 특화된 AI, 자율주행·음성인식 등 실용화 단계
  • AGI(Artificial General Intelligence): 인간 수준의 일반 지능, 현재는 미완의 영역
  • 인간의 뇌는 다양한 센서 입력(청각, 시각, 촉각 등)에 유연하게 적응 가능함
  • 동일한 뇌 영역이 데이터 유형에 따라 보는 법, 듣는 법, 느끼는 법을 학습할 수 있음
  • 하나 또는 소수의 강력한 학습 알고리즘이 뇌의 다양한 기능을 가능하게 한다는 하나의 학습 알고리즘 가설이 제시됨

4. 신경망의 벡터화 구현

  • 신경망을 벡터화(Vectorization)하면 GPU의 병렬 연산을 활용하여 연산 속도를 크게 향상시킬 수 있음
  • for-loop 기반 코드 대신 matmul, broadcast 등을 활용해 효율적으로 구현
Z = np.matmul(A_in, W) + b
A_out = sigmoid(Z)
  • 입력 X가 여러 샘플을 포함하는 경우에도 병렬로 처리 가능
  • 신경망 학습과 추론의 핵심 연산은 대부분 행렬 곱셈에 기반함
profile
Data_Analyst

0개의 댓글