관리 메뉴

너와 나의 스토리

Deep learning - ANN / CNN 본문

Data Analysis/Machine learning

Deep learning - ANN / CNN

노는게제일좋아! 2019. 8. 9. 11:45
반응형

NN(Neural Network) 설명

 

Deep learning은 ANN(Artificial Neural Network)를 기초로 하고 있다.

퍼셉트론에서 특정 임계치를 넘어야 신경이 전달되는 것을 Sigmoid function을 이용하여, weight을 업데이트 시켜 각 노드의 최적의 weight을 찾는 방식으로 작동 된다.

 

 

 

ANN(Artificial Neural Network)

 

ANN 문제점

- 학습과정에서 최적의 파라미터를 찾기 어렵다

  sigmoid 함수의 문제점 때문 (local minima를 global minimum으로 인식)

- Overfitting 문제

- 학습 시간이 너무 느리다

   은닉층 증가될 수록 연산량 급격히 증가

 

 

ANN 문제 개선

- overfitting -> initialize point algorithm (pre-training을 통해)

- local minima -> ReLU, Drop-out 기법

- 느린 학습 시간 -> 그래픽 카드의 발전 (GPU, CUDA) 

 

 

DNN(Deep Neural Network)

- 인공 신경망(ANN)의 은닉층이 2개 이상

- 컴퓨터가 스스로 분류레이블을 만들어 내고, 공간 왜곡, 데이터를 구분짓는 과정을 반복하여 최적의 구분선을 도출

- 많은 데이터와 박복학습 필요

- Pre-training 기법과 Back-propagation을 통해 현재 최적의 학습방법으로 사용

- DNN 응용 알고리즘 - CNN / RNN / LSTM / GRU

 

 

CNN(Convolutional Neural Network)

- 사람의 시신경 구조 모방한 구조 

- 시각 분야에 국한되지 않고 음성 인식, 자연어 처리 같은 다른 작업에도 많이 사용됨

- 데이터를 feature로 추출하여 이 feature들의 패턴을 파악하는 구조

- CNN algorithm- Convolution 과정과 Pooling 과정을 통해 진행된다.

  (Covolution Layer와 Pooling Layer를 복합적으로 구성하여 알고리즘 만듦)

 

Covolution 과정

- 데이터 특징 추출하는 과정

- 데이터에 각 성분의 인접 성분들을 조사해 특징을 파악

- 여기서 도출된 장을 Convolution layer이라고 부른다. 

- 즉, 이미지의 특정 부분을 추상화하여 특정 층으로 표현한다. (압축과정)

- 파라미터의 개수를 효과적으로 줄여준다

- Filter와 Activation Function으로 이루어져 있다

   ㄴ Filter: feature이 데이터에 있는지 없는지 검출하는 함수이다. (데이터가 있으면 1, 없으면 0)

   ㄴ Activation Function: feature의 유무를 수치화 하기 위해 비선형 값으로 바꿔주는 함수

   ㄴ Filter의 과정을 통해 1과 0으로 분류된 데이터가 수치화 된다.

 

Pooling 과정

- Convolution 과정을 거친 layer의 사이즈를 줄여주는 과정

- 데이터 사이즈 줄이고, 노이즈 상쇄시키고, 미세한 부분에서 일관적인 feature 제공

- 이 과정을 Sub-sampling이라고 부르며 Max-pooling / Average-pooling / L2-norm pooling 방법이 있다

- 보통 Convolution 과정에서 만들어진 feature들의 가장 큰 값만 가져와 사이즈를 줄인다

 

 

출처: Hands-On Machine Learning with Scikit-Learn & Tensorflow

출처: http://physics2.mju.ac.kr/juhapruwp/?p=1517

반응형
Comments