분류 전체보기154 Dropout vs Inverted Dropout Dropout은 overfitting을 막기 위한 regularization 방법이다.Dropout에는 크게 두 가지 방법이 있다고 볼 수 있다. Dropout여기서 설명하는 Dropout은 Dropout: A Simple Way to Prevent Neural Networks from Overfitting 논문에서 나온 형태이다.training time에는 drop_rate의 확률로 노드의 출력을 0으로 만든다.PyTorch, Keras에서는 drop 확률(PyTorch: p / Keras: rate)을 사용한다.원 논문에서 사용하는 확률 p는 drop할 확률이 아니라 다음 노드로 출력을 전달할 확률이다.test time에는 출력을 (1 - drop_rate) 만큼 곱해주어 training time .. 2024. 5. 21. Manifold와 뉴럴 네트워크 학습 뉴럴 네트워크에서 Manifold가 어떤 연관이 있는지 찾아보면서 이해한 부분에 대해 정리해본다.(여러 정보들을 살펴보며 나의 이해를 기준으로 정리하였기 때문에 잘못된 내용이 들어가있을 수도 있으니 너무 믿지는 말것)Manifold매니폴드 가설(manifold hypothesis)은 고차원의 데이터가 사실은 더 낮은 차원의 구조인 매니폴드(manifold) 위에 있다고 주장하는 가설이다.딥러닝 모델은 학습을 통해 주어진 데이터에 대한 잠재 매니폴드(latent manifold)를 학습하여 데이터의 본질적인 특성을 이해할 수 있게된다. (manifold learning) 매니폴드를 설명할 때 가장 많이 나오는 스위스 롤 형태의 데이터를 예로 설명하면,3차원으로 복잡하게 표현되어있는 데이터가 아래와 같이 2.. 2024. 5. 20. Classification task에서 Cross-Entropy classification task에서는 loss function으로 Cross-Entropy을 주로 사용한다. binary classification일 때는 이 BinaryCrossentropy를 사용하고multi-class classification인 경우엔 CategoricalCrossentropy를 사용하게 되는데,명확하게 차이에 대한 이해 없이 기계적으로 사용하기도 하였다. 이번 포스팅에서는 classification task에서 사용되는 Cross-Entropy에 대해서 알아보도록 하겠다.시작에 앞서- 이 포스팅에서는 정보이론적으로 Cross-Entropy를 다루지 않는다.- 코드 예제는 Tensorflow를 기준으로 진행한다. Multi-class classification 분류 문제에서 .. 2024. 5. 18. [Keras] model.predict(x) vs model(x) model.predict(x)batch로 데이터를 처리하기 때문에 큰 데이터에 대해서도 확장(scale)할 수 있는 방법이다.출력을 NumPy 배열로 리턴한다.코드는 대략적으로 아래와 같은 형태라고 볼 수 있다.def predict(x): y_batches = [] # batch 처리 for x_batch in get_batches(x): y_batch = model(x).numpy() # 미분이 불가능하다.그렇기에 GradientTape scope에서 gradient를 구할 수 없다.출력만 필요한 경우엔 model.predict(x)를 사용하도록 한다. model(x)tf.Tensor로 리턴한다.미분이 가능하며 model(x) 를 통해 gradient를 구할 수 있다. mode.. 2024. 5. 12. L1, L2 Regularization Regularization이란 학습 시 overfitting을 피하고 일반화 성능을 높이는 방법이다.즉, 훈련 데이터에 대해 분산은 낮추고 바이어스는 높이면서 모델의 일반화 성능을 높이는 방법이다. Regularization은 L1, L2 regularization, Dropout 등 여러 방법이 있는데,이번 포스팅에서는 L1, L2 regularization에 대해 알아보도록 하겠다. L1, L2 regularization은 weight에 대해 Penalty term을 추가하여 weight가 작아지도록 규제하는 방법이다.이 Penalty를 통해 weight가 훈련 데이터셋에 overfitting 되는 것을 막는다. Penalty term을 어떻게 계산하냐에 따라 L1, L2로 나뉘어진다. $$Loss.. 2024. 5. 7. Non zero-centered activation function과 학습 비효율 CS231n 강의에서 나온 Sigmoid의 non zero-centered한 성질로 인한 학습 비효율에 대해 정확하게 이해하기 위해 정리한다. Sigmoid function의 특징으로는 non zero-centered 라는 점이고, 출력이 항상 양수로 나온다는 점이다. Sigmoid function을 activation function으로 사용했을 때, 학습에 어떤 영향을 끼칠까? 다음과 같은 단순한 형태의 네트워크가 있다고 하자.그리고 위 그림 1에서 색칠한 영역을 자세히 살펴보면 아래와 같다.입력 $x_{1}과 x_{2}$는 앞 layer의 Sigmoid 출력이기 때문에 항상 양의 값을 갖게된다. 그리고 경사 하강을 이용한 weight의 update 수식은 아래와 같다.$$ W \leftarr.. 2024. 5. 1. 이전 1 2 3 4 5 6 7 8 ··· 26 다음