boostcampaitech3 / level2-dkt-level2-recsys-10

부스트캠프 AI Tech 3기 RecSys-10 / 👨‍🏫 Deep Knowledge Tracing(DKT) Competition 👨‍🏫
2 stars 5 forks source link

[Experiment] 모델별 하이퍼 파라미터 튜닝 실험 #40

Closed minchoul2 closed 2 years ago

minchoul2 commented 2 years ago

💡 Issue

기본 BaseLine 코드와 현재 업로드된 모델들의 하이퍼 파라미터 튜닝을 진행하겠습니다.

이 실험의 목적은 단일 모델들이 기본으로 주어지는 코드들의 최대 성능이 어느정도인지 파악하고, 모델 성능의 우위를 비교하기 위함입니다.

적용해볼 하이퍼파라미터는 lr, hidden_dims, n_layer 등 기본적으로 주어지는 하이퍼파라미터입니다.

모델별 하이퍼 파라미터 (수정 완료)

DKT : LSTM / LSTMATTN / BERT

'parameters' : {
        # 훈련 파라미터
        'lr': {
            'distribution': 'uniform',
            'min': 0,
            'max': 0.1
            },
        'batch_size':{
            'values': [16, 64, 256, 1024]
        },
        'scheduler':{
            'values' : ['plateau','linear_warmup']
        },
        'optimizer':{
            'values' : ['adam','adamW']
        },

        # 모델 파라미터
        'max_seq_len':{
            'distribution': 'int_uniform',
            'min': 5,
            'max': 300
            },
        'hidden_dim' : {
            'values': [8, 16 ,32, 64] # hidden_size는 h_heads의 배수여야함
        },
        'n_heads':{  
            'values': [1,2,4,8]  # Multi-Head-Attention 모델에만 적용 
        },
        'n_layers': {
            'distribution': 'int_uniform',
            'min': 1,
            'max': 10
            },
        'drop_out': {
            'distribution': 'uniform',
            'min': 0.1,
            'max': 0.9
            },
    }

GCN

sweep_conf = {
    'name' : CFG.model + ' : ' + CFG.sweep_name,
    'method': 'bayes',
    'metric' : {
        'name': 'valid_auc',
        'goal': 'maximize'   
        },
    'parameters' : {
        'learning_rate': {
            'distribution': 'uniform',
            'min': 0,
            'max': 0.1
        },
        'n_layers': {
            'distribution': 'int_uniform',
            'min': 1,
            'max': 4
        },
        'hidden_dim': {
            'distribution': 'int_uniform',
            'min': 2,
            'max': 128
        },
    }
}

Tablular

    'parameters' : {
        'learning_rate': {
            'distribution': 'uniform',
            'min': 0,
            'max': 0.1
            },
        'num_boost_round' :{
            'distribution': 'int_uniform',
            'min': 1,
            'max': 3000
            },

        'early_stopping_rounds':{
            'distribution': 'int_uniform',
            'min': 10,
            'max': 300
            },
        'max_depth':{
            # 'values':[i for i in range(-1,30,2)] # LGBM  
            'values':[i for i in range(1,16,2)] # CatBoost 최대 16/-1 불가
            }
        }
    }

📝 TODO