본문 바로가기
머신러닝 with Python

[머신러닝 with Python] 유전 알고리즘이란? TPOT에서 최적화 활용(AutoML)

by CodeCrafter 2024. 12. 11.
반응형

 

1. 유전 알고리즘이란?(Genetic Algorithm, GA)

- 유전 알고리즘(GA)은 진화론의 자연 선택원리에서 영감을 얻은 최적화 기법으로, 주어진 문제의 최적 해를 탐색할때 활용됩니다.

- 이 알고리즘은 생물학적 진화 과정인 유전자 선택, 교차, 변이를 모방하여 작동하며, 복잡한 문제를 해결할 때, 전통적인 방법 대신 유전 알고리즘을 활용 시 효율적으로 최적화를 수행할 수 있습니다.

 

 

- 이와 같은 유전 알고리즘을 통해 TPOT에서는 최적 파이프라인 및 하이퍼 파라미터 튜닝을 하고 있는데요

[머신러닝 with Python] TPOT을 활용한 Iris 데이터 분류(AutoML)

 

 

- 유전 알고리즘의 핵심 개념을 TPOT 알고리즘에서 적용되는 내용과 함께 알아보도록 하겠습니다.

1) 개체(Population)

 * 개체는 문제의 "해(Solution)"을 나타내며, 특정 형식(문자열이나 리스트 등)으로 표현됩니다.

 *  TPOT에서는 개체가 "머신러닝 파이프 라인"을 의미합니다.

2) 적합도(Fitness)

 * 적합도 함수는 각 개체의 "품질"을 측정하는 기준을 의미합니다.

 * TPOT에서는 파이프라인의 성능(ex. Accuracy, F1 score)이 적합도를 결정합니다.

3) 선택(Selection)

 * 적합도가 높은 개체는 다음 세대로 전달될 가능성이 높아지고, 이는 적자 생존의 원리를 반영한 것입니다.

4) 교차(Cross Over)

 * 두 개의 부모 개체를 결합하여 새로운 자손 개체를 생성하는 것입니다.

 * TPOT에서는 두 파이프라인의 일부를 결합하여 새로운 파이프라인을 만듭니다.

5) 변이(Mutation)

 * 자손의 일부 유전자를 무작위로 변경하여 다양성을 추가합니다.

 * TPOT에서는 머신러닝 모델의 하이퍼파라미터나 전처리 단계를 변경하는 방식으로 변이를 수행하게 됩니다.

 

 

위 내용을 고려하여, TPOT에서 유전 알고리즘을 통해 Optimal ML Pipeline을 찾는 과정은

1) 초기화 : 초기 개체 집단(머신러닝 파이프라인)을 무작위로 생성

2) 적합도 평가 : 각 개체의 적합도를 평가(TPOT에서는 검증 데이터 셋의 성능)

3) 선택 : 적합도가 높은 개체를 선택하여 부모로 선택

4) 교차 : 부모 개체를 결합하여 새로운 자손 개체를 생성

5) 변이 : 자손 개체에 변이를 적용하여 탐색 공간의 다양성을 유지

6) 세대 교체: 새로운 개체 집단으로 교체하고, 최적화 과정을 반복

7) 종료 조건 : 설정된 세대 수에 도달하거나, 적합도가 일정 기준 이상에 도달하면 알고리즘을 종료

 

으로 이루어집니다.

 

 

 

이와 같은 유전알고리즘을 활용하여 최적의 ML 알고리즘을 찾을때는 다음과 같은 장점과 단점이 나뉘게 됩니다.

 

장점

 a) 탐색 범위가 넓기에 전역적인 최적화를 수행할 수 있음

 b) 다양한 문제에 적용가능하다는 유연성이 있음

 c) 변이와 교차를 통해 탐색 공간의 다양성을 유지함

 

단점

 a) 세대 수와 개체 수가 많을수록 연산 비용이 높아짐

 b) 적합도 함수에 따라 수렴 속도가 느릴 수 있음

 

 

위와 같은 장점은 극대화 하고 단점으 최소화하는 방향으로 잘 활용하면 정말 좋을 것 같습니다.

반응형

댓글