Genetic Programming 7

휴머노이드 보행 로봇의 적용을 위한 해 공간의 특성 분석 자료

로봇 게이트 생성 기법을 4족 보행 -> 휴머노이드로 이전하면서, 해공간의 특성 분석이 필요해서 몇가지 샘플트리에 대해 적합도 공간 변화가 어떤지 체크해본 그래프이다. 4족 보행 로봇의 경우 네 발로 지탱하는 특성 때문에, 안정성에 대한 지표가 크게 변하지 않지만, 휴머노이드는 넘어짐이라는 특성이 발생하기 때문에 아주 작은 변화에도 결과에 매우 큰 영향을 주는 현상이 나타날 수 있다고 생각했고, 그것을 증명하기 위한 그래프 자료이다. 아래와 같은 각각의 트리에서 ERC 값, 즉 실수값을 P1, P2, ... ,P8 의 변수로 표현하여, 각각 0.001 씩 증가시키면서 해공간의 변화를 나타낸 것이다. x 축은 0.001씩 몇번이나 증가 시켰는지를 의미하며, y 축은 적합도값을 의미한다. HP: (/ (/ ..

GA나 GP의 이론 검증의 어려움

GP 의 해가 가지는 특성을 파악하기 위해 실험을 통해 대규모의 데이터를 수집하였다고 가정하자. 그리고 대부분의 해에서 나타나는 어떠한 특성이 발견 되었다면, 과연 여기서 대부분의 해는 반드시 그 어떤 특성을 갖게 되는 것일까? GA, GP 의 조기수렴이 해의 다양성에 악영향을 끼치고, 좋은 결과로 수렴하는 것을 방해한다고 했을 때, 조기수렴을 막으면 반드시 해가 다양성을 폭넓게 가지면서, 좋은 결과로 수렴할 것인가? 어떠한 명제를 가정했을 때, 그 역이 반드시 참일것이라는 보장 같은 것은 없다. 결국 우리가 일반적으로 데이터를 수집하여 하는 일은 대부분이 그러한 특성을 보인다는 것에서 끝나는 것인데, 이것의 역을 증명해낼 좋은 방법은 없을것인가? 몇년째 계속 고민해보지만, GA, GP 쪽에서는 이를 어..

진화 연산과 병렬 처리 시스템

1. 개요 병렬처리 시스템은 최근에 가장 주목 받고 있는 컴퓨팅 성능 향상 기술 중에 하나입니다. 물론 과거에도 병렬처리 시스템이 주목 받아 왔지만, 그 당시에는 CPU 의 업그레이드 만으로도 50%, 100% 이상의 성능향상을 이룰 수 있었기에 지금보다는 적은 관심을 보였었습니다. 그러나 현재의 CPU 가 가진 한계에 거의 다다름에 따라, 성능 개선의 기법으로 병렬처리 기법들이 주목을 받고 있습니다. 즉, 하드웨어적 한계를 소프트웨어 적인 기법으로서 넘어서려고 한다고 표현할 수 있겠습니다. 이 병럴처리 시스템은 크게 내부, 외부의 두 가지 요소로서 존재한다고 볼 수 있겠습니다. 내부 요소로서는 CPU 의 멀티 코어화, GPU 의 발전 등을 들 수 있겠고, 외부적으로는 대규모 네트워크로 구성된 컴퓨팅 환..

Homologous CX Operator for lil-gp

Homologous CX 연산자는 기본적으로 동일 구조를 가진 서브트리들 간의 교환만 허용하는 연산자 입니다. 즉, 위의 그림에 Tree1 과 Tree 2 에서, 1-1, 2-2, 3-3, 6-4, 7-7 간의 교환만을 허용한다는 이야기 입니다. 이 연산자의 출발점은 생물체의 교배에 있어서 동일 형질의 유전자 만을 교환한다는 것으로 기억하고 있습니다. 예로서 팔의 유전자와 다리의 유전자를 교환해서는 이상형질이 나타날 수 있다는 것을 들 수 있겠습니다. 실제로 몇가지 테스트 문제에 대해 실험해 보면 매우 빠른 속도로 연산이 이루어지고, 코드의 증가 또한 기본 연산자에 비해서 매우 적게 증가하는 것을 확인할 수 있었습니다. 본 소스코드에 어떤 오류가 있을지는 모르겠습니다만, 혹시 참고하실 분은 첨부된 소스를..

유전 프로그래밍에서 트리간의 유사도 측정방식에 대한 고찰

유사 - [명사]{주로 일부 명사 앞에 쓰여} 서로 비슷함. 그렇습니다. 유사하다는 말을 서로 비슷하다는 말입니다. 비슷하다? 그럼 비슷하다는 말은? 비슷하다 [형용사] ━ ⅰ『(…과)』 {‘…과’가 나타나지 않을 때는 여럿임을 뜻하는 말이 주어로 온다} 두 개의 대상이 크기, 모양, 상태, 성질 따위가 똑같지는 아니하지만 전체적 또는 부분적으로 일치하는 점이 많은 상태에 있다. {명사의 단독형 뒤에 쓰여} 1 정체가 확인되지 아니한 어떤 대상에 대하여 누구 또는 무엇이라고 짐작되는 상태에 있다. 2 비교가 되는 대상과 어느 정도 일치되지만 다소 미흡한 면이 있다. 네 그렇습니다. 크기, 모양, 상태, 성질 따위가 똑같지는 않지만, 전체적 또는 부분 적으로 일치하는 점이 많은 상태에 있다 라고 하고 있습..

기타. 알고리즘과 적용에 대한 작은 생각들(주로 유전프로그래밍)

본 글은 어떤 일반론적인 생각도 아니고 어디까지나 제 자신의 개인적인 생각들 임을 사전에 밝히도록 하겠습니다. 짧은 지식을 통해 나오는 생각들이기에 편협할 수도 있고, 좁은 식견이 확 보일수도 있고 정리가 안된 그냥 머리속 튀어나오는 대로 쓰는거지만... 그냥 한번 써보렵니다. 사족이므로 반말나갑니다. - 다른 녀석들을 봤을 때 유전프로그래밍이라는 것의 가능성... - 우선 신경회로망 이라는 녀석. 많이 알고 있는 녀석은 아니지만 태어난지 매우 오래되었음에도 불구하고, 과거의 알고리즘에 비해 심대한 변화는 없는 녀석이다. 다층 퍼셉트론 이후에 오류역전파 알고리즘, 그것들을 제외하고는 어째 크게 발전은 없는 모양이다. 사실 내가 크게 관심이 없어서 그럴수도 있지만, 여러 논문을 검색해 보았을때 다 고만고만..

1. Genetic Programming 이란?

오늘은 간단하게 Genetic Programming(GP) 에 대해서 정리해볼까 합니다. GP 라는건 GA 에서 파생되었다고도 할 수 있는 또다른 Evolutionary Computation 의 한 종류 입니다. Genetic Algorithm 에서는 유전자 형태를 Binary 또는 Real Type 의 조합을 이용했습니다. 하지만 Genetic Programming 에서는 유전자 형태를 Tree 구조를 이용합니다. 그림으로 표현해보면 다음과 같습니다. 그림1. GA 와 GP 의 표현의 차이점 GA 와 GP 는 보시는 것과 같이 표현에 차이를 두고 있습니다. CX나 MUT 역시 존재하지만 표현상의 차이로 인해 조금 다른 방식으로 이루어 집니다. CX 방식의 차이에 대해서 그림으로 표현해보면 다음과 같습니..