2012-05-19 4 views
0

내가 어딘가에 오래 전에 발견 NN의 입력과 스케일 출력을 확장하기위한 방법을 가지고 있지만 나는 그들이 유효한지 확실하지 않다, NN에 대한 encog 라이브러리를 사용하여 메신저 :신경 네트워크 확장 입력과 스케일 출력

public static double Scale(double X) 
     { 
      double fieldlow = 0; 
      double fieldhigh = 1; 
      double min = 1; 
      double max = 2; 
      //double max = 10000; 
      double temp = ((X - min)/(max - min)) * (fieldhigh - fieldlow) + fieldlow; 
      return temp; 
     } 
     public static double DeScale(double X) 
     { 
      double fieldlow = 0; 
      double fieldhigh = 1; 
      double min = 1; 
      double max = 2; 
      //double max = 10000; 
      double temp = ((min - max) * X - fieldhigh * min + max * fieldlow)/(fieldlow - fieldhigh); 
      return temp; 
     } 

fieldlow와 fieldhigh는 NN 입력 및 출력 범위입니다 (확실하지는 않지만 ActivationTANH의 범위는 0-1). min은 데이터에서 가장 낮은 값이어야하고 데이터에서 최대 값이어야합니다. 새로운 데이터를 얻는다면 더 높은 값으로 설정하고 최대 값을 설정하면 어떨까요? 이 방법을 다시 작성하고 처음부터 교육을 시작해야합니까?

이것이 잘못된 경우 올바른 방향으로 안내해주세요.

답변

0

정확하게 기억하면 스케일링은 학습 데이터 기능 범위뿐만 아니라 모든 가능한 데이터 기능 범위를 적용합니다. 즉, 훈련 세트의 기능이 xMin = 1, xMax = 1000으로 수행되는 스캘링보다 최소값이 25와 최대 45 인 경우 실제로는 1에서 1000까지 가능합니다. 값을 변경할 수 없습니다.

시도해보십시오. 이 공식을 사용하십시오 : scaledX = (X - minX)/(maxX - minX) 여기서 minX \ maxX - min 및 입력 기능 당 최대 값

+0

감사합니다. – formatc