부스트캠프 AI Tech 1기 [T1209 최보미] 94

Day5 학습정리

강의 복습 1. EfficientUnet baseline segmentation을 위한 DataLoader 준비 Shape of Images : (batch, 3, height, width) Shape of targets : (batch, height, width) cv2.COLOR_BGR2RGB: OpenCV에서는 컬러 이미지를 BGR 순서로 저장하는데 matplotlib에서는 RGB 순서로 저장 255로 나눠서 0~1 사이로 정규화 DataLoader 적용 albumentations library를 활용한 transform (ToTensorV2) CustomDataLoader 적용 data_dir: image files, json file 저장된 폴더의 디렉토리 mode: train / test tr..

Day4 학습정리

강의 복습 1. U-Net Contracting Path와 Expanding Path가 대칭인 U자 형을 이룸 Contracting Path: 입력 이미지의 전반적인 특징 추출(Context 포착), 차원을 줄이는 Down-sampling 3x3 Conv - BN - ReLU 2번씩 반복 Zero-padding 적용하지 않아서 featurer map 크기 감소 Expanding Path: Localization 가능하게 함, 차원을 늘리는 Up-sampling 작업, 얕은 layer의 feature map 결합 2x2 Up-Conv 사용(Transposed Convolution) → Feature Map 크기 2배, 채널 수 1/2배 Contracting에서 얻은 Feature Map과 Concat 진행..

Day3 학습정리

프로젝트 회고 SegNet, DeepLabv1, DeepLabv2 모델을 사용해봤는데 DeepLabv2가 0.3861로 점수가 가장 높았다. 오늘 피어세션때 토론게시판에 올라온 글들을 같이 살펴봤는데 좋은 글을 발견해서 그걸 참고하여 앞으로 다음과 같은 것들을 시도해볼 예정이다. Torchvision Pretrained Weight 사용 Torchvision에서 제공하는 다른 모델들 사용 ImageNet Normalize 사용 Validation mIoU를 계산할 때 배치가 아닌 전체 데이터를 사용 Weight의 저장을 loss를 기반으로 하는게 아니라 mIoU를 기반으로 저장

Day2 학습정리

강의 복습 1. FCN의 한계점 객체의 크기가 크거나 작은 경우 예측을 잘 하지 못하는 문제 Object의 디테일한 모습이 사라지는 문제 2. Decoder를 개선한 models DeconvNet Encoder/Decoder Network가 대칭으로 이루어진 구조 Encoder Network: VGG16 사용 Decoder Network: Unpooling / Deconvolution(Transposed Convolution) / ReLU SegNet FC Layer를 모두 제거해서 파라미터의 수를 감소 Decoder 파트에서 Transposed convolution이 아닌 Convolution 사용 3. Skip Connection을 적용한 models Skip Connections: Neural ne..

Day1 학습정리

강의 복습 1. 세그멘테이션 개요 Semantic Segmentation vs Instance Segmentation 단일 객체(Single object): 이미지 분류, 위치파악 다중 객체(Multi object): 객체 탐지, 이미지 분할 활용 분야: 자율주행, 의료 등 2. 대표적인 딥러닝을 이용한 세그멘테이션 FCN VGG 네트워크 백본을 사용 (Backbone : pretrained 된 딥러닝 모델을 의미) VGG 네트워크의 FC Layer를 Convolution 으로 대체 Convolution Layer: 각 픽셀의 위치정보를 해치지 않은채로 특징 추출 Fully Connected Layer: 각 픽셀의 위치정보를 해침 1x1 Convolution을 사용할 경우 , 임의의 입력값에 대해서도 상..

Day 10 학습정리 - Stage2 마무리

2주간의 이미지분류 프로젝트가 모두 마무리되었다. 나의 최종 결과는 LB 점수: 78.50%, 순위: 84등이다. NLP에 대한 지식과 경험이 거의 없었는데 이번 프로젝트를 하면서 많이 배운 것 같다. transformers 라이브러리와 모델에 대해 잘 모른 채로 그냥 가져와서 썼는데 더 깊게 공부해야겠다는 생각이 들었다. 아래 파일은 그동안 실험했던 것들을 정리한 엑셀파일과 Wrap-up Report이다.

Day9 학습정리 - 최신 자연어 처리 연구

프로젝트 회고 문장 길이를 어느정도 맞추기 위해 엔티티 앞뒤 30자까지만 남기고 나머지는 잘라봤는데 큰 효과는 없었다. 엔티티를 'e1, e2의 관계는?'와 같이 질문 형태로 바꿔봤는데 이것도 큰 효과는 없었다. 토론게시판에 올라온 NER 적용한 csv파일을 받아서 사용해봤는데 이것 역시 효과가 없었다. maxlength를 160에서 130으로 바꿔봤는데 성능이 비슷했다. 스페셜토큰을 문장에만 주는 것이 아니라 엔티티에도 줘봤는데 큰 효과가 없었다. 토론게시판에 올라온 정확도 80% 나온다는 train.py 코드를 그대로 가져와서 사용해봤는데 내가 했을 땐 성능이 안 좋게 나왔다. 마지막으로 가장 정확도가 높았던 submission 파일 5개를 hard voting 방식으로 앙상블했더니 정확도가 1.5%..

Day8 학습정리 - GPT 언어 모델 소개

프로젝트 회고 데이터셋 문장을 변형해서 ...[E1]엔티티1[/E1]...[E2]엔티티2[/E2]...와 같이 엔티티를 강조하는 식으로 special token을 적용해봤는데 정확도가 2%정도 떨어졌다. tokenizer에 entity를 따로 넣어주지 않고 변형한 문장만 넣어줘서 그럴 것이라고 추측한다. + entity도 같이 넣어줬더니 지금까지중 최고의 정확도가 나왔다. max-length를 200으로 늘려봤는데 오히려 정확도가 1%정도 떨어졌다. 무조건 max-length를 늘린다고 성능이 좋아지는 것은 아닌 것 같다.

Day7 학습정리 - BERT 기반 문장 토큰 분류 모델 학습

프로젝트 회고 xlm-roberta-large 모델이 성능이 좋다는 이야기를 많이 들어서 시도해봤다. 모델이 무거워서 그런지 저장용량이 부족해서 중간에 자꾸 멈추는 바람에 폴더를 지워가면서 몇 번이나 처음부터 다시 했다. 우여곡절 끝에 간신히 성공했는데 성능이 72%에서 무려 76.4%로 올랐다. 다음에는 special token도 한 번 적용해볼 생각이다.

Day6 학습정리 - BERT 기반 두 문장 관계 분류 모델 학습

프로젝트 회고 argparse를 사용해서 run.py를 실행할 때 config 파일을 인자로 받도록 코드를 바꿨다. 설정값들을 config.json파일로 관리하니까 확실히 실험할 때 훨씬 편했다. pretrained model을 제대로 불러오도록 베이스라인 코드를 수정하고 다시 돌려봤다. 저번주에 bert보다 koelectra가 더 성능이 안 좋아서 이상하다 생각했었는데 코드를 수정하니까 정확도가 50프로대에서 70프로대로 확 올랐고 koelectra가 bert보다 더 성능이 좋았다. kobert도 사용해봤는데 뭔가를 잘못 설정했는지 성능이 현저하게 낮았다. 기본 bert에서 사용하던걸 그대로 사용해서 그런 것 같다.argparse를 사용해서 run.py를 실행할 때 config 파일을 인자로 받도록 코..