11-2. CNN (Convolutional Neural Networks) - Max pooling and others

2022. 5. 6. 11:31·AI/머신러닝(딥러닝) 정리

이번장에서는 cnn에 사용되는 연산 중 하나인 pooling이라는 것을 배우게 될 것이다.

CNN을 보면 알수 있지만 중간 중간 POOL이라는 연산 층이 보인다.

이걸 하는 이유 그리고 방법에 대하여 알아볼 것이다.

Pooling 이란 sampling 이라고도 하며 한개의 layer를 작게 resize를 하는 방법과 같은 것이다.

그럼 어떤 방식으로하냐는 것은 sampling을 하듯이 각각의 layer에서 값을 뽑아내는 방식과 같다.

따라서 한개의 layer를 pooling을 해주게 되면 이미지가 작아지게 되며 깊이 layer의 수는 유지가 된다.

가장 많이 사용하는 방식은 max pool이다. 일정 필터의 크기중에서 가장 큰 값만 뽑아내는 것이다.(참고로 여기에서도 stride 개념이 사용된다. 위에 예시는 stride가 2 라서 저렇게 나온것이다.)

pooling에는 mean 평균을 사용하는 필터 등 다양한 방식이 있으니 차후에 궁금하면 알아보자

요즘은 mean 도 많이 사용한다고 한다. 

당연히 저렇게 큰값만 뽑고 나머지는 버리니 이미지가 작아질 수 밖에 없다.

 

마지막으로 FClayer에 대하여 알아보겠다.

그럼 전반적인 cnn의 흐름은 conv라는 층을 거친 후 relu 연산을 거치고 conv ,relu , pool 과 같은 과정을 쭉 거치게 된다 그런후 마지막층 FC층에서 연산을 하게 되는 데 이러한 FC 층은 완전 연결 층이라고 하며 마지막 입력이 들어와 분류를 하는 작업을 진행하게 된다. 

끝

반응형

'AI > 머신러닝(딥러닝) 정리' 카테고리의 다른 글

12. RNN  (0) 2022.05.07
11-3. CNN case  (0) 2022.05.06
11-1. CNN (Convolutional Neural Networks)  (0) 2022.05.06
10-3. NN dropout and model ensemble  (0) 2022.05.05
10-2. Initialize weights in a smart way  (0) 2022.05.05
'AI/머신러닝(딥러닝) 정리' 카테고리의 다른 글
  • 12. RNN
  • 11-3. CNN case
  • 11-1. CNN (Convolutional Neural Networks)
  • 10-3. NN dropout and model ensemble
코딩 코딩 코오딩
코딩 코딩 코오딩
  • 코딩 코딩 코오딩
    코딩하는 누누
    코딩 코딩 코오딩
  • 전체
    오늘
    어제
    • 분류 전체보기 (491)
      • 생산성 (2)
        • 인텔리제이 (2)
      • 프로젝트 기록 (14)
        • git (2)
        • spring (3)
        • TestCode (2)
        • spring security (3)
        • 기타 (2)
        • MySQL (0)
        • Cloud (2)
      • 회고 (4)
      • Spring (6)
      • JPA (0)
      • DB (4)
        • MySql (2)
        • Redis (1)
      • Java (7)
        • JSP (1)
      • 잡담 (1)
      • CS (30)
        • 컴퓨팅 사고 (0)
        • 배열 (4)
        • 알고리즘 (8)
        • 메모리 (7)
        • 자료구조 (9)
        • 암호학 (2)
      • opencv (14)
      • AI (56)
        • 머신러닝 (2)
        • 딥러닝 (7)
        • tensorflow (3)
        • 머신러닝(딥러닝) 정리 (21)
        • 강화학습 (7)
        • 논문 읽기 (1)
        • 잡동사니 (1)
        • python AI (13)
        • 선형대수 (1)
        • 확률론 (0)
      • 알고리즘 공부 (177)
        • 그래프 이론 (0)
        • 다익스트라 (4)
        • 위상정렬 (3)
        • 신장트리-크루스칼 알고리즘 (4)
        • 플로이드 워셜 (3)
        • 이진탐색 (9)
        • 백트래킹 (11)
        • 부르드포스 (9)
        • 다이나믹 프로그래밍 (20)
        • BFS & DFS (24)
        • 그리디 (6)
        • 구현 (15)
        • 정렬 (3)
        • 기타 (62)
        • 수학? (1)
      • 코딩 (173)
        • 파이썬(python) (15)
        • c언어 (13)
        • 프로그래머스 lv1 (46)
        • 프로그래머스 lv2 (41)
        • 백준 - c++ (49)
        • Softeer (9)
  • 블로그 메뉴

    • 홈
    • 태그
    • 방명록
  • 링크

  • 공지사항

  • 인기 글

  • 태그

    정렬
    이미지처리
    코딩테스트
    코딩기초스킬
    큐
    BFS
    그리디
    인접리스트
    선택정렬
    c언어
    인접행렬
    에라토슽네스의 체
    DFS
    삽입 정렬
    알고리즘
    소수찾기
    다이나믹 프로그래밍
    if문
    코딩문제
    n진법 변환
    코딩
    프로그래머스
    코딩기초
    왜곡보정
    자료구조
    C언어 기초
    백준
    순차 탐색
    스택
    캘리브레이션
  • 최근 댓글

  • 최근 글

  • hELLO· Designed By정상우.v4.10.3
코딩 코딩 코오딩
11-2. CNN (Convolutional Neural Networks) - Max pooling and others
상단으로

티스토리툴바