작성
·
308
0
안녕하세요 선생님! 지난번에 보내주신 쿠폰은 정말 감사했습니다. 덕분에 다음으로 공부할 것에 대해 계획할 수 있었습니다.
개인 공부중에 궁금한 것이 있어 이렇게 여쭤봅니다.
제가 사이버보안 분야를 머신러닝으로 향상시키는 것에 관심이 있는데요. 마침 앙상블 수업을 듣던 와중에 개인적으로 공부하고 있던 IDS(침입탐지) 데이터 셋 관련해서 어떤 아이디어가 생겨서요. 이 데이터셋은 다중 분류에 해당되는 것인데요.
공격 패턴이 15가지(라벨) 정도라고 가정하겠습니다.이 라벨들을 저만의 방법으로 새로 분류하여 새로운 라벨들을 추가하여 만들어서 각각 학습하고 테스트를 진행해봤습니다.
첫번째로, 이진 분류로 라벨을 0, 1로 다시 만들어서
모든 공격들은 1로 분류하고, 일반적인 것(양성,Benign)들은 0으로 분류하는 것이죠.
즉, 공격이긴 공격인데 어떤 공격인지는 모르는 정도로만 시스템이 탐지하는 것입니다. 이럴 경우, 정확도, 정밀도, 재현율이 모두 99.97%로 아주 높은 확률로 탐지를 해냅니다.
두번째 분류는 비슷한 공격 패턴끼리 묶어서 그룹화를 한 뒤(즉, 라벨의 수를 줄이는 것입니다.) 학습 및 테스트를 하는 것입니다. 이럴 경우에도 아주 높은 점수를 보였습니다.
마지막 분류는 원래 라벨들입니다(전처리 작업 후). 역시 높은 점수를 보이긴 하나, 약간 낮은 점수를 보이는 일부 라벨들이 있습니다.그래서 말인데요.
혹시 이 세가지 모델을 연결해서 결과를 추출하는 방법이 있을 까요? 예를 들어, 먼저 공격인지 아닌지를 보고(첫번째 분류), 공격이라면 어떤 그룹에 속하는 지 보고(두번 째 분류), A라는 그룹이라면, 마지막 단계의 분류에서 세부적으로 어떤 라벨인지(세번째 분류)를 예측해내는 것이죠. 이렇게 연계하여 결과를 예측할 수 있는 모델을 만든다면, 점수가 약간 낮은 라벨들도 일부 보완할 수 있지 않을 까 생각되어서요.
아이디어는 떠올랐는데, 구글에 검색해보니 앙상블이나, 파이프라인 등의 관련된 내용만 검색이 되어서요. 혹시 제가 모르는 어떤 기술이 있을까요? 선생님의 조언을 구합니다.
답변 1
1
안녕하십니까,
쿠폰을 잘 사용하신다니 저도 기분이 좋군요 ^^
말씀하신 내용은 굉장히 좋은 아이디어 같군요.
보통은 분류 레이블 유형이 다양하면 꼭 성능이 잘 안나오는 소수의 레이블들이 있습니다. 이게 해당 분류 레이블 별로 학습 데이터가 많지 않아서 그런 경우가 있고, 다른 분류 레이블과 비슷한 피처들로 구성되어 있어서 아예 모델이 헷갈려서(?) 성능이 안나오는 경우가 있습니다.
제가 말씀하신 첫번째 방식과 비슷한 방식으로 옛날에 함 모델을 적용해 본적이 있습니다(말씀하신 내용과 완전히 동일하진 않을 수 있습니다).
먼저 양성/음성을 먼저 판단하고 이후에 양성인 경우 질병의 유형을 판단하는 모델을 그렇게 함 구성해 보았는데,
양성/음성을 판단 및 양성인 경우 질병 유형을 판단하는 모델을 단 하나로 만들수는 없었습니다. 물론 그렇게 할수도 있었습니다. 양성이 1, 음성이 0, 그리고 질병 유형을 A, B, C, D, E, F, G, H 그리고 질병이 아닌 경우 Z라고 하면 레이블을 (1, A), (1, B), (1, C), (1, D), (1, E), (1, F), (1, G), (1, H) 그리고 (0, Z)로 하면 됩니다만 이건 질병 유형을 판단하는 모델과 다를 바가 없어서...
그리서 먼저 전체 데이터로 양성/음성 모델을 학습 시키고, 다음에 질병 데이터로 질병 분류 모델을 학습 시키고, 다음에 예측 시에는 먼저 양성/음성 모델을 통과 시키고, 다음에 양성인 경우에 질병 분류 모델을 통과 시켜서 테스트를 해보았는데 결과적으로 모델 성능이 향상되지는 않았습니다(기억에 약간 더 나빠졌던것 같습니다)
좀 설명이 길어졌는데, 요약 드리면 특정 레이블의 경우 모델의 성능이 안나오는 경우가 양성/음성을 구분 못해서 문제가 아니라, 많은 레이블 유형을 가진 데이터 세트일 경우 특정 레이블로 학습 데이터가 작고, 비슷한 피처들로 구성된 다른 레이블과 헷갈리기 쉬운 데이터 특성을 가지고 있기 때문에 성능이 저하됩니다.
그렇지 않고 개별 레이블 데이터로 학습 데이터도 균일하게 많이 있고, 피처들의 특성도 독특하게 분포되어 있다면 아무리 레이블 유형이 많더라도 머신러닝 모델 성능은 좋을 수 밖에 없습니다. 결론적으로 개별 레이블 특성이 문제가 있다면 아무리 그룹화를 하더라도 최종적으로 개별 레이블을 예측하는 모델 성능이 좋아 질 수 없기 때문에 전체적으로 성능 향상이 이뤄지기 어렵다는게 제 생각입니다.
감사합니다.