ecsimsw
Machine Learning / Generic Algorithm 본문
Introduction
- Teachable machine을 사용해보고, 유튜브로 머신 러닝 영상들을 찾아보다가, 유전 알고리즘으로 자동차 자율 주행을 위한 최적의 조건을 찾는 영상이나 그네를 타기 위해 학습시키는 영상을 보게 되었고, 재밌어보여서 공부하게 되었다.
- 유전 알고리즘을 공부하고, 간단하게 자율 주행 자동차를 위한 최적의 조건을 찾아보았다.
Generic Algorithm
- 사건 안에서 더 나은 결과를 갖는 염색체들끼리의 유전 정보 교차하여 세대를 거듭하면, 점점 더 나은 염색체를 얻을 수 있겠다는 생각에서 시작.
- Chromosome : 염색체, Gene : 유전자, Child : 자손, Fitness : 적합도
Process
- 유전 알고리즘을 구현하기 위한 순서는 다음과 같았다.
1. Definite : 학습하고자 하는 정보를 어떤식으로 표현할 것인가.
2. Fitness : 어떤 기준으로 유전자의 우수함을 정의할 것인가.
3. Selection : 교배될 염색체를 어떤 기준으로 선정할 것인가.
4. Crossover : 유전 정보를 어떻게 교차할 것인가.
5. Mutate : 돌연변이 염색체를 어떤 방식으로 출현 시킬 것인가.
1. Definition
- 염색체와 유전자 정보를 정의한다.
- 유전자 정보는 염색체가 생존에 영향을 미치는 요인, 학습에 결과를 달리할 요인으로 정의한다.
2. Fitness
- 생존 결과를 점수화한다. 비행기를 학습시킨다면, 주행 거리나 비행 시간처럼 결과를 점수화하여 우수한 생존을 구분한다.
3. Selection
- 다음 세대에 전달될, 즉 교배에 성공할 염색체를 적합도를 기준으로 선별한다.
- 대표적으로 적합도에 따라 선택 비중을 달리하여 랜덤하게 추출하는 방식(Roulette wheel), 순위따라 직접 정한 확률을 기준으로 선택 비중을 달리하는 방식, 최고점의 염색체는 반드시 추출하는 방식 등이 있다.
4. Crossover
- 선별에서 선택된 염색체들의 유전 정보를 섞어 다음 세대 염색체의 유전자를 구성한다.
- 대표적으로는 긴 비트열에 하나 또는 다중의 point를 두고 그것을 기준으로 나눠 다른 염색체와 교차하는 point crossover 방식과 두 유전값 자체를 평균화하는 uniform crossover 방식이 있다.
5. Mutate
- 중세 유럽의 근친 결혼이 낳은 유전병처럼, 아무리 좋은 유전자를 갖는 집안이라도 같은 부모의 염색체끼리만 교배해서는 최적의 자손을 기대할 수 없다. 따라서 작은 확률로 돌연변이를 만들어 준다.
- 대표적으로 비트를 반대로 하는 reverse 방식, 두 비트를 서로 교환하는 exchange 방식, 또는 아예 새로운 랜덤한 값을 갖게하는 방식 등으로 돌연변이를 산출한다.
Example :: 유전 알고리즘을 이용한 자율 주행 자동차 구현
'Machine Learning' 카테고리의 다른 글
Cross validation / 교차 검증 / 모델 평가 (0) | 2020.01.29 |
---|---|
Support Vector Machine / Random Forest / 언어 구분 학습 (0) | 2020.01.29 |
Scikit-learn / SVM (0) | 2020.01.24 |
Crawling / Scraping / 구글 이미지 크롤러 (0) | 2020.01.19 |
Teachable machine / teachable machine 사용법 / 구글 티쳐블 머신 (0) | 2019.11.23 |