2016-07-31 2 views
-2

Я узнаю о механизме обучения от coursera. Я пытаюсь вычислить сигмоидную функцию, и у меня есть код ниже:Вычислить сигмоидную функцию

function g = sigmoid(z) 
%SIGMOID Compute sigmoid functoon 
% J = SIGMOID(z) computes the sigmoid of z. 

% You need to return the following variables correctly 

g = zeros(size(z)); 

% ====================== YOUR CODE HERE ====================== 

% Instructions: Compute the sigmoid of each value of z (z can be a matrix, 
%    vector or scalar). 



g = (1 + exp(-1 * z)) .^ -1; 
g = 1/(1+ (1/exp(z))) 


% my question is why the first g calculation works for matrix(say 100*2) however the second only works for (100*1) as both are trying to do the same this. 


% ============================================================= 

end 

ответ

0

.^Работает для каждого элемента в матрице./не. ./ (возможно, вам понадобится сделать некоторые из 1-х матриц 1-го)

0

вам нужно использовать для циклов, чтобы применить сигмоидальную функцию к каждому элементу вектора или матрицы.

2

Правильный ответ

rt=-z; %changing sign of z 
rt=rt'; %transposing matrix 

g=1./(1+e.^(rt)); %you need to use dot(.) while dividing and also while finding power to apply those operation for every element in the matrix. 

Ответ на ваш вопрос

1.g = (1 + exp(-1 * z)) .^ -1; 
2.g = 1/(1+ (1/exp(z)))   

вы пропустили точечный оператор (.) Во второй функции для разделения и первой функции для ехр().

2

Что вы можете попробовать - это использовать операции с элементами (больше информации из официальной документации Octave here).

Обратите внимание, что с элементом операций:

Когда у Вас есть две матрицы одного и того же размера, можно выполнить элемент с помощью операций элементов на них

Так как определено г и г имеют того же размера, код ниже должен возвращать функцию Sigmoid.

g = (g.+1)./(1 + e.^-z); 

По существу, он делает 2 простых вещи. Во-первых, он превращает матрицу нулей или скаляр в единицу с единицами «1». Затем он делит каждый элемент на (1 + e z) для каждого соответствующего элемента.