Genetic Programing은 미리 처리해야 합니까?
개시하다
이번에는 GP(Genetic Programing)가 사전 처리가 필요한지 확인합니다.
GP가 무엇인지이전 기사가 설명하고 있다.
또한 여기서 말한 예처리는 귀일화 또는 표준화를 가리키며 결손치 충전과 분포 변형을 포함하지 않는다.
어떻게 된 거야?
기계 학습에서 함수가 비슷할 때는 일반적으로 정규화, 표준화 등 예처리를 끼워 넣는다.
이것은 일반적으로 머신러닝에서 입력한 정의 영역이 일정한 범위로 가정되기 때문입니다. 예를 들어 Neural Network에서 최소 처리 단위의 활성화 함수는 다음과 같은 형식입니다. (그림 그림 그림)
0을 입력할 때 수치가 큰 변화가 있을 뿐만 아니라 -3~3 사이 이외에 큰 변화가 없을 것을 감안하여 예처리의 한 목적은 이 은밀한 정의 구역에서 입력 데이터의 분포(예처리를 하지 않으면bias항은 지나치게 중요한 매개 변수가 될 수 있다).
즉, 예처리는 기계 학습을 위한 것이다. 다른 한편, 유전 프로그래밍은 예처리(이론적)가 필요하지 않다. 유전 프로그래밍에서 가장 작은 처리 단위의 노드 함수는 통용 수학 함수이기 때문에 정의역이 없다. 예를 들어사칙 연산과 삼각 함수에는 정의 영역이 존재하지 않습니다(log 제외).
반면 삼각함수와 Exp 함수에서 입력한 정의 영역이 [0.0, 1.0]이면 선형 연산에 가깝기 때문에 연산자 자체를 구성하지 않는다는 뜻이다. 또한 표준화에 따라 0을 평균값으로 설정하면 제법 함수에 발산점이 존재하기 때문에 함수가 거의 고장날 수 있다.
실제로 옛 GP의 문헌을 봤는데 예처리 기술이 없다. 최근에는 기계학습과 공정한 경쟁을 위해 예처리를 한다는 인상을 준다.
실험
의 목적
나는 GP에 예처리가 필요한지 조사했지만 GP에서 기계학습 전에 처리한 문헌만 찾을 수 있기 때문에 실제 실험을 통해 확인해야 한다.
실험 내용
boston과 diabbetes의 회귀 문제에 대해 다음과 같은 결과를 얻었다.
기계 학습에서 함수가 비슷할 때는 일반적으로 정규화, 표준화 등 예처리를 끼워 넣는다.
이것은 일반적으로 머신러닝에서 입력한 정의 영역이 일정한 범위로 가정되기 때문입니다. 예를 들어 Neural Network에서 최소 처리 단위의 활성화 함수는 다음과 같은 형식입니다. (그림 그림 그림)
0을 입력할 때 수치가 큰 변화가 있을 뿐만 아니라 -3~3 사이 이외에 큰 변화가 없을 것을 감안하여 예처리의 한 목적은 이 은밀한 정의 구역에서 입력 데이터의 분포(예처리를 하지 않으면bias항은 지나치게 중요한 매개 변수가 될 수 있다).
즉, 예처리는 기계 학습을 위한 것이다. 다른 한편, 유전 프로그래밍은 예처리(이론적)가 필요하지 않다. 유전 프로그래밍에서 가장 작은 처리 단위의 노드 함수는 통용 수학 함수이기 때문에 정의역이 없다. 예를 들어사칙 연산과 삼각 함수에는 정의 영역이 존재하지 않습니다(log 제외).
반면 삼각함수와 Exp 함수에서 입력한 정의 영역이 [0.0, 1.0]이면 선형 연산에 가깝기 때문에 연산자 자체를 구성하지 않는다는 뜻이다. 또한 표준화에 따라 0을 평균값으로 설정하면 제법 함수에 발산점이 존재하기 때문에 함수가 거의 고장날 수 있다.
실제로 옛 GP의 문헌을 봤는데 예처리 기술이 없다. 최근에는 기계학습과 공정한 경쟁을 위해 예처리를 한다는 인상을 준다.
실험
의 목적
나는 GP에 예처리가 필요한지 조사했지만 GP에서 기계학습 전에 처리한 문헌만 찾을 수 있기 때문에 실제 실험을 통해 확인해야 한다.
실험 내용
boston과 diabbetes의 회귀 문제에 대해 다음과 같은 결과를 얻었다.
이번 GP의 매개 변수는 다음과 같다.
실험 결과
다음은 학습 데이터와 테스트 데이터 중의 MAE 오차를 비교한다.
Boston Dataset
training
test
귀일화 GP
22.310
22.250
표준화 GP
22.236
22.563
GP
20.560
22.145
생각보다 차이가 없어서 예처리가 있고 결과가 없으면 큰 변화가 있을 줄 알았어요...
결과는 GP를 미리 처리하지 않은 것이 가장 좋은 결과였지만 테스트의 MAE는 거의 변화가 없었다.
Diabetes Dataset
training
test
귀일화 GP
155.389
152.868
표준화 GP
147.185
144.136
GP
150.205
150.049
이곳의 비례자는 비교적 크고 차이가 매우 뚜렷하다. GP를 표준화하는 것이 가장 좋은 결과이다. 솔직히 나는 0을 평균 표준화하는 것이 GP에 좋지 않은 영향을 미칠 것이라고 생각한다...
끝말
결론적으로 문제에 의존하기 때문에 모든 방법을 시도해야 한다는 것을 깨달았다. 실험을 하기 전에 미리 처리하지 않는 것이 좋다고 생각했다...
앞으로 나는 문제의 수를 늘려 일반성을 시험해 보고 싶다. 또한 이번 결과는 10차례의 시험 평균치로 무작위 수의 영향을 볼 수 있다. 100회나 1000차례의 시험 평균을 해야 하기 때문에 다음 과제로 삼아야 한다.
그리고 이번 결과에 차이가 거의 없다는 점을 고려하면 머신러닝에서 예처리가 필수적이지만 GP에서도 꼭 필요한 것은 아니라고 할 수 있어 흥미로운 결과다.
Reference
이 문제에 관하여(Genetic Programing은 미리 처리해야 합니까?), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다
https://qiita.com/shinjikato/items/67daecb5ee020ecbdb4d
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
우수한 개발자 콘텐츠 발견에 전념
(Collection and Share based on the CC Protocol.)
Reference
이 문제에 관하여(Genetic Programing은 미리 처리해야 합니까?), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다 https://qiita.com/shinjikato/items/67daecb5ee020ecbdb4d텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
우수한 개발자 콘텐츠 발견에 전념 (Collection and Share based on the CC Protocol.)