Kaggle에서 Getting Started로 주어지는 모델이 Random Forest이다. 그리고 보다시피, 그 정확도는 약 77%이다.
요즘 나는 나만의 NN을 구현하여 저 랜덤포레스트의 정확도를 이기고자 고군분투 중이다.
그리고 결국 오늘로 하여금, 4-Inputs 4-Layer NN with Adam으로 아주 간발의 차로 패배의 맛을 다시 한 번 보았다.
정확도가 상승한 것도 뿌듯하지만, 어제까지는 Parameter부터 뉴런들까지 수작업으로 구현한 것에 비해 오늘은 Functional API로 훨씬 쉽고 빠르게 구현해봤고 Tensorflow에 익숙해지는 것에 뿌듯한 것이 크다. 그렇지만, 소수점자릿수로 랜덤포레스트한테 패배한게 너무 씁슬하다.
그러다가 갑자기 이런 생각이 떠올랐다. 앙상블 기법인 랜덤포레스트에게 NN가 이길 수 있을까? Chat GPT에게 물어보자.
신경망(Neural Networks, NN)과 랜덤 포레스트(Random Forest)는 각각의 특성과 강점이 다르기 때문에 특정 상황에서 어느 모델이 더 나은 성능을 발휘할지는 데이터의 특성과 문제의 성격에 따라 다릅니다. 각 모델의 장점과 단점을 이해하고, 그에 맞게 선택하는 것이 중요합니다.
신경망(Neural Networks, NN)
장점:
- 복잡한 패턴 학습: NN은 다층 구조와 비선형 활성화 함수를 통해 복잡한 패턴을 학습할 수 있습니다.
- 확장성: 대량의 데이터와 고차원 데이터를 효과적으로 처리할 수 있습니다.
- 연속 학습: 데이터가 점진적으로 제공될 때, 모델을 지속적으로 업데이트할 수 있습니다.
단점:
- 학습 시간: 훈련에 많은 시간이 필요할 수 있습니다.
- 파라미터 튜닝: 하이퍼파라미터 튜닝이 복잡하고 시간이 걸릴 수 있습니다.
- 데이터 요구사항: 대규모의 레이블된 데이터가 필요합니다.
랜덤 포레스트(Random Forest)
장점:
- 간단한 구현: 상대적으로 간단하게 구현할 수 있습니다.
- 강력한 성능: 적은 데이터와 노이즈가 많은 데이터에서도 좋은 성능을 발휘할 수 있습니다.
- 해석 가능성: 각 결정 트리의 역할을 분석하여 모델의 예측을 해석할 수 있습니다.
단점:
- 복잡한 패턴 학습 제한: 비선형성과 고차원 패턴을 학습하는 데 제한이 있을 수 있습니다.
- 확장성: 매우 대규모의 데이터셋을 처리하는 데는 NN보다 덜 효율적일 수 있습니다.
비교 및 선택 기준
- 데이터 크기와 차원:
- 대규모 데이터와 고차원 데이터의 경우, 신경망이 더 적합할 수 있습니다.
- 데이터가 적고 해석이 중요한 경우, 랜덤 포레스트가 더 나을 수 있습니다.
- 문제의 복잡성:
- 매우 복잡한 패턴과 비선형성을 학습해야 하는 경우, 신경망이 유리할 수 있습니다.
- 간단한 패턴과 해석 가능성이 중요한 경우, 랜덤 포레스트가 유리할 수 있습니다.
- 훈련 시간과 자원:
- 신경망은 훈련 시간이 길고, 많은 컴퓨팅 자원을 요구할 수 있습니다.
- 랜덤 포레스트는 훈련 시간이 비교적 짧고, 자원 요구가 덜할 수 있습니다.
캐글 타이타닉 문제에서 train_set으로 주어지는 샘플 수가 891개이다. 이는 데이터 수가 매우 작은 수준이라고 판단 되기 때문에, NN이 불리하다고 생각이 들었다. 그렇지만, 한 샘플 안에서도 아직 모델에 적용시키지 않은 데이터가 존재한다. 예를 들어, Pclass 칼럼을 데이터로 학습데이터에서 제외했다. (상관관계가 약하다고 판단했기 때문에... 그렇지만 그건 어리석은 나의 잘못된 판단일 수도 있다.) 제외시켰던 칼럼들을 학습데이터로 포함시켜서 복잡한 패턴을 학습하도록 시킨다면 충분히 내 NN이 이기는 날이 오지 않을까 기대한다. (심지어, 특성 수를 4개 집어 넣은 것이 소수점차로 진 것이니까!)
'AI' 카테고리의 다른 글
[NLP] 워드 임베딩은 왜 기계 번역에 불리한가? (4) | 2024.07.22 |
---|---|
[CNN] Convolution과 Pooling은 실질적으로 무엇을 의미하는가? (0) | 2024.07.16 |
[NN] Layer 늘리기 vs Neuron 늘리기 (0) | 2024.07.12 |
[CNN] CNN에서 kernel과 filter의 차이는 무엇인가? (0) | 2024.07.11 |
[AI] Model이 Linear하다는 건 무슨 의미인가? (2) | 2024.07.11 |