그라데이션 디센트는 기능을 최소화하기위한 로컬 검색 방법입니다. 매개 변수 공간에서 로컬 최소값에 도달하면 더 이상 진행할 수 없습니다. 그래디언트 디센트 (및 다른 로컬 메소드)는 전역 최소값에 도달하는 것이 아니라 로컬 최소값에 걸리기 쉬운 경향이 있습니다. 로컬 미니 마는 당신이 성취하려는 것을 위해 좋은 해결책 일 수도 아닐 수도 있습니다. 기대하는 기능은 최소화하려는 기능에 따라 다릅니다.
특히 고차원 NP 완전 문제는 까다로울 수 있습니다. 그들은 종종 지수 적으로 많은 지역 최적 값을 가지며, 그 중 많은 것이 비용면에서 전역 최적 값과 거의 비슷하지만 전역 최적 값에 대한 매개 변수 값과 직각을 이룹니다. 이것들은 하드 문제입니다 : 일반적으로 전역 최적을 찾을 수있을 것이라고 기대하지 않고 대신에 로컬 최소값을 찾는 것이 좋습니다. 또한 관련 문제가 있습니다. 많은 흥미로운 문제가 이러한 속성을 가지고 있습니다.
먼저 그라디언트 강하 구현을 손쉽게 테스트 해보는 것이 좋습니다. 다항식에서 최소값을 찾아보십시오. 하나의 매개 변수 문제이므로 다항식의 곡선을 따라 매개 변수 값의 진행을 플로팅 할 수 있습니다. 어떤 것이 급격히 잘못되었는지 확인할 수 있어야하며 검색이 지역 최소치에 어떻게 달라 붙는지 관찰 할 수 있어야합니다. 또한 초기 매개 변수 선택이 상당히 중요하다는 것을 알 수 있어야합니다.
더 어려운 문제를 해결하기 위해 알고리즘을 수정하여 로컬 최소 점을 피할 수 있습니다. 몇 가지 일반적인 접근 방식 :
잡음을 추가하십시오. 이렇게하면 찾은 매개 변수의 정밀도가 떨어 지므로 로컬 최소값을 "흐리게"만들 수 있습니다. 그런 다음 검색은 소음과 비교하여 작은 로컬 미니 마에서 뛰어 내릴 수 있지만 여전히 더 깊은 미니 마에 갇혀 있습니다. 잡음을 추가하는 잘 알려진 방법은 simulated annealing입니다.
운동량을 추가하십시오.단계를 정의하는 데 현재 그라디언트를 사용하는 것과 함께 이전 단계와 동일한 방향으로 계속 진행합니다. 이전 단계의 일부분을 운동량 용어로 사용하는 경우 계속 진행하는 경향이 있으며, 이는 검색을 지역 최소값보다 많이 지나칠 수 있습니다. 분수를 사용하면 단계가 기하 급수적으로 감소하므로 불량 단계가 큰 문제는 아닙니다. 그라디언트 디센트를 백 프로 퍼 게이트 (backpropagation)라고 부르는 신경 네트워크를 학습 할 때 그라디언트 디센트에 대한 일반적인 수정이 항상 이루어졌습니다.
하이브리드 검색을 사용하십시오. 먼저 글로벌 검색 (예 : 유전자 알고리즘, 다양한 몬테카를로 방법)을 사용하여 좋은 출발점을 찾은 다음 그라디언트 디센트를 적용하여 함수의 그래디언트 정보를 활용합니다.
나는 사용을 권장하지 않습니다. 대신, 나는 다른 사람들이 당신이하고있는 것에 관련된 문제로 무엇을했는지보기 위해 약간의 연구를하는 것이 좋습니다. 순전히 학습 경험이 있다면, 운동량은 아마 일하기가 가장 쉽습니다.
"좋지 않다"는 것은 무엇을 의미합니까? –
@ MichaelJ.Barber 예를 들어, 예상 값은 0.35이고 나는 0.65를 얻습니다. 차이점이 있습니다. 그러나 다른 단계와 반복 횟수를 사용하면 0.35를 얻을 수 있습니다. 문제는 올바른 매개 변수를 얻을 때 어떻게하면 더 큰 규모로 알 수 있습니까? – Andrew
@ MichaelJ.Barber이고 비용 함수 값이 더 작 으면 (더 최소화 됨) 테스트 값은 오른쪽 값과 매우 다르지만 값 값 함수가 조금 더 커지면 테스트 예제에 적합한 값을 제공합니다. – Andrew