본문 바로가기

DL

Deep Learning : ANN, DNN, RNN, CNN (SLP, MLP)

ANN

인공 신경망 : Artificial Neural Network

 

🚦인간의 뇌

     뉴런 : 세포체여러개의 수상돌기, 일반적으로 한 개의 축삭돌기로 이루어져있다

 

     수상돌기는 여러 branch에서 들어오는 자극들을 수용

     축삭돌기는 세포체와 수상돌기를 지난 정보를 다른 신경 세포에 전송

 

      이 과정에서 정보를 주는 축삭돌기이를 수용하는 수상돌기경계가 시냅스이다.

      시냅스하나의 뉴런과 또 다른 뉴런의 연결지점이라고 할 수 있는 것

 

      뉴런의 전기화학적 신호에 따라 potential의 변화가 발생

        rest 상태의 뉴런의 내부 퍼텐셜은 -70mV로 이때는 외부에 더 많은 양이온이 존재한다 = 막전위

       일반적 상태의 뉴런은 극성 분자나 이온을 통과시키지 못하지만 필요에 따라 열리는 gated channel과 항상 열려있는          

        leakage channel을 통해 이온들은 세포막을 통과한다.

 

      앞서 말한 것처럼 수상돌기가 정보를 수용하게 되는데 뉴런에서 방출한 신경전달물질이 반응을 일으키면서 시냅스의         축삭돌기의 통로가 열리고 이를 통해 이온이 뉴런 내로 들어오며 신호가 전달 되는 것이다.

       ANN은 은닉 계층을 포함하는 인공신경망 기술이다.

  • 입력 계층에서 입력된 데이터에 대해 가중치 행렬을 곱해 은닉 계층으로 보냄
  • 은낵 계층 내부에서 활성화 함수를 통해 데이터를 가공함
  • 은닉 계층에서 나온 데이터를 새로운 가중치 행렬을 곱해 출력 계층으로 보냄
  • 출력을 위한 활성화 함수를 반영해 결과 출력

ANN architecture

활성화 함수

더보기

활성화 함수

입력 신호의 총합이 활성화를 일으키는지 정하는 역할

 

1) 분류 ANN

입력 정보를 바탕으로 해당 입력이 어떤 분류에 속하는지 결정

 

2) 회귀 ANN

입력값으로부터 출력값 직접 예측


 

DNN

Deep Neural Network

은닉 계층이 여러 개인 인공신경망

 

MLP

다층퍼셉트론 : Multi-Layer Perceptron

지도학습에 사용되는 인공신경망의 한 형태

 

일반적으로 최소 하나 이상의 non-linear hidden layer를 가지며 이 특징은 학습 데이터에서 복잡한 패턴을 추출하는데 도움이 된다. 주로 분류 및 회귀 문제에 적용되며 학습 알고리즘으로는 역전파가 주로 사용된다

 

Feed-forward deep neural network : FFDNN

input에 가까운 층 = 아래에 있음 / output에 가까운 층 = 위에 있음

       신호는 항상 아래에서 위로 움직이며 MLP에서는 인접한 층의 퍼셉트론 간 연결은 존재하지만

       같은 층의 퍼셉트론끼리의 연결은 없다

       더불에 한 번 지나간 층으로 다시 연결되는 피드백도 없다

 

차후 CNN에 대해 설명하겠지만 MLP & CNN는 이미지 feature를 추출하는 방식의 차이다

MLP는 이미지의 pixel을 network의 input으로 직접 사용하며

CNN은 이미지의 각 지역 feature를 convolution layer와 pooling layer를 통해 추출한 것을 MLP의 input으로 사용함

       CNN처럼 region feature를 추출하는 것을 통해 vision 쪽 성능이 향상되었다고 볼 수도 있다

 

overfitting & drop out

더보기

overfitting & drop out

학습 데이터에 맞춰 최적화되어 전체적 특징을 잡아내지 못함

Overfitting

깊은 신경망으로 인해 학습데이터에 과도하게 학습되었다면 drop out을 통해 일부 노드를 생략하며 학습 진행

error backpropagation

더보기

error backpropagation

순전파와 반대 방향으로 출력 → 입력층 방향으로 계산하며 가중치 update

backpropagation

gradient descent

더보기

gradient descent

함수의 기울기를 통해 최적의 지점을 찾아냄

loss function

더보기

loss function

가중치에 따라 오차가 얼마나 커지거나 작아지는지 평가

  • Mean Squared Error : MSE
    • 실제 값과 추정 값의 차이
    • regression에서 잘 사용됨
  • cross entropy function
    • 두 분포 간의 차이를 나타내는 척도
    • classification에 잘 사용됨

Vanishing gradient

여러 은닉 계층으로 구성되어 활성화 함수에 따라 경사도 소실 발생 가능성 존재

→ sigmoid 같은 경우 값이 커질수록 미분 값은 0에 수렴 ⇒ 가중치 update가 안됨

⇒ ReLU 사용 ⇒ 0 이상의 경우 그 값을 그대로 가져와 소실 위험 X

vanishing gradient

 

ANN의 보완을 위해 은닉층을 확대한 것이 DNN이며 이를 응용하여 CNN, RNN, LSTM, GRU 등으로 발전함


RNN

순환신경망 : Recurrent Neural Network

시계열 또는 순차 데이터를 예측하는 딥러닝 신경망 아키텍처

전통적 신경망들은 입력된 데이터에 대해서만 동작하기 때문에 연속적 데이터를 처리하기 어렵다

재귀 : 자기 자신을 참조함, 현재 결과가 이전 결과와 연속성을 가짐

 

ex) 글자나 문장을 완성해주는 알고리즘

      문장의 경우 앞, 뒤 데이터 간 연관성 O

       h,e, l 이 연속되어 등장한 후에는 l이 나올 확률이 크고 그 다음에는 o가 나올 확률이 크다

       동해물과 → 백두산이

 

이처럼 앞 뒤 데이터 간 연관성이 있는 데이터셋에 사용되는 모델

 

원리

ANN과 동일하게 input, hidden, output layer로 구성

**각 은닉층이 이전 데이터를 참고하도록 서로 연결되어있다

아주 간단하게 설명하면 입력값 Xt에 대해 다음 값 Xt+1은 Xt+Ht로 발생

 

 

→ 하지만 RNN도 ANN과 마찬가지로 깊은 신경망을 가져가게되면

    여러 문제가 발생하기 때문에 장단기 메모리 모델들이 등장함

 

응용 분야

vector to sequence : 첫 타임 스텝에서 하나의 입력만 받아 시퀀스를 출력

이미지를 보고 자막을 다는 image captioning에 활용됨

CNN을 통해 이미지에서 단어 추출, RNN을 통해 단어 → 문장 구성

 

sequence to vector : 입력으로 시퀀스를 받아 하나의 벡터로 출력

      소비자의 상품평을 긍정/부정으로 판별하는 sentiment classification에 활용

sequence to sequence : 시퀀스를 입력받아 시퀀스 출력하는 네트워크

      주식 가격, 시계열 데이터 예측에 활용됨

Delayed sequence to sequence

      자동 번역에 활용됨


 

CNN

합성곱신경망 : Convolution Neural Network

  • 합성곱 필터를 이용해 신경망 동작 수행
  • 전반부 : convolution layer - 컨볼루션 연산을 수행하여 feature extraction
  • 후반부 : neural network - 특징을 이용해 분류

 

feature extraction

  • 처음에 가장 기초가 되는 특징 확인 ⇒ 점점 더 세부적인 사항으로 특징 추출 진행

 

convolution

더보기

convolution

특정한 높이, 너비를 갖는 filter(=kernel)를 stride 기준으로 이동해가며 입력 데이터에 적용

 

ANN의 신경망 구조 앞에 피쳐 추출해주는 네트워크 추가한 것이 CNN

 

전체 정리

즉, ANN은 인간의 신경망을 본따 만든 artificial neural network

이때 ANN의 hidden layer을 깊게 만든 것이 Deep neural network : DNN

      single layer perceptorn:SLP에서 이를 여러 개 쌓아서 multi-layer perceptron:MLP으로 만듦

      ANN ~= DNN = MLP

 

ANN의 구조 앞에 convolution network를 추가해 feature들의 특징을 뽑아낸 것이 CNN

CNN = convolution layer + ANN

ANN의 hidden layer들을 서로 연결하여 과거 상태에 따른 현재 상태 변화를 나타낸 것이 RNN

      주로 시계열 데이터나 순차적 데이터 처리

'DL' 카테고리의 다른 글

파이토치를 이용한 딥러닝 소개  (1) 2024.03.23
[논문 리뷰] U-Net: Convolutional Networks for Biomedical Image Segmentation  (1) 2024.02.28
[yolov5] 성능향상일지  (0) 2023.10.16
[AI 단어]  (0) 2023.10.14
[object detection]  (0) 2023.10.09