분류 전체보기(113)
-
[Topcoder] Interesting Digits(흥미로운 숫자)
문제 설명(Definition) 숫자 3과 9는 흥미로운 속성을 공유합니다. 3의 배수를 취하여 숫자를 합하면 3의 배수가 됩니다. 예를 들어 118*3 = 354 및 3+5+4 = 3의 배수인 12입니다. 마찬가지로, 9의 배수를 선택하고 숫자를 합하면 9의 배수가 됩니다. 예를 들어 75*9 = 675 및 6+7+5 = 9의 배수인 18입니다. 이 속성이 중요한 숫자를 호출합니다. 0과 1은 속성이 사소한 값으로 고정합니다. 한 기저에 관심 있는 숫자가 다른 기저에 관심이 있는 것은 아니다. 예를 들어, 3은 10진수에서는 흥미롭지만 5진수에서는 흥미롭지 않습니다. 베이스가 지정되면 해당 베이스에 대한 모든 관심 있는 숫자를 증가하는 순서로 반환하는 것이 작업입니다. 특정 숫자가 흥미로운지 여부를 확..
2023.02.12 -
[밑바닥딥러닝] 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 -
[밑바닥딥러닝] 14. 과대적합(Overfitting) 대응 - 규제, 드롭아웃
본 게시글은 한빛미디어 『밑바닥부터 시작하는 딥러닝, 사이토 고키, 2020』의 내용을 참조하였음을 밝힙니다. 과대적합(Overfitting)은 모델의 표현력이 복잡해지거나, 훈련 데이터 수가 적을 때 주로 발생한다. 모델이 과대적합되면 훈련 데이터에 대해서만 정확해지기 때문에 범용적인 모델을 만들 수 없어진다. 이번 장에서는 과대적합을 막기 위한 L1, L2 규제와 드롭아웃(dropout)이라는 방법에 대해서 알아보도록 하자. l1, l2 규제 출처 : https://medium.com/analytics-vidhya/l1-vs-l2-regularization-which-is-better-d01068e6658c L1 규제는 기존 손실값에 (람다(λ)값이 곱해진) 가중치의 절대값을 더한다. 가중치 중에 큰..
2021.10.16 -
[밑바닥딥러닝] 13. 모델 가중치의 초기화
본 게시글은 한빛미디어 『밑바닥부터 시작하는 딥러닝, 사이토 고키, 2020』의 내용을 참조하였음을 밝힙니다. 좋은 모델을 만들기 위해서는 모델 가중치를 처음에 적절히 설정하는 것이 중요하다. 가중치를 처음 초기화할 때 고르게 분포시키지 않고, 한쪽에 치우치게 하면 어떻게 될까? 위는 활성화 함수로 시그모이드 함수를 가진 모델의 가중치 초기화에 표준편차를 1로 설정했을 때 각 층에 나타난 저장된 활성화 값들을 나타낸다. 시그모이드 함수에 의해 0이나 1에 값이 쏠려있는데 학습 시 역전파의 기울기 값이 점점 작아지다 사라지는 기울기 소실 현상이 발생할 수 있다. 표준편차를 0.01로 작게 설정하면 위와 같이 된다. 대부분의 값이 0.5로 편중되어 있는데, 이 역시 모델의 표현력 관점에서 부정적인 현상이다...
2021.10.16