안녕하세요 퍼셉트론 알고리즘에서 가중치를 계산하는 프로그램을 만들려고합니다. 나는 지금 당장 모든 작업을 수행 할 수 있습니다. 그러나 매우 기초적으로 그것은 단계 기능이며 그것은 단일 계층입니다. 내가 muilti-layer로 옮기기 전에 나는 그것을 최적의 S 자형으로 만들기 위해 노력하고 있습니다.퍼셉트론 시그 모이 드
그래서 내 질문에, 나는 sigmoid에 대한 일반적인 생각을 가지고 있지만 선을 최적으로 만드는 방법에 대한 정보를 찾을 수 없으므로 데이터 포인트와 동일한 거리에 있습니다. 누구든지 어떤 생각을 가지고 있습니까?
net = 0;
for(i=0; i<N; i++)
{
net = net + (x[i] * w[i]); //Calculates weighted sum
}
if(net >= threshold) output = 1; //Finds the output based on the net
if(net < threshold) output = -1;
이 내 현재 코드가 "Y"변수를 찾을 수있다, 나는 여기에 출력을라고, 그리고 내가 S 자형이를 변환 할 수있는 방법 임계 값 = 0 간단한 단계 기능을 사용하여 찾는?
당신은 "output = net/(1 + exp (-net));"을 의미한다고 생각합니다.하지만 그게 효과가 있다고 생각합니다. 2 if의 진술이 단계 함수로 만드는 것이고, 무엇을 알지 못했습니다. 그 (것)들과하기 위하여, 그러나 지금 나는 그것을 얻는다. 출력 값을 3-5 자리로 반올림하는 방법이 있습니까? 그것을 인쇄하려하지 않고 그냥 보관하십시오. – Maty
@maty 원래의 시그 모이 드 함수는 필자가 작성한 것과 동일하지만'1/(1 + exp (-beta * net))'를 사용할 수도 있습니다. 여기서 beta는 기울기 매개 변수입니다. Sigmoid는 0에서 1까지의 출력 값을 줄 것이며, 'tanh'는 -1에서 1로 줄 것입니다. (0, 1) 간격으로 출력이 필요하면 그것들도 또한 '0.5 * tanh (net) + 0.5' 'tanh'에서. – a5kin