기계학습의 정의
기계학습은 인공지능의 한 분야로, 컴퓨터가 명시적으로 프로그래밍되지 않고도 데이터를 통해 학습하여 성능을 개선하는 기술이다. 이는 데이터를 분석해 패턴을 발견하고, 그 패턴을 바탕으로 예측하거나 결정을 내리는 알고리즘을 개발하는 과정이다. 기계학습은 주로 지도 학습, 비지도 학습, 강화 학습으로 나뉜다. 지도 학습은 레이블이 있는 데이터를 사용해 입력과 출력의 관계를 학습하고, 비지도 학습은 레이블 없는 데이터에서 숨겨진 구조나 패턴을 찾는다. 강화 학습은 보상과 피드백을 통해 최적의 행동을 학습한다. 기계학습은 이미지 인식, 음성 처리, 추천 시스템, 자율주행 등 다양한 분야에서 활용되며, 데이터 기반으로 작동하기 때문에 데이터의 질과 양이 성능에 큰 영향을 미친다. 따라서 기계학습을 공부할 때는 데이터 전처리, 모델 선택, 평가 방법, 그리고 실제 응용 사례를 중심으로 학습하는 것이 중요하다.
기계학습 절차 (과정)
기계학습의 절차는 문제 정의, 데이터 수집, 데이터 전처리, 모델 선택, 학습, 평가, 최적화, 그리고 배포 및 유지보수 단계를 포함한다. 먼저, 문제 정의 단계에서는 해결하고자 하는 문제의 성격을 명확히 하고, 이를 지도 학습, 비지도 학습, 강화 학습 등의 유형으로 분류하며, 목표(예: 예측, 분류, 군집화 등)를 설정한다. 다음으로, 데이터 수집 단계에서는 문제 해결에 필요한 데이터를 모은다. 이 데이터는 품질이 높고, 문제에 적합해야 하며, 공개 데이터셋, 센서 데이터, 웹 스크래핑 등 다양한 출처에서 얻을 수 있다. 데이터 전처리 단계에서는 수집한 데이터를 분석 및 모델 학습에 적합하게 가공한다. 이는 결측치 처리, 정규화, 이상치 제거, 데이터 변환(예: 텍스트를 수치화) 등을 포함한다. 모델 선택 단계에서는 문제에 맞는 알고리즘(예: 선형 회귀, 의사결정나무, 신경망 등)을 선택하고, 필요에 따라 사전 학습된 모델을 활용하거나 새로운 모델을 설계한다. 학습 단계에서는 준비된 데이터를 사용해 모델을 훈련시키며, 이때 학습 데이터를 통해 모델이 패턴을 학습하도록 최적화한다. 평가 단계에서는 테스트 데이터를 사용해 모델의 성능을 측정한다. 일반적으로 정확도, 정밀도, 재현율, F1 점수 등의 지표를 사용하며, 과적합(overfitting) 여부를 확인한다. 최적화 단계에서는 하이퍼파라미터 튜닝, 피처 엔지니어링, 정규화 기법 등을 통해 모델 성능을 개선한다. 마지막으로, 배포 및 유지보수 단계에서는 학습된 모델을 실제 시스템에 통합해 운영하며, 새로운 데이터에 대한 성능을 모니터링하고 필요 시 모델을 업데이트한다. 이 과정은 순차적이지만, 문제나 데이터의 특성에 따라 반복되거나 일부 단계가 조정될 수 있다. 따라서 기계학습을 공부할 때는 각 단계의 목적과 방법, 그리고 실제 사례를 통해 전체 흐름을 이해하는 것이 중요하다.
기계학습 3가지 유형과 대표적인 문제(예시)
지도 학습(Supervised Learning)은 입력 데이터와 이에 대응하는 정답(레이블)이 포함된 데이터를 사용해 입력과 출력 간의 관계를 학습하는 방식이다. 모델은 학습 데이터를 통해 패턴을 학습하고, 새로운 데이터에 대해 예측하거나 분류한다. 대표적인 문제로는 스팸 이메일 분류(이메일이 스팸인지 아닌지 분류), 주택 가격 예측(집의 특징을 바탕으로 가격을 예측), 이미지 분류(예: 고양이와 개를 구분하는 이미지 인식)가 있다. 비지도 학습(Unsupervised Learning)은 레이블이 없는 데이터에서 숨겨진 패턴이나 구조를 발견하는 방식이다. 정답 없이 데이터 자체의 특성을 분석해 그룹화하거나 차원 축소를 수행한다. 대표적인 문제로는 고객 세분화(구매 데이터를 기반으로 비슷한 고객 그룹을 군집화), 차원 축소(고차원 데이터를 시각화하거나 분석하기 쉽게 축소), 이상치 탐지(예: 신용카드 사기 거래 탐지)가 있다. 강화 학습(Reinforcement Learning)은 에이전트가 환경과 상호작용하며 보상을 최대화하는 행동을 학습하는 방식이다. 명시적인 정답은 없지만, 보상 신호를 통해 최적의 전략을 찾는다. 대표적인 문제로는 게임 플레이(예: 알파고가 바둑에서 최적의 수를 학습), 로봇 제어(로봇이 장애물을 피하며 이동하도록 학습), 자원 관리(예: 에너지 효율을 최적화하는 시스템 제어)가 있다. 각 유형은 문제의 특성과 데이터의 형태에 따라 선택되며, 실제 적용 시 여러 유형을 조합하기도 한다. 기계학습을 공부할 때는 각 유형의 특징과 적합한 문제를 사례와 함께 이해하는 것이 중요하다.
기계학습은 데이터를 기반으로 패턴을 학습하고 예측을 수행하는 기술로, 본 연구에서는 랜덤 포레스트(Random Forest), 스토캐스틱 그래디언트 부스팅(Stochastic Gradient Boosting, SGB), eXtreme Gradient Boosting(XGBoost) 알고리즘을 적용했습니다. 이들 알고리즘은 의사결정 나무(Decision Tree)를 결합한 앙상블 기법으로, 복잡한 지형 및 환경 데이터를 효과적으로 분석하는 데 적합합니다.
랜덤 포레스트: 다수의 의사결정 나무를 무작위 샘플과 변수로 생성해 결합하며, 과적합(overfitting)을 줄이고 예측 정확도를 높이는 데 강점. 본 연구에서 훈련 데이터 정확도 0.694, Kappa 0.304를 기록하며 가장 높은 성능을 보였습니다.
SGB: 약한 학습기(weak learner)를 순차적으로 결합해 강력한 예측기를 만드는 방식으로, 정확도 0.660, Kappa 0.269를 보였습니다.
XGBoost: 병렬화와 정규화 기법을 통해 효율성과 성능을 높였으나, 본 연구에서는 정확도 0.598, Kappa 0.124로 상대적으로 낮은 성과를 나타냈습니다.
연구는 2019년부터 2021년까지의 땅밀림 실태 조사 데이터를 활용했으며, 총 256개 지역 중 109개가 우려지, 147개가 일반 산지로 분류되었습니다. 사용된 데이터는 다음과 같습니다:
디지털 해발고도(SRTM, ALOS): 지형 변화를 분석하기 위해 2013년과 2017년 데이터를 비교.
토지피복지도: 산림, 초지 등 지표면 특성을 반영.
산림입지토양도: 토양 배수, 경사, 침식 등 요인을 포함.
데이터는 4:1 비율로 훈련과 검증 세트로 나뉘었으며, K-폴드 교차 검증(K-fold Cross-Validation)을 통해 모델의 일반화 성능을 최적화했습니다.
성능은 혼동 행렬(Confusion Matrix)을 통해 정확도(Accuracy), Kappa 계수로 평가되었습니다.
정확도(Accuracy): (TP + TN) / (TP + TN + FP + FN)로 계산되며, 모델의 전체 분류 정확성을 나타냅니다.
Kappa 계수: 우연에 의한 정확도를 보정해 모델의 신뢰성을 평가합니다. 값이 1에 가까울수록 우수함.
랜덤 포레스트는 훈련에서 우수했으나 검증 데이터에서 성능이 떨어져(정확도 0.468, Kappa -0.098) 과적합 문제가 드러났습니다. SGB는 검증에서 0.547을 기록하며 비교적 안정적이었고, XGBoost는 0.484로 저조한 성과를 보였습니다.
변수 중요도 분석에서 경사도, 지형구분, 균열이 땅밀림 발생에 핵심 요인으로 나타났으며, 소나무와 해송의 뿌리 구조가 토양 안정화에 기여한다는 점도 확인되었습니다. 토양 깊이, 배수성, 강우량 등도 위험도를 높이는 요인으로 작용했습니다. 최종적으로 GIS를 활용해 한반도 위험지도를 시각화했으며, 고도와 위험지역을 색상으로 구분해 직관적으로 제시했습니다.
데이터 해상도와 변수의 제한(지하수 흐름, 뿌리 강도 등 미포함)으로 미세 메커니즘 반영이 부족.
과적합 문제로 일반화 성능 저하. 정규화와 추가 데이터가 필요.
물리 기반 모델과의 통합으로 해석력 강화 필요.
위 논문은 필자가 투고한 논문이다
로지스틱 회귀 (Logistic Regression)
가장 기본적인 분류 모델입니다. 입력 데이터를 바탕으로 특정 클래스에 속할 확률(0~100%)을 계산하며, 보통 50%를 기준으로 분류합니다. 수학적으로 간단하여 학습 속도가 빠르고 결과 해석이 쉬워 초보자도 쉽게 사용할 수 있습니다.
결정 트리 (Decision Tree)
데이터를 여러 조건 질문으로 나누어 나무 구조로 표현하는 방식입니다. 예를 들어 “성적이 80점 이상인가?” → “출석률이 90% 이상인가?”처럼 차례로 확인하며 최종 결정을 내립니다. 시각적으로 직관적이고 어떤 변수가 중요한지 바로 알 수 있으나, 너무 세밀하게 나누면 새로운 데이터에 취약해지는 과적합 문제가 발생할 수 있습니다.
K-최근접 이웃 (K-Nearest Neighbors, KNN)
새로운 데이터를 분류할 때 가장 가까운 K개의 이웃 데이터를 보고 다수결로 결정합니다. 예를 들어 주변 5개 데이터 중 3개가 A 클래스라면 새 데이터도 A로 분류합니다. 별도의 학습 과정이 없어 바로 사용 가능하며 이해하기 쉽지만, 데이터가 많아질수록 계산 속도가 느려집니다.
혼동행렬 기본 용어
TP (True Positive): 긍정인데 긍정으로 정확히 예측
FN (False Negative): 긍정인데 부정으로 잘못 예측
FP (False Positive): 부정인데 긍정으로 잘못 예측
TN (True Negative): 부정인데 부정으로 정확히 예측
주요 평가 지표 3가지
정확도 (Accuracy) 전체 데이터 중 올바르게 예측한 비율 (TP + TN) ÷ 전체 데이터 → 가장 직관적이지만 클래스 비율이 불균형하면 신뢰하기 어렵습니다.
정밀도 (Precision) 긍정으로 예측한 데이터 중 실제로 긍정인 비율 TP ÷ (TP + FP) → “긍정이라고 한 것이 얼마나 정확한가”를 나타내며, 거짓 긍정을 줄이고 싶을 때 중요합니다.
재현율 (Recall) 실제 긍정인 데이터 중 긍정으로 제대로 예측한 비율 TP ÷ (TP + FN) → “실제 긍정을 얼마나 놓치지 않고 잡아냈는가”를 나타내며, 놓치면 안 되는 경우(예: 질병 진단)에 중요합니다.
K-평균 (K-means)
미리 정한 K개의 군집 수만큼 데이터를 나눕니다. 임의의 중심점을 잡고 각 데이터를 가장 가까운 중심에 배정하며, 중심점을 데이터 평균으로 계속 업데이트합니다. 속도가 빠르고 실무에서 널리 사용되지만, 군집이 둥근 모양이어야 잘 작동하며 이상치에 민감합니다.
밀도 기반 군집화 (DBSCAN)
데이터가 밀집된 지역을 하나의 군집으로 인식합니다. 군집 수를 미리 정할 필요가 없으며, 밀도가 낮은 점은 자동으로 잡음(이상치)으로 처리합니다. 원형이 아닌 복잡한 모양의 군집도 잘 찾아내고 이상치를 자연스럽게 걸러내는 것이 큰 장점입니다.