cnn
-
CNN 구현, 시각화AI/밑바닥부터 시작하는 딥러닝 2024. 7. 13. 15:11
- 사진은 간단한 CNN 네트워크 예시로, Convolution-ReLU-Pooling-Affine-ReLU-Affine-Softmax 순으로 흐른다. import sys, ossys.path.append(os.pardir) # 부모 디렉터리의 파일을 가져올 수 있도록 설정import pickleimport numpy as npfrom collections import OrderedDictfrom common.layers import *from common.gradient import numerical_gradientclass SimpleConvNet: def __init__(self, input_dim=(1, 28, 28), conv_param={'filter_nu..
-
CNN 풀링 계층AI/밑바닥부터 시작하는 딥러닝 2024. 7. 13. 15:04
풀링은 세로, 가로 방향의 공간을 줄이는 연산이다. - 위의 사진은 2X2 최대 풀링(max pooling)을 스트라이드 2로 처리하는 순서이다. - 풀링의 윈도우 크기와 스트라이드는 같은 값으로 설정하는 것이 보통이다. - 평균 풀링(average pooling)도 있는데, 대상 영역의 평균을 계산하는 연산이다. 풀링 계층의 특징1. 학습해야 할 매개변수가 없다.2. 채널 수가 변하지 않는다. - 채널마다 독립적으로 계산하기 때문에, 입력 데이터의 채널 수 그대로 출력 데이터로 내보낸다. 3. 입력의 변화에 영향을 적게 받는다(강건하다). - 입력 데이터가 조금 변해도 풀링의 결과는 잘 변화하지 않는다. 합성곱 연산의 필터 처리 상세 과정- 필터를 세로로 1열로 전개하고, im2col이 전개한 데이터..
-
CNN 합성곱 계층AI/밑바닥부터 시작하는 딥러닝 2024. 7. 13. 14:58
- CNN(Convolution Neural Network)은 합성곱(Convolution) 연산을 사용하는 ANN(Artificial Neural Network)의 한 종류다. - 합성곱(Convolution)을 활용하면 데이터의 형상을 유지할 수 있다(Affine계층에서는 1차원 데이터로 평탄화시켰다.). 즉, 3차원 속에서 의미를 갖는 본질적인 패턴을 고려할 수 있다. - 이미지 인식과 음성 인식 등 다양한 곳에서 사용된다. 특히 이미지 분야에서 딥러닝을 활용한 기법은 거의 다 CNN이 기초이다. 합성곱 연산- 합성곱 연산은 필터의 window를 일정 간격으로 이동해가며 입력 데이터에 적용한다. - 입력과 필터에서 대응하는 원소끼리 곱한 후 그 총합을 구한다(fused multiply-add, FM..