function [w] = newtonOptimize(X,y)
	maxIter = 5;
	eps = 1e-10;
	logProb = zeros(length(maxIter), 1);
	//  f1 = scf(1);
	w = zeros(d,1);
	//w=-ones(d,1);
	for iter = 1:maxIter
	    grad = X' * (   (1 - Sigmoid(y .* (X * w))) .* y   );

	    a = Sigmoid(X * w) .* (1 - Sigmoid(X * w)) + eps;
	    hessian = - X' * diag(a) * X;
	    wNew = w - inv(hessian) * grad;        
	    // print old and new total conditional log likelihood
	    //condProb = y .* Sigmoid(X * w) - (y - 1)./2;
	    // prod(condProb)
	    //condProbNew = y .* Sigmoid(X * wNew) - (y - 1)./2 + eps;
	    // prod(condProbNew)
	    //logProb(iter) = -sum(log(condProbNew));
	w=wNew
endfunction
