SlideShare a Scribd company logo
1 of 34
Download to read offline
https://dacon.io
giba.kim
AI프렌즈 시즌2
위성관측 데이터를 활용한
강수량 산출 경진대회
목차
1
2
3
https://dacon.io 2
크롤링 메뉴얼
재현 메뉴얼
솔루션 설명
https://dacon.io 3
크롤링 메뉴얼
대회 디렉토리 구조는 아래와 같습니다.
대회 디렉토리 구조는 code, input, output으로 구성됩니다.
code
best_model: pytorch weight가 저장되는 폴더
savedmodel: Model1,2,3의 가장 좋은 score를 가
지는 pytorch weight, 재현 시 필요
requirements: requirements text file
epoch_result: model 마다 epoch 결과
segmentation_models_pytorch: 공통 package
크롤링 파일
전처리 파일
모델 파일
input
train: Dacon에서 제공한 npy train file
test: Dacon에서 제공한 npy test file
newtrain: 새롭게 추가한 외부데이터 file
newdata: 외부 데이터 원본 파일
output
출력 결과 파일
Test File의 위/경도 범위안에 들어와야 수집하기 때문에 크롤링 전 전처리가 필요합니다.
Input의 test 폴더 아래 Dacon에서 제공한 원본 test file이 있어야 합니다.
그 후 Code 폴더 아래 DataConverter.ipynb File을 먼저 실행하여 test.ftr 파일을 만듭니다.
DataConverter.ipynb 순차적으로 실행하시면 됩니다.
※ Test.ftr 파일은 40*40*15(14) File을 DataFrame으로 1600,15(14)로 만든겁니다.
Pandas, numpy, tqdm은 아래 버전으로 설치했습니다.
Pandas Feather를 사용하기 위해서 pyarrow가 필요했던 것 같은데 만약 package Error가 발생하면 설치해셔서
진행하시면 됩니다. (requirement.text 참조)
데이터 출처: https://disc.gsfc.nasa.gov/
1. 회원 가입을 합니다.
2. 위 사이트에 접속하여 GMI_1B, DPR_2A를 검색하여 Link를 다운 받습니다.
3. 날짜를 제한하고 GetData를 누르면 Download Link를 받을 수 있습니다.
데이터 출처: https://disc.gsfc.nasa.gov/
4. Link를 Download 한 뒤 이 파일을 Download 받으면 됩니다.
저희가 받은 Download Link 파일은 아래에 있고 위 과정을 생략 후 아래 파일을 이용하여 사용하시면 됩니다.
5. 그 후 https://disc.gsfc.nasa.gov/earthdata-login 여기서 시키는 것처럼 계정에서 이 데이터를 받을 수 있게
Access 동의를 해주었습니다.
6. Python으로 request하기 위해서는 .netrc file이 설정되어야 합니다.
https://disc.gsfc.nasa.gov/data-access#windows_wget
7. Window 기준으로 .netrc 파일을 설정하려면 아래와 같이 진행하면 됩니다.
Notepad를 열고 아래 내용을 입력합니다.
Uid에는 site ID와 password는 site의 Password를 입력합니다. (꺽쇠없이)
예제) machine urs.earthdata.nasa.gov login user1 password 1234
8. 그 후 다른 이름으로 저장하여 파일형식을 모든 파일로 바꾸고 C:Users<username>.netrc 형식으로 저장합
니다.
9. 그 후 MakeNewData.ipynb를
실행하시면 됩니다.
https://dacon.io 9
재현 메뉴얼
대회 디렉토리 구조는 아래와 같습니다.
대회 디렉토리 구조는 code, input, output으로 구성됩니다.
code
best_model: pytorch weight가 저장되는 폴더
savedmodel: Model1,2,3의 가장 좋은 score를 가지는 pytorch weight, 재현 시 필
요
requirements: requirements text file
epoch_result: model 마다 epoch 결과
segmentation_models_pytorch: 공통 package
크롤링 파일
전처리 파일
모델 파일
학습/평가 pickle file: 학습과 평가에 사용될 파일 List
input
train: Dacon에서 제공한 npy train file
test: Dacon에서 제공한 npy test file
newtrain: 새롭게 추가한 외부데이터 npy file
newdata: 외부 데이터 원본 파일
sample_submission.csv
subset_GPM_1BGMI_05_20200522_110538.txt : GMI 외부데이터 Link
subset_GPM_2ADPR_06_20200522_145431.txt: DPR 외부데이터 Link
output
출력 결과 파일
input
train: Dacon에서 제공한 npy train file
test: Dacon에서 제공한 npy test file
newtrain: 새롭게 추가한 외부데이터 file
Dacon에서 제공해준 train / test file이 input/train, input/test에 존재해야 합니다.
1. DataConverter를 실행하여 train.ftr, test.ftr 파일을 생성합니다.
2. Model1_Kfold1.ipynb, Model1_Kfold2.ipynb, Model1_Kfold3.ipynb, Model1_Kfold4.ipynb, Model1_Kfold5.ipynb
를 실행합니다. (저희는 시간을 절약하기 위하여 클라우드를 활용하여 동시에 실행하였습니다.)
3. Model1_Kfold1~5가 150Epoch까지 실행되었으면 Model1_Kfold_AGG.ipynb를 실행합니다.
• 저희가 만든 가중치로 제출물을 생성하려면 savedmodel
• 재현한 파일로 제출물을 생성하려면 best_model로 폴더명을 변경합니다.
4. 첫 번째 Submission File을 생성합니다.
5. Model2.ipynb를 150Epoch까지 실행합니다.
• 저희가 만든 가중치로 제출물을 생성하려면 savedmodel
• 재현한 파일로 제출물을 생성하려면 best_model로 폴더명을 변경합니다.
6. Model2의 Submission File을 만듭니다.
7. Model3.ipynb를 150Epoch까지 실행합니다.
• 저희가 만든 가중치로 제출물을 생성하려면 savedmodel
• 재현한 파일로 제출물을 생성하려면 best_model로 폴더명을 변경합니다.
8. Model3의 Submission File을 만듭니다.
9. Ensemble.ipynb 파일을 실행하여 최종 제출물을 생성합니다.
https://dacon.io 13
솔루션 설명
목차
1
2
3
STEP 1
STEP 2
STEP 3
https://dacon.io 14
대회 소개 & EDA
모델 구축 & 검증
결과 및 결언
대회 소개 & EDA
모델 구축& 검증
결과 및 결언
• 모델링
• 시도해본 것
• 대회 후기
• 대회 소개
• EDA
• 외부 데이터
https://dacon.io 15
1. 데이터 전처리 & EDA – 대회 소개
1. 배경
위성은 지구의 70%를 차지하고 있는 해양은 기상 정보는 필수입니다, 강수량 산출은 전지구의 물과 에
너지 순환 이해에 중요합니다. 미항공우주국 NASA는 1970년대부터 위성을 이용 강수 산출 연구를 수
행해 왔으며, 2014년부터 GPM (Global Precipitation Measurement) 미션을 통해 전 지구 강수량을 30
분단위로 제공합니다. NASA에서 사용하고 있는 강수 산출 알고리즘은 물리기반의 베이지안 통계를 활
용하고 있어, 전 영역에 대해 고품질 데이터베이스를 만드는 어려움이 있습니다. 인공지능을 활용 관측
값 자체에서 어떠한 경험적 튜닝 없이 강수 산출을 시도하여 NASA보다 강력한 강수산출 인공지능 AI
에 도전!
2. 평가 지표
➢ MAE를 F1 Score로 나눈 값, mae_over_fscore
3. 대회 기간
➢ 기간 (4월 1일 10:00 ~ 5월 25일 17:59)
4. 대회 규칙
➢ 외부 데이터 및 pretrained 모델 사용 가능
➢ Public: 30%, Private: 70%
https://dacon.io 16
1. 데이터 전처리 & EDA – 대회 소개
평가 지표 설명
0.1보다 작은 값은 0, 큰 값은 1로 두고 F1 Score 계산
실제 값이 0.1보다 큰 값만 MAE 계산
Score = MAE / F1_Score
해석
강수량 계산(MAE)은 강수량이 있는 Pixel에서만 계산되기
때문에 실제 강수량이 있는 Pixel을 맞추는 것이 중요
L1Loss(MAE)를 사용하면 0값이 대부분인 데이터에서
Median값으로 수렴하게 되면서 강수량 값이 상대적으로
낮게 예측
https://dacon.io 17
1. 데이터 전처리 & EDA – 대회 소개
데이터 설명
• GPM(Global Precipitation Measurement) Core 위성의 GMI/DPR 센서에서 북서태평양영역 (육지와 바다를
모두 포함) 에서 관측된 자료
• 특정 orbit에서 기록된 자료를 40 X 40 형태로 분할(subset) 하여 제공
• subset_######_##.npy 파일로 제공되며, (height, width, channel) 형태
• 15개 Channel (Temp0~8, Type, GMI 경도, GMI 위도, DPR 경도, DPR, 위도, 강수량)
Train
- 2016~2018 년 관측된 자료 (76,345개)
- 2016년 자료: orbit 번호 010462 ~ 016152 (25,653개)
- 2017년 자료: orbit 번호 016154 ~ 021828 (25,197개)
- 2018년 자료: orbit 번호 021835 ~ 027509 (25,495개)
Test
- 2019년 관측된 자료 (2,416개)
https://dacon.io 18
1. 데이터 전처리 & EDA – EDA
Train/Test 분포 확인
• Train 2016, 2017, 2018의 위/경도 분포와 Test의 위/경도 분
포는 다릅니다.
• 연도별 Orbit의 Max-Min을 계산하면 연도마다 5674개를 가지
고 연도 별로 MinMaxScaler를 하여 0부터 1로 나열하면 Test
는 약 0.4에서 0.6 사이를 가지는 것을 확인할 수 있습니다.
(여름)
• Temp 평균을 살펴보면 Train과 Test가 다른 것을 확인할 수
있습니다.
Test Test
https://dacon.io 19
1. 데이터 전처리 & EDA – EDA
Orbit 궤적
• Orbit 내 Subset은 연속적인 형태로 구성됩니다.
• Subset의 개수는 고정된 것이 아니며 큰 것도 있고 작은 것도 있습니다.
• 비 선형적인 궤도를 가지며 겹치는 위/경도도 존재하는 것으로 보입니다.
• Orbit의 궤도를 3차 함수로 근사하여 Coefficient를 피쳐로 추가해보았지만 잘 동작하지 않았습니다.
https://dacon.io 20
1. 데이터 전처리 & EDA – EDA
결측 값
• 결측 값은 -9999로 존재합니다.
• 일부 Pixel만 결측 값이 존재하는 것도 있습니다.
• 이 값은 강수량 분포 0~300과 너무나 다른 값이기 때문에 모
델 학습에 방해가 될 수 있습니다.
• 전체 약 7만개 중 388개로 0.5% 밖에 안되기 때문에 결측 값
이 존재하는 파일은 삭제해도 될 것 같습니다. (실제 이 값을
채워서 학습했을 때 성능이 약간 향상되나 결국 사용하지 않
았습니다.)
Target 값의 분포
• 96%의 강수량이 0이고 Max값은 299.xxx 입니다.
• 강수량이 큰 값 중에 299 근처의 값이 특히 많이 분포합니다.
• 파일당 비가 온 Pixel 개수가 특정 값보다 컸을 때의 Train
Count를 살펴보면 전부 비가 오지 않았을 때가 10000개 정
도 있으며 그 후에는 일정하게 감소하는 것을 볼 수 있습니
다. 특정 값에서 급격하게 변하지 않으며 비가 온 Pixel개수
를 다르게 하여 Ensemble 할 수도 있을 것 같습니다.
https://dacon.io 21
1. 데이터 전처리 & EDA – EDA
위도/경도
• 데이터 설명을 살펴보면 GMI와 DPR 데이터는 가장 가까운 값을 매칭하여 구성
• GMI와 DPR의 좌표는 정확하게 일치하지 않고 일부는 매우 큰 차이를 보입니다.
2016~2019년의 GMI와 DPR의 위/경도
차이 Graph
• X: 위도 차이
• Y: 경도 차이
https://dacon.io 22
1. 데이터 전처리 & EDA - 외부데이터
외부데이터 추가
외부 데이터를 추가하면서 데이터의 생성 원리와 위/경도 차이를 알 수 있었습니다.
2014~2015년의 Test의 Month 위주로 약 8000~9000개 정도의 추가 데이터 추출
https://dacon.io 23
2. 모델 구축 & 검증 – 모델링
LightGBM
• DeepLearning을 사용하면 잘 될 것 같다는 생각이 들었지만, LightGBM부터 시작해보았습니다.
• 40*40 Pixel을 1600*1로 만들고 Column을 15개를 가지는 DataFrame으로 가공하여 작업
• land_type: Type//100
• Temp 2 Combination Diff (Temp1-Temp2, Temp2-Temp3, Temp8-Temp9 등)
• Temp12, Temp34, Temp78 Average
• Latitude, Longitude Average
• Orbit, Subset Temp Min, Max, Std, Mean
• 주변 3*3 Pixel 값과 그의 Min, Max, Mean
• Longitude, Latitude Binning
• Orbit 궤도 3차 함수로 근사 후 Coefficient
• 강수량이 있는 Pixel과 없는 Pixel을 골고루 분배 시키기 위해서 강수량을 Binary화 하고
StratifiedKFold 수행
• 그 밖에 기타 여러가지 방법을 수행해보았지만 1.81정도까지 LeaderBoard Score를 기록하고 딥러닝
으로 전환하게 되었습니다.
https://dacon.io 24
2. 모델 구축 & 검증 – 모델링
Deep Learning
그 후 딥러닝으로 방향을 바꾸어서 진행하게 되었습니다.
Unet 기반 Model: Single Model 1.54~1.56
그 후 코드 공유에 1.51 초반 점수의 방법이 공유 되었고 모델에 대하여 다시 생각하게 되었습니다.
https://dacon.io/competitions/official/235591/codeshare/1110?page=1&dtype=recent&ptype=pub
강수량을 예측할 지점에서 멀리 있는 데이터일 수록 영향이 적어져 풀링레이어가 결과 예측에 방해가
될 것으로 판단
이 Model을 기반으로 Customizing한 Model 생성
• Layer가 깊어져도 Image Size가 줄어들지 않도록 디자인
• Residual Block 활용
• 넒은 범위의 특징과 좁은 범위의 특징을 추출하기 위하여 1~11까지의 Kernel Size로 학습
• 1*1 Convolution 연산을 적극적으로 활용
https://dacon.io 25
2. 모델 구축 & 검증 – 모델링
Data Augmentation
6개의 Augmentation 활용Rotation 90, 180, 270, Vflip, Hflip, Trasnpose
Augmentation 비율은 전체 Image에서 50%
색을 변화시키는 Augmentation은 사용하지 않음
https://dacon.io 26
2. 모델 구축 & 검증 – 모델링
Feature
12개 Channel Data 사용
Standard Scale 적용
• Temp0~8
• Type
• GMI
• GMI DPR Longitude Diff
• GMI DPR Latitude Diff
1.54 -> 1.42
https://dacon.io 27
2. 모델 구축 & 검증 – 모델링
Deep Learning
Optimizer: Radam + LARS + LookAHead
Lookahead implementation from https://github.com/lonePatient/lookahead_pytorch/blob/master/optimizer.py
RAdam + LARS implementation from https://gist.github.com/redknightlois/c4023d393eb8f92bb44b2ab582d7ec20
Scheduler: CosineAnnealingWarmRestarts(optimizer, 10, 2,eta_min=1e-6)
Loss: mae_over_fscore
Batch Size: 128
Epoch: 150
https://dacon.io 28
2. 모델 구축 & 검증 – 모델링
Model1
Model 시작 부분에 Inception Block을 두고 좁은 영역부터 넒은 영역까지 특징 추출
1*1 Convolution을 이용하여 연산량을 감소시키고 Channel 간 특징과 지역 정보를 분리하고자 함
Channel 수를 128, 256 등으로 실험해보았는데 성능적으로 큰 차이가 없었고 학습시간이 매우 오래걸려
서 64 Channel로 특징 추출
https://dacon.io 29
2. 모델 구축 & 검증 – 모델링
Model1
그 후 Inception Block에서 추출한 Feature를 모
두 Concat하여 2가지 Path의 Convolution
Layer를 통과시켜 줍니다.
이렇게 한 이유는 Channel 연산과 지역 정보 연
산의 순서에 따라 Feature가 다르게 뽑히지 않
을까 해서 이렇게 하였습니다.
그 후 이전에 Inception Block에서 추출한
Feature까지 모두 Concat하여 Convolution
Layer에 넣어줍니다.
Model2
Model2는 GoldBar님이 코드 공유에 올려주신
Model입니다.
https://dacon.io/competitions/official/235591/cod
eshare/1110?page=1&dtype=recent&ptype=pub
https://dacon.io
2. 모델 구축 & 검증 – 모델링
Ensemble
Kfold Ensemble
Model1_1Fold
Model1_2Fold
Model1_3Fold
Model1_4Fold
Model1_5Fold
원본 Train
1.3876
Model2_TrainTestSplit
Model1_TrainTestSplit
외부데이터 추가 Ensemble
0.2
0.6
1.3786
0.2
https://dacon.io
2. 모델 구축 & 검증 – 시도해본 것
큰 강수량을 가지는 부분
강수량이 매우 큰 값을 가질 때 오차가 심함
• Label 값 변경, 주변 값에 비해 갑자기 299가 되는 Pixel을 주변 값의 평균으로 변경
• Loss Function 변경, 강수량 값이 30이 넘어갔을 때는 L2 Loss로 변경
• 큰 강수량 값을 가지는 부분 제거
https://dacon.io
2. 모델 구축 & 검증 – 시도해본 것
Feature와 Augmentation
• LightGBM에서 큰 도움이 되었던 Temp간 차이 Feature는 DeepLearning에서 도움이 되지 않았습니
다.
• Random으로 Cutout하고 그 부분만 위의 6종의 Augmentation을 Random으로 적용하는 방법도 해
봤는데 실제 약간 도움은 되었지만 최종적으로 사용하지 않았습니다.
• Random으로 Cutout하고 그 부분만 Target이 0일 때의 Temp값으로 변경해주었는데 성능이 안좋아
져서 사용하지 않았습니다.
https://dacon.io 33
3. 결과 및 결언 – 대회 후기
결과
• GMI, DPR 위/경도 차이 Feature로 인하여 1.55에서 1.42로 약 0.13정도의 점수 향상(10등 -> 1등)
• Model1을 5 Kfold로 Enesemble했을 때 1.38 Public Score 기록
• 다양성을 추가하기 위하여 외부데이터를 사용한 Model1, Model2을 학습하여 가중치를 주어 평균
냈을 때 1.37 Public Score 기록
• 최종 점수 1등으로 마감
대회 후기
• 지금까지 참여했던 Dacon 대회 중 가장 어려웠습니다. 마지막에 위/경도 차이 Feature를 찾지 못했
다면 1등을 하지 못했을 것 같습니다.
• 좋은 팀원들을 만나 많이 배우고 재밌게 진행했는데 좋은 성적까지 거두어 정말 기분이 좋았습니다.
• Deep Learning Model에 대한 더 많은 실험을 해보지 못하여 아쉬움이 남았습니다.
• 한 위성의 같은 orbit의 연속성을 이용한 sequential 모델을 만들어보는 것도 재밌을 것 같았습니다.
• 예를 들면 연속된 3개 데이터로 가운데 시점의 강수량을 예측
THANK YOU
THANK YOU
https://dacon.io 34

More Related Content

Similar to 위성관측 데이터 활용 강수량 산출 AI 경진대회 1위 수상작

Image Deep Learning 실무적용
Image Deep Learning 실무적용Image Deep Learning 실무적용
Image Deep Learning 실무적용Youngjae Kim
 
어플리케이션 성능 최적화 기법
어플리케이션 성능 최적화 기법어플리케이션 성능 최적화 기법
어플리케이션 성능 최적화 기법Daniel Kim
 
생체 광학 데이터 분석 AI 경진대회 6위 수상작
생체 광학 데이터 분석 AI 경진대회 6위 수상작생체 광학 데이터 분석 AI 경진대회 6위 수상작
생체 광학 데이터 분석 AI 경진대회 6위 수상작DACON AI 데이콘
 
네트워크 경량화 이모저모 @ 2020 DLD
네트워크 경량화 이모저모 @ 2020 DLD네트워크 경량화 이모저모 @ 2020 DLD
네트워크 경량화 이모저모 @ 2020 DLDKim Junghoon
 
생체 광학 데이터 분석 AI 경진대회 3위 수상작
생체 광학 데이터 분석 AI 경진대회 3위 수상작생체 광학 데이터 분석 AI 경진대회 3위 수상작
생체 광학 데이터 분석 AI 경진대회 3위 수상작DACON AI 데이콘
 
Alluxio: Data Orchestration on Multi-Cloud
Alluxio: Data Orchestration on Multi-CloudAlluxio: Data Orchestration on Multi-Cloud
Alluxio: Data Orchestration on Multi-CloudJinwook Chung
 
[오픈소스컨설팅]Java Performance Tuning
[오픈소스컨설팅]Java Performance Tuning[오픈소스컨설팅]Java Performance Tuning
[오픈소스컨설팅]Java Performance TuningJi-Woong Choi
 
[OpenInfra Days Korea 2018] (Track 4) - Grafana를 이용한 OpenStack 클라우드 성능 모니터링
[OpenInfra Days Korea 2018] (Track 4) - Grafana를 이용한 OpenStack 클라우드 성능 모니터링[OpenInfra Days Korea 2018] (Track 4) - Grafana를 이용한 OpenStack 클라우드 성능 모니터링
[OpenInfra Days Korea 2018] (Track 4) - Grafana를 이용한 OpenStack 클라우드 성능 모니터링OpenStack Korea Community
 
Chapter 11 Practical Methodology
Chapter 11 Practical MethodologyChapter 11 Practical Methodology
Chapter 11 Practical MethodologyKyeongUkJang
 
Exploring Deep Learning Acceleration Technology Embedded in LLMs
Exploring Deep Learning Acceleration Technology Embedded in LLMsExploring Deep Learning Acceleration Technology Embedded in LLMs
Exploring Deep Learning Acceleration Technology Embedded in LLMsTae Young Lee
 
원자력발전소 상태 판단 대회 1위 수상자 코드 설명
원자력발전소 상태 판단 대회 1위 수상자 코드 설명원자력발전소 상태 판단 대회 1위 수상자 코드 설명
원자력발전소 상태 판단 대회 1위 수상자 코드 설명DACON AI 데이콘
 
Denoising auto encoders(d a)
Denoising auto encoders(d a)Denoising auto encoders(d a)
Denoising auto encoders(d a)Tae Young Lee
 
PR-313 Training BatchNorm and Only BatchNorm: On the Expressive Power of Rand...
PR-313 Training BatchNorm and Only BatchNorm: On the Expressive Power of Rand...PR-313 Training BatchNorm and Only BatchNorm: On the Expressive Power of Rand...
PR-313 Training BatchNorm and Only BatchNorm: On the Expressive Power of Rand...Sunghoon Joo
 
생체 광학 데이터 분석 AI 경진대회 9위 수상작
생체 광학 데이터 분석 AI 경진대회 9위 수상작생체 광학 데이터 분석 AI 경진대회 9위 수상작
생체 광학 데이터 분석 AI 경진대회 9위 수상작DACON AI 데이콘
 
생체 광학 데이터 분석 AI 경진대회 7위 수상작
생체 광학 데이터 분석 AI 경진대회 7위 수상작생체 광학 데이터 분석 AI 경진대회 7위 수상작
생체 광학 데이터 분석 AI 경진대회 7위 수상작DACON AI 데이콘
 
Imagination-Augmented Agents for Deep Reinforcement Learning
Imagination-Augmented Agents for Deep Reinforcement LearningImagination-Augmented Agents for Deep Reinforcement Learning
Imagination-Augmented Agents for Deep Reinforcement Learning성재 최
 
Performance consulting
Performance consultingPerformance consulting
Performance consultingIMQA
 

Similar to 위성관측 데이터 활용 강수량 산출 AI 경진대회 1위 수상작 (20)

Image Deep Learning 실무적용
Image Deep Learning 실무적용Image Deep Learning 실무적용
Image Deep Learning 실무적용
 
어플리케이션 성능 최적화 기법
어플리케이션 성능 최적화 기법어플리케이션 성능 최적화 기법
어플리케이션 성능 최적화 기법
 
생체 광학 데이터 분석 AI 경진대회 6위 수상작
생체 광학 데이터 분석 AI 경진대회 6위 수상작생체 광학 데이터 분석 AI 경진대회 6위 수상작
생체 광학 데이터 분석 AI 경진대회 6위 수상작
 
네트워크 경량화 이모저모 @ 2020 DLD
네트워크 경량화 이모저모 @ 2020 DLD네트워크 경량화 이모저모 @ 2020 DLD
네트워크 경량화 이모저모 @ 2020 DLD
 
생체 광학 데이터 분석 AI 경진대회 3위 수상작
생체 광학 데이터 분석 AI 경진대회 3위 수상작생체 광학 데이터 분석 AI 경진대회 3위 수상작
생체 광학 데이터 분석 AI 경진대회 3위 수상작
 
Alluxio: Data Orchestration on Multi-Cloud
Alluxio: Data Orchestration on Multi-CloudAlluxio: Data Orchestration on Multi-Cloud
Alluxio: Data Orchestration on Multi-Cloud
 
[오픈소스컨설팅]Java Performance Tuning
[오픈소스컨설팅]Java Performance Tuning[오픈소스컨설팅]Java Performance Tuning
[오픈소스컨설팅]Java Performance Tuning
 
[OpenInfra Days Korea 2018] (Track 4) - Grafana를 이용한 OpenStack 클라우드 성능 모니터링
[OpenInfra Days Korea 2018] (Track 4) - Grafana를 이용한 OpenStack 클라우드 성능 모니터링[OpenInfra Days Korea 2018] (Track 4) - Grafana를 이용한 OpenStack 클라우드 성능 모니터링
[OpenInfra Days Korea 2018] (Track 4) - Grafana를 이용한 OpenStack 클라우드 성능 모니터링
 
Chapter 11 Practical Methodology
Chapter 11 Practical MethodologyChapter 11 Practical Methodology
Chapter 11 Practical Methodology
 
Exploring Deep Learning Acceleration Technology Embedded in LLMs
Exploring Deep Learning Acceleration Technology Embedded in LLMsExploring Deep Learning Acceleration Technology Embedded in LLMs
Exploring Deep Learning Acceleration Technology Embedded in LLMs
 
원자력발전소 상태 판단 대회 1위 수상자 코드 설명
원자력발전소 상태 판단 대회 1위 수상자 코드 설명원자력발전소 상태 판단 대회 1위 수상자 코드 설명
원자력발전소 상태 판단 대회 1위 수상자 코드 설명
 
Denoising auto encoders(d a)
Denoising auto encoders(d a)Denoising auto encoders(d a)
Denoising auto encoders(d a)
 
PR-313 Training BatchNorm and Only BatchNorm: On the Expressive Power of Rand...
PR-313 Training BatchNorm and Only BatchNorm: On the Expressive Power of Rand...PR-313 Training BatchNorm and Only BatchNorm: On the Expressive Power of Rand...
PR-313 Training BatchNorm and Only BatchNorm: On the Expressive Power of Rand...
 
생체 광학 데이터 분석 AI 경진대회 9위 수상작
생체 광학 데이터 분석 AI 경진대회 9위 수상작생체 광학 데이터 분석 AI 경진대회 9위 수상작
생체 광학 데이터 분석 AI 경진대회 9위 수상작
 
3. stream api
3. stream api3. stream api
3. stream api
 
생체 광학 데이터 분석 AI 경진대회 7위 수상작
생체 광학 데이터 분석 AI 경진대회 7위 수상작생체 광학 데이터 분석 AI 경진대회 7위 수상작
생체 광학 데이터 분석 AI 경진대회 7위 수상작
 
Net adapt
Net adaptNet adapt
Net adapt
 
LeNet & GoogLeNet
LeNet & GoogLeNetLeNet & GoogLeNet
LeNet & GoogLeNet
 
Imagination-Augmented Agents for Deep Reinforcement Learning
Imagination-Augmented Agents for Deep Reinforcement LearningImagination-Augmented Agents for Deep Reinforcement Learning
Imagination-Augmented Agents for Deep Reinforcement Learning
 
Performance consulting
Performance consultingPerformance consulting
Performance consulting
 

More from DACON AI 데이콘

Introduction to e tapr for hai con -eng
Introduction to e tapr for hai con -engIntroduction to e tapr for hai con -eng
Introduction to e tapr for hai con -engDACON AI 데이콘
 
Introduction to e tapr for hai con -kor
Introduction to e tapr for hai con -korIntroduction to e tapr for hai con -kor
Introduction to e tapr for hai con -korDACON AI 데이콘
 
20210728 대회주최 문의
20210728 대회주최 문의20210728 대회주최 문의
20210728 대회주최 문의DACON AI 데이콘
 
K-Fashion 경진대회 3등 수상자 솔루션
K-Fashion 경진대회 3등 수상자 솔루션K-Fashion 경진대회 3등 수상자 솔루션
K-Fashion 경진대회 3등 수상자 솔루션DACON AI 데이콘
 
아리랑 위성영상 AI 객체 검출 경진대회 2등 수상자 솔루션
아리랑 위성영상 AI 객체 검출 경진대회 2등 수상자 솔루션아리랑 위성영상 AI 객체 검출 경진대회 2등 수상자 솔루션
아리랑 위성영상 AI 객체 검출 경진대회 2등 수상자 솔루션DACON AI 데이콘
 
아리랑 위성영상 AI 객체 검출 경진대회 1등 수상자 솔루션
아리랑 위성영상 AI 객체 검출 경진대회 1등 수상자 솔루션아리랑 위성영상 AI 객체 검출 경진대회 1등 수상자 솔루션
아리랑 위성영상 AI 객체 검출 경진대회 1등 수상자 솔루션DACON AI 데이콘
 
진동데이터 활용 충돌체 탐지 AI 경진대회 1등
진동데이터 활용 충돌체 탐지 AI 경진대회 1등진동데이터 활용 충돌체 탐지 AI 경진대회 1등
진동데이터 활용 충돌체 탐지 AI 경진대회 1등DACON AI 데이콘
 
포스트 코로나 데이터 시각화 경진대회 - 대상
포스트 코로나 데이터 시각화 경진대회 - 대상포스트 코로나 데이터 시각화 경진대회 - 대상
포스트 코로나 데이터 시각화 경진대회 - 대상DACON AI 데이콘
 
포스트 코로나 데이터 시각화 경진대회 - 최우수상
포스트 코로나 데이터 시각화 경진대회 - 최우수상포스트 코로나 데이터 시각화 경진대회 - 최우수상
포스트 코로나 데이터 시각화 경진대회 - 최우수상DACON AI 데이콘
 
포스트 코로나 데이터 시각화 경진대회 - 우수상
포스트 코로나 데이터 시각화 경진대회 - 우수상포스트 코로나 데이터 시각화 경진대회 - 우수상
포스트 코로나 데이터 시각화 경진대회 - 우수상DACON AI 데이콘
 
포스트 코로나 데이터 시각화 경진대회 - 장려상2
포스트 코로나 데이터 시각화 경진대회 - 장려상2포스트 코로나 데이터 시각화 경진대회 - 장려상2
포스트 코로나 데이터 시각화 경진대회 - 장려상2DACON AI 데이콘
 
포스트 코로나 데이터 시각화 경진대회 - 장려상
포스트 코로나 데이터 시각화 경진대회 - 장려상포스트 코로나 데이터 시각화 경진대회 - 장려상
포스트 코로나 데이터 시각화 경진대회 - 장려상DACON AI 데이콘
 
생체 광학 데이터 분석 AI 경진대회 10위 수상작
생체 광학 데이터 분석 AI 경진대회 10위 수상작생체 광학 데이터 분석 AI 경진대회 10위 수상작
생체 광학 데이터 분석 AI 경진대회 10위 수상작DACON AI 데이콘
 
생체 광학 데이터 분석 AI 경진대회 8위 수상작
생체 광학 데이터 분석 AI 경진대회 8위 수상작생체 광학 데이터 분석 AI 경진대회 8위 수상작
생체 광학 데이터 분석 AI 경진대회 8위 수상작DACON AI 데이콘
 
생체 광학 데이터 분석 AI 경진대회 5위 수상작
생체 광학 데이터 분석 AI 경진대회 5위 수상작생체 광학 데이터 분석 AI 경진대회 5위 수상작
생체 광학 데이터 분석 AI 경진대회 5위 수상작DACON AI 데이콘
 

More from DACON AI 데이콘 (20)

Introduction to e tapr for hai con -eng
Introduction to e tapr for hai con -engIntroduction to e tapr for hai con -eng
Introduction to e tapr for hai con -eng
 
Introduction to e tapr for hai con -kor
Introduction to e tapr for hai con -korIntroduction to e tapr for hai con -kor
Introduction to e tapr for hai con -kor
 
20210728 대회주최 문의
20210728 대회주최 문의20210728 대회주최 문의
20210728 대회주최 문의
 
데이콘 뽀개기
데이콘 뽀개기데이콘 뽀개기
데이콘 뽀개기
 
Bittrader competition (1)
Bittrader competition (1)Bittrader competition (1)
Bittrader competition (1)
 
Bittrader competition
Bittrader competitionBittrader competition
Bittrader competition
 
Superbai
SuperbaiSuperbai
Superbai
 
K-Fashion 경진대회 3등 수상자 솔루션
K-Fashion 경진대회 3등 수상자 솔루션K-Fashion 경진대회 3등 수상자 솔루션
K-Fashion 경진대회 3등 수상자 솔루션
 
아리랑 위성영상 AI 객체 검출 경진대회 2등 수상자 솔루션
아리랑 위성영상 AI 객체 검출 경진대회 2등 수상자 솔루션아리랑 위성영상 AI 객체 검출 경진대회 2등 수상자 솔루션
아리랑 위성영상 AI 객체 검출 경진대회 2등 수상자 솔루션
 
아리랑 위성영상 AI 객체 검출 경진대회 1등 수상자 솔루션
아리랑 위성영상 AI 객체 검출 경진대회 1등 수상자 솔루션아리랑 위성영상 AI 객체 검출 경진대회 1등 수상자 솔루션
아리랑 위성영상 AI 객체 검출 경진대회 1등 수상자 솔루션
 
진동데이터 활용 충돌체 탐지 AI 경진대회 1등
진동데이터 활용 충돌체 탐지 AI 경진대회 1등진동데이터 활용 충돌체 탐지 AI 경진대회 1등
진동데이터 활용 충돌체 탐지 AI 경진대회 1등
 
20200923
2020092320200923
20200923
 
포스트 코로나 데이터 시각화 경진대회 - 대상
포스트 코로나 데이터 시각화 경진대회 - 대상포스트 코로나 데이터 시각화 경진대회 - 대상
포스트 코로나 데이터 시각화 경진대회 - 대상
 
포스트 코로나 데이터 시각화 경진대회 - 최우수상
포스트 코로나 데이터 시각화 경진대회 - 최우수상포스트 코로나 데이터 시각화 경진대회 - 최우수상
포스트 코로나 데이터 시각화 경진대회 - 최우수상
 
포스트 코로나 데이터 시각화 경진대회 - 우수상
포스트 코로나 데이터 시각화 경진대회 - 우수상포스트 코로나 데이터 시각화 경진대회 - 우수상
포스트 코로나 데이터 시각화 경진대회 - 우수상
 
포스트 코로나 데이터 시각화 경진대회 - 장려상2
포스트 코로나 데이터 시각화 경진대회 - 장려상2포스트 코로나 데이터 시각화 경진대회 - 장려상2
포스트 코로나 데이터 시각화 경진대회 - 장려상2
 
포스트 코로나 데이터 시각화 경진대회 - 장려상
포스트 코로나 데이터 시각화 경진대회 - 장려상포스트 코로나 데이터 시각화 경진대회 - 장려상
포스트 코로나 데이터 시각화 경진대회 - 장려상
 
생체 광학 데이터 분석 AI 경진대회 10위 수상작
생체 광학 데이터 분석 AI 경진대회 10위 수상작생체 광학 데이터 분석 AI 경진대회 10위 수상작
생체 광학 데이터 분석 AI 경진대회 10위 수상작
 
생체 광학 데이터 분석 AI 경진대회 8위 수상작
생체 광학 데이터 분석 AI 경진대회 8위 수상작생체 광학 데이터 분석 AI 경진대회 8위 수상작
생체 광학 데이터 분석 AI 경진대회 8위 수상작
 
생체 광학 데이터 분석 AI 경진대회 5위 수상작
생체 광학 데이터 분석 AI 경진대회 5위 수상작생체 광학 데이터 분석 AI 경진대회 5위 수상작
생체 광학 데이터 분석 AI 경진대회 5위 수상작
 

위성관측 데이터 활용 강수량 산출 AI 경진대회 1위 수상작

  • 4. 대회 디렉토리 구조는 아래와 같습니다. 대회 디렉토리 구조는 code, input, output으로 구성됩니다. code best_model: pytorch weight가 저장되는 폴더 savedmodel: Model1,2,3의 가장 좋은 score를 가 지는 pytorch weight, 재현 시 필요 requirements: requirements text file epoch_result: model 마다 epoch 결과 segmentation_models_pytorch: 공통 package 크롤링 파일 전처리 파일 모델 파일 input train: Dacon에서 제공한 npy train file test: Dacon에서 제공한 npy test file newtrain: 새롭게 추가한 외부데이터 file newdata: 외부 데이터 원본 파일 output 출력 결과 파일
  • 5. Test File의 위/경도 범위안에 들어와야 수집하기 때문에 크롤링 전 전처리가 필요합니다. Input의 test 폴더 아래 Dacon에서 제공한 원본 test file이 있어야 합니다. 그 후 Code 폴더 아래 DataConverter.ipynb File을 먼저 실행하여 test.ftr 파일을 만듭니다. DataConverter.ipynb 순차적으로 실행하시면 됩니다. ※ Test.ftr 파일은 40*40*15(14) File을 DataFrame으로 1600,15(14)로 만든겁니다. Pandas, numpy, tqdm은 아래 버전으로 설치했습니다. Pandas Feather를 사용하기 위해서 pyarrow가 필요했던 것 같은데 만약 package Error가 발생하면 설치해셔서 진행하시면 됩니다. (requirement.text 참조)
  • 6. 데이터 출처: https://disc.gsfc.nasa.gov/ 1. 회원 가입을 합니다. 2. 위 사이트에 접속하여 GMI_1B, DPR_2A를 검색하여 Link를 다운 받습니다. 3. 날짜를 제한하고 GetData를 누르면 Download Link를 받을 수 있습니다.
  • 7. 데이터 출처: https://disc.gsfc.nasa.gov/ 4. Link를 Download 한 뒤 이 파일을 Download 받으면 됩니다. 저희가 받은 Download Link 파일은 아래에 있고 위 과정을 생략 후 아래 파일을 이용하여 사용하시면 됩니다. 5. 그 후 https://disc.gsfc.nasa.gov/earthdata-login 여기서 시키는 것처럼 계정에서 이 데이터를 받을 수 있게 Access 동의를 해주었습니다. 6. Python으로 request하기 위해서는 .netrc file이 설정되어야 합니다. https://disc.gsfc.nasa.gov/data-access#windows_wget
  • 8. 7. Window 기준으로 .netrc 파일을 설정하려면 아래와 같이 진행하면 됩니다. Notepad를 열고 아래 내용을 입력합니다. Uid에는 site ID와 password는 site의 Password를 입력합니다. (꺽쇠없이) 예제) machine urs.earthdata.nasa.gov login user1 password 1234 8. 그 후 다른 이름으로 저장하여 파일형식을 모든 파일로 바꾸고 C:Users<username>.netrc 형식으로 저장합 니다. 9. 그 후 MakeNewData.ipynb를 실행하시면 됩니다.
  • 10. 대회 디렉토리 구조는 아래와 같습니다. 대회 디렉토리 구조는 code, input, output으로 구성됩니다. code best_model: pytorch weight가 저장되는 폴더 savedmodel: Model1,2,3의 가장 좋은 score를 가지는 pytorch weight, 재현 시 필 요 requirements: requirements text file epoch_result: model 마다 epoch 결과 segmentation_models_pytorch: 공통 package 크롤링 파일 전처리 파일 모델 파일 학습/평가 pickle file: 학습과 평가에 사용될 파일 List input train: Dacon에서 제공한 npy train file test: Dacon에서 제공한 npy test file newtrain: 새롭게 추가한 외부데이터 npy file newdata: 외부 데이터 원본 파일 sample_submission.csv subset_GPM_1BGMI_05_20200522_110538.txt : GMI 외부데이터 Link subset_GPM_2ADPR_06_20200522_145431.txt: DPR 외부데이터 Link output 출력 결과 파일
  • 11. input train: Dacon에서 제공한 npy train file test: Dacon에서 제공한 npy test file newtrain: 새롭게 추가한 외부데이터 file Dacon에서 제공해준 train / test file이 input/train, input/test에 존재해야 합니다. 1. DataConverter를 실행하여 train.ftr, test.ftr 파일을 생성합니다. 2. Model1_Kfold1.ipynb, Model1_Kfold2.ipynb, Model1_Kfold3.ipynb, Model1_Kfold4.ipynb, Model1_Kfold5.ipynb 를 실행합니다. (저희는 시간을 절약하기 위하여 클라우드를 활용하여 동시에 실행하였습니다.) 3. Model1_Kfold1~5가 150Epoch까지 실행되었으면 Model1_Kfold_AGG.ipynb를 실행합니다. • 저희가 만든 가중치로 제출물을 생성하려면 savedmodel • 재현한 파일로 제출물을 생성하려면 best_model로 폴더명을 변경합니다.
  • 12. 4. 첫 번째 Submission File을 생성합니다. 5. Model2.ipynb를 150Epoch까지 실행합니다. • 저희가 만든 가중치로 제출물을 생성하려면 savedmodel • 재현한 파일로 제출물을 생성하려면 best_model로 폴더명을 변경합니다. 6. Model2의 Submission File을 만듭니다. 7. Model3.ipynb를 150Epoch까지 실행합니다. • 저희가 만든 가중치로 제출물을 생성하려면 savedmodel • 재현한 파일로 제출물을 생성하려면 best_model로 폴더명을 변경합니다. 8. Model3의 Submission File을 만듭니다. 9. Ensemble.ipynb 파일을 실행하여 최종 제출물을 생성합니다.
  • 14. 목차 1 2 3 STEP 1 STEP 2 STEP 3 https://dacon.io 14 대회 소개 & EDA 모델 구축 & 검증 결과 및 결언 대회 소개 & EDA 모델 구축& 검증 결과 및 결언 • 모델링 • 시도해본 것 • 대회 후기 • 대회 소개 • EDA • 외부 데이터
  • 15. https://dacon.io 15 1. 데이터 전처리 & EDA – 대회 소개 1. 배경 위성은 지구의 70%를 차지하고 있는 해양은 기상 정보는 필수입니다, 강수량 산출은 전지구의 물과 에 너지 순환 이해에 중요합니다. 미항공우주국 NASA는 1970년대부터 위성을 이용 강수 산출 연구를 수 행해 왔으며, 2014년부터 GPM (Global Precipitation Measurement) 미션을 통해 전 지구 강수량을 30 분단위로 제공합니다. NASA에서 사용하고 있는 강수 산출 알고리즘은 물리기반의 베이지안 통계를 활 용하고 있어, 전 영역에 대해 고품질 데이터베이스를 만드는 어려움이 있습니다. 인공지능을 활용 관측 값 자체에서 어떠한 경험적 튜닝 없이 강수 산출을 시도하여 NASA보다 강력한 강수산출 인공지능 AI 에 도전! 2. 평가 지표 ➢ MAE를 F1 Score로 나눈 값, mae_over_fscore 3. 대회 기간 ➢ 기간 (4월 1일 10:00 ~ 5월 25일 17:59) 4. 대회 규칙 ➢ 외부 데이터 및 pretrained 모델 사용 가능 ➢ Public: 30%, Private: 70%
  • 16. https://dacon.io 16 1. 데이터 전처리 & EDA – 대회 소개 평가 지표 설명 0.1보다 작은 값은 0, 큰 값은 1로 두고 F1 Score 계산 실제 값이 0.1보다 큰 값만 MAE 계산 Score = MAE / F1_Score 해석 강수량 계산(MAE)은 강수량이 있는 Pixel에서만 계산되기 때문에 실제 강수량이 있는 Pixel을 맞추는 것이 중요 L1Loss(MAE)를 사용하면 0값이 대부분인 데이터에서 Median값으로 수렴하게 되면서 강수량 값이 상대적으로 낮게 예측
  • 17. https://dacon.io 17 1. 데이터 전처리 & EDA – 대회 소개 데이터 설명 • GPM(Global Precipitation Measurement) Core 위성의 GMI/DPR 센서에서 북서태평양영역 (육지와 바다를 모두 포함) 에서 관측된 자료 • 특정 orbit에서 기록된 자료를 40 X 40 형태로 분할(subset) 하여 제공 • subset_######_##.npy 파일로 제공되며, (height, width, channel) 형태 • 15개 Channel (Temp0~8, Type, GMI 경도, GMI 위도, DPR 경도, DPR, 위도, 강수량) Train - 2016~2018 년 관측된 자료 (76,345개) - 2016년 자료: orbit 번호 010462 ~ 016152 (25,653개) - 2017년 자료: orbit 번호 016154 ~ 021828 (25,197개) - 2018년 자료: orbit 번호 021835 ~ 027509 (25,495개) Test - 2019년 관측된 자료 (2,416개)
  • 18. https://dacon.io 18 1. 데이터 전처리 & EDA – EDA Train/Test 분포 확인 • Train 2016, 2017, 2018의 위/경도 분포와 Test의 위/경도 분 포는 다릅니다. • 연도별 Orbit의 Max-Min을 계산하면 연도마다 5674개를 가지 고 연도 별로 MinMaxScaler를 하여 0부터 1로 나열하면 Test 는 약 0.4에서 0.6 사이를 가지는 것을 확인할 수 있습니다. (여름) • Temp 평균을 살펴보면 Train과 Test가 다른 것을 확인할 수 있습니다. Test Test
  • 19. https://dacon.io 19 1. 데이터 전처리 & EDA – EDA Orbit 궤적 • Orbit 내 Subset은 연속적인 형태로 구성됩니다. • Subset의 개수는 고정된 것이 아니며 큰 것도 있고 작은 것도 있습니다. • 비 선형적인 궤도를 가지며 겹치는 위/경도도 존재하는 것으로 보입니다. • Orbit의 궤도를 3차 함수로 근사하여 Coefficient를 피쳐로 추가해보았지만 잘 동작하지 않았습니다.
  • 20. https://dacon.io 20 1. 데이터 전처리 & EDA – EDA 결측 값 • 결측 값은 -9999로 존재합니다. • 일부 Pixel만 결측 값이 존재하는 것도 있습니다. • 이 값은 강수량 분포 0~300과 너무나 다른 값이기 때문에 모 델 학습에 방해가 될 수 있습니다. • 전체 약 7만개 중 388개로 0.5% 밖에 안되기 때문에 결측 값 이 존재하는 파일은 삭제해도 될 것 같습니다. (실제 이 값을 채워서 학습했을 때 성능이 약간 향상되나 결국 사용하지 않 았습니다.) Target 값의 분포 • 96%의 강수량이 0이고 Max값은 299.xxx 입니다. • 강수량이 큰 값 중에 299 근처의 값이 특히 많이 분포합니다. • 파일당 비가 온 Pixel 개수가 특정 값보다 컸을 때의 Train Count를 살펴보면 전부 비가 오지 않았을 때가 10000개 정 도 있으며 그 후에는 일정하게 감소하는 것을 볼 수 있습니 다. 특정 값에서 급격하게 변하지 않으며 비가 온 Pixel개수 를 다르게 하여 Ensemble 할 수도 있을 것 같습니다.
  • 21. https://dacon.io 21 1. 데이터 전처리 & EDA – EDA 위도/경도 • 데이터 설명을 살펴보면 GMI와 DPR 데이터는 가장 가까운 값을 매칭하여 구성 • GMI와 DPR의 좌표는 정확하게 일치하지 않고 일부는 매우 큰 차이를 보입니다. 2016~2019년의 GMI와 DPR의 위/경도 차이 Graph • X: 위도 차이 • Y: 경도 차이
  • 22. https://dacon.io 22 1. 데이터 전처리 & EDA - 외부데이터 외부데이터 추가 외부 데이터를 추가하면서 데이터의 생성 원리와 위/경도 차이를 알 수 있었습니다. 2014~2015년의 Test의 Month 위주로 약 8000~9000개 정도의 추가 데이터 추출
  • 23. https://dacon.io 23 2. 모델 구축 & 검증 – 모델링 LightGBM • DeepLearning을 사용하면 잘 될 것 같다는 생각이 들었지만, LightGBM부터 시작해보았습니다. • 40*40 Pixel을 1600*1로 만들고 Column을 15개를 가지는 DataFrame으로 가공하여 작업 • land_type: Type//100 • Temp 2 Combination Diff (Temp1-Temp2, Temp2-Temp3, Temp8-Temp9 등) • Temp12, Temp34, Temp78 Average • Latitude, Longitude Average • Orbit, Subset Temp Min, Max, Std, Mean • 주변 3*3 Pixel 값과 그의 Min, Max, Mean • Longitude, Latitude Binning • Orbit 궤도 3차 함수로 근사 후 Coefficient • 강수량이 있는 Pixel과 없는 Pixel을 골고루 분배 시키기 위해서 강수량을 Binary화 하고 StratifiedKFold 수행 • 그 밖에 기타 여러가지 방법을 수행해보았지만 1.81정도까지 LeaderBoard Score를 기록하고 딥러닝 으로 전환하게 되었습니다.
  • 24. https://dacon.io 24 2. 모델 구축 & 검증 – 모델링 Deep Learning 그 후 딥러닝으로 방향을 바꾸어서 진행하게 되었습니다. Unet 기반 Model: Single Model 1.54~1.56 그 후 코드 공유에 1.51 초반 점수의 방법이 공유 되었고 모델에 대하여 다시 생각하게 되었습니다. https://dacon.io/competitions/official/235591/codeshare/1110?page=1&dtype=recent&ptype=pub 강수량을 예측할 지점에서 멀리 있는 데이터일 수록 영향이 적어져 풀링레이어가 결과 예측에 방해가 될 것으로 판단 이 Model을 기반으로 Customizing한 Model 생성 • Layer가 깊어져도 Image Size가 줄어들지 않도록 디자인 • Residual Block 활용 • 넒은 범위의 특징과 좁은 범위의 특징을 추출하기 위하여 1~11까지의 Kernel Size로 학습 • 1*1 Convolution 연산을 적극적으로 활용
  • 25. https://dacon.io 25 2. 모델 구축 & 검증 – 모델링 Data Augmentation 6개의 Augmentation 활용Rotation 90, 180, 270, Vflip, Hflip, Trasnpose Augmentation 비율은 전체 Image에서 50% 색을 변화시키는 Augmentation은 사용하지 않음
  • 26. https://dacon.io 26 2. 모델 구축 & 검증 – 모델링 Feature 12개 Channel Data 사용 Standard Scale 적용 • Temp0~8 • Type • GMI • GMI DPR Longitude Diff • GMI DPR Latitude Diff 1.54 -> 1.42
  • 27. https://dacon.io 27 2. 모델 구축 & 검증 – 모델링 Deep Learning Optimizer: Radam + LARS + LookAHead Lookahead implementation from https://github.com/lonePatient/lookahead_pytorch/blob/master/optimizer.py RAdam + LARS implementation from https://gist.github.com/redknightlois/c4023d393eb8f92bb44b2ab582d7ec20 Scheduler: CosineAnnealingWarmRestarts(optimizer, 10, 2,eta_min=1e-6) Loss: mae_over_fscore Batch Size: 128 Epoch: 150
  • 28. https://dacon.io 28 2. 모델 구축 & 검증 – 모델링 Model1 Model 시작 부분에 Inception Block을 두고 좁은 영역부터 넒은 영역까지 특징 추출 1*1 Convolution을 이용하여 연산량을 감소시키고 Channel 간 특징과 지역 정보를 분리하고자 함 Channel 수를 128, 256 등으로 실험해보았는데 성능적으로 큰 차이가 없었고 학습시간이 매우 오래걸려 서 64 Channel로 특징 추출
  • 29. https://dacon.io 29 2. 모델 구축 & 검증 – 모델링 Model1 그 후 Inception Block에서 추출한 Feature를 모 두 Concat하여 2가지 Path의 Convolution Layer를 통과시켜 줍니다. 이렇게 한 이유는 Channel 연산과 지역 정보 연 산의 순서에 따라 Feature가 다르게 뽑히지 않 을까 해서 이렇게 하였습니다. 그 후 이전에 Inception Block에서 추출한 Feature까지 모두 Concat하여 Convolution Layer에 넣어줍니다. Model2 Model2는 GoldBar님이 코드 공유에 올려주신 Model입니다. https://dacon.io/competitions/official/235591/cod eshare/1110?page=1&dtype=recent&ptype=pub
  • 30. https://dacon.io 2. 모델 구축 & 검증 – 모델링 Ensemble Kfold Ensemble Model1_1Fold Model1_2Fold Model1_3Fold Model1_4Fold Model1_5Fold 원본 Train 1.3876 Model2_TrainTestSplit Model1_TrainTestSplit 외부데이터 추가 Ensemble 0.2 0.6 1.3786 0.2
  • 31. https://dacon.io 2. 모델 구축 & 검증 – 시도해본 것 큰 강수량을 가지는 부분 강수량이 매우 큰 값을 가질 때 오차가 심함 • Label 값 변경, 주변 값에 비해 갑자기 299가 되는 Pixel을 주변 값의 평균으로 변경 • Loss Function 변경, 강수량 값이 30이 넘어갔을 때는 L2 Loss로 변경 • 큰 강수량 값을 가지는 부분 제거
  • 32. https://dacon.io 2. 모델 구축 & 검증 – 시도해본 것 Feature와 Augmentation • LightGBM에서 큰 도움이 되었던 Temp간 차이 Feature는 DeepLearning에서 도움이 되지 않았습니 다. • Random으로 Cutout하고 그 부분만 위의 6종의 Augmentation을 Random으로 적용하는 방법도 해 봤는데 실제 약간 도움은 되었지만 최종적으로 사용하지 않았습니다. • Random으로 Cutout하고 그 부분만 Target이 0일 때의 Temp값으로 변경해주었는데 성능이 안좋아 져서 사용하지 않았습니다.
  • 33. https://dacon.io 33 3. 결과 및 결언 – 대회 후기 결과 • GMI, DPR 위/경도 차이 Feature로 인하여 1.55에서 1.42로 약 0.13정도의 점수 향상(10등 -> 1등) • Model1을 5 Kfold로 Enesemble했을 때 1.38 Public Score 기록 • 다양성을 추가하기 위하여 외부데이터를 사용한 Model1, Model2을 학습하여 가중치를 주어 평균 냈을 때 1.37 Public Score 기록 • 최종 점수 1등으로 마감 대회 후기 • 지금까지 참여했던 Dacon 대회 중 가장 어려웠습니다. 마지막에 위/경도 차이 Feature를 찾지 못했 다면 1등을 하지 못했을 것 같습니다. • 좋은 팀원들을 만나 많이 배우고 재밌게 진행했는데 좋은 성적까지 거두어 정말 기분이 좋았습니다. • Deep Learning Model에 대한 더 많은 실험을 해보지 못하여 아쉬움이 남았습니다. • 한 위성의 같은 orbit의 연속성을 이용한 sequential 모델을 만들어보는 것도 재밌을 것 같았습니다. • 예를 들면 연속된 3개 데이터로 가운데 시점의 강수량을 예측