본문 바로가기
딥러닝

Neural Network & MLP 개념 정리

by 우당탕탕 is me 2024. 8. 22.

참고자료 ➡️ https://www.boostcourse.org/ai111/lecture/1108319

 

딥러닝 기초 다지기

부스트코스 무료 강의

www.boostcourse.org

 

 

 

신경망 (Neural Network) 및 다층 퍼셉트론 (MLP) 개념 노트


1. 신경망 (Neural Network)

정의:

  • 인공 지능의 일종으로, 인간 뇌의 뉴런 네트워크를 모방하여 데이터의 패턴을 학습하고 예측하는 알고리즘 모델.

구성 요소:

  1. 노드 (Node) 또는 뉴런 (Neuron):
    •       신경망의 기본 연산 단위.
    •       입력을 받아 처리하고, 출력을 생성.
    •       각 노드는 가중치와 활성화 함수를 사용하여 입력을 변환.
  2. 연결 (Connection):
    •        노드 간의 연결을 의미.
    •        각 연결에는 가중치 (Weight)가 있음. 가중치는 입력의 중요도를 조절.
    •        가중치의 초기값은 임의로 설정되며, 학습 과정에서 조정됨.
  3. 활성화 함수 (Activation Function):
    •        노드의 출력 값을 결정하는 함수.
    •        비선형성을 추가하여 네트워크가 복잡한 패턴을 학습할 수 있도록 함.
    •        주요 함수:
      •        시그모이드 (Sigmoid): σ(x) = 1 / (1 + exp(-x))
      •        하이퍼볼릭 탄젠트 (Tanh): tanh(x) = (exp(x) - exp(-x)) / (exp(x) + exp(-x))
      •        렐루 (ReLU): ReLU(x) = max(0, x)

작동 원리:

  1. 입력층 (Input Layer):
    •        원시 데이터를 네트워크에 입력.
    •        각 노드는 입력 데이터의 한 특성을 나타냄.
  2. 은닉층 (Hidden Layer):
    •        하나 이상의 층으로 구성되며, 입력 데이터를 처리하고, 패턴을 추출.
    •        각 은닉층의 노드는 이전 층의 출력에 가중치를 곱하고 활성화 함수를 적용하여 값을 변환.
  3. 출력층 (Output Layer):
    •        네트워크의 최종 결과를 출력.
    •        문제의 종류에 따라 분류 문제에서는 클래스 확률을, 회귀 문제에서는 연속 값을 출력.

학습 과정:

  1. 정방향 전파 (Forward Propagation):
    •        입력 데이터가 네트워크를 통과하면서 예측 결과 생성.
    •        각 층의 노드는 이전 층의 출력과 가중치를 사용하여 활성화 함수를 적용.
  2. 오차 계산 (Error Calculation):
    •        네트워크의 예측 결과와 실제 값 사이의 오차를 계산.
    •        손실 함수 (Loss Function) 사용: 예를 들어, 평균 제곱 오차 (MSE), 크로스 엔트로피 손실.
  3. 오차 역전파 (Backpropagation):
    •        오차를 네트워크를 통해 역으로 전파.
    •        각 연결의 가중치를 조정하여 오차를 줄이도록 함.
    •        경사 하강법 (Gradient Descent) 사용: 가중치 업데이트.

2. 다층 퍼셉트론 (MLP, Multi-Layer Perceptron)

정의:

  •        피드포워드 신경망의 한 종류로, 최소 1개의 은닉층을 가지며, 입력층과 출력층이 존재함.
  •        기본적인 신경망 구조로, 여러 층을 통해 복잡한 데이터 패턴을 학습.

구성 요소:

  1. 입력층 (Input Layer):
    •        원시 데이터를 네트워크에 입력.
    •        데이터의 각 특성은 개별 노드로 표현됨.
  2. 은닉층 (Hidden Layer):
    •        하나 이상의 층으로 구성됨.
    •        각 은닉층의 노드는 이전 층의 출력과 가중치를 곱한 후 활성화 함수를 적용.
    •        네트워크의 깊이와 폭에 따라 은닉층의 수와 노드 수가 조정됨.
  3. 출력층 (Output Layer):
    •        문제의 종류에 따라 최종 결과를 출력.
    •        ex) 이진 분류 문제에서는 1개의 노드를, 다중 클래스 분류 문제에서는 클래스 수 만큼의 노드를 가짐.

특징:

  • 피드포워드 구조:
    •        데이터가 입력층에서 시작하여 은닉층을 지나 출력층으로 순차적으로 흐름.
    •        네트워크의 모든 데이터 흐름은 한 방향 (입력 -> 출력)으로만 진행됨.
  • 활성화 함수:
    •        ReLU (Rectified Linear Unit): 가장 널리 사용됨, 음수 입력을 0으로 변환, ReLU(x) = max(0, x)
    •        Sigmoid: 출력값을 0과 1 사이로 변환, 로지스틱 회귀에서 사용됨.
    •        Tanh: 출력값을 -1과 1 사이로 변환, Sigmoid보다 더 넓은 출력 범위 제공.

학습 과정:

  1. 정방향 전파:
    •        입력을 네트워크에 통과시켜 예측 결과 생성.
  2. 오차 계산:
    •        손실 함수 (Loss Function) 사용하여 예측 결과와 실제 값의 차이를 계산.
  3. 오차 역전파:
    •        오차를 네트워크를 통해 역으로 전파하여 가중치 업데이트.
    •        경사 하강법 (Gradient Descent): 오차의 기울기를 따라 가중치를 조정, 학습률 (Learning Rate) 조정.

활용 예:

  • 이미지 인식: 사진에서 객체를 식별.
  • 음성 인식: 음성을 텍스트로 변환.
  • 자연어 처리: 문장의 의미를 이해하고 처리.
728x90
반응형