AI 학습의 결과물 - 행렬로 구성된 파일
AI 모델을 학습시키면 그 결과물이 어떤 형태로 저장될까요?
일반적인 프로그램은 코드를 작성하고 실행 파일을 생성하지만, AI 모델은 학습을 통해 얻은 가중치와 편향을 파일로 저장합니다.
이 가중치와 편향은 숫자로 이루어진 행렬(matrix)
형태로 저장되며, AI 모델은 이를 매개변수(parameter)
로 사용하여 입력 데이터를 처리하고 예측을 수행합니다.
가중치가 표현되는 방식
인공 신경망이 학습을 마치면 각 층(layer)마다 가중치와 편향이 정해지고, 이를 행렬 형태로 저장합니다.
신경망의 가중치는 일반적으로 (출력 뉴런 수, 입력 뉴런 수)
형태의 행렬로 표현됩니다.
예를 들어, 입력 뉴런이 3개이고 출력 뉴런이 2개인 신경망의 가중치 행렬은 (2, 3)
형태로 나타낼 수 있습니다.
이때 각 행은 출력 뉴런 하나의 가중치 벡터를 나타내며, 각 출력 뉴런은 입력 뉴런 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))
위와 같이 구성된 신경망의 가중치와 편향은 다음과 같이 표현될 수 있습니다.
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 모델이 학습 및 예측할 때 활용됩니다.