신경망이 아닌 유전자 알고리즘을 언제 사용해야합니까? [닫은]


139

문제를 해결하기 위해 신경망과 반대로 유전자 알고리즘을 사용할시기를 결정하는 경험 법 (또는 일련의 사례)이 있습니까?

두 방법을 모두 혼합 할 수있는 경우가 있지만 두 방법 사이의 높은 수준의 비교를 찾고 있습니다.


3
감독 및 비 감독의 두 가지 유형의 신경망이 있음을 지적하는 것이 좋습니다. 감독 대상은 감독되지 않은 인간의 피드백을 통해 교육 데이터를 얻고 그 점에서 GA와 비슷합니다.
Chris S

3
나는 그것이 "list-y"라고 생각하지 않습니다. 대답은 두 가지 방법을 비교하고 한 방법과 다른 방법을 언제 사용해야하는지 명확히합니다.
Neil N

짧은 대답 : 모델링 할 함수가 비 연속적이거나 불연속 적이거나 데이터 집합이 천문학적으로 높은 차원 인 경우 GA를 사용하십시오. 최상의 결과를 제공하는 내용에 따라 신경망 또는 GA (또는 다른 모델)를 사용하십시오. 자세한 내용은 여기에 내 대답을 참조하십시오 : stackoverflow.com/a/49684833/1121352
gaborous

답변:


130

위키 백과에서 :

유전자 알고리즘 (GA)을 위해 컴퓨팅에 사용되는 검색 기술이다 찾을 정확한 또는 대략적인 솔루션을 최적화하고 문제를 검색 할 수 있습니다.

과:

신경망 은 비선형 통계 데이터 모델링 도구입니다. 입력과 출력 간의 복잡한 관계를 모델링하거나 데이터에서 패턴찾는 데 사용할 수 있습니다 .

솔루션의 가치를 정량화 할 수있는 문제가있는 경우 유전자 알고리즘 이 솔루션 공간을 직접 검색 할 수 있습니다 . (예 : 두 지점 사이의 최단 경로를 찾으십시오)

여러 클래스에 여러 항목이있는 경우 신경망 은 이전에 "보지"않은 항목 을 분류 하기 위해 "학습"할 수 있습니다 . (예 : 얼굴 인식, 음성 인식)

실행 시간도 고려해야합니다. 유전자 알고리즘은 수용 가능한 해결책을 찾는 데 오랜 시간이 걸립니다. 신경망은 "학습"하는 데 시간이 오래 걸리지 만 새로운 입력을 거의 즉시 분류 할 수 있습니다.


13
GA 정의에 약간만 추가하고 싶습니다. 때때로 사람들은 GA 문제의 솔루션 공간을 일련의 상태 또는 값으로 생각합니다. "체크 메이트를 만들기 위해 체스 판 위에 4 개의 체스 조각 세트를 배치 할 수있는 모든 방법 찾기" 그러나 솔루션 공간은 알고리즘 세트 일 수도 있습니다. 이것이 유전자 알고리즘의 진정한 힘이 작용하는 곳입니다. "체크 메이트가 될 체스 조각 세트를 사용하여 일련의 동작을 찾으십시오"와 같은 질문에 대답하는 데 도움이됩니다.
lfalin

44

유전자 알고리즘 (섹시한 이름에도 불구하고)은 대부분의 경우 최적화 기술 입니다. 그것은 주로 많은 변수를 가지고 있으며 이러한 변수에 가장 적합한 값 조합을 찾으려고합니다. 그것은 자연의 진화로부터 기술을 빌려옵니다.

신경망은 패턴인식 하는 데 유용합니다 . 그들은 뇌의 단순한 모델을 따르고, 그것들 사이의 많은 가중치를 변경함으로써 입력을 기반으로 출력을 예측하려고 시도합니다.

그것들은 근본적으로 다른 두 엔티티이지만 때로는 겹치는 문제를 해결할 수 있습니다.


22
신경망은 실제로 보간 기술 일뿐입니다. :)
Don Reba

3
유전자 알고리즘 (최적화)과 신경망 (감독 학습)의 경우 +1은 거의 공통점이 없습니다.
alfa

2
유일한 공통 요소는 목표에 접근함에 따라 동적으로 스스로를 재정렬한다는 것입니다.
lfalin

1
실제로 중복이 있는지 확실하지 않습니다. 신경망은 비용 함수가있는 모델이고 GA는 @zenna가 말한 것처럼이 비용 함수를 최소화하는 데 사용할 수있는 최적화 기술입니다.
Matthieu Brucher

37

GA는 사용자가 정의한 구조에서 새로운 패턴을 생성합니다.

NN은 사용자가 제공하는 교육 데이터를 기반으로 기존 패턴을 분류 (또는 인식)합니다.

GA는 대규모 상태 공간의 솔루션을 효율적으로 검색하고 하나 이상의 우수한 솔루션에 수렴하지만 반드시 '최상의'솔루션은 아닙니다.

NN은 (훈련을 통해) 패턴을 인식하는 법을 배울 수는 있지만, 학습 한 내용을 파악하는 것, 즉 일단 훈련을받은 지식을 추출하여 다른 사람 (NN이 아닌 사람)의 지식을 재사용하는 것은 악명 높습니다.


26

여기서는 완전히 다른 두 가지를 비교하고 있습니다.

신경망은 회귀 / 분류에 사용됩니다. (x, y) 예제 세트가 주어지면 주어진 x에 대해 알려지지 않은 y를 회귀 시키려고합니다.

유전자 알고리즘은 최적화 기술입니다. 함수 f (x)가 주어지면 f (x)를 최소화 / 최대화하는 x를 결정하려고합니다.


10
과연. 그것들은 실제로 '직교'기술입니다. GA를 사용하여 신경 순 가중치 및 / 또는 아키텍처를 찾을 수 있습니다.
redcalx

23

그들 사이에는 많은 유사점이 있으므로, 나는 그들의 차이점 을 개괄하려고 노력할 것이다 .

신경망

온라인 패턴을 분석 할 수 있습니다 (시간에 따라 변하는 패턴). 일반적으로 이것은 시변 샘플이며 일치하고 예측되어야합니다.

:

  • 그래프 외삽
  • 얼굴 인식

유전자 알고리즘

변경되지 않는 특정 문제에 기여할 수 있다고 생각되는 속성을 코딩 할 수있는 경우에 사용됩니다. 이러한 속성을 코딩 할 수있는 데 중점을두고 있으며 (때로는 그 속성을 알고 있음) 문제가 크게 변하지 않는 경우가 있습니다 (그렇지 않으면 진화가 수렴되지 않음).

:

  • 비행기 / 배송 예약
  • 시간표.
  • 인공 환경에서 간단한 에이전트에 대한 최상의 특성 찾기
  • 임의의 다각형으로 그림의 근사 렌더링

14

역 전파 알고리즘 의 대안으로 유전자 알고리즘을 사용 하여 신경망의 가중치를 업데이트 할 수 있습니다 . 이에 대한 예는 http://www.ai-junkie.com/ann/evolved/nnt1.html을 참조 하십시오 .


1
또한 NEAT ( cs.ucf.edu/~kstanley/neat.html )도 있습니다. C # 구현에서 ( sharpneat.sourceforge.net )
redcalx

자바 스크립트의 경우 github.com/wagenaartje/neataptic을 확인하십시오 . NEAT도 구현합니다.
Thomas W

8

유전자 알고리즘 (일반적으로)은 이산 데이터 (열, 정수 범위 등)에서 작동합니다. GA의 일반적인 응용 프로그램은 사용 가능한 유일한 대안이 무차별 검색 (모든 조합 평가) 인 경우 "충분한"솔루션을 찾기 위해 별도의 공간을 검색하는 것입니다.

반면에 신경망은 (보통) 연속 데이터 (부동 등)에서 작동합니다. NN의 일반적인 응용 프로그램은 함수 근사입니다. 여기서는 입력 X 세트와 관련 출력 Y 세트가 있지만 분석 함수 f : X → Y가 있습니다.

물론 수천 가지 변형이 있으므로 그 사이의 선이 다소 흐려집니다.


5

경험 법칙은 없습니다. 대부분의 경우 문제 중 하나를 사용하도록 문제를 공식화 할 수 있습니다. 머신 러닝은 여전히 ​​활발한 연구 분야이며 어떤 학습 모델을 사용할 수 있는지는 논쟁의 여지가 있습니다.

GA는 진화에서 섹시한 언어를 사용하지만 컴퓨터가 임의의 프로세스를 통해 솔루션을 발견하기를 기다리고 있습니다. 데이터를 연구하고, 좋은 가정을하고, 원하는 것을 알고,이를 잘 활용할 수있는 접근 방식을 선택하십시오. 첫 번째 선택으로 결과가 좋지 않으면 그 이유를 알고 알고리즘 자체를 개선하거나 더 나은 알고리즘을 선택하십시오.

당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.