2012-02-06 4 views
4

배치 및 확률 적 그라디언트 디센트를 구현했습니다. 그래도 문제가 발생합니다.그라데이션 디센트 구현

1 to m { 
theta(j):=theta(j)-step*derivative (for all j) 
} 

내가 가진 문제는 비용 함수가 작아지고 경우에도 테스트가 좋지 않아 말한다이다 : 이것은 확률 적 규칙입니다. 단계를 약간 변경하고 반복 횟수를 변경하면 비용 함수가 약간 더 커지지 만 결과는 양호합니다. 이것이 과도한 "증상"입니까? 어느 것이 옳은지 어떻게 알 수 있습니까? :)

내가 말했듯이 비용 기능이 더 최소화 되더라도 테스트 결과 좋지 않다고합니다.

+0

"좋지 않다"는 것은 무엇을 의미합니까? –

+0

@ MichaelJ.Barber 예를 들어, 예상 값은 0.35이고 나는 0.65를 얻습니다. 차이점이 있습니다. 그러나 다른 단계와 반복 횟수를 사용하면 0.35를 얻을 수 있습니다. 문제는 올바른 매개 변수를 얻을 때 어떻게하면 더 큰 규모로 알 수 있습니까? – Andrew

+0

@ MichaelJ.Barber이고 비용 함수 값이 더 작 으면 (더 최소화 됨) 테스트 값은 오른쪽 값과 매우 다르지만 값 값 함수가 조금 더 커지면 테스트 예제에 적합한 값을 제공합니다. – Andrew

답변

17

그라데이션 디센트는 기능을 최소화하기위한 로컬 검색 방법입니다. 매개 변수 공간에서 로컬 최소값에 도달하면 더 이상 진행할 수 없습니다. 그래디언트 디센트 (및 다른 로컬 메소드)는 전역 최소값에 도달하는 것이 아니라 로컬 최소값에 걸리기 쉬운 경향이 있습니다. 로컬 미니 마는 당신이 성취하려는 것을 위해 좋은 해결책 일 수도 아닐 수도 있습니다. 기대하는 기능은 최소화하려는 기능에 따라 다릅니다.

특히 고차원 NP 완전 문제는 까다로울 수 있습니다. 그들은 종종 지수 적으로 많은 지역 최적 값을 가지며, 그 중 많은 것이 비용면에서 전역 최적 값과 거의 비슷하지만 전역 최적 값에 대한 매개 변수 값과 직각을 이룹니다. 이것들은 하드 문제입니다 : 일반적으로 전역 최적을 찾을 수있을 것이라고 기대하지 않고 대신에 로컬 최소값을 찾는 것이 좋습니다. 또한 관련 문제가 있습니다. 많은 흥미로운 문제가 이러한 속성을 가지고 있습니다.

먼저 그라디언트 강하 구현을 손쉽게 테스트 해보는 것이 좋습니다. 다항식에서 최소값을 찾아보십시오. 하나의 매개 변수 문제이므로 다항식의 곡선을 따라 매개 변수 값의 진행을 플로팅 할 수 있습니다. 어떤 것이 급격히 잘못되었는지 확인할 수 있어야하며 검색이 지역 최소치에 어떻게 달라 붙는지 관찰 할 수 있어야합니다. 또한 초기 매개 변수 선택이 상당히 중요하다는 것을 알 수 있어야합니다.

더 어려운 문제를 해결하기 위해 알고리즘을 수정하여 로컬 최소 점을 피할 수 있습니다. 몇 가지 일반적인 접근 방식 :

  • 잡음을 추가하십시오. 이렇게하면 찾은 매개 변수의 정밀도가 떨어 지므로 로컬 최소값을 "흐리게"만들 수 있습니다. 그런 다음 검색은 소음과 비교하여 작은 로컬 미니 마에서 뛰어 내릴 수 있지만 여전히 더 깊은 미니 마에 갇혀 있습니다. 잡음을 추가하는 잘 알려진 방법은 simulated annealing입니다.

  • 운동량을 추가하십시오.단계를 정의하는 데 현재 그라디언트를 사용하는 것과 함께 이전 단계와 동일한 방향으로 계속 진행합니다. 이전 단계의 일부분을 운동량 용어로 사용하는 경우 계속 진행하는 경향이 있으며, 이는 검색을 지역 최소값보다 많이 지나칠 수 있습니다. 분수를 사용하면 단계가 기하 급수적으로 감소하므로 불량 단계가 큰 문제는 아닙니다. 그라디언트 디센트를 백 프로 퍼 게이트 (backpropagation)라고 부르는 신경 네트워크를 학습 할 때 그라디언트 디센트에 대한 일반적인 수정이 항상 이루어졌습니다.

  • 하이브리드 검색을 사용하십시오. 먼저 글로벌 검색 (예 : 유전자 알고리즘, 다양한 몬테카를로 방법)을 사용하여 좋은 출발점을 찾은 다음 그라디언트 디센트를 적용하여 함수의 그래디언트 정보를 활용합니다.

나는 사용을 권장하지 않습니다. 대신, 나는 다른 사람들이 당신이하고있는 것에 관련된 문제로 무엇을했는지보기 위해 약간의 연구를하는 것이 좋습니다. 순전히 학습 경험이 있다면, 운동량은 아마 일하기가 가장 쉽습니다.

+0

그라데이션 강하와 함께 하이브리드 GA를 읽을 것을 권장 할 수 있습니까? – Alex

0

에 갈 수있는 많은 것들이 있습니다

  • step
  • 당신의 파생 될 수있는 나쁜 선택이 될 수 오프
  • 이 "기대 값이"잘못 될 수는
  • 귀하의 그라데이션 강하가 수렴 속도가 느려질 수 있습니다.

th, plot은 다양한 단계 값으로 실행됩니다. 작은 단계는 너무 큰 단계의 문제를 피할 수있는 더 나은 기회를 제공합니다.

+0

로컬 미니 마에서 문제가 발생하면 * 큰 * 스텝 크기가 실제로 더 나은 선택 일 수 있습니다. 실험이 필요합니다. –

+0

맞아, 나는 심지어 지방 최저 수준에 머물러있는 것을 고려하지 않았다. 그러나 이것이 문제라면, 우선 그라데이션 강하 이외의 것을하는 것이 가장 좋습니다. – comingstorm

+0

너무 빨라서, 나는 말할 것입니다. 그라데이션 기반 방법은 많은 시간 동안 성공적으로 사용되었습니다. 그라디언트는 많은 정보를 가지고 있습니다. 어려운 문제는 어렵 기 때문에 다른 방법을 시도해야합니다. 어쨌든 우리가 사용하는 방법에 관계없이 대부분의 경우 글로벌 최적을 찾을 수있는 것처럼 아닙니다. –