Machine Learning/Deep Learning10 🤗 Transformers - CLIPModel fine-tuning 앞서 image classification을 하는 예시를 통해 🤗 Transformers의 CLIPModel의 사용법을 알아보았다. - 참고 이번에는 CLIPModel을 custom dataset에 맞춰 fine-tuning하는 예제에 대해 알아보도록 하겠다.(전체 코드는 여기에서 살펴볼 수 있다) 개요데이터모델을 훈련시키기 위해서 image-text pair 데이터가 필요하다.여기서는 CIFAR10 데이터셋을 사용할 것이고, image의 label을 통해 text를 생성하여 pair 데이터를 만들어 사용할 것이다. 이 포스팅에서는 CIFAR10 데이터셋을 사용하였지만 이미지 사이즈도 작기도 하고 class도 10개로 매우 적기 때문에 실제로는 fine-tuning을 적용하기엔 부적합하다.예시를 보여주.. 2024. 8. 15. 🤗 Transformers - CLIPModel을 사용한 Image Classification CLIP(Contrastive Language-Image Pretraining) 모델은 multi-modal(text, image) embedding 모델로Contrastive Learning를 사용하여 text와 image를 같은 공간에 임베딩할 수 있게하는 모델이다. CLIP 모델의 흥미로운 점은 Contrastive Learning를 통해 학습한 모델이,image classification task에 있어서 zero-shot 성능이 탁월하다는 점이다. 이번 포스팅에서는 image classification 예제를 통해 🤗 Transformers CLIPModel의 사용법을 익혀보도록 하겠다. 코드는 여기에서 확인할 수 있다. 개요먼저 어떻게 image classification을 진행할지를 살.. 2024. 8. 14. Various Normalizations on CNN Normalization 기법은 Batch normalization 부터 시작하여 다양하게 분화되고 사용되고 있다.이러한 normalization 기법들이 CNN에서 어떻게 적용되는지 확인해보도록 하자. 기본적으로 normalization은 feature들에 대해서 scaling을 해주는 것이다.그리고 각 기법에 따라 어떤 feature를 대상으로 normalization을 할지가 달라지게 된다. CNN은 convolutional filter를 통해서 이미지로부터 여러 feature map을 얻게된다. CNN에서의 normalization은 이 feature map의 값에 대해서 적용한다.feature map에 대해 각각 normalization이 어떻게 적용되는지를 시각화해보면 아래와 같다. Bat.. 2024. 8. 7. CNN Filter Visualization DNN(Deep Neural Network)은 성능면에서는 이미 검증이 된 머신러닝 기법이다.하지만 DNN이 어떠한 결론을 내렸을 때 어떠한 과정을 통해 그러한 결론을 내렸는지를 이해하는 것도 중요하다. 이번 포스팅에서는 CNN이 이미지에서 어떻게 물체를 인식하는지를 확인하기 위해 CNN 필터가 반응하는 패턴을 시각화하는 방법에 대해 알아보도록 하겠다. (예제 코드는 여기에서 확인할 수 있다) Concept먼저 필터가 어떤 패턴에 반응하는지를 확인하려면 어떻게 해야할까?필터의 출력인 활성화 값을 최대화시키는 이미지 데이터를 찾으면 된다.그 이미지는 필터의 패턴에 가장 많이 반응하는 것이기 때문에 해당 필터의 패턴을 나타내는 이미지라고 볼 수 있을 것이다. 그러면 활성화 값을 최대화시키는 이미지 데이터.. 2024. 6. 16. 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. 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. 이전 1 2 다음