본문으로 건너뛰기
실습하기

AI 학습의 결과물 - 행렬로 구성된 파일

AI 모델을 학습시키면 그 결과물이 어떤 형태로 저장될까요?

일반적인 프로그램은 코드를 작성하고 실행 파일을 생성하지만, AI 모델은 학습을 통해 얻은 가중치와 편향을 파일로 저장합니다.

이 가중치와 편향은 숫자로 이루어진 행렬(matrix) 형태로 저장되며, AI 모델은 이를 매개변수(parameter)로 사용하여 입력 데이터를 처리하고 예측을 수행합니다.


가중치가 표현되는 방식

인공 신경망이 학습을 마치면 각 층(layer)마다 가중치와 편향이 정해지고, 이를 행렬 형태로 저장합니다.

신경망의 가중치는 일반적으로 (출력 뉴런 수, 입력 뉴런 수) 형태의 행렬로 표현됩니다.

예를 들어, 입력 뉴런이 3개이고 출력 뉴런이 2개인 신경망의 가중치 행렬은 (2, 3) 형태로 나타낼 수 있습니다.

이때 각 행은 출력 뉴런 하나의 가중치 벡터를 나타내며, 각 출력 뉴런은 입력 뉴런 3개에 대한 개별 가중치를 가집니다.

이를 코드로 표현하면 다음과 같습니다.

(2, 3) 형태의 가중치 행렬
weights = [
[0.12, -0.87, 0.45], # 첫 번째 출력 뉴런의 가중치 (입력 뉴런 3개)
[-0.23, 0.44, 0.56] # 두 번째 출력 뉴런의 가중치 (입력 뉴런 3개)
]

위의 예시에서 첫 번째 출력 뉴런의 가중치는 [0.12, -0.87, 0.45]이며, 입력값 3개에 대한 가중치가 저장되어 있습니다.

마찬가지로, 두 번째 출력 뉴런의 가중치는 [-0.23, 0.44, 0.56]으로, 입력값 3개와 각각 연결됩니다.


2층 신경망의 가중치와 편향

실전에서 사용할 수 있는 예제를 살펴보겠습니다.

이 신경망은 입력값 2개를 받아, 3개의 중간층 뉴런을 거쳐, 최종적으로 2개의 출력을 생성하는 2층 신경망입니다.

  • 첫 번째 층: 입력 뉴런 2개 → 중간층 뉴런 3개 (가중치 행렬 크기: (3×2))

  • 두 번째 층: 중간층 뉴런 3개 → 출력 뉴런 2개 (가중치 행렬 크기: (2×3))

위와 같이 구성된 신경망의 가중치와 편향은 다음과 같이 표현될 수 있습니다.

2층 신경망의 가중치와 편향
weights = [
[[0.12, -0.87], # 첫 번째 층의 가중치 (3×2)
[-0.23, 0.44],
[0.31, 0.92]
],
[[0.76, 0.33, -0.21], # 두 번째 층의 가중치 (2×3)
[-0.51, 0.67, 0.89]]
]

biases = [
[0.05, -0.12, 0.34], # 첫 번째 층의 편향 (중간층 뉴런 3개)
[0.11, -0.43] # 두 번째 층의 편향 (출력 뉴런 2개)
]

위 값들은 행렬(2차원 배열) 형태로 저장되며, AI 모델이 학습 및 예측할 때 활용됩니다.


학습의 결과물: 행렬로 구성된 파일

AI 모델이 학습된 후, 이 행렬 데이터들은 .h5, .pt, .pkl, .bin 등 특정한 파일 형식으로 저장됩니다.

예를 들어 딥러닝 프레임워크인 TensorFlowPyTorch에서는 학습된 모델을 저장하고 불러올 수 있도록 다음과 같은 방식으로 가중치를 파일로 저장합니다.

  • TensorFlow (Keras): .h5 파일로 저장

  • PyTorch: .pt 또는 .pth 파일로 저장

즉, AI 학습의 결과물은 입력과 출력을 연결하기 위해 수학적으로 최적화된 숫자 행렬이며, 이를 파일로 저장하면 언제든 다시 사용할 수 있습니다.