분류 전체보기154 CNN Filter Visualization DNN(Deep Neural Network)은 성능면에서는 이미 검증이 된 머신러닝 기법이다.하지만 DNN이 어떠한 결론을 내렸을 때 어떠한 과정을 통해 그러한 결론을 내렸는지를 이해하는 것도 중요하다. 이번 포스팅에서는 CNN이 이미지에서 어떻게 물체를 인식하는지를 확인하기 위해 CNN 필터가 반응하는 패턴을 시각화하는 방법에 대해 알아보도록 하겠다. (예제 코드는 여기에서 확인할 수 있다) Concept먼저 필터가 어떤 패턴에 반응하는지를 확인하려면 어떻게 해야할까?필터의 출력인 활성화 값을 최대화시키는 이미지 데이터를 찾으면 된다.그 이미지는 필터의 패턴에 가장 많이 반응하는 것이기 때문에 해당 필터의 패턴을 나타내는 이미지라고 볼 수 있을 것이다. 그러면 활성화 값을 최대화시키는 이미지 데이터.. 2024. 6. 16. reduce를 언제 사용할 수 있을까 Python의 functools.reduce는 Iterable 데이터에 2개의 인자를 갖는 함수를 누적하여 적용해서 결과를 하나로 만드는 함수이다.reduce는 Java, Javascript, Elixir 와 같은 고수준 언어에서 제공되는 functional 함수/메서드이다.이 글은 단지 Python의 reduce를 기준으로 설명하지만 전반적인 지식은 Python에만 국한되지 않는다. 간단한 예제로 두 수를 받아 그 합을 리턴하는 함수 add가 있다고 했을 때 int list에 대해 add 함수를 누적해서 적용하는 코드를 아래와 같이 reduce를 사용하여 만들 수 있다.from functools import reducedef add(a: int, b: int): print(a, b) ret.. 2024. 6. 5. 앙상블 기법 앙상블 기법은 여러 개의 다른 모델들의 예측 결과를 합쳐서 더 좋은 예측을 만드는 기법이다. 앙상블 기법에서 바탕이 되는 가정은 서로 독립적으로 훈련된 모델들이 각자 다른 장점을 갖는다는 것이고,각 모델들은 예측을 만들기 위해 데이터를 각자 조금씩 다른 관점에서 바라본다. 즉, 모델의 다양성이 앙상블 기법의 핵심이다.반대로 말하면 모든 모델들이 동일한 편향을 갖는다면 이들을 앙상블한 모델 역시 동일한 편향을 갖게될 것이다.그렇기에 각기 다른 알고리즘으로 모델들을 학습시키면 모델들이 서로 독립적이기 때문에 앙상블 모델이 기존의 모델들 보다 더 높은 성능을 갖게된다. 앙상블 기법이 확률적으로 성능을 향상시킬 수 있는지 예시를 통해 확인해보자.정확도가 아래와 같은 3개의 독립적인 classifier 모델이 .. 2024. 6. 2. 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: $\frac{\text{FP}}{\text{FP} + \text{TN}}$실제 negative 중에서 positive로 잘못.. 2024. 5. 23. 이전 1 2 3 4 5 6 7 ··· 26 다음