상세 컨텐츠

본문 제목

필기) 3과목-18 딥러닝 - CNN, RNN

빅데이터 분석 기사

by 37_KIM 2022. 8. 20. 01:38

본문

 

 

S3-02 분석 기법


1. 회귀 분석
2. 로지스틱 회귀 분석
3. 의사결정나무, SVM

4. 앙상블

5. 인공신경망, 딥러닝

6. 연관분석

7. 군집분석

 

 

6-8 Deep Learning Models - CNN

  • CNN

- Convolution Neural Networks, 합성곱 신경망

- 이미지 데이터 사용

- classification, localization, object detection, instance segmentation

- Convolution Layer(Convolution, Pooling), Fully Connected Layer로 구성

  • Single Object (CAT)

Classification : 이 그림이 무엇인지 맞추는 것 ex) 고양이

Classification _ Localization : 고양이인데 위치까지 표시 (네모모양으로 영역표시)

 

  • Multiple Object (CAT, DOG, DUCK)

Object Detection : 고양이 강아지 오리의 이름과 위치정보를 찾아주는 것

Instance Segmentation : 구분되는 테두리를 찾아주어 조금 더 정교한 모양을 볼 수 있다

 

  • Object Detection 

Object Detection : 달리는 차 안에서 앞쪽에 있는 사물들이 무엇인지에 대해 분류 ex) 0.983의 확률로 이건 자동차야

 

 

6-9 CNN 구조

- Input Image : 이미지를 하나 입력으로 취합

- Convolutional Layers : Feature Extration을 수행하는 layer

    - Convolution Layer + ReLU : Feature 추출, 의미 없는 특징을 zero 화 (ReLU는 활성화 함수)

    - Pooling Layer : Feature 개수 축소, 중요한 Feature만 유지(선택적 작업)

- Fully-Connected Layer : 비선형 조합 학습 및 분류 작업 수행

- Output Class : 작업의 결과

 

 

6-10 Convolution(합성곱)

- 5 * 5 Image에 주황색으로 표시된것이 우리가 사용할 Convolution에서의 필터 그리고 오른쪽 핑크색이 Convolution이 끝난 Feature (=> 크기가 작아졌다)

- 움직이면서 값을 하나씩 만들어낸다

- 필터의 모양은 주황색 칸안에 빨간색 숫자를 보면 알다시피 3*3 필터를 X자 모양으로 1을 곱해주고 합을 구하는 방식이다

- 필터 = 커널이라고도 한다 Filter = Convolution Kernel

 

- Input image를 Convolution Kernel 즉, 필터를 적용해서 특정성분만 뽑아낸다(=Feature map을 만든다)

- Convolution을 이해하기 위해서는 Image정보가 있을때 주황색 필터를 이동하면서  X자모양의 값을 계산해서 Convolution Feature값을 만든다  

 

정리

- Filter(=Convolution Kernel Matrix)를 적용하여 입력에 대해 특정 성분에 대해서만 뽑아내는 작업

 (=> 이미지에 필터를 적용해서 입력에대해 특정성분에 대해서만 뽑아내는 작업)

  예) - 사선정보, 직선 정보, 동그란 정보, 각진 정보 등 어떤 성분에 대해 학습하는것

        - 알고 싶은 특정 성분에 따라 Filter의 모양이 다름

        - CNN은 Filter를 갱신하면서 학습하는 것임

        (=> 처음에 필터들의 특정 의미가 없는 값으로 초기화 후 학습을 반복해가면서 커널들이 값을 찾게된다)

- Image에 특정 Filter를 Convolution한 결과를 Feature Map 이라고 함

- Feature Map은 Image에 적용된 Filter 개수 만큼의 Channel을 갖게 됨

        - n개의 Filter가 적용된 경우 n개 Channel !!

- Stride : Filter를 순회하는 간격, Stride가 2로 설정되면 2칸 씩 이동하면서 convolution 하게 됨

 

 

6-11 Paddding

- Convolution Layer에서 Filter를 사용하여 Feature Map을 생성할 때, 이미지 크기가 작아지는 것을 막기 위해 테두리에 Filter 크기를 고려하여 특정 값(일반적으로 0)으로 채우는 작업

- 5 * 5 이미지에 3 * 3 Filter를 사용하면 3 * 3 크기의 Feature Map이 만들어짐

- 즉, 5 * 5 이미지의 둘레에 0을 채워 7 * 7 이미지로 만들어서 3 * 3 Filter를 적용해 5 * 5의 Feature Map를 얻음

- Padding 작업을 통해 인공신경망이 이미지 외곽을 인식하도록 하는 효과도 있음

- 필수 작업은 아님

 

6-12 Pooling

- convolution :ayer의 Output을 Input으로 받아

- Feature Map의 크기를 줄이거나 특정 데이터를 강조하는 용도로 사용

- Max Pooling, Min Pooling, Average Pooling 등의 종류가 있음

- Pooling Size를 Stride로 지정하며, 이 크기에 따라 줄어드는 양이 결정됨

  ( Stride크기가 크면 클수록 많이 줄어들고, Stride가 작으면 크기의 변화가 많지 않다)

- 입력 데이터의 행, 열 크기는 Pooling 사이즈의 배수( 나누어 떨어지는 수 ) 이어야 함

  (만약 2 * 2의 필터고 stride도 2라고 한다면 위의 오른쪽 그림과 같고, 해당 그림의 크기에서 만약에 3 * 3필터를 쓰게된다면 stride를 2를 지정할 수 없다(크기를 벗어나기 떄문))

  https://www.youtube.com/watch?v=f1fXCRtSUWU

https://www.youtube.com/watch?v=U1KiC0AXhHg

 

 

 

6-13 Fully Connected Layer

- Flatten Layer : CNN의 데이터를 Fully Connected Neural Network의 형태로 변경하는 layer

    - 입력 데이터의 Shape 변경만 수행

    - 입력 Shape이 (8, 8, 10)이면 Flatten이 적용된 출력 Shape은 (640, 1)이 됨

- Softmax Layer : Flatten Layer의 출력을 입력으로 사용하며, 분류 클래스에 매칭 시키는 Layer

    - 분류 작업을 실행해 결과를 얻게 됨

    - 입력 Shape이 (640, 1)이고, 분류 클래스가 10인 경우 Softmax가 적용된 출력 Shape은 (10, 1)이 됨

      (Softmax는 분류클래스의 종류에 따라 Shape이 달라짐)

    - 이 떄, weight의 shape은 (10, 640)이며, Softmax Layer의 parameter가 6,400개 임

 

 

- Convolution Layer의 결과를 입력받아서 쭉 일열로 나열 ( 1차원으로 만든다) 그다음 소프트맥스를 통해 확률값을 얻는다 

 

 

 

6-14 Deep Learning Model - RNN

  • RNN

- Recurrent Neural Network, 순환 신경망

- 이전 상태가 다음 판단에 영향을 주는 경우 사용

- RNN, LSTM, GRU : 자연어, 음성신호, 주식과 같은 연속적인 데이터에 적합한 모델

    - RNN Cell : 출력을 다시 입력으로 사용하여 "기억"하도록 한 것

    - LSTM(Long Short- Term Memory) Cell : 장기, 단기 기억을 구분하여 저장하는 방식

    - GRU(Gated Recurrent Unit) Cell : LSTM의 간소화 버전 

- Sequence Generation : 책, 코딩, 음악, 춤, 영상 등을 학습하여 비슷하게 만들어 냄

- Image Captioning : image → Sequence of words

- Question Answering, Machine Translation

 

 

 

 

 

[출처] - EduAtoZ - Programming [빅데이터 분석기사 필기 3과목]

관련글 더보기