본문 바로가기
AI

AI 학습의 이해(입력층, 은닉층, 출력층)

by 보안매크로 2024. 5. 5.
728x90

 입력값 1000개, 은닉층 100개, 출력층 10, 각각의 뉴런을 설정한다고 가정하자,

 입력이 1000개 들어오면, 일단 은닉층을 100개 선언할 때 각각의 은닉층의 뉴런들은 랜덤한 가중치를 갖게된다. 입력1000개에 대하여 가중치를 곱하고(벡터의 경우 내적) 그 값을 은닉층에 있는 뉴런들이 갖게되고, 그 값을 다시 랜덤하게 가중치가 설정된 출력층 10개의 뉴런에 곱하면, 결국 그게 출력층 10개의 뉴런이 서로 다른 값으로 만들어진다.

 입력층에서 넣어준 1000개의 데이터가, '1'이라는 숫자가 그려진 사진의 픽셀 데이터였다면 출력층에서는 값이 가장 큰 값을 가지는 뉴런을 최종 학습하는 뉴런으로 본다. 예를들어 출력층 뉴런의 값들이 100, 200, 300, 400, 500, 600, 700, 800, 900, 1000이 나왔다면, 1000이 속한 뉴런을 택한다는 것이다. 

 출력층에서 가장 값이 큰(일치하는) 뉴런을 선택했다면, 선택된 출력층 뉴런과 입력데이터간의 오차나 손실을 바탕으로 업데이트하고, 가중치를 약간 조정하는 방법으로 학습을 다시 진행하여 최상의 결과를 얻는것이다.

참고) 소프트맥스 함수를 쓰면, 출력층의 값들의 합을 1로 만들어 확률을 알 수 있다.
출력층이 10개인 이유는 각 뉴런을 숫자 0~9를 구분하기 위한 뉴런으로 만들기 위해서 10개이다.

1. 입력층 (Input Layer)

  • 입력 데이터: '1'의 숫자 이미지를 나타내는 1000개의 픽셀 값이 입력층에 제공됩니다.
  • 이 데이터는 일반적으로 정규화되어 네트워크에 입력됩니다(예: 각 픽셀값을 255로 나누어 0과 1 사이의 값으로 조정).

2. 은닉층 (Hidden Layer)

  • 가중치 적용: 입력층에서 받은 1000개의 데이터 각각에 대응되는 가중치가 적용됩니다. 가중치는 각 은닉층 뉴런(100개의 뉴런)과 연결된 1000개의 가중치를 갖고 있습니다. 따라서 입력 데이터와 이 가중치들의 내적이 각 뉴런의 입력값으로 계산됩니다.
  • 활성화 함수: 각 뉴런에서 가중치와 입력 데이터의 합(가중합)이 계산된 후, 이 값에 활성화 함수가 적용됩니다. 일반적으로 ReLU(정류된 선형 유닛) 같은 비선형 활성화 함수가 사용됩니다.

3. 출력층 (Output Layer)

  • 가중치 적용: 은닉층의 출력(활성화된 값)에 또 다른 가중치(은닉층 뉴런 100개 각각에 대한 출력층의 가중치)가 적용됩니다. 출력층은 여러분의 설명처럼 예를 들어 숫자 분류(0-9)의 경우 10개의 뉴런을 갖고 있습니다.
  • 활성화 함수: 출력층에서는 종종 소프트맥스 활성화 함수가 사용되어 각 뉴런의 출력값을 확률로 변환합니다. 이 확률들은 각 숫자 클래스(0-9)에 대한 모델의 예측 확률을 나타냅니다.

4. 예측과 결정

  • 최대 확률 선택: 출력층의 뉴런 중에서 가장 높은 활성화 값을 보이는 뉴런의 인덱스(클래스)가 모델의 예측 결과로 선택됩니다. 이 인덱스는 입력 이미지가 표현하는 숫자를 나타냅니다.

5. 학습 과정 (이후에 진행)

  • 역전파와 가중치 업데이트: 실제 레이블과 예측 결과의 차이를 계산하여 네트워크의 가중치를 조정합니다. 이는 모델의 예측 정확도를 개선하기 위해 수행됩니다.

이러한 과정을 통해 신경망은 이미지를 인식하고, 분류하는 방법을 학습합니다. 각 단계에서 수행되는 수학적 연산은 모델의 구조와 설정된 파라미터에 따라 정의됩니다. 이 과정이 반복되면서 모델은 점점 더 정확해지고, 다양한 숫자 이미지에 대해 정확하게 예측할 수 있게 됩니다.

728x90

'AI' 카테고리의 다른 글

Markov Decsion Processes(MDP)  (0) 2024.05.12
강화학습 소개(David Silver)  (0) 2024.05.11
Image 처리, grabCut, Canny Edge Detection 알고리즘  (0) 2024.04.14
스타블 디퓨전  (0) 2024.02.10
UE5 전문 Chat GPT 4 링크  (0) 2024.01.12