본문 바로가기
Data Science/Tensorflow & Pytorch

딥러닝 기본 용어 잡기(Introduction to Deep Learning)

by 루크 Luke 2022. 1. 7.
반응형

딥러닝 : 인공신경망 기반의 학습 방식

  - 수많은 뉴런이 서로 연결되어 신호를 서로 전달하는 것처럼 퍼셉트론이 연결되어 연산 결과를 주고 받음

 

퍼셉트론 : 신경망의 최소 단위

  - 입력값(input), 가중치 벡터(w), 출력값(output)

  - 입력값 벡터와 가중치 벡터의 내적값이 활성화 함수(Activation Function)를 거쳐 최종 출력값을 반환

  - 활성화 함수는 시그모이드(Sigmoid), 렐루(Relu), 리키 렐루(Leaky Relu) 등이 있음

  - 편향(b, bias) : 가중합에 더해지는 상수

 

다층 퍼셉트론 : 퍼셉트론의 층 여러 개

  - XOR 등 하나의 퍼셉트론으로는 해결할 수 없었던 문제를 해결할 수 있게 함

  - 인공 신경망(Artificial neutral network), 줄여서 신경망(Neutral Network)

  - 입력층에 입력된 데이터는 출력층에 도달하기 전에 은닉층이라는 층을 거친 후 출력층에 도달

  - 은닉층은 하나일 수도, 여러 개일 수도 있음

  - 출력층의 각 노드가 나타내는 수는 스코어(Score)이며, 스코어가 높을수록 해당 클래스에 속할 확률이 높다는 말

  - 체인 구조(Chain structure) : 신경망은 각 층을 연결하는 함수의 합성 함수 형태로 표현함

  - 딥러닝의 학습 과정은 각 층을 연결하는 함수를 결정하는 과정

  - 전체 퍼셉트론 관점에서 데이터값은 Vector2vector 이지만, 미시적으로는 Vector2scalar로 보는 것이 편함

 

오차역전파(Back propagation) : 다층 퍼셉트론에서 최적값을 찾아가는 과정

  - 순전파(Forward propagation) : 입력층 - 은닉층 - 출력층 순서대로 흘러가는 것

  - 오차 역전파를 통해 오차를 기반으로 가중치를 수정한 후 더 좋은 성능을 낼 수 있도록 모델을 개선

  - 가중치 초기화 → 순전파 값 → 비용함수 정의 및 1차 미분식 도출 → 역전파를 통한 1차 미분값 → 파라미터 업데이트 → 반복

 

활성화 함수(Activation Function)

입력값과 가중치, 편향을 계산해 어떻게 해당 노드를 활성화(결과값 결정)할지 결정하는 함수

  - 계단 함수(step function)

  - 부호 함수(sign function)

  - 시그모이드 함수(sigmoid function)

  - 하이퍼볼릭 탄젠트 함수(Hyperbolic tangent)

  - 렐루 함수(ReLU)

  - 리키렐루(Leaky ReLU)

  - 항등 함수(Identity function) : 해결해야 할 문제가 회귀인 경우, 최종 출력층에 주로 씀

  - 소프트맥스(Softmax Function) : 해결해야 할 문제가 분류인 경우, 최종 출력층에 주로 씀

 

배치 정규화(Batch Normalization)

해당 층 값의 분표를 변경하는 방법으로, 평균과 분산을 고정시키는 방법

  - 그래디언트 소실 문제를 줄임으로써 신경망의 학습 속도를 향상시킬 수 있다는 장점

  - 배치 정규화의 input : 미니 배치(전체가 아닌 일부), 파라미터 계산 → 미니 배치의 평균, 분산으로 정규화

 

드롭아웃(Drop-out)

  - 신경망의 모든 노드를 사용하는 것이 아닌, 일부 노드를 사용하지 않는 방법

  - 신경망에서 노드를 일시적으로 신경망에서 제거하는 방법

  - 어떤 노드를 제거할 것인지는 각 층에서 무작위로 선택

  - 신경망의 노드 숫자가 줄어들고 이에 따라 연산량도 줄어듦

  - 드롭아웃을 적용하면 오버피팅을 방지할 수 있다는 장점\

 

배치, 에포크, 반복의 차이

  - 배치 사이즈(Batch Size) : 전체 트레이닝 데이터를 여러 개의 미니 배치로 나누었을 때, 하나의 미니 배치에 속하는 데이터의 수

  - 전체 트레이닝 셋을 여러 개의 미니 배치로 나누는 이유는 학습 시간을 줄이고 효율적으로 리소스를 활용하기 위함

  - 에포크(Epoch)는 전체 트레이닝 셋이 신경망을 통과한 횟수

  - 1-epoch는 트레이닝셋에 포함되는 모든 데이터 포인트가 신경망을 1번 통과했다는 것을 의미함

  - 반복(Iteration)은 1-epoch를 마치는데 필요한 미니 배치의 수를 의미함

  - 예를 들어, 전체 트레이닝 데이터가 700개로 구성되어 있을 때, 이를 100개의 데이터로 구성된 미니배치 7개로 나눴다면, iter = 7

  - 가중치 파라미터는 미니 배치 당 한 번 업데이트 하므로, 파라미터 업데이트 횟수도 iter와 같음 = 7

 

 

※ 장철원 저자의 <선형대수와 통계학으로 배우는 머신러닝 with 파이썬>을 참고했습니다.

반응형

댓글