일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | |||
5 | 6 | 7 | 8 | 9 | 10 | 11 |
12 | 13 | 14 | 15 | 16 | 17 | 18 |
19 | 20 | 21 | 22 | 23 | 24 | 25 |
26 | 27 | 28 | 29 | 30 | 31 |
- sparse coding
- VGG16
- 태블로 실습
- ResNet
- SRCNN
- Computer Vision
- 머신러닝
- 논문리뷰
- VGG
- 태블로
- 장학프로그램
- kt디지털인재
- super resolution
- Semantic Segmentation
- 딥러닝
- kt희망나눔재단
- data analysis
- 데이터 분석
- 데이터 시각화
- cnn
- k-fold cross validation
- 개 vs 고양이
- 데이터과학
- 논문 리뷰
- Tableau
- object detection
- Deep Learning
- 데이터 증강
- 파이썬 구현
- Data Augmentation
- Today
- Total
기억의 기록(나의 기기)
[논문리뷰 / Corrosion prediction] Prediction and analysis of corrosion rate of 3C steel using interpretable machine learning methods 본문
[논문리뷰 / Corrosion prediction] Prediction and analysis of corrosion rate of 3C steel using interpretable machine learning methods
황경하 2024. 5. 6. 18:23논문리뷰
최근에 부식을 예측하는 프로젝트를 진행하고 있어 부식도를 예측 또는 부식의 원인을 분류하는 논문들에 관심이 많습니다. 그중 오늘은 3C 강의 부식 속도를 머신러닝 기술을 이용하여 예측하는 논문을 리뷰해 보겠습니다.
* 해당 글에 첨부된 그림은 위 논문에서 발췌한 것임을 미리 밝힙니다.
서론
먼저, 3C 강이 무엇인지에 대해 정의해 보겠습니다. 3C 강은 Communication, Computer, Consumer Electronics의 약어로 통신, 컴퓨터 및 소비자 전자 제품 분야에서 사용되는 특정 종류의 강을 가리킵니다. 그렇기 때문에 이 3C 강의 부식 속도를 예측하는 것은 재료 과학 측면에서 봤을 때 매우 중요한 일이죠. 실제로 머신러닝 기술은 이런 재료 과학 분야에서 특정 재료의 부식도, 수명 기간 등을 예측하는 데에 자주 사용되곤 합니다. 이 논문에서는 다양한 해수 환경에서 3C 강의 부식 속도를 예측합니다.
(우리는 머신러닝 기법에 초점을 맞추었기 때문에 3C 강에 대해 더 깊은 이해는 하지 않고, 이 정도에서 넘어가겠습니다.)
머신러닝 기법이 탄생하기 이전의 연구에서는 부식에 영향을 주는 feature들이 많을수록, 그리고 data가 클수록 오히려 예측에 복잡성을 가중시켰습니다. 하지만, 머신러닝의 탄생 이후에는 이런 feature와 data의 크기가 클수록 머신이 학습할 수 있는 데이터가 많아졌고, overfitting 같은 우려도 존재하지만, 최적화 과정을 통해서 억제할 수 있기 때문에 많은 데이터는 모델의 성능을 올리는 중요한 요인으로 작용합니다. 이 논문에서는 약 46개의 sample data(해수 환경)를 사용하였고, feature를 T(온도), DO(물속에 용해된 산소), Sal(염도), ORP(산화-환원 전위), PH(PH value)를 사용하였습니다. rate(부식 속도)는 결과변수로 사용하였습니다. 이 데이터를 이용하여 XGBoost, Random Forest, Lasso, SVR, LightGBM 모델을 사용하여 모델의 성능들을 비교하고, 가장 좋은 성능을 보이는 모델을 최종 모델로 선택합니다. 실제로 이 방법은 같은 데이터를 사용하더라도 모델에 따라 다른 결과를 보여줄 수 있기 때문에 최적의 성능을 얻기 위해 자주 쓰는 방법입니다. 또한, SHAP 기법을 사용하여 가장 부식에 많은 영향을 주는 feature가 무엇인지를 분석합니다.
본론
위의 feature를 선택하는 과정도 매우 중요합니다. 왜냐하면, 만약 부식과 아무 상관이 없는 feature를 넣는다면, 우리가 원하는 결과를 얻을 수 없을 뿐만 아니라 복잡성만 올리게 됩니다. 이 논문에서는 위의 feature를 selection 할 때에 이전에 연구들, 그리고 논리적인 이유로써 선택을 했지만 우리는 그것이 초점이 아니기에 설명하지 않고 넘어가겠습니다.
이제, 데이터에 대해 정의했기 때문에 본격적으로 모델에 대한 이야기로 넘어가겠습니다.
먼저, 모델의 성능을 평가하기 위해 root mean square error(RMSE), mean square error(MSE), mean absolute error(MAE), mean absolute percentage error(MAPE), R-squared 지표를 사용하였습니다. 이 지표들은 실제로 우리가 머신러닝을 통해 회귀 및 예측을 할 때에 자주 쓰이는 평가 지표들이기에 익혀두시는 걸 추천드립니다. RMSE, MSE, MAE, MAPE 방식은 오차를 계산하는 것이기에 낮을수록 좋으며, R-squared는 모델의 설명력을 말하는 것으로 1에 가까울수록 모델의 성능이 뛰어남을 이야기합니다.
그리고, 모델들에 하이퍼파라미터를 최적화하는 과정은 Tree-structured Parzen Estimator(TPE) 방식을 사용하였습니다. 이 외에도 GridSearchCV, RandomizedSearchCV 방법도 존재합니다만 여기서는 TPE 방법을 선택하여 하이퍼파라미터를 최적화하였습니다. (하이퍼파라미터 최적화 또한 모델의 성능을 증가시키는 매우 큰 요인이므로 반드시 익히시길 바랍니다.) 이렇게 하이퍼파라미터 최적화까지 마친 모델들을 학습시키는 과정을 설명드리겠습니다. 우선, 현재 전체 데이터가 46개 정도인데, 여기서 training data와 test data를 80:20의 비율로 나눕니다. 그러면 훈련 데이터는 약 37개, 테스트 데이터는 약 9개가 될 것입니다. 현재 training data가 매우 작기 때문에 이 논문에서는 k-fold cross validation 방식으로 학습을 진행하였습니다. k=5로 잡고 학습을 진행하며 각 수행 시마다 test data의 결과를 저장하고 평균 내어 모델의 성능을 평가합니다. 아래는 5-fold cross validation 기법으로 학습한 모델의 최종적인 성능을 비교한 표입니다. (K-fold Cross Validation 방식에 대한 설명은 따로 포스팅해두겠습니다. 더 궁금하신 분은 포스팅을 참고해 주세요!)
형광펜으로 색칠한 부분인 LightGBM이 R-squared 값이 가장 1에 가까우며 다른 지표들의 값이 가장 낮은 것으로 보아 가장 좋은 성능을 보이는 모델임을 알 수 있습니다. 이제 모델에 대한 설명은 모두 끝났습니다. 이제는 SHAP 기법을 통해 모델을 설명해 보겠습니다. (여기서는 가장 성능이 좋은 LightGBM 모델을 사용하였습니다.)
SHAP 기법이란?
SHAP기법은 모델의 예측력을 설명하기 위해 쓰이는 기법입니다. 쉽게 Python에서 SHAP Library를 설치하여 사용 가능합니다. 각 특성의 기여도를 양적으로 평가함으로써 모델의 예측을 설명하고, 모든 가능한 특성 조합을 고려하여 각 특성이 예측 결과에 미치는 영향을 계산합니다. 그리고 그것을 시각화하여 우리에게 보여주기 때문에 직관적인 이해를 얻을 수 있습니다. 그렇다면 우리 주제와 SHAP 기법은 상관이 있을까요? 우리의 목적은 부식도를 예측하는 것입니다. 그리고 우리에게 주어진 feature는 부식에 영향을 줄 수 있는 요인들이죠. 그렇다면, SHAP기법을 통해 모델의 예측에 가장 많은 영향을 주는 요인을 분석한다면, 그것이 부식에 가장 큰 영향을 주는 feature가 될 것입니다. 그러면, 후에 그 feature의 영향을 줄이는 방식으로 개선해 나간다면, 부식의 진행 속도 또한 늦출 수 있게 되는 것이죠.
이 그림은 각 특성의 SHAP value를 시각화 한 것 입니다. 첫번째 그림은 각 특성의 SHAP값의 평균을 그린 것이며, 두번째 그림은 각 특성의 SHAP 값을 직접 시각화 한 것입니다. 두번째 그림의 색상은 파란색은 음의 상관관계, 빨간색은 양의 상관관계를 뜻합니다. 그렇다면, 우리의 반응 변수는 부식 속도이기 때문에 빨간색인 양의 상관관계를 보이는 변수는 부식 속도를 촉진한다고 해석할 수 있습니다. 왼쪽 그림과 오른쪽 그림 모두 ORP가 SHAP값이 가장 크며, ORP는 빨간색 SHAP값이 매우 크게 나타납니다. 따라서, 부식 속도에는 ORP가 가장 큰 영향을 주며 동시에 부정적인 영향을 준다는 것을 보여줍니다.
위 그림은 각 특성의 SHAP값의 상관관계를 그린 것입니다. 우리가 일반적으로 변수들의 상관관계를 그린다면, 자기 자신과의 상관관계는 1이어야 할 것입니다. 즉, 역대각선 방향은 모두 1인 것이 우리가 평소에 보는 correlation plot입니다. 하지만, SHAP값은 예측값에 대한 기여도이기 때문에 자기 자신과의 상관관계가 1이라면, 그 변수만으로 모든 예측값을 구할 수 있다는 말이 됩니다. 따라서, 역대각선 방향의 값들은 1이 아닌, 그 변수의 예측값에 대한 기여도를 보여줍니다. 여기서도 마찬가지로 ORP가 가장 예측값에 큰 영향을 준다는 것을 알 수 있습니다. 참고로, 위 그림의 값이 음수인 경우는 예측값에 대한 기여도가 음수인 즉, 부식 속도에 긍정적인 영향을 주는 변수로 해석할 수 있습니다.
(동그라미 친 부분은 ORP의 기여도이며 0.84 값을 보여줍니다.)
위 그림은 Local Interpretable Model-agnostic Explantions(LIME) 기법을 사용한 SHAP 분석 결과입니다. LIME 기법은 개별 예측 값에 대한 설명을 제시하는 기법입니다. 현재 여기서는 모든 예측값을 보는 것이 아닌 지역적으로 좁혀서 각 예측값의 SHAP값을 시각화하여 보여줍니다. 이 역시도 ORP가 가장 큰 기여도를 보여주며, 음수 값으로 반응변수(=부식 속도)에 부정적인 영향을 끼친다는 것을 알 수 있습니다. 이 방법은 우리가 구한 결과에 대한 신뢰도를 높여주기 위해 자주 사용되는 기법이므로 아래 논문을 참고하여 더 공부해보시는 것도 좋을 것 같습니다. (저도 더 공부해보고 포스팅 하겠습니다.)
- LIME 기법 참고논문: https://arxiv.org/abs/1602.04938
결론
결론적으로, 이 논문은 부식 속도를 예측하는 것이 목표였습니다. 데이터는 총 46개였고, 그 데이터는 각기 다른 해수 환경에서의 T(온도), DO(물속에 용해된 산소), Sal(염도), ORP(산화-환원 전위), PH(PH value)와 rate(부식 속도) 입니다. 이 데이터를 이용하여 총 5개의 모델의 성능을 비교해보았고, 그 결과 LightGBM이 가장 좋은 성능을 보이는 것을 확인했죠. 이후에는 이 예측값에 대해 설명하기 위하여 SHAP 기법을 통해 직접 각 변수들의 SHAP값을 시각화하여 확인해보았습니다. 결론적으로는, ORP가 가장 큰 영향을 미친다는 것을 알게 되었고, 실제 연구(머신러닝이 아닌 물리적 실험)에서도 같은 결과를 보였습니다.
마치며..
이렇게 저의 첫 번째 논문 리뷰가 끝났습니다. 처음이라 서툴고, 가독성이 떨어지는 것 같습니다 ,, 꾸준히 포스팅하면서 더 많은 정보, 더 쉬운 이해를 줄 수 있도록 노력하겠습니다.
감사합니다.