好的,所以我正处于Andrew Ng关于课程的机器学习课程的中间,并且想要调整作为任务4的一部分完成的神经网络.
特别是,我作为任务的一部分正确完成的神经网络如下:
g(z) = 1/(1+e^(-z))
其中L=number of layers,s_l = number of units in layer l,m = number of training examples,K = number of output units
现在我想调整练习,以便有一个连续的输出单元,在[0,1]之间取任何值,我正在尝试找出需要改变的东西,到目前为止我有
其中a_3是从前向传播确定的输出单位的值.我确信其他必须改变,因为梯度检查方法显示由反向传播确定的梯度,并且数值近似不再匹配.我没有改变sigmoid梯度; 则留在f(z)*(1-f(z))其中f(z)是S形函数1/(1+e^(-z))),也没有我更新衍生物式的数值近似; 简单(J(theta+e) - J(theta-e))/(2e).
任何人都可以建议需要采取哪些其他步骤?
在Matlab中编码如下:
% FORWARD PROPAGATION
% input layer
a1 = [ones(m,1),X];
% hidden layer
z2 = a1*Theta1';
a2 = sigmoid(z2); …Run Code Online (Sandbox Code Playgroud)