본문 바로가기
AI

DeepLearning : basic_model

by 월곡동로봇팔 2019. 10. 28.

Deep Learning 이란?

Deep_learning

DeepLearning에서 얘기하는 neuron, 뉴런이라고 불리는 unit이 단순하게 동작이 된다.

근데 어떻게 컴퓨터가 생각을 할 수 있을까?

  1. 신호 input이 있고 ( x ), 그 input에 weight 가 해당되는 시냅스가 신호를 받는다.
  2. 그리고 cell body에서 연산이 일어나고 통과되면서 bias가 더해진다.
  3. activation function에서 output이 나오게 된다.

이러한 과정들이 simple 단계에서는 신경망 구조가 simple하지만,

Deep learning 구조에서는 신경망구조가 deep 해지면서 여러 복잡한 연산들이 추가가 된다.


Deep Learning 구조

신경망 구조 : 단층 퍼셉트론 (Single Layer Perceptron)

SLP

단층은 첫 번째 그림처럼 구조를 가지고 있으며, 수식으로 풀어보면 오른쪽 그림이 된다.

 

w가 매개변수이기 떄문에 w를 x,y,z---라고 생각하게되면 이는 n차원에서 선형으로 차원을 나누는 형태가 된다.

따라서 단층 layer 일 때는 선형으로 차원을 나누게된다.

 

단층 퍼셉트론의 한계 : XOR

XOR

XOR 연산은 값이 두 개의 선으로 나뉘기 때문에, 단층 퍼셉트론의 특징인 선형 분류가 되지 않는다.

따라서 단층 퍼셉트론의 한계점이라고 얘기할 수 있다.

 

다중 퍼셉트론 (Multi-Layer Perceptron)

MLP

다중 퍼셉트론을 적용해서 weight들에 대한 W를 여러개를 곱해줌으로써 2차함수, 3차함수 --- n차 함수처럼 만든다.

따라서 단층 퍼셉트론에서 말했던 선형분류밖에 되지 않는다는 단점을 극복해낼 수 있다.

 

cf ) 다중 퍼셉트론의 단점 (overfitting)

아무래도 위의 XOR 연산을 정하는 함수처럼 n차 함수이기 때문에, 심하게 휘어져있다.

따라서 overfitting이 심각하다.


Deep Learning의 종류

CNN (Convolutional NN)

CNN

convolution은 두 개가 섞이다는 표현이다. 두 개의 연산, 산술이 섞여 값을 이끌어냄을 나타낸다.

가장 중요한 개념은 CNN은 이미지의 지역별 feature (중요하다고 생각하는 부분의 수치)를 뽑는 것이다.

100개의 data 중에서 10개로 줄여서 feature를 뽑기 때문에 차원을 축소해서 받고 이는 연산속도도 빠르게 진행이 가능하다.

이러한 이유 때문에 CNN은 pixel 단위로 이루어진 data인 사진에서 사물인식에 쓰인다. 

 

RNN (Recurrent NN)

RNN

recurrent, 전 데이터를 보고 현 데이터를 예측하며, sequence를 다루는 신경망이다.

따라서 연결적인 NN이므로 주로 문맥에 영향을 받는 자연어처리에 주로 쓰인다.

 

네트워크 구조의 발전 -> (ResNET, DenseNET)

ResNET, DenseNET

네트워크 구조의 발전으로 위와 같은 방법이 발전되었다.

overfitting이 적다.

 

GAN (Generative Adversarial Network)

GAN

"Data를 만들어내는" Generator와 만들어진 "data를 평가하는" Discriminator가 서로 대립적으로 학습해가며 성능을 점차 개선해 나가자는 개념

GAN 발전 예시

 

강화학습 (Reinforcement Learning)

Q-learning

Q-learning

현재 상태에서부터 먼 미래까지 가장 큰 보상을 얻을 수 있는 행동을 학습하게 한 것.

 

Q-learning + Deep Learning

  • action이 continuous 한 경우
  • Reward가 매우 sparse한 경우
  • Multi Agent 강화학습 모델

위의 경우 더 효율적으로 빠르게 학습할 수 있다.


Deep Learning 종류, 구조


Deep Learning이 각광받는 이유

  1. 대용량 데이터를 관리하기 편하게 빅데이터 관련한 플랫폼이 발전했기 때문입니다. -> memory와 storage 가격의 감소로 큰 dataset을 저장이 가능했고, network 기술의 폭발은 memory와 계산능력에 대해 발전을 주었고, cloud 저장소 및 컴퓨팅은 NN계층 및 node의 수를 증가시켰다.
  2. 훈련 과정에서 피쳐 추출을 통합하는 것이 가능해졌기 때문입니다. -> CNN과 같은 feature를 추출하여 효율적인 계산과 차원축소로 인해서 계산속도가 굉장히 빨라졌다.
  3. 개발 프로세스에서 성능 평가를 체계적으로 통합하기 때문에 이전에는 해결되지 않은 문제에 성공했습니다.         -> Kaggle 과 같은 comunity가 늘어남에 따라 발전속도가 점점 빨라졌다.

 

댓글