문제가 있습니다(참조 https://public.jmp.com/packages/Problematic-Nonlinear-Fit/js-p/kz0BFg2_XHtZjz6kNKdXg ) 여기서 비선형 모델을 피팅하고 있으며 데이터 때문에 모델 피팅에 약간의 불안정성이 있습니다.비선형 모델의 매개변수 중 하나는 실제 이론 모델과 비교하여 데이터에 작은 오류가 있을 때 "무한대로 미끄러지는" 경향이 있습니다.내가 하고 싶은 것은 비선형 모델을 맞추는 것이지만 그 매개변수(예: L2 norm)에 페널티를 두어 매개변수가 폭발하는 것을 방지합니다.
내가 의미하는 바는 다음과 같습니다.
내 비선형 모델이
f(t) = A * (1 - exp(-k*t)) + B * (1-exp(0.0193 * t))
일반적으로 매개변수 추정값을 찾기 위해 최소화되는 손실 함수는 제곱 오류 손실입니다.
합계 { (yf(t))^2) }가 최소화되도록 find(A, k, 
내가 하고 싶은 것은 그 이상이다
sum{ (yf(t))^2 + lambda*k^2}가 최소화되도록 find(A, k, 
여기서 람다는 간단한 그리드 검색을 기반으로 직접 선택하는 정규화 매개변수입니다.
사용자 지정 손실 함수 열을 사용하여 살펴보았지만 해당 열에 다른 열의 모델 매개변수를 포함할 수 있는지 모르겠습니다.
속도("k")가 폭발하지 않도록 하는 방법에 대한 아이디어가 있습니까?
수치 도함수를 사용해 보았지만 결과는 바뀌지 않았습니다.매개변수 경계는 예상한 대로 수행되며, 추정치를 지정된 경계로 만들기만 하면 됩니다.
이 게시물의 예제 데이터도 업로드했습니다.
예측 프로파일러를 사용하여 이를 수행하는 방법을 생각했습니다.내 접근 방식은 다음과 같습니다.
최소화하려는 "손실" 함수에 대해 열 k, A, B, 람다 및 열이 있는 테이블(첨부 참조)을 만들었습니다.첨부된 테이블에는 2개의 손실 함수(QuadLoss 및 L2RegLoss)가 있습니다.이러한 각 열에는 수식으로 더 복잡한 스크립트가 있습니다.프로파일 데이터를 행렬로 저장하고 y 및 t 값을 벡터로 추출한 다음 y와 모델 간의 차이를 계산합니다(모델을 t, k, A, B의 함수로 작성 완료).그런 다음 제곱 오류의 합과 추가된 정규화 패널티를 마지막 결과로 계산합니다.람다 값은 페널티 값을 조정합니다.좀 더 쉽게 작성하기 위해 함수를 "벡터화"했습니다.다음은 QuadLoss의 기능입니다.
dmat = [0.061033 3, 0.0706 6, 0.0923 12, 0.104767 24, 0.122933 48, 0.1657 120, 0.2201 240];
yvec = dmat[0, 1];
tvec = dmat[0, 2];
rvec = yvec - (:A * (1 - Exp( -:k * tvec )) + :B * (1 - Exp( -0.0193 * tvec )));
(rvec` * rvec)[1];
다음은 L2RegLoss에 대한 기능입니다.
dmat = [0.061033 3, 0.0706 6, 0.0923 12, 0.104767 24, 0.122933 48, 0.1657 120, 0.2201 240];
yvec = dmat[0, 1];
tvec = dmat[0, 2];
rvec = yvec - (:A * (1 - Exp( -:k * tvec )) + :B * (1 - Exp( -0.0193 * tvec )));
(rvec` * rvec)[1] + :lambda * :k ^ 2;
그런 다음 Prediction Profiler와 Desirability 함수를 사용하여 손실을 최소화하고 k 값에 대해 람다(정규화 조정 매개변수)의 다른 값이 제공하는 값을 살펴보았습니다.이 경우 A와 B가 아닌 k만 정규화합니다.

"NoReg" 저장된 설정은 비선형 플랫폼이 수행하는 작업과 유사해야 하는 2차 손실(제곱 오차의 합)을 사용하고 있습니다. 나는 비선형 플랫폼이 사용하는 것과 다르다고 확신합니다.)그런 다음 람다에 대해 0.01, 0.001, 0.1 값을 시도했고 k 추정은 튜닝 매개변수 값의 영향을 꽤 많이 받습니다.그래서 저는 이 접근 방식에 완전히 만족하지 않습니다.조정 매개변수를 선택하는 것은 어려운 일이며 이것이 합리적인 접근 방식인지 확실하지 않습니다.
나는 이 문제에 대해 오랫동안 생각했지만 정규화된 손실 함수에서 사용할 수 있도록 현재 매개변수 값을 표면화하는 방법을 알 수 없습니다. 예측 공식을 건너뛰고 전체 모델을 손실 함수로 표현하는 것이 가능할 수도 있습니다. 사용자 정의 손실 함수는 내 지식의 약점입니다.
정규화 대신 도움이 될 수 있는 내장 기능이 있습니다. 보다 도움말 > JMP 문서 라이브러리 > 예측 및 특수 모델링 > 비선형 회귀 > 추가 예제 > 매개변수 제한 설정의 예 . 이 솔루션의 문제는 매개변수가 무한대 대신 상한선에 도달할 가능성이 있다는 것입니다.
도움이 되도록 기본이 아닌 설정을 시도해 보셨습니까? 나는 궁금 숫자 도함수만 도움이 될 것이다? 사용하는 것 두 번째 도함수 옵션 도움말?