This
Clear["Global`*"];
(*SeedRandom[100];*)
Objective=Compile[{{X,_Real,2},{Y,_Real,1},{Thetas,_Real,1}},
Module[{NoExamples=Length@X,xt=X.Thetas},
(1./NoExamples)*(Total[Y*Log[1+Exp[-xt]]-(-1+Y)*Log[1+Exp[xt]]])],"RuntimeOptions"->"Speed"];
NoVariables=10;
NoExamples=5000;
allData=RandomReal[1,{NoExamples,NoVariables}];
X=Transpose[Prepend[Transpose[allData],Table[1.,{NoExamples}]]];
Dimensions@X (*X is 200 by 101 matrix,with first column of only 1's*)
Thetas=Table[Symbol["\[Theta]"<>ToString@i],{i,0,NoVariables}];
Dimensions@Thetas (*Thetas are 101 size vector,with Subscript[\[Theta],0] representing the coefficient of the constant term*)
Y=RandomChoice[{0.,1.},NoExamples];
Dimensions@Y (*y is a vector of size 200,being either 0 or 1*)
Timing@FindMinimum[Objective[ X,Y,Thetas],Thetas,Method->"PrincipalAxis"]
needs 2.5 seconds (in V10 there is a strange CompiledFunction::cfta warning message, which is not there in V9)