랜덤 포레스트는 분류, 회귀 및 기타 작업에 사용되는 앙상블 학습 방법이다. 훈련 중에 많은 수의 결정 트리를 구성하고 그 출력을 결합한다. 분류의 경우 가장 많은 트리가 선택한 클래스를 반환하고, 회귀의 경우 개별 트리의 예측을 평균한다. 이 방법은 깊은 결정 트리가 훈련 세트에 과적합되는 경향을 교정하여 분산을 줄이면서 편향을 낮게 유지한다.
최초의 랜덤 포레스트 알고리즘은 1995년 Tin Kam Ho가 랜덤 서브스페이스 방법을 기반으로 개발했으며, 이는 Eugene Kleinberg가 제안한 확률적 판별 접근법을 구현한 것이다. Leo Breiman과 Adele Cutler는 나중에 배깅과 랜덤 특성 선택을 결합하여 이 접근법을 확장했고, 2006년에 "Random Forests"를 상표로 등록했다. 2019년 기준으로 이 상표는 Minitab, Inc.가 소유하고 있다.
배경: 결정 트리와 그 한계
결정 트리는 머신 러닝에서 널리 사용되는 방법이다. 이진 분할의 연속을 통해 특성 공간을 분할하므로 확장 가능하고 해석하기 쉽다. 그러나 깊은 트리는 매우 불규칙한 패턴을 학습하는 경향이 있어 낮은 편향과 매우 높은 분산을 초래한다. 실제로 특정 데이터 세트에서 훈련된 트리는 몇 개의 훈련 점이 변경되면 크게 달라질 수 있으며, 예측은 종종 훈련 데이터에 대해서만 정확하다. Trevor Hastie와 동료들이 지적했듯이 보이지 않는 데이터에서는 거의 정확하지 않다. 랜덤 포레스트는 각각 다른 데이터 하위 집합에서 훈련된 많은 깊은 트리를 평균하여 분산을 크게 줄임으로써 이 문제를 해결한다.
트리 방법의 어려움은 동일한 데이터에 너무 많은 트리를 성장시키면 상관된 예측이 생성된다는 점이다. 트리의 상관관계를 제거하기 위해 랜덤 포레스트는 부트스트래핑과 랜덤 특성 선택을 사용하여 개별 트리를 다양하면서도 강하게 만든다.
역사와 발전
랜덤 결정 포레스트의 일반적인 아이디어는 1993년 Salzberg와 Heath의 연구에 나타나며, 그들은 무작위화된 결정 트리 알고리즘을 사용하여 여러 트리를 생성하고 다수결 투표로 결합할 것을 제안했다. 1995년 Tin Kam Ho는 이 아이디어를 확장하여 사선 초평면으로 분할하는 트리 포레스트가 훈련 데이터에 과적합되지 않고 성장함에 따라 정확도가 향상될 수 있음을 보여주었으며, 단 포레스트가 특성 차원의 하위 집합으로만 무작위로 제한되는 경우에 한했다. Ho의 방법인 랜덤 서브스페이스 방법은 훈련 데이터를 무작위로 선택된 특성 부분 공간에 투영하여 트리를 구축했다. 이 접근법은 랜덤 포레스트 개발의 핵심 단계였다.
이후 Amit과 Geman의 독립적인 연구는 각 분할에서 사용 가능한 결정의 무작위 하위 집합을 검색하는 아이디어를 도입했지만, 이를 단일 트리에 적용했다. 독립적으로 Thomas Dietterich는 각 노드에서 선택된 속성이 결정론적 최적성 기준이 아닌 무작위 절차에 의해 선택되는 무작위 노드 최적화 아이디어를 도입했다. 이러한 아이디어는 Leo Breiman의 초기 배깅 연구와 결합되어 현대적인 랜덤 포레스트 공식화로 이어졌다. 머신 러닝에서 가장 많이 인용된 논문 중 하나인 Breiman의 영향력 있는 2001년 논문은 이러한 목표를 결합하고 포레스트 내 트리의 강도와 상관관계에 기반한 일반화 오류에 대한 이론적 경계를 제공했다.
Breiman의 논문은 또한 실용적인 도구를 확립했다. 별도의 검증 세트 없이 일반화 오류를 추정하기 위한 out-of-bag 오류와 특성 값이 무작위로 섞일 때 성능이 어떻게 저하되는지 측정하는 순열 기반 변수 중요도가 그것이다. 이는 오늘날에도 랜덤 포레스트의 핵심 측면으로 남아 있다.
배깅과 앙상블 학습
랜덤 포레스트 훈련의 기본 기술은 부트스트랩 집계, 즉 배깅이다. 특성 X와 응답 Y가 있는 훈련 세트가 주어지면 알고리즘은 훈련 데이터에서 B번 복원 추출하여 매번 동일한 크기의 새 데이터 세트를 생성한다. 일반적으로 깊게 성장하고 가지치기되지 않은 결정 트리가 각 부트스트랩 샘플에 적합된다. 훈련 후 새 점에 대한 예측은 회귀의 경우 평균을 내거나 분류의 경우 다수결 투표를 통해 이루어진다. 이 메타 알고리즘은 상관되지 않은 많은 트리의 평균이 단일 트리보다 더 안정적이기 때문에 편향을 증가시키지 않으면서 더 넓은 분산을 감소시킨다.
부트스트랩 샘플링은 트리에 다른 훈련 세트를 보여줌으로써 트리의 상관관계를 제거한다. 모든 트리가 동일한 원본 데이터로 훈련되었다면 매우 유사하고 동일한 오류에 취약할 것이다. 부트스트랩을 사용하면 각 트리가 무작위 변동을 포착한다. 모델은 B가 증가함에 따라 분산 감소를 얻지만 수백 개의 트리 이후에는 한계적 개선이 줄어든다. 실제로 B는 종종 500개 또는 1000개 트리로 설정되지만, 현대 구현은 out-of-bag 오류가 안정화될 때 자동으로 중지된다.
랜덤 포레스트의 중요한 측면은 각 트리가 일반적으로 복원 추출로 인해 다른 데이터 세트에서 훈련된다는 점이다. 각 부트스트랩 샘플에는 관측치의 약 3분의 2가 적어도 한 번 나타나고 나머지 3분의 1은 out-of-bag이다. out-of-bag 예측은 전용 검증 세트 없이 일반화 오류를 추정하는 데 사용할 수 있으며, 각 관측치에 대해 해당 관측치가 훈련 데이터에 포함되지 않은 트리를 사용하여 집계된 예측을 기반으로 한다.
랜덤 특성 선택
랜덤 포레스트의 핵심 혁신은 각 노드 분할에서 특성을 무작위로 선택하는 것이다. 전통적인 결정 트리는 모든 특성 중에서 불순도를 가장 잘 줄이는 분할을 각 노드에서 선택하여 최적화한다. 예를 들어 분류의 경우 지니 불순도, 회귀의 경우 제곱 오차를 사용한다. 그러나 랜덤 포레스트에서 각 분할은 전체 특성 수의 제곱근 크기인 무작위로 선택된 특성 하위 집합만 고려한다. 이는 트리가 다르게 구조화되도록 강제하고 트리 간 상관관계를 줄인다. 일부 전역 특성이 다른 모든 특성을 지배하여 많은 트리가 거의 동일해질 수 있기 때문에 대체 분할이 선택되기도 한다. 후보 특성을 무작위로 제한함으로써 포레스트는 그렇지 않으면 달성할 수 없는 순열을 탐색하여 더 강력한 예측을 달성할 수 있다.
이 랜덤 서브스페이스 접근법은 Ho에 의해 도입되었고 나중에 Amit과 Geman의 노드 무작위화와 결합되었다. Breiman의 최종 공식화는 각 노드에서 무작위 하위 집합 선택을 사용했지만 일부 변형은 각 트리를 적합시키기 전에만 무작위 선택을 사용한다. 현대 구현은 다양하며 많은 라이브러리가 '랜덤 서브스페이스' 또는 '랜덤 분할' 전략을 지원한다. 일반적으로 특성 차원 d가 사용되며 분류의 경우 sqrt(d) 크기의 하위 집합, 회귀의 경우 d/3 크기의 하위 집합이 사용된다.
모델 동작과 과적합 저항
랜덤 포레스트는 과적합에 대한 저항성으로 유명하다. 각 트리는 깊고 과적합될 수 있지만 앙상블은 분산을 줄인다. 특성 무작위화가 트리를 제한하는 한 더 많은 트리를 추가할수록 더 깊은 포레스트가 더 잘 수행되는 경향이 있다. 이는 Breiman의 논문의 이론적 결과에 의해 뒷받침되며, 더 나은 트리 강도와 더 낮은 상관관계에 따라 일반화 오류 경계가 좁아진다는 것을 보여준다. 그러나 트리 수가 너무 많으면 모델이 과적합되지 않으며 B가 증가함에 따라 오류에 접근할 수 있지만 레이블의 노이즈에는 여전히 취약할 수 있다. 특성이 무작위로 선택되지 않으면 트리가 상관되어 이점을 상쇄할 수 있다. 랜덤 특성 선택을 사용하면 분류기의 복잡성이 증가해도 포레스트는 정확도를 유지하는 경향이 있다. 이는 과적합으로 이어지는 단일 트리의 깊이 증가와 대조된다.
분류의 경우 포레스트의 출력은 가장 많은 투표를 받은 클래스이다. 회귀의 경우 예측은 개별 트리의 평균이며, 트리 예측의 표준 편차는 불확실성의 자연스러운 추정치이다.
실제 사용 및 확장
랜덤 포레스트는 원격 탐사, 생물정보학, 금융 및 컴퓨터 비전을 포함한 많은 분야에 적용된다. 관련 없는 특성에 강하고 비선형성을 처리할 수 있으며 이해 가능성을 제공하지만 단일 트리보다 해석 가능성은 떨어진다. 변수 중요도 지표를 통해 연구자는 어떤 특성이 관련이 있는지 식별할 수 있다. 랜덤 포레스트는 인공 지능에서도 사용되며, 딥 러닝 및 신경망과 함께 많은 현대 머신 러닝 작업의 기준선으로서 전통적인 운영의 기본 알고리즘이다.
확장에는 더 무작위적인 분할 임계값을 사용하는 extra trees와 이상 탐지, 순위 지정 및 결측값 대체를 위한 랜덤 포레스트 사용이 포함된다. 또한 머신 러닝 파이프라인에서 배깅 및 앙상블 학습의 구성 요소로 사용된다.
다른 모델과의 비교
랜덤 포레스트는 해석 가능하고 데이터가 적게 필요하며 더 단순하다는 점에서 딥 러닝 기반 모델(예: 신경망)과 다르다. 딥 뉴럴 네트워크가 종종 가속기를 필요로 하는 반면 CPU에서 훈련할 수 있다. 그러나 고차원 데이터에는 어려움을 겪을 수 있지만 편향과 오류 사이의 균형을 맞출 수 있다. 이미지와 텍스트 같은 비정형 데이터에는 덜 효과적이며, 여기서 딥 러닝이 탁월하다. 트레이드오프는 주목할 만하다. 랜덤 포레스트는 견고한 기준선으로 남아 있지만 계층적 표현 학습이 부족하다.
현대 인공 지능 연구의 최전선에서 대규모 언어 모델 및 트랜스포머 기반 아키텍처와 같은 방법이 언어 작업을 지배하지만, 랜덤 포레스트 및 기타 트리 앙상블은 표 형식 데이터 및 설명 가능한 AI와 같은 영역에서 여전히 일반적이다.
같이 보기
참고 문헌
원본 출처는 기사 내에서 인용되지만 관련 외부 URL은 없다.