cnn(3)
-
[밑바닥딥러닝] 17. 합성곱 신경망(CNN) (3)
본 게시글은 한빛미디어 『밑바닥부터 시작하는 딥러닝, 사이토 고키, 2020』의 내용을 참조하였음을 밝힙니다. 이번 장에서는 지난 장에서 구현했던 합성곱, 풀링 계층을 이용해서 합성곱 신경망을 구현하고, 성능 평가를 진행하도록 하자. 합성곱 신경망 구현 class SimpleConvNet: def __init__(self, input_dim=(1, 28, 28), conv_param={'filter_num':30, 'filter_size':5, 'pad':0, 'stride':1}, hidden_size=100, output_size=10, weight_init_std=0.01): filter_num = conv_param['filter_num'] filter_size = conv_param['filte..
2021.10.19 -
[밑바닥딥러닝] 16. 합성곱 신경망(CNN) (2)
본 게시글은 한빛미디어 『밑바닥부터 시작하는 딥러닝, 사이토 고키, 2020』의 내용을 참조하였음을 밝힙니다. 풀링(Pooling) 풀링(Pooling)은 합성곱 연산을 마친 특징 맵에서 특정 윈도우마다의 최대값이나 평균값을 계산하여 또 하나의 특징맵을 만들어내는 과정을 말한다. 위 그림에서는 2x2 구간마다의 최대값을 뽑아내는 Max 풀링을 나타낸다. Max 풀링 외에도 해당 윈도우의 평균값을 계산하는 평균 풀링(average pooling)도 존재한다. 보통 풀링의 윈도우와 스트라이드는 같은 값으로 설정한다. 풀링 계층은 학습해야할 가중치가 없다는 특징이 있다. 합성곱 계층 구현 class Convolution: def __init__(self, W, b, stride=1, pad=0): self.W..
2021.10.19 -
[밑바닥딥러닝] 15. 합성곱 신경망(CNN) (1)
본 게시글은 한빛미디어 『밑바닥부터 시작하는 딥러닝, 사이토 고키, 2020』의 내용을 참조하였음을 밝힙니다. 이번 장에서는 합성곱 신경망(CNN)이란 무엇인지와 구체적인 메커니즘을 설명하고, 이를 파이썬 코드로 구현하여 손글씨 데이터셋을 통해 성능 평가까지 진행하도록 하겠다. 합성곱 신경망(CNN)이란? 출처 : https://towardsdatascience.com/a-comprehensive-guide-to-convolutional-neural-networks-the-eli5-way-3bd2b1164a53 합성곱 신경망(CNN)은 Convolution Neural Network의 준말로, 이미지 인식이나 음성 인식에서 흔히 사용되는 신경망이다. 위 그림에서 살펴볼 수 있듯이, 입력 데이터는 Conv..
2021.10.19