2017-10-07 1 views
-1

높음 (에러 검사 차이) 경사 하강이

그래서 하나의 Y 출력 여러 X 입력 설정 샘플 데이터 그래디언트 디센트 알고리즘을 실행하는 프로그램을 작성하는 것을 시도하고있다. 사용자가 에러에 기초하여 계수를 업데이트 할 "에포크"의 수를 설정하게하는 대신에, 이전 에러에 대해 업데이트 된 에러를 반복적으로 테스트하고, 차이의 레벨이 어떤 허용 오차 이하로 떨어지면 기능을 정지시키는 것 아마도 사용자가 설정). 나는 이것을 올바른 방향으로 가고 있는가? 그렇다면 이전 오류와 새 오류의 차이를 계량화하는 데 가장 좋은 방법은 무엇일까요?

나는 이것을 파이썬에서 데이터 프로그래밍 과정의 일부로하고 있습니다.

감사의 말씀.

감사

답변

0
내가 지적하고 싶은

: 각 반복 후

훈련 오류는 일반적으로 안정되지는 미니 배치 그라데이션 하강, 또는 확률 그라데이션 하강 또는 다른 알고리즘을 최적화하는 경우가 의존 배치 크기 이렇게하면 조기 중지 또는 무한 루프가 발생할 수 있습니다.

그러나 Batch Gradient Descent를 사용하는 경우 접근 방법이 효과적 일 수 있다고 생각합니다.

편집 :

확률 GD가 배치 GD, 당신은 학습 집합의 모든 샘플에 대한 오류 및 졸업생을 계산하는 동안, 한 번에 하나의 샘플에 대한 오류 및 그라데이션을 계산하는 것을 의미한다.

BatchGD의 단점은 전체 트레이닝 세트에 대해 그라디언트를 반복해서 계산해야한다는 것입니다 (수백만 개의 샘플을 트레이닝 할 때를 상상해보십시오).

f- 값 : 나는 당신이 안장 점에 머물러있을 수 있다고 생각합니다 (기능이 평평한 곳). 그래도이 방법을 구현하려는 경우 https://en.wikipedia.org/wiki/Saddle_point

그러나, 나는 당신의 "새로운"오류 (또는 새로운 F-값) "오래된"한 후 10 또는 20 단계 있어야한다고 생각합니다.

+0

답장을 보내 주셔서 감사합니다. 나는 내 경험이 확률 적 (stochastic)과 일괄 (batch) gd의 차이를 아는 것만 큼 두려워하지 않는다. 당신은 더 자세히 설명해 줄 수 있습니까? 내 훈련 데이터에는 하나의 y 변수가있는 두 개의 변수가 있는데, 나는 f- 값을 사용하려고 생각하고있었습니다. – Thomas

관련 문제