23.06.15
DEVOTEE를 활성화 시키면
지금 작성한 커뮤니티 글에 대해 1개의 댓글을 달아줍니다.
버튼을 누르면 글 수정 시 ChatGPT가 작성한 댓글이 수정됩니다.
| 컨텐츠 유형 | 제목 | 저장일 | 삭제 |
|---|
본인인증 로그인에 실패하였습니다.
회원이 아니시거나 본인인증 등록이
완료되지 않은 사용자입니다.
이전 연구에서는 직접 수집한 데이터에 대해 데이터 분석 및 실내외 분류를 진행해보며 무선신호 데이터가 어떤 특성을 가지는지 알아보았습니다.
그렇다면 이제 실제 필드에서 수집되는 상용 데이터에 대해 분석하고 적용해보겠습니다.
그 전에 중간 발표 이후에 서울, 강원도, 인천 등 추가적으로 데이터를 수집하여 총 2,276개의 실내외 무선신호 데이터를 수집하였습니다.
저희가 다루게 될 상용 데이터는 T전화 데이터입니다.
T전화는 기존의 전화를 거로 받고, 통화기록만 확인하는 기능뿐 아니라 휴대폰에 저장되어 있지 않은 기업/상점 등에 대한 전화번호, 위치, 인터넷 검색 결과 정보를 제공하며 스미싱, 스팸전화 정보를 확인할 수 있는 전화 서비스 입니다.
전국의 고객들이 스마트폰을 통해 T전화를 이용하면서 하루에 수집되는 무선신호 데이터만 해도 수 천 만건 이상이라고 합니다.
T전화의 경우 대규모의 데이터에다가 보안도 매우 중요한 데이터이기 때문에 함부로 저희가 접근할 수 없고 SKT측에서 제공하는 가상서버와 PySpark 환경에서 이용할 수 있습니다.
다음과 같은 과정을 통해 T전화 데이터를 열어보니 106개의 피처가 존재하는 데이터들을 확인할 수 있었습니다.
“band”, “cqi”, “rsrp” 등 수집 데이터와 동일한 피처 뿐만 아니라 T전화에만 존재하는 다양한 피처들도 확인할 수 있었습니다.
기존 수집 데이터와 다른 T전화의 큰 특징 중 하나는 실내외 정답 레이블과 지역 정보가 없다는 것입니다.
수집 데이터의 경우 저희가 직접 실내외 유무 및 수집한 지역정보를 직접 입력하였는데, 전국에서 들어오는 수많은 T전화 데이터에 대해서는 이것들을 직접 입력할 수가 없습니다.
T전화 데이터의 또 다른 특징 중 하나가 WIFI 정보의 부족함입니다.
앞선 수집 데이터에 대한 연구를 통해 실내외 분류 시 WIFI 피처들의 영향력이 큰 것을 확인할 수 있었는데, T전화 데이터 내 WIFI 정보가 수집 데이터에 비해 많이 빈약한 것을 확인할 수 있었습니다.
위 그림에는 수집 데이터와 T전화 데이터 내 WIFI 피처를 출력했을 때의 비교를 나타내었습니다.
수집 데이터의 경우 측정 당시 주변에 잡히는 N개의 WIFI 리스트들의 정보가 존재했는데 T전화의 경우 항상 1개의 WIFI 정보만이 수집된 것을 확인할 수 있었습니다.
기존 수집 데이터의 연구에서 실내외 분류 시, 주변 와이파이의 갯수를 의미했던 피처인 “wifi_count” 피처의 영향력이 가장 컸었는데
T전화 데이터에서는 이 피처를 이용할 수 없다는 것을 의미하게 됩니다.
또한 T전화에서는 wifi 정보 내 “wifi_frequency” 피처도 존재하지 않아 유일하게 wifi 내 이용할 수 있는 피처는 “wifi_rssi” 인데요,
“wifi_rssi”의 경우 값이 존재하지 않는 NaN값의 비율이 수집 데이터에 비해 높았습니다.
위 표 그림에서는 각 데이터 간 피처 별 NaN 비율을 퍼센트(%)로 나타내었습니다.
“wifi_rssi”의 경우 수집 데이터에서는 NaN값이 존재 하지 않았다면 T전화에서는 9억개의 데이터 중에서 30% 비율로 NaN 값이 존재하지 않았습니다.
수집 데이터의 경우 저희가 직접 신호를 수집하는 과정에서 무선 신호가 잘 잡히지 않는 상황도 고려하기 위해
바닷가, 산, 외딴 시골, 산책로 등을 방문하여 수집했는데도 불구하고 1개 이상의 WIFI가 존재했는데
T전화에서는 상당히 많은 비율로 WIFI 정보가 존재하지 않는 케이스를 확인할 수 있었네요.
WIFI 정보 외에도 주요 lte 피처에 대해서 NaN 비율이 많은 순으로 나타내었는데
lte의 “ta” 피처의 경우도 이전 분석에서 분류 시 영향도가 높게 나타났는데, T전화에서는 NaN 비율이 99%에 해당해서 거의 쓸 수 없다고 볼 수 있겠습니다.
그 외 “tx_power”, ‘pci’ 피처의 NaN비율이 높았고 “rsrp”, “rsrq”, “sinr”, ‘eci’ 등의 피처는 NaN비율이 수집 데이터에 비해 적은 것을 확인할 수 있었습니다.
위 그림에서는 수집 데이터와 T전화 데이터 간 분포를 시각화하여 나타내었습니다.
빨간색은 T전화, 파란색은 그래프는 수집 데이터를 의미합니다.
위 6개의 시각화 그림 중 상단 3개 ‘band’, ‘bandwidth’, ‘cqi’ 등과 같이 어느 정도 비슷한 분포를 띄는 피처도 존재를 하는 반면
전혀 다른 분포를 보이는 피처들도 많이 존재한것을 확인할 수 있었습니다.
위와 같은 특징을 가진 T전화 데이터의 성능 테스트를 위해 저희는 크게 2가지의 평가 방법으로 진행하였습니다.
첫 번째 평가 방법은 T전화 데이터 환경으로 구성한 수집 데이터 분류 성능 측정입니다.
수집 데이터에서는 실내외 레이블이 있지만 T전화에는 없고, 또한 수집 데이터와 T전화 간 구성된 피처 종류 또한 달랐던 것을 확인할 수 있었습니다.
그러므로 수집 데이터를 T전화 데이터 환경으로 세팅한 다음, 이것을 T전화 데이터로 가정하여 분류 성능을 측정해보았습니다.
이를 위해 다음과 같은 방법으로 전처리를 진행했습니다.
T전화 데이터와 공통된 피처만을 선택하여 수집 데이터 재구성
테스트셋 내 30% 비율로 ‘wifi_rssi’값을 NaN 처리
‘ta’ 및 ‘’tx_power” 피처 등 T전화 데이터 내 NaN 비율이 높은 피처는 제거
이렇게 T전화 형태로 수집 데이터를 변환한 뒤, 이전 연구에서 가장 좋은 성능을 보였던 XGBoost 모델를 적용해 본 결과 f1 score 0.67 정도의 분류 성능이 나왔습니다.
“wifi_count” 등의 주요 피처 제거 및 테스트 셋 내 wifi의 NaN 비율이 높아지니 이전 연구에 비해 f1 score가 0.18 정도로 감소한 것을 확인할 수 있었습니다.
이러한 연구 결과들을 바탕으로 저희는 wifi 유무에 따라서 모델을 각각 구성하여 분류를 해보는 것으로 접근을 해 보았습니다.
위 그림은 피처 유무에 따른 모델 구성 그림 및 성능 결과를 나타내었습니다.
데이터 입력 시 WIFI 정보가 있다면 피처를 WIFI+LTE 구성하여서 학습 및 실내외 예측을 진행하고, WIFI 정보가 없다면 LTE 피처만을 이용하여서 학습 및 예측을 진행해보았습니다.
실험 시 WIFI+LTE 조합에서는 Gradient Boosting이 f1score 0.83으로 가장 좋은 성능이, LTE 피처 조합에서는 K-neighbor이 가장 좋은 성능을 보였습니다.
최종적으로 Gradient Boosing과 k-neighbor 두 모델을 결합하여 종합적으로 f1 score 0.8의 성능이 도출되었습니다.
성능 비교 분석을 위해 모든 피처를 입력으로 하는 Neural Network 모델과 CNN 딥러닝 메소드를 적용해 보았을 때
각각 f1 score 0.76, 0.74의 성능이 도출되었는데,
저희가 다루는 무선신호 데이터에 대해서는 WIFI 피처 유무에 따라 머신러닝 모델을 구성하는 방법의 성능이 가장 우수한 것을 확인할 수 있었습니다.
두 번째 평가 방법은 기지국 이름 정보를 활용한 T전화 성능 측정입니다.
T전화 데이터 중 추가로 활용할 수 있는 정보가 있었는데
그것은 바로 무선 신호 기지국 고유 넘버를 의미하는 ‘eci’ LTE 피처에 대해 각 번호에 해당하는 기지국 이름이 매칭된 딕셔너리 정보입니다.
이 정보를 이용하면 T전화 데이터 내 몇몇의 실내 레이블 정보를 습득할 수 있습니다.
위 표에서는 eci 번호와 그에 해당하는 기지국 이름 정보 예시를 나타내었습니다.
기지국 이름 정보 안에 ‘인’이라는 한글 글자가 있으면 실내의 가능성이 높다고 합니다.
첫 번째 행 데이터에서는 기지국 이름 정보를 통해 실내 유무를 알 수 없지만,
두 번째 행에서는 ‘eci’ 7207471번에 대한 기지국 이름 안에 ‘인’이라는 글자가 들어가므로 해당 eci 번호를 가진 데이터의 경우 실내 가능성이 높은 무선신호라고 볼 수 있습니다.
그러므로 이 정보를 활용하여 T전화에 대한 대략적인 성능을 측정할 수 있게 됩니다.
즉 수집 데이터에 대해 학습한 모델을 실내 레이블만 있는 T전화 데이터에 대해 테스트를 진행하여 TP(True positive) score,
즉 실내 데이터에 대해서 실내로 얼마나 잘 맞추는 지에 대한 성능을 확인해보았습니다.
앞선 실험에서 최적의 성능을 보였던 WIFI 유무에 따른 모델들을 가져와서 테스트 한 결과 TP score 0.9의 성능이 나오는 것을 확인할 수 있었습니다.
물론 이 성능의 결과가 신뢰가능하다라고는 보기 힘듭니다.
‘eci’ 기지국 이름 안에 ‘인’이라는 글자가 있다라는 정보가 실내 가능성이 높은 것이지 확실한 레이블 정보로 보기 힘들고,
수집 데이터와 T전화 데이터 간 분포도 다른 면이 있었기 때문에 수집 데이터로만 학습해서는 최적의 성능 결과를 도출하기 어렵습니다.
하지만 저희가 활용할 수 있는 정보들을 최대한 활용해보니 대략적으로 이러한 분류 성능이 보였고, 수집 데이터가 실제 분포를 대표할 수 있을 만큼 증가하고,
T전화 내 레이블 정보 및 위치 정보도 활용할 수 있게 된다면 더 좋은 성능을 기대할 수 있을 것으로 보입니다.
저희가 과제를 진행해보면서 처음 계획했던 것과는 굉장히 다른 방향으로 진행되었던 것 같습니다.
펠로우쉽을 통해 쉽게 접근할 수 있는 공개 데이터가 아닌 데이터들을 현장에서 직접 수집하고 분석하면서 무선 신호의 데이터 제대로 이해할 수 있는 경험을 가질 수 있었습니다.
아마 저희가 시작부터 T전화와 같은 상용 데이터를 다루게 되면 왜 데이터가 이런식으로 괴상(?)하게 구성되는지 이해하기가 어려웠을텐데,
데이터를 직접 수집하고 분석하는 과정을 통해 상용 데이터의 구성을 빠르게 이해하고 그 차이점 또한 파악할 수 있었던 것 같습니다.
또한 현업에서 사용되는 대규모이면서 보안도 중요한 데이터들을 직접적으로 다뤄볼 기회도 없었는데, 이번 펠로우쉽을 통해 지금까지 겪어보지 못한 새로운 경험들도 많이 겪어볼 수 있었는데요,
평소 연구실에서 이용하는 GPU가 내장된 리눅스 서버 내 python 환경과는 다르게,
실제 현업에서는 서버가 다운되거나 데이터가 워낙 커서 터지는 등 크고 작은 많은 에로사항들이 존재하는 것을 확인하고 이러한 에러들을 처리하는데 많은 시간을 할애하기도 하였습니다.
또한 모든 것이 편하게 주어진 환경 내에서 성능이 좋은 딥러닝 모델을 연구하는 것이 아닌,
현업에서 제한된 환경 내 최적의 성능을 낼 수 있도록 탐색해 나가는 과정을 통해 실제 현업에서만 겪을 수 있는 좋은 경험들을 겪을 수 있었습니다.
DEVOTEE를 활성화 시키면
지금 작성한 댓글에 AI가 댓글을 달아줍니다.