AI 허브
팔로워1명
주최대회0개
이미지에 상응하는 7가지 감정의 종류를 분류하는 Task이다. 해당 Task의 baseline으로 모델을 구축하여 학습을 하는데 주어진 baseline에서 conv2D, pooling, batchnorm 등을 추가하여 임의로 새로운 CNN 모델을 구축할 수 있었으며 임의로 새로 구축한 모델과 사전 학습된 모델을 load하여 사용한 것에서 성능을 비교할 수 있었다. 사전학습된 모델을 사용한 경우, fine-tuning으로 모델의 성능을 향상시키고자 하였다. 사용된 기법은 freeze로 학습되는 범위 및 특정 영역을 지정하고 dropout과 같은 normalize를 사용하여 성능을 향상한다. 또한, 파이퍼파라미터 튜닝으로 batch size, epoch, learning rate와 같은 값의 변경으로 모델의 성능을 비교할 수 있었다. data augmentation(rotation, flip, mix 등)을 사용하여 모델을 성능 추이를 비교할 수 있었다.하지만, baseline 자체의 성능에서 학습의 어려움이 있었고 성능 향상이 되지 못 한 것이 본 Task 수행에서 개선점이라 생각한다. 성능 향상을 위해 데이터에 대해서 보다 더 이해도를 높이고 모델 학습에 대한 고려를 해야 할 필요가 있다.
홍삼 X-ray 데이터에 상응하는 홍삼 품질을 상, 중, 하 3개의 클래스로 분류 하는 것이다. 해당 Task의 baseline으로 모델을 구축하여 학습을 하는데 주어진 baseline에서 conv2D, pooling, batchnorm 등을 추가하여 임의로 새로운 CNN 모델을 구축할 수 있었으며 임의로 새로 구축한 모델과 사전 학습된 모델을 load하여 사용한 것에서 성능을 비교할 수 있었다. 사전학습된 모델을 사용한 경우, fine-tuning으로 모델의 성능을 향상시키고자 하였다. 사용된 기법은 freeze로 학습되는 범위 및 특정 영역을 지정하고 fully connected layer에 dropout과 같은 normalize를 사용하여 성능을 향상한다. 또한, 파이퍼파라미터 튜닝으로 Batch size, epoch, learning rate와 같은 값의 변경으로 모델의 성능을 비교할 수 있었다.data augmentation(rotation, flip, mix 등)을 사용하여 모델을 성능을 비교할 수 있었다.해당 task의 데이터가 상대적으로 적기에 모델을 구축하는 방법에서 적확한 적용이 않은 것이 개선점이라 생각한다.
상위권에 비해 비교적 낮은 점수로 높은 등수를 하게 되었는데, 해결 과정을 공유합니다. 우선 해당 Task에 대한 이해가 먼저 필요한데,훈련 데이터에는 정상 데이터만 존재하고시험 데이터에는 정상과 이상데이터가 존재하는 경우입니다. 따라서 베이스라인의 경우 오토인코더를 활용해 입력과 출력이 같게 만들어, 만약 이 차이가 커진다면 이상 데이터로 판단하는 메커니즘을 활용했습니다. 따라서 훈련데이터를 활용해 정상 데이터의 임계 범위를 정할 수 있습니다. 보통 Q3-Q1을 IQR이라고 하고,Q3 + 1.5 * IQR을 이상치의 범위라고 보통 간주합니다.반대로도 작용할 수 있지만, Loss는 양의 값으로 증가하므로 양의 이상치만 판단했습니다.이 때 이상치도 많이 조절해봤습니다. 상위 99% 부터 75%까지 다 해봤지만 다이나믹한 성능향상은 없었습니다.무언가 메커니즘적으로 부족하다는 느낌을 많이 받았습니다.
2등을 하게 되어서 솔루션을 남깁니다. 저는 베이스라인이 XGBoost였지만, 칼럼의 수가 굉장히 많다는 것을 알고 비선형 문제로 해결하고 싶어 NN으로 해결하였습니다. 각 선형 레이어를 지나면서 relu 활성화함수를 이용하고,dropout을 이용해서 오버피팅을 방지했습니다loss는 크로스엔트로피를 사용하고, 옵티마이저는 아담을 사용했습니다. 비교적 쉬운 Task라고 생각하고, 칼럼의 수가 굉장히 많은데 이를 잘 반영하기 위해서 어떤 전략을 써야할 지 고민해볼만한 문제라고 생각합니다.
안녕하세요. 운좋게 1등을 한 것 같아 기분이 좋네요.저는 대부분의 Taks를 Pretrained 모델을 사용해서 해결했습니다. 기존 베이스라인은 모두 버리고, Classfication Task 이므로 ResNet50을 사용해서 문제를 해결하려고 하였습니다.하이퍼파라미터 튜닝을 진행하진 않았고, 모델의 파라미터를 계속 저장하면서 validataion loss가 제일 작은 값을 이용해서 inference를 진행했습니다.중간에 convert_to_rgb 함수를 이용해서 ResNet이 원하는 RGB 형태의 차원으로 Gray Scale의 화훼 이미지를 변환하는 작업만 수행하면 나머지는 쉽게 수행됩니다. validation의 중요성과, Pretrained model의 강력함을 알 수 있었던 Task였습니다…
모델은 기존의 베이스라인에서 제공한 XGBoost를 사용하였습니다. 하이퍼파라미터만 조정을 하였습니다. model = XGBClassifier( learning_rate=0.05, # 학습률 n_estimators=10000, # 부스팅 라운드 수 max_depth=8, # 트리의 최대 깊이 min_child_weight=0.4, # 최소 자식 가중치 gamma=0, # 노드 분할을 위한 최소 손실 감소량 eval_metric='mlogloss' # 다중 클래스 분류의 경우 'mlogloss' 사용더 쉽게, 깊게 트리를 생성 할 수 있도록 설정하여 더 많은 정보를 학습할 수 있게 조정했습니다.
모델 아키텍처베이스라인에 작성된 기존 모델에서 더 많은 특징 학습을 위해서 추가적인 컨볼루션레이어를 추가해주었습니다. Conv2d(32, , kernel_size=3, padding=1)BatchNorm2d를 사용하여 과적합을 막고 효율적인 학습이 이루어지도록 했습니다하이퍼파라미터 튜닝학습 에포크 수만 1에서 10로 증가시켜서 학습을 진행했습니다. 소감토론 게시판에 글을 올리신 다른 분들의 방법을 읽어보니 제 견문이 짧아서 단순하게 기존의 베이스라인을 수정해서 정확도를 높이려고 한게 아쉽다고 느꼈습니다.
인공지능 모델로 재활용품 이미지를 분류하는 것을 목표로 한 Task이다. 재활용품 이미지에 상응하는 label을 분류 예측하는 것이다. Task에 대한 솔루션 수행 시, 모델 아키텍처에 대한 것은 베이스라인으로 주어진 사전 학습된 ResNet34에서 다른 CNN 기반 모델(VGG, ResNet18, ResNet50, ResNet121, DenseNet121 등)의 적용과 Fine-tuning을 통해 적용된 모델의 학습이 되는 부분을 조정하였다. 예를 들어, freeze 되는 부분의 위치 및 영역의 범위를 변경하고 FC Layer 부분에 Dropout과 같은 Normalize를 적용하여 모델의 성능을 비교 실험하였다. 또한, 하이퍼파라미터 튜닝으로 batch size, epoch, learning rate와 같은 값의 변경으로 모델의 성능을 비교할 수 있었다. Accuracy 이외의 다른 평가 지표를 사용하지 못 하였는데 추후 이 부분은 개선점이라 생각한다.
모델 아키텍처모델 아키텍처의 경우 기존 베이스라인의 resnet34에서 resnet50의 predtrained된 모델로 변경하여 진행하였습니다. resnet50이 비교적으로 전체적인 task에서 효과적인 성능을 보인다는 것을 과거 경험을 기반으로 선정하여 변경하였으며, 실제로 resnet34를 통해 학습한 결과보다 더 높은 성능을 보였습니다. 하이퍼파라미터 튜닝기존 베이스라인의 learning rate의 경우 0.001로 비교적 빠르게 loss를 업데이트하도록 설계되어 있었습니다. 하지만 resnet50으로 layer를 수정하며, 모델이 더 잘 수렴하기 위해서는 learning rate를 0.0001로 변경하여 loss가 더 잘 수렴하도록 설계하여 학습을 진행하였습니다.pretrained 모델을 사용하였지만 새로운 데이터로 새롭게 학습하기 때문에, epoch를 20으로 늘려서 진행하였습니다. 소감과거의 경험을 기반으로 resnet50 모델이 전반적인 task에서 준수한 성능을 보인다는 것을 이번 테스크에서도 적용하여 실제로 뛰어난 성능을 달성하였습니다. 또한 learning rate 역시 모델 학습에 매우 중요한 요소라는 것을 이번 기회에 정확히 이해할 수 있었으며, 복잡한 모델의 많은 데이터일수록 learning rate를 적게 설정하여 모델이 천천히 학습하여 최적의 파라미터를 찾을 수 있도록 설계하는 것이 중요하다는 것을 이번 기회에 더 잘 알 수 있었습니다. 추가로 이러한 재활용품 분류 task는 현재 쓰레기 문제로 전세계에서 큰 문제로 동작하는데, 이러한 모델의 개발이 실제에도 이어져 사람에게 도움을 줄 수 있는 인공지능으로 동작할 수 있다는 기대에 더욱 관심있고, 흥미로운 테스크였습니다.이번 기회로 learning rate와 model의 선정의 중요성을 다시 한번 느끼게 되는 좋은 기회였습니다.
모델 아키텍처모델 아키텍처의 경우 기존 베이스라인의 deeplabv2에서 deeplabv3_resnet50의 predtrained된 모델로 변경하여 진행하였습니다. 추가로 기존의 predtrained된 모델의 마지막 layer를 수정하여 class 12개에 대해 예측할 수 있도록 수정하였습니다.하이퍼파라미터 튜닝pretrained 모델을 사용하였지만 새로운 데이터로 새롭게 학습하기 때문에, epoch를 50으로 늘려서 진행하였습니다. 소감새로운 데이터에 학습하여 진행하였지만, segmentation에서 성능이 꽤 준수한 pretrained 모델을 가져와 진행하였음에도 정확한 segmentation을 하지 못하는 것을 확인하였으며, 이는 segmentation이라는 테스크가 어려운 분야라는 것을 인지할 수 있었습니다. 추가로 이미지 classification에 비해 segmentation은 이미지의 픽셀 값에 따라 정확한 계산을 통한 학습이 중요하다는 것을 알게되었으며, 이를 위해 classification에 비해 비교적 복잡한 convolution 네트워크의 설계가 필요하다는 것을 이 task를 수행하면서 알 수 있었습니다. 평소 computer vison에서 object detection만 수행해봤지만, 이번 기회로 관심이 갔지만 해보지 못했던 segmentation에 대해 공부할 수 있어서 좋은 기회였습니다.
모델 아키텍처모델 아키텍처의 경우 기존의 layer에서 채널 수만 수정하였으며, loss가 더 잘 수렴할 수 있도록 조절하였습니다. 하이퍼파라미터 튜닝기존의 학습코드는 수렴하기에 너무 적은 epoch로 판단되어, 100epoch에 32 batchsize로 조절하여 수행하였습니다. 소감Convolution layer 없이 간단한 layer로 좋은 성능을 달성할 수 있다는 것을 확인할 수 있었습니다. 복잡하고, 무거운 layer보다 테스크에 맞도록 layer를 설계하는 것이 중요하다는 것을 알게 되었습니다. 추가로 모델이 충분한 학습을 위해 적절한 epoch를 찾는 것이 가장 중요하다는 것을 더욱 깨닫게 되는 테스크였습니다.추가로 baseline 대비 채널 수를 줄여서 더욱 적은 파라미터로 학습시켰지만, 오히려 성능이 증가하는 것을 확인하였고, 이를 통해 테스크에 맞는 적절한 채널의 layer가 필요하다는 것을 확인할 수 있었습니다. 하지만 이러한 간단한 layer로도 충분한 학습을 위해서는 많은 epoch가 필요하다는 것 역시 깨닫게 되었습니다.
애니메이션 (구름빵) 캐릭터 얼굴 생성데이터 증강 StyleGAN2-Ada아키텍처 변경 SWAGAN 으로 모델 변경. Lpips loss 추가.하이퍼파라미터 조정 Learning rate 조절 Epoch 증가소감 충분한 성능을 낼 수 있도록 학습시키기에 데이터셋이 적은 느낌이 들었음.
악천후 상황 속 자율주행을 위한 객체 탐지데이터 증강 RandomHorizontalFlip() Normalize([0.485, 0.456, 0.406], [0.229, 0.224, 0.225])아키텍처 변경 FasterRCNN_ResNet50_FPN_V2_Weights.COCO_V1 로 모델 변경.하이퍼파라미터 조정 Learning rate 조절 Learning rate scheduler 도입 Epoch 증가 Batch size 조절소감 충분한 성능을 낼 수 있도록 학습시키기에 데이터셋이 적은 느낌이 들었음. 시도해보지 못한 분야여서 모델 아키텍처를 많이 효과적으로 변경하지 못해 아쉬움.
모델 아키텍처 기존 모델에서 Conv2D레이어를 추가하고 중간중간 dropout, BatchNormalization을 추가하였습니다. 전처리데이터 전처리는 따로 진행하지않고 베이스라인의 코드대로 그대로 진행하였습니다. 후처리model.fit : 베이스라인에서는 따로 검증 데이터셋을 적용하지않아(주석처리) train set에서 8:2 비율로 validation 셋을 생성하여 학습을 진행하였습니다 모델 저장: EarlyStopping과 더불어 중간 Savepoint를 저장해 가장 최적의 성능일때의 모델을 저장했습니다. 하이퍼퍼라미터 튜닝Optimizer : Adam / Loss : Categorical CrossEntropyEarlyStopping : val_loss가 좋아지지 않을 경우 조기에 학습을 중단합니다. / 추가로 가장 성능이 좋았을때 모델을 중간중간에 세이브하였습니다.Batch size : 기존 32에서 64로 진행 소감베이스라인 코드가 Conv레이어가 하나도 적용되지않은 것을 보니 CNN없이도 어느정도 학습이 되었던것으로 보입니다. 이부분을 고려하지않고 무조건적으로 큰 모델을 불러와서 하려다보니 오히려 성능이 나오지않는것을 보았습니다. 데이터셋의 크기, 모델의 특성을 고려하였을때 너무 깊은 모델은 학습을 성공으로 이끌지 못했습니다. 다른 태스크 진행방식처럼 모델을 처음 깊게 만들고 점차 간결하게 줄여나가는 방식으로 진행하였으며, 빠르게 결과를 확인해가며 모델을 점차 수정했습니다. 결과적으로는 pretrained 모델 없이 간단한 CNN레이어 2~3개 구조로 모델을 구현하였으며, 비교적 괜찮은 성능을 얻었으나 더 나은 결과를 보이는데에는 한계가 있었습니다.
모델 아키텍처 # 모델 생성model = models.Sequential([layers.Conv2D(32, (3, 3), activation='relu', input_shape=(256, 256, 1)),layers.MaxPooling2D((2, 2)),layers.Conv2D(64, (3, 3), activation='relu'),layers.MaxPooling2D((2, 2)),layers.Conv2D(128, (3, 3), activation='relu'),layers.MaxPooling2D((2, 2)),layers.Flatten(),layers.Dense(256, activation='relu'),layers.Dense(9, activation='softmax') # num_classes에는 종류별 클래스 수를 설정하세요.])기존 모델에서 Conv2D레이어를 추가하고 중간중간 dropout, BatchNormalization을 추가하였습니다. 위의 코드는 베이스라인 코드 전처리데이터 증강은 실시했으나 오히려 성능이 떨어져 그대로 진행하였습니다. 데이터 전처리 : 이미지를 스케일에 맞게 조정하였습니다. 이부분 역시 베이스라인 코드를 그래도 사용하였습니다. batch_images = batch_images.astype('float32') / 255.0 후처리model.fit : 베이스라인에서는 따로 검증 데이터셋을 적용하지않아(주석처리) train set에서 8:2 비율로 validation 셋을 생성하여 학습을 진행하였습니다 모델 저장: EarlyStopping과 더불어 중간 Savepoint를 저장해 가장 최적의 성능일때의 모델을 저장했습니다. 하이퍼퍼라미터 튜닝Optimizer : Adam / Loss : Categorical CrossEntropyEarlyStopping : val_loss가 좋아지지 않을 경우 조기에 학습을 중단합니다. / 추가로 가장 성능이 좋았을때 모델을 중간중간에 세이브하였습니다.Batch size : 기존 64에서 32, 16, 128로 다양하게 실시해보았습니다. 소감처음에는 pretrained model을 사용하고자 ResNet50 모델을 로드하고 인풋이 256,256,1이어서 224,224,3으로 전처리 후 학습을 진행하였습니다. 하지만 기존 input shape와 달랐던 점이 크게 작용하였는지, 전처리 과정에서 문제가 있었는지 베이스라인보다 높은성능을 보이지 못했습니다. 그래서 기존 베이스라인 네트워크에서 좀 더 깊은 네트워크로 학습을 진행하기로 방향을 정했습니다. 처음부터 모델을 깊게 만들었는데 이때는 학습이 원할하게 진행되지않아, 일부 BatchNormalization을 제거하고 점차 모델을 간결하게 만들어나가며 성능이 좋아지는 것을 확인했습니다. 무조건적인 모델의 정교함이 성능을 보장하지 않는다는것을 확인했습니다.모델의 배치사이즈에 따라서도 결과가 일부 달라졌는데 최적의 사이즈를 정확히 찾아내지 못한점, 인풋 shape가 256,256,1로 grayscale인데, RGB로 진행하니 오히려 성능이 나오지 않았습니다. 다만 이 부분에 대해 추가 분석 없이 태스크를 마무리한 점이 아쉬운점으로 남습니다.
모델 아키텍처기본 베이스라인 모델의 input이 224,224 인것을 확인하고 큰 전처리 변화없이 pretrained model ResNet이나 ConvNeXT등이 사용가능하다고 생각했습니다. 이 태스크에서는 ResNet50을 채택하여 진행하였습니다.기존 ResNet50을 그대로 불러오지만, input_top = False로 하여 마지막 Dense레이어를 y_train.shape[1]에 맞추었습니다. 전처리데이터 증강 : 수평이동, 수직이동, rotate, filp 적용 / 이때 과도하게 적용되어 알약 이미지가 잘리지 않도록 적정선에서만 적용하였습니다. 데이터 전처리 : keras 내장 함수인 tf.keras.applications.resnet50.preprocess_input로 pretrained model에 알맞게 적용하였습니다. 후처리model.fit : 베이스라인에서는 따로 검증 데이터셋을 적용하지않아 train set에서 8:2 비율로 validation 셋을 생성하여 오버피팅을 방지하고자했습니다. 모델 저장: EarlyStopping과 더불어 중간 Savepoint를 저장해 가장 최적의 성능일때의 모델을 저장했습니다. 하이퍼퍼라미터 튜닝Optimizer : Adam / Loss : Categorical CrossEntropyEarlyStopping : val_loss가 좋아지지 않을 경우 조기에 학습을 중단합니다. / 추가로 가장 성능이 좋았을때 모델을 중간중간에 세이브하였습니다. 소감ResNet50을 사용하고 earlystop을 적용하였기에 epoch은 여유롭게 설정했습니다. 첫 성능 이후 더 좋은 스코어를 얻고자 dropout, batchnomalization을 마지막 분류 layer에 추가하여 진행하였으나, 오히려 훨씬 낮은 성능을 보였습니다. Convnext 등 다른 pretrained모델을 적용하지 못해 조금 아쉽지만 ResNet50 적용만으로 충분히 좋은 결과를 확인할 수 있었습니다.
해당 경진대회는 반려동물 안구질환을 분류하는 task 입니다.독신가구가 늘어나면서 그에따라 반려동물을 카우는 가구 수는 점점 늘어나는 추세 입니다.인공지능의 발달이 인간 뿐 아니라 동물의 삶의 질 향상에도 도움을 줄 수 있는 좋은 사례인 거 같습니다. 베이스라인은 기존 모델이 아닌 단순한 sequence 구조로 되어있습니다.하지만 구조의 깊이가 너무 낮아 학습이 충분히 이뤄지지 않을 수 있다 생각하였고.라이브러리에 존재하는 모델은 가져오지 않고 sequence 구조를 더욱 깊이 쌓는 방식으로 성능을 개선하고자 했습니다.또한 epoch을 늘려 학습을 충분히 진행하였고 batch 사이즈를 늘려 추가적인 성능을 개선하려고 했습니다. 다른 참가자들은 densenet이나 resnet 같은 잘 알려진 구조를 사용하여 학습을 진행하였습니다.하지만 기본적인 sequence 구조를 조금 더 쌓은 방식이 정확도가 더 높아서 이 부분이 의외인 거 같습니다.
과수작물 수확을 위한 질병 분류 시스템 개선 방안 베이스 라인 모델은 과수작물 수확을 위한 질병 분류를 하는 task 입니다.기본 베이스 라인은 resnet30으로 사전학습된 모델을 사용하고있습니다. classficiation task로 너무 깊은 모델은 오히려 악영향을 끼칠 수 있다 생각하여resnet50 모델로 변경하여 학습을 진행하였습니다.다른 파라미터는 수정하지 않고 epoch을 늘려 학습이 충분이 진행되게 하였습니다. 모델을 더 깊은 모델을 사용하여 정확도를 향상하고자 하였지만기본 베이스라인과 크게 차이나지않았습니다. 다른 파라미터를 조정하여 하이퍼파라미터 튜닝을 진행하였으면 좀 더 결과가 좋지 않았을까 싶습니다.
기본 아키텍처인 resnet50이 아니라 좀 더 깊은 resnet101을 사용하였습니다.optimizer를 adam으로 변경하였고 learning late를 변경하여 파인튜닝을 진행하였습니다.추가적을 epoch을 늘려 정확도를 높이고자 시도하였고 베이스라인에 비해 정확도가 향상되어 유의미한 결과가 있었습니다. 자율주행 데이터는 라이다,카메라등 다양한 센서를 통해 얻은 데이터이고 그로 인해 데이터 셋의 크기가 매우크고광학 특정을 사용하는 센서들의 특성상 환경의 영향을 많이 받아 높은 정학도를 얻는 것이 힘든 테스크 입니다. 더욱이 해당 경진대회는 우천 시 자율주행을위한 객체탐지 task로 정확한 탐지가 더욱 어렵습니다.경진대회를 진행하면서 다양한 센서의 데이터 유형을 다룰 수 있어서 좋은 경험이 돼었습니다.
1. 처음 모델의 선택과 성능 확인 - 처음에는 간단한 CNN 모델을 활용하여 초기 성능을 평가하였습니다. 이 단계에서 모델의 기본 성능을 확인하고자 했습니다.2. 모델 교체와 성능 조정 시도 - 그러나 초기 모델의 제약을 인식하고, 전략적으로 ResNet50 모델로 전환하였습니다. 더 복잡한 구조로 높은 성능을 기대하며, 배치 크기 및 에폭 수와 같은 하이퍼파라미터를 세밀하게 조정하였습니다.3. 다양한 시도와 문제 진단 - ResNet50를 도입한 결과, 여전히 언더피팅과 오버피팅 문제가 도출되었습니다. 데이터셋의 다양성 부족, 모델 및 하이퍼파라미터의 불일치, 그리고 데이터 처리 부재 등 다양한 요인을 발견하였습니다.4. 실패의 원인과 깨달음 - 성능 개선에서의 실패 원인은 ResNet50의 부적합과 데이터셋 크기의 제약이었습니다. 작은 데이터셋이라 큰 성능 향상을 이뤄내기 어려웠습니다.5. 향후 전략과 방향성 재고 - 향후에는 데이터 처리 방식을 강화하고, 모델을 다양화하여 다른 아키텍처에 대한 실험을 진행할 계획입니다. 또한, 하이퍼파라미터를 세밀하게 조정하여 최적의 학습 환경을 찾으면 더 나은 결과가 나올것이라고 생각합니다.
먼저 테스트와 트레인의 배치사이즈를 늘려 학습을 진행하였습니다. 이를 통해 빠른 학습을 진행하고자 하였습니다. 다음 러닝 레이트는 0.0001 단위로 조정하여 조정하였고, 총 30 epoch동안 진행하였습니다. 학습을 진행하면서 느낀점은 데이터의 양만큼 질이 중요하다고 느꼈습니다. 오버피팅을 막기 위한 조치가 필요해 보였고 이를 위해 드롭아웃을 추가, 데이터 증강, 앙상블, 정규화 등의 조치를 취할 수 있지만 태스크 진행시 간단하게 드롭아웃을 적용하였습니다. 결론적으로 배치사이즈를 증가시키고 드롭아웃을 적용하여 평가한 결과 1회차에서 진행 해본것과는 유의미한 차이가 있는것을 확인하였습니다. 소감 : 이미지 질적 양적 측면의 중요성과 모델의 구조 및 간결성이 특히 중요하다고 느낄 수 있었으며 향후 연구에서도 명심하고 진행해야 할 부분 인것 같습니다. 화훼 종류분류는 모델 구성부터 학습까지 흥미롭게 진행하였고 앞으로의 공부에도 많은 도움이 될 것 같습니다.
이 태스크는 컴퓨터 비전과 자연어 처리를 이용한 시각적 질문 응답을 위한 모델을 구성하고 그 과정을 구현해놓았습니다. 배치사이즈는 5단위로 감소하여 기본 20을 기준으로 조정하면서 학습을 진행해보았습니다. 트레이닝 아규멘트를 사용해서 출력 디렉토리 및 배치크기, 에폭수, 러닝레이트등을 조정하였습니다.다양한 파라미터를 조합한것을 실험하기 위한 간단한 그리드 서치나 랜덤 서치 로직을 추가해보는것도 좋은 보완점이 될 것 같습니다. 소감 : 트랜스포머를 이용하여 비전과 자연어를 이용한 시각적 질문 응답 모델을 구성한 것은 상당히 흥미있는 일이었다고 생각합니다. 명령줄 인수를 더 체계적으로 처리하고 그에 대한 로직을 추가하면 더 좋은 성능을 보이지 않을까 합니다. 또 예외처리에 대한 부분을 넣으면 좋을것 같다고 생각합니다.