cnn

· 인공지능
합성곱 신경망 28 x 28 크기의 흑백 이미지와 3 x 3 크기의 커널 10개로 합성곱을 수행한다. 그런 다음 2 x 2 크기의 최대 풀링을 수행하여 14 x 14 x 10로 특성맵의 크기를 줄인다. 이 특성 맵을 일렬로 펼쳐서 100개의 뉴런을 가진 완전 연결층과 연결 시킬 것이다. 정방향 계산 이번에 구현할 합성곱 신경망 클래스는 ConvolutionNetwork이다. 합성곱과 렐루 함수 그리고 풀링이 적용되는 부분을 주의깊게 보면 된다. MultiClassNetwork 클래스의 forpass() 메서드에 있던 z1, a1, z2를 계산하는 식은 그대로 두고 그 앞에 합성곱과 풀링층을 추가하여 코드를 작성해 보자. class ConvolutionNetwork(MultiClassNetwork): de..
· 인공지능
렐루 함수 은닉층에 시그모이드 함수를 활성화 함수로 사용했다. 출력층은 이진 분류일 경우에는 시그모이드 함수를 사용하고, 다중 분류일 경우에는 소프트맥스 함수를 사용했다. 렐루 함수는 주로 합성곱층에 적용되는 활성화 함수로, 합성곱 신경망의 성능을 더 높여준다. 렐루 함수는 0보다 큰 값은 그대로 통과시키고 0보다 작은 값은 0으로 만든다. 렐루 함수 구현 넘파이의 maximum() 함수를 사용하면 간단하게 구현할 수 있다. import numpy as np def relu(x): return np.maximum(x, 0) x = np.array([-1, 2, -3, 4, -5]) relu(x) 텐서플로가 제공하는 렐루 함수는 relu()이다. 출력은 Tensor 객채이므로 numpy로 변환해야 한다. ..
· 인공지능
풀링 합성곱 신경망에서는 특별히 합성곱이 일어나는 층을 합성곱층, 풀링이 일어나는 층을 풀링층이라 한다. 합성곱층과 풀링층에서 만들어진 결과를 특성 맵(feature map)이라고 부른다. RGB 컬러 채널을 가진 입력 이미지가 합성곱층과 폴링층을 거치면서 변환되는 과정을 보자. 입력이 합성곱층을 통과할 때 합성곱과 활성화 함수가 적용되어 특성 맵이 만들어진다. 그런 다음 특성 맵이 풀링층을 통과하여 또 다른 특성 맵이 만들어진다. 이렇게 합성곱층 뒤에 풀링층이 뒤따르는 형태는 합성곱 신경망의 전형적인 모습이다. 특성 맵을 스캔 하며 최댓값을 고르는 모습을 나타낸 것이다. 이를 최대 풀링(max poolling)이라고 한다. 폴링 영역의 크기는 보통 2 x 2를 지정한다. 일반적으로 스트라이드는 풀링의 ..
hvv_an
'cnn' 태그의 글 목록