[DL] 딥러닝 신경망 알고리즘 이해하기

솜솜·2023년 1월 18일
0

Deep Learning

목록 보기
2/6
post-thumbnail

이 글은 데이터 스테이션님의 딥러닝 신경망 알고리즘 이해하기 ! 강의를 듣고 작성되었습니다.

1. 신경망 알고리즘

  1. layer (층) : 노드 한줄
  2. Node (노드)
  3. Weight (가중치)
  • 비정형(저차원) 데이터를 처리할때 쓰임

2. 신경망 알고리즘 기본 작동 원리

1) 네트워크 (Layer)의 기능 및 역할

  • 데이터 연산이 처리되는 각 층을 연결

  • 층간 활성함수에 의한 연산으로 다양하고 복잡한 형태의 계산이 가능

  • 점진적(Foward pass)으로 데이터가 정제되어 처리될 수 있는 구조 형성

  • 층(layer)에서 입력 데이터(input data)가 처리되는 정보는 Weight(해당 layer의 parameter)라는 Vector에 저장되어 있음

    딥러닝의 목표
    : 예측을 정확하게 하기 위한 Weight를 찾는 것

    정답지가 연속형,이산형,카테고리형 등에 따라 어떤 방식으로 weight를 찾을지 결정.

  • Backpropagation(역전파) 알고리즘을 구현한 Optimizer를 이용해 Update

  • Training Loop를 통해, 최초의 부여받은 Random Weight에서 Cost Function이 가장 낮아지는 Weight를 도출

손실함수 (Cost Function or Objective Function)

  • 예측값실제 값의 차이(오차)를 계산한 함수.
  • 신경망 출력 제어의 지표가 됨.
  • 신경망이 얼마나 잘 만들어졌는가, 잘만들어 지고 있는가를 파악할 수 있음
  • 손실함수가 최소가 되는 방향으로 weight를 Update

< 우리가 딥러닝(NN) 사용할 때 집중해야할 부분 >

  1. 중간에 update될 weight
  2. weight에 의해서 계산될 손실함수가 어떤 식으로 바뀌는지
  3. 정했던 데이터가 이산형,연속형,카테고리형이냐에 따라 손실 함수를 어떻게 정희해야 하는가

처리 순서

  1. 여러개의 Batch를 나눠 학습 (몇 번 반복할 것인가 결정 : Epoch)
  2. 데이터가 각 층을 통과하며, Node에 있는 함수에 의해 처리 (Forward Pass)
  3. 실측값과 신경망에 의한 예측값을 비교해 오차 계산
  4. chain Rule을 통해 오차에 대한 각 Node에 있는 기여도를 계산 (Backward Pass)
  5. 오차가 감소하도록 Weight를 계산

3. 데이터와 알고리즘

  • Perceptron Model

    • 초기 신경망 모델
    • input layer과 하나의 Hidden Layer와 Output Layer로 구성되어 있으며, 초기 Perceptron Model은 층이 하나 뿐인 Threshold Logic Unit으로 구성
  • Multi Layer Perceptron

    • perceptron 구조를 여러층으로 쌓아올린 신경망 알고리즘
    • 하나 이상의 Hidden Layer로 구성
    • 기존의 perceptron이 가지고 있는 한계를 개선 (단순한 문제에서 발생하는 오류)
  • Deep Neural Network, DNN

    • Hidden Layer를 여러 겹 쌓아올린 신경망
    • 역전파(BackPropagation)알고리즘을 통해 훈련 방법을 개선
    • 네트워크를 데이터가 통과하면서, 각 층에 있는 HyperParameter를 계산
    • 손실함수에 의한 오차를 다시 노드의 기여도로 거꾸로 계산해 나가며(역전파,BackPropagaion) Hidden Layer를 새로 Update 시켜주는 알고리즘
    • 일반적으로 우리가 알고있는 형태

DNN의 2가지 종류

1. Convolutional Neural Network, CNN

  • 합성곱신경망
  • 사람의 시신경 구조를 모방한 알고리즘
  • 데이터를 특정 차원으로 추출하여, 해당 차원의 패턴을 파악하는 구조
  • 데이터 펼쳐져 있을때 특정 특징들을 추출해 모아 하나의 Convilution Layer를 만들고 그 안에서 데이터를 줄이며 학습하는 형태
  • Convolution과정과 Pooling과정을 통해 진행
  • 이미지 처리에 주로 사용되다가 자연어 처리에도 사용하기도 함

2. Recurrent Neural Network, RNN

  • 순환신경망 알고리즘
  • 반복적이고 순차적인 데이터를 순서대로 처리하는 형태의 알고리즘
  • 알고리즘 내부의 순환구조가 존재하여, 과거의 학습을 Weight를 활용해 현재의 Node에 Weight를 반영하는 알고리즘
  • 시계열 데이터 처리할 때 사용
profile
[Data Science] 차근차근 쌓아나가는

0개의 댓글