GOAL - 지난 포스팅에 이어 정확도 그래프를 개선하려고 해보았고 이번에는 Transfer Learning을 이용하여 Resnet50으로 학습을 하여 정확도 개선을 해보려고 합니다. 1. 중간에 뚝 떨어지는 정확도 개선 2. 학습이 계속되고 있는 것으로 보여 epochs 수를 더 늘려봄 3. 정확도 상승 방법 구현 Transfer Learning (전이 학습) - 일반적으로 CNN 기반의 딥러닝 모델은 제대로 훈련시키려면 많은 수의 데이터가 필요합니다. 하지만 많인 데이터 셋을 얻는 것은 일반적으로 쉽지 않은 일입니다. 이러한 어려움을 해결한 것이 전이 학습입니다. 전이 학습이란 이미지 넷과 같이 아주 큰 데이터셋에 훈련된 모델의 가중치를 가지고 와서 우리가 해결하고자 하는 과제에 맞게 재보정해서 사용..
분류 전체보기
GOAL - 지난 포스팅으로 프로젝트를 마무리하려고 했는데 정확도 그래프를 조금 더 괜찮게 만들고 싶어서 이 점을 개선하려고 합니다. 1. 중간에 뚝 떨어지는 정확도 개선 2. 학습이 계속되고 있는 것으로 보여 epochs 수를 더 늘려봄 3. 정확도 상승 방법 구현 1. 중간에 뚝 떨어지는 정확도 개선 - 보여드린 정확도 그래프에서 보시는 것처럼 뚝 떨어지는 구간이 있고 그것을 없애기 위해 여러 가지 방법으로 해보려고 했습니다. optimizer의 lr을 낮춰 보거나 weghit dacay 값을 낮게 주는 것으로 학습해보았습니다. 1-1 optimizer.Adam의 lr을 절반으로 낮춰서 학습 - optimizer = Adam()의 기본 lr은 0.001입니다. 그래서 절반으로 낮춰서 학습을 시켜보았습..
GOAL - 생성 모델링 중 오토인코더가 무엇인지 알고 작동 방법을 알아본다. - 변이형 오토인코더를 MNIST 데이터 셋으로 간단하게 구현시켜 확인 오토인코더(AutoEncoder)란? - 오토인코더는 인코더와 디코더로 이루어진 신경망 - 인코더(encoder) 네트워크 : 고차원 입력 데이터 -> 저 차원 표현 벡터(representation vector)로 압축 - 디코더(decoder) 네트워크 : 주어진 표현 벡터 -> 원본 차원으로 압축 해제 - 위의 그림은 오토인코더의 예시를 만들어 보았습니다. 원본 입력은 인코더와 디코더를 지나서 재구성된 이미지로 출력되며 네트워크는 입력과 재구성된 이미지 사이의 손실을 최소화하는 가중치 매개변수를 찾기 위해 훈련합니다. - 표현 벡터라는 것은 원본 이미지..
이때까지 딥러닝을 공부하면서 사용했던 데이터셋들은 Tensorflow에서 제공해주는 CIFAR10만 사용하였습니다. 이번에는 데이터 수집 - 전처리 - 모델링 과정으로 직접 구현해보겠습니다. GOAL - 직접 데이터를 크롤링하여 데이터 셋을 만들고 전처리 과정 경험 - 직접 만든 데이터를 가지고 CNN 분류 모델 구현 Preprocessing - 남녀의 얼굴을 크롤링하고 자르는 작업을 했습니다. 이제 이 데이터 셋에 라벨링 작업을 해줘야 합니다. one-hot 인코딩으로 [1, 0] 이면 남자, [0, 1] 이면 여자로 라벨링 했습니다. 코드) data_dir = "/content/drive/MyDrive/Colab Notebooks/gender_classification/dataset" categori..
GOAL - VGGNet의 구조를 이해 - Tensorflow를 이용하여 VGG16으로 CIFAR10 데이터셋을 이용하여 분류해 보자 VGGNet - VGGNet은 2014년 ILSVRC에서 2위를 한 Oxford 대학교의 VGGNet 팀에서 만든 모델입니다. - 구조적인 측면에서 굉장히 간단한데 성능은 훌륭하며 변형을 시켜가면서 테스트하기에 좋아 많이 사용되고 있습니다. - AlexNet과 무엇이 다른지 확인하고 VGGNet16을 구현해 보도록 하겠습니다. 네트워크의 깊이(depth) - 앞서 설명한 AlexNet의 Layer의 수는 8개였습니다. 그에 비해 VGGNet16은 Layers수가 16개로 더 깊어진 것을 볼 수 있습니다. - 망이 깊어지면 출력단에서 하나의 픽셀이 담고 있는 정보의 양이 많..
이때까지 딥러닝을 공부하면서 사용했던 데이터셋들은 Tensorflow에서 제공해주는 CIFAR10만 사용하였습니다. 이번에는 데이터 수집 - 전처리 - 모델링 과정으로 직접 구현해보겠습니다. GOAL - 직접 데이터를 크롤링하여 데이터 셋을 만들고 전처리 과정 경험 - 직접 만든 데이터를 가지고 CNN 분류 모델 구현 DATASET - 먼저 남자와 여자 얼굴 사진으로 데이터 셋을 만들기 위해 크롤링을 했습니다. - 먼저 구글로 크롤링을 하였고 하기 전에 구글 드라이브를 운영체제에 맞게 다운 받아줘야 합니다. https://chromedriver.chromium.org/downloads - 코드는 조코딩님의 코드를 참고하여 필요한 부분을 바꿨습니다. from selenium import webdriver ..
GOAL - Alexnet의 구조를 이해 - Tensorflow를 이용하여 AlexNet으로 CIFAR10 데이터셋을 이용하여 분류해보자 AlexNet - AlexNet은 2012년 ImageNet 데이터를 기반으로 한 ILSVRC(ImageNet Large Scale Visual Recognition Challenge) 대회에서 캐나다의 토론토 대학이 차지하는데 당시 논문의 첫 번째 저자가 Alex Khrizevsky이며 이 분의 이름을 따서 AlexNet이라고 부르게 되었다. - SuperVision이 AlexNet을 의미하며 다른 팀들과 차이가 많이 나는 것을 볼 수 있다. - 이 대회 이후 ILSVRC에는 딥러닝을 이용한 모델들이 주를 이뤘으며 더 좋은 성능을 보이게 된다. - 구조적 관점을 보았..
이번 포스팅은 OpenCV에서 Camshift를 이용한 Object Detection에 대해 알아보겠습니다. 포스팅 관련 내용은 아래에서 출처를 얻어 사용하였습니다. https://docs.opencv.org/4.5.2/d7/d00/tutorial_meanshift.html GOAL - Meanshift를 보완하여 만든 Camshift에 대해 이해하고 알아보겠습니다. Camshift - 앞서 Meanshift의 결과를 보시면 추적하는 윈도우의 크기가 고정되어 객체를 추적하여 물체의 크기와 상관없이 결과가 나오는 것을 볼 수 있었습니다. 대상의 크기와 위치에 따라 창을 조절해야 하는데 이것을 보완하기 위해 만든 것이 바로 Camshift입니다. - 그림을 먼저 보고 설명하겠습니다. - CAMshift란 C..