Processing math: 100%
본문 바로가기

전체 글157

CNN에서 layer가 깊어질 수록 channel size를 키우는 이유 아래와 같이 많은 CNN 기반 모델들이 layer가 깊어질 수록 channel size를 점점 늘려주는 형태를 갖는다.물론 실험적으로 증명되었기 때문에 굳어진 하나의 패턴이겠지만 왜 이런 구조를 사용하게 되었을까?  그 이유와 관련해서는 크게 2가지 의견이 있다. 1. Convolution layer와 Pooling layer를 거치면서 줄어든 feature map의 만큼 정보의 양이 줄어드는데,    channel size를 늘려줌으로서 줄어든 정보의 양을 보상시켜준다는 것이다. 2. CNN에서 앞단의 레이어에서는 저차원적인 패턴(e.g. 엣지, 코너 등)을 학습하고, 뒷단의 레이어에서는 앞단의 패턴을 결합하여 통해 좀 더 고차원적인 패턴(e.g. 특정 물체의 부분, 신체 부위 등)을 학습하게 된다. .. 2024. 5. 31.
Dijkstra 알고리즘 문제 유형 Dijkstra 알고리즘은 최단 경로를 찾기 위한 알고리즘으로써, 특정 노드에서 다른 노드로의 최단 경로를 찾는 문제에서 사용된다.(모든 노드에서 다른 노드로의 최단 경로를 찾기 위해서는 Floyd Warshall 알고리즘을 사용해야한다) 이번 포스팅에서는 Dijkstra 알고리즘을 활용하는 문제의 유형에 대해 알아보도록 하겠다.(참고: Dijkstra 알고리즘 자체에 대해서는 다루지 않는다)모든 노드로의 최소 경로 찾기Network Delay TimeDijkstra 알고리즘 문제 중 가장 기본적인 유형으로, 이 문제를 풀기 위해서는 시작 노드에서 모든 노드로의 최단 경로를 알아야 한다. 추가적으로 이 문제에서는 모든 노드가 연결되지 않은 경우에 대해서도 다루고 있다.이는 각 노드로의 최소 거리를 확인하.. 2024. 5. 30.
ROC Curve ROC CurveROC(Receiver Operating Characteristic) Curve는 threshold에 대한 이진 분류기 모델의 성능을 표현한 것이다.위 ROC Curve 그래프를 보면 이는 threshold에 따른 false positive rate와 true positive rate에 대한 그래프이다.threshold: 이진 분류에 대한 임계값으로 이 값이 커질 수록 true라고 판단하는 비율이 줄어든다.e.g.) threshold가 0.3이면 true일 예측 확률이 0.3 이상이면 true라고 판단한다. (일반적으로는 0.5)false positive rate: FPFP+TN실제 negative 중에서 positive로 잘못.. 2024. 5. 23.
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.