The class is about a stochastic cost function for stochastic average minimizers.
The cost function must be written as a finite sample-specific sum of cost. For example, least squares cost function,
\[ f(w)=\frac{ \sum_i^n{ (y_i-w^T x_i)^2 } }{2} \]
where \(n\) is the sample size, \((y_i,x_i)\) is the i-th sample, \(y_i\) is the label and \(x_i\) is the features
A stochastic average minimizer uses average sample gradients ( get_average_gradient() ) to reduce variance related to stochastic gradients.
Well known stochastic average methods are: SVRG, Johnson, Rie, and Tong Zhang. "Accelerating stochastic gradient descent using predictive variance reduction." Advances in Neural Information Processing Systems. 2013.
SAG, Schmidt, Mark, Nicolas Le Roux, and Francis Bach. "Minimizing finite sums with the stochastic average gradient." arXiv preprint arXiv:1309.2388 (2013).
SAGA, Defazio, Aaron, Francis Bach, and Simon Lacoste-Julien. "SAGA: A fast incremental gradient method with support for non-strongly convex composite objectives." Advances in Neural Information Processing Systems. 2014.
SDCA, Shalev-Shwartz, Shai, and Tong Zhang. "Stochastic dual coordinate ascent methods for regularized loss." The Journal of Machine Learning Research 14.1 (2013): 567-599.
Definition at line 70 of file FirstOrderSAGCostFunction.h.
|
virtual | ~FirstOrderSAGCostFunction () |
|
virtual int32_t | get_sample_size ()=0 |
|
virtual SGVector< float64_t > | get_average_gradient ()=0 |
|
virtual SGVector< float64_t > | get_gradient ()=0 |
|
virtual float64_t | get_cost ()=0 |
|
virtual void | begin_sample ()=0 |
|
virtual bool | next_sample ()=0 |
|
virtual SGVector< float64_t > | obtain_variable_reference ()=0 |
|
virtual CSGObject * | shallow_copy () const |
|
virtual CSGObject * | deep_copy () const |
|
virtual const char * | get_name () const =0 |
|
virtual bool | is_generic (EPrimitiveType *generic) const |
|
template<class T > |
void | set_generic () |
|
template<> |
void | set_generic () |
|
template<> |
void | set_generic () |
|
template<> |
void | set_generic () |
|
template<> |
void | set_generic () |
|
template<> |
void | set_generic () |
|
template<> |
void | set_generic () |
|
template<> |
void | set_generic () |
|
template<> |
void | set_generic () |
|
template<> |
void | set_generic () |
|
template<> |
void | set_generic () |
|
template<> |
void | set_generic () |
|
template<> |
void | set_generic () |
|
template<> |
void | set_generic () |
|
template<> |
void | set_generic () |
|
template<> |
void | set_generic () |
|
void | unset_generic () |
|
virtual void | print_serializable (const char *prefix="") |
|
virtual bool | save_serializable (CSerializableFile *file, const char *prefix="") |
|
virtual bool | load_serializable (CSerializableFile *file, const char *prefix="") |
|
void | set_global_io (SGIO *io) |
|
SGIO * | get_global_io () |
|
void | set_global_parallel (Parallel *parallel) |
|
Parallel * | get_global_parallel () |
|
void | set_global_version (Version *version) |
|
Version * | get_global_version () |
|
SGStringList< char > | get_modelsel_names () |
|
void | print_modsel_params () |
|
char * | get_modsel_param_descr (const char *param_name) |
|
index_t | get_modsel_param_index (const char *param_name) |
|
void | build_gradient_parameter_dictionary (CMap< TParameter *, CSGObject * > *dict) |
|
bool | has (const std::string &name) const |
|
template<typename T > |
bool | has (const Tag< T > &tag) const |
|
template<typename T , typename U = void> |
bool | has (const std::string &name) const |
|
template<typename T > |
void | set (const Tag< T > &_tag, const T &value) |
|
template<typename T , typename U = void> |
void | set (const std::string &name, const T &value) |
|
template<typename T > |
T | get (const Tag< T > &_tag) const |
|
template<typename T , typename U = void> |
T | get (const std::string &name) const |
|
virtual void | update_parameter_hash () |
|
virtual bool | parameter_hash_changed () |
|
virtual bool | equals (CSGObject *other, float64_t accuracy=0.0, bool tolerant=false) |
|
virtual CSGObject * | clone () |
|
virtual const char* get_name |
( |
| ) |
const |
|
pure virtualinherited |
Returns the name of the SGSerializable instance. It MUST BE the CLASS NAME without the prefixed `C'.
- Returns
- name of the SGSerializable
Implemented in CMath, CHMM, CStringFeatures< ST >, CStringFeatures< T >, CStringFeatures< uint8_t >, CStringFeatures< char >, CStringFeatures< uint16_t >, CSVMLight, CTrie< Trie >, CTrie< DNATrie >, CTrie< POIMTrie >, CDynamicArray< T >, CDynamicArray< float64_t >, CDynamicArray< float32_t >, CDynamicArray< int32_t >, CDynamicArray< char >, CDynamicArray< bool >, CMultitaskKernelTreeNormalizer, CList, CDynProg, CDenseFeatures< ST >, CDenseFeatures< uint32_t >, CDenseFeatures< float64_t >, CDenseFeatures< T >, CDenseFeatures< uint16_t >, CFile, CSparseFeatures< ST >, CSparseFeatures< float64_t >, CSparseFeatures< T >, CSpecificityMeasure, CPrecisionMeasure, CPlif, CRecallMeasure, CDynamicObjectArray, CSingleFITCLaplaceNewtonOptimizer, CCrossCorrelationMeasure, CLaRank, CCSVFile, CF1Measure, CBinaryFile, CProtobufFile, CWRACCMeasure, CRBM, CBALMeasure, CBitString, CStreamingVwFeatures, CLibSVMFile, CStreamingSparseFeatures< T >, CErrorRateMeasure, CNeuralLayer, CMultitaskKernelPlifNormalizer, CMachine, CAccuracyMeasure, CStreamingFile, CStatistics, CQuadraticTimeMMD, CRandom, CStreamingMMD, CMemoryMappedFile< T >, CMultitaskKernelMaskNormalizer, CMemoryMappedFile< ST >, CAlphabet, CStructuredModel, CStreamingDenseFeatures< T >, CLMNNStatistics, CStreamingDenseFeatures< float64_t >, CStreamingDenseFeatures< float32_t >, CCombinedDotFeatures, CSingleLaplaceNewtonOptimizer, CFeatureSelection< ST >, CFeatureSelection< float64_t >, CGUIStructure, CMKL, CCache< T >, CCache< uint32_t >, CCache< ST >, CCache< float64_t >, CCache< uint8_t >, CCache< KERNELCACHE_ELEM >, CCache< char >, CCache< uint16_t >, CCache< shogun::SGSparseVectorEntry< T > >, CCache< shogun::SGSparseVectorEntry< float64_t > >, CCache< shogun::SGSparseVectorEntry< ST > >, CMultitaskKernelMaskPairNormalizer, CSVM, CNeuralNetwork, CMultitaskKernelNormalizer, CGUIClassifier, CGUIFeatures, CGaussian, CGMM, CHashedWDFeaturesTransposed, CBinaryStream< T >, CLinearHMM, CSimpleFile< T >, CStreamingStringFeatures< T >, CParameterCombination, CDeepBeliefNetwork, CNeuralLinearLayer, CStateModel, CMulticlassSVM, CNeuralConvolutionalLayer, CRandomKitchenSinksDotFeatures, COnlineLinearMachine, CVwParser, CPluginEstimate, CVowpalWabbit, CBinnedDotFeatures, CSVRLight, CPlifMatrix, CHashedWDFeatures, CImplicitWeightedSpecFeatures, CCombinedFeatures, CLeastAngleRegression, CSparseMatrixOperator< T >, CSNPFeatures, CKNN, CWDFeatures, CCrossValidationMulticlassStorage, CHashedDenseFeatures< ST >, CIOBuffer, CUAIFile, CTwoStateModel, CLossFunction, CHMSVMModel, CDeepAutoencoder, CPCA, CGUIKernel, CHashedSparseFeatures< ST >, CRandomFourierGaussPreproc, CMKLMulticlass, CAutoencoder, CHypothesisTest, CExplicitSpecFeatures, CCrossValidation, CLibLinearMTL, CLinearMachine, CModelSelectionParameters, CPositionalPWM, CNOCCO, CHashedDocDotFeatures, CGUIHMM, COnlineSVMSGD, CLibLinear, CIntegration, CJacobiEllipticFunctions, CLDA, CZeroMeanCenterKernelNormalizer, CSparsePolyFeatures, CHashedMultilabelModel, CSqrtDiagKernelNormalizer, CHuberLoss, CQDA, CCplex, CScatterKernelNormalizer, CKMeansBase, CFisherLDA, CHSIC, CLatentModel, CRationalApproximation, CStochasticProximityEmbedding, CTableFactorType, CSVMSGD, CMulticlassMachine, CDixonQTestRejectionStrategy, CGMNPLib, CVwCacheReader, CLBPPyrDotFeatures, CRidgeKernelNormalizer, CDependenceMaximization, CMulticlassSOLabels, CGraphCut, CSerializableAsciiFile, CKLDualInferenceMethod, CNeuralLayers, CSGDQN, CSNPStringKernel, CTime, CMatrixFeatures< ST >, CWeightedCommWordStringKernel, CHingeLoss, CTwoSampleTest, CSquaredLoss, CAbsoluteDeviationLoss, CExponentialLoss, CCustomKernel, CMulticlassLabels, CHash, CFactor, CPlifArray, CLinearTimeMMD, CStreamingHashedDocDotFeatures, CKernelIndependenceTest, CCustomDistance, CStreamingVwFile, CWeightedDegreeStringKernel, CBaggingMachine, CNeuralLogisticLayer, CNeuralRectifiedLinearLayer, CTOPFeatures, CDiceKernelNormalizer, CHierarchicalMultilabelModel, CMultitaskKernelMklNormalizer, CTask, CVwEnvironment, CGaussianKernel, CBinaryLabels, CMultilabelModel, CMultilabelSOLabels, CDomainAdaptationSVMLinear, CGaussianProcessClassification, CDotKernel, CCHAIDTree, CKernelTwoSampleTest, CMAPInferImpl, CWeightedDegreePositionStringKernel, CTanimotoKernelNormalizer, CCircularBuffer, CGaussianDistribution, CStreamingHashedDenseFeatures< ST >, CStreamingHashedSparseFeatures< ST >, CBesselKernel, CAvgDiagKernelNormalizer, CVarianceKernelNormalizer, CMCLDA, CMulticlassModel, COnlineLibLinear, CIndexFeatures, CShiftInvariantKernel, CCARTree, CKernelRidgeRegression, CStreamingAsciiFile, CIndependenceTest, CHierarchical, CEuclideanDistance, CFKFeatures, CCombinedKernel, CSparseSpatialSampleStringKernel, CSpectrumMismatchRBFKernel, COperatorFunction< T >, CMultilabelCLRModel, COperatorFunction< float64_t >, CVwRegressor, CHashedDocConverter, CFactorGraphLabels, CCommWordStringKernel, CSubsequenceStringKernel, CSet< T >, CKLInference, CKRRNystrom, CDataGenerator, CSparseInference, CNeuralInputLayer, CSequenceLabels, CPolyFeatures, CNode, CContingencyTableEvaluation, CChi2Kernel, CPyramidChi2, CSignal, CLibSVR, CPeriodicKernel, CSalzbergWordStringKernel, CStructuredLabels, CSquaredHingeLoss, CDenseMatrixOperator< T >, CDenseMatrixOperator< float64_t >, CNewtonSVM, CLPBoost, CVwLearner, CIndexBlockTree, CKLDiagonalInferenceMethod, CCommUlongStringKernel, CCompressor, CExactInferenceMethod, CKLCholeskyInferenceMethod, CKLCovarianceInferenceMethod, CIterativeLinearSolver< T, ST >, CIterativeLinearSolver< float64_t, float64_t >, CIterativeLinearSolver< complex128_t, float64_t >, CIterativeLinearSolver< T, T >, CSVMLin, CHistogram, CGaussianShiftKernel, CGCArray< T >, CNeuralSoftmaxLayer, CHomogeneousKernelMap, CMahalanobisDistance, CAttributeFeatures, CRandomFourierDotFeatures, CFirstElementKernelNormalizer, CMap< K, T >, CWrappedObjectArray, CLogLoss, CLogLossMargin, CSmoothHingeLoss, CMultiLaplaceInferenceMethod, CSingleFITCInference, CMap< shogun::TParameter *, shogun::SGVector< float64_t > >, CMap< shogun::TParameter *, shogun::CSGObject * >, CMap< std::string, T >, CVwNativeCacheReader, CLocallyLinearEmbedding, CDistanceKernel, CLatentLabels, CSoftMaxLikelihood, CScatterSVM, AdamUpdater, FirstOrderStochasticMinimizer, CSpectrumRBFKernel, CMultilabelLabels, CKLLowerTriangularInference, NesterovMomentumCorrection, CMMDKernelSelection, CSegmentLoss, CKernelDistance, CLogDetEstimator, CLinearRidgeRegression, CGNPPLib, CStreamingFileFromFeatures, CPolyMatchStringKernel, CWrappedBasic< T >, CNeuralLeakyRectifiedLinearLayer, CDomainAdaptationSVM, COligoStringKernel, CSimpleLocalityImprovedStringKernel, CKernelSelection, CStreamingVwCacheFile, CCircularKernel, CConstKernel, CDiagKernel, CExponentialARDKernel, CSphericalKernel, CEigenSolver, CC45ClassifierTree, CLPM, CEmbeddingConverter, CWeightedMajorityVote, CMulticlassOVREvaluation, CPolyKernel, CPolyMatchWordStringKernel, CLogitDVGLikelihood, CSingleFITCLaplaceInferenceMethod, CID3ClassifierTree, CANOVAKernel, CProductKernel, CSparseKernel< ST >, CGaussianMatchStringKernel, CRandomForest, CKernelPCA, CNearestCentroid, CMultidimensionalScaling, CStreamingFileFromDenseFeatures< T >, CStreamingFileFromSparseFeatures< T >, CStreamingFileFromStringFeatures< T >, CFixedDegreeStringKernel, CStringKernel< ST >, CTensorProductPairKernel, CLanczosEigenSolver, CGaussianNaiveBayes, CStringKernel< uint16_t >, CStringKernel< char >, CStringKernel< uint64_t >, CKernelDensity, CParser, CTStudentKernel, CWaveletKernel, CTraceSampler, CMulticlassOneVsRestStrategy, CMinkowskiMetric, CExponentialKernel, CDiffusionMaps, CAttenuatedEuclideanDistance, CCauchyKernel, CLogKernel, CPowerKernel, CRationalQuadraticKernel, CWaveKernel, CEPInferenceMethod, CGaussianProcessRegression, CGEMPLP, CLaplacianEigenmaps, CDistantSegmentsKernel, CLocalityImprovedStringKernel, CMatchWordStringKernel, CRegulatoryModulesStringKernel, CLaplaceInference, CKernelMachine, CBAHSIC, MKLMulticlassGradient, CAUCKernel, CHistogramIntersectionKernel, CSigmoidKernel, CDistanceMachine, CStructuredOutputMachine, CKernelDependenceMaximization, CGaussianARDKernel, CInverseMultiQuadricKernel, CGaussianProcessMachine, CLabelsFactory, CFITCInferenceMethod, CVarDTCInferenceMethod, CFFDiag, CJADiag, CJADiagOrth, CTreeMachineNode< T >, CLibLinearRegression, CTreeMachineNode< ConditionalProbabilityTreeNodeData >, CTreeMachineNode< RelaxedTreeNodeData >, CTreeMachineNode< id3TreeNodeData >, CTreeMachineNode< VwConditionalProbabilityTreeNodeData >, CTreeMachineNode< CARTreeNodeData >, CTreeMachineNode< C45TreeNodeData >, CTreeMachineNode< CHAIDTreeNodeData >, CTreeMachineNode< NbodyTreeNodeData >, CMulticlassAccuracy, CGaussianShortRealKernel, CMultiquadricKernel, CLocalAlignmentStringKernel, CStudentsTLikelihood, CJediDiag, CQDiag, CUWedge, AdaDeltaUpdater, RmsPropUpdater, CSplineKernel, CDelimiterTokenizer, CWrappedSGMatrix< T >, CWrappedSGVector< T >, CSingleSparseInference, StandardMomentumCorrection, CDimensionReductionPreprocessor, CPerceptron, CICAConverter, CHistogramWordStringKernel, CDualVariationalGaussianLikelihood, CLogitVGPiecewiseBoundLikelihood, CStudentsTVGLikelihood, FirstOrderMinimizer, CTaskTree, CProbabilityDistribution, CConstMean, CStochasticGBMachine, CMatrixOperator< T >, CLogRationalApproximationIndividual, CTreeMachine< T >, CMultitaskROCEvaluation, CTreeMachine< ConditionalProbabilityTreeNodeData >, CTreeMachine< RelaxedTreeNodeData >, CTreeMachine< id3TreeNodeData >, CTreeMachine< VwConditionalProbabilityTreeNodeData >, CTreeMachine< CARTreeNodeData >, CTreeMachine< C45TreeNodeData >, CTreeMachine< CHAIDTreeNodeData >, CTreeMachine< NbodyTreeNodeData >, CCanberraMetric, CCosineDistance, CManhattanMetric, CJensenShannonKernel, CLinearKernel, CGaussianLikelihood, CIterativeShiftedLinearFamilySolver< T, ST >, CIterativeShiftedLinearFamilySolver< float64_t, complex128_t >, CGeodesicMetric, CJensenMetric, CTanimotoDistance, CLineReader, CIdentityKernelNormalizer, CLinearStringKernel, CNumericalVGLikelihood, CLinearStructuredOutputMachine, CCGMShiftedFamilySolver, CLogRationalApproximationCGM, L1Penalty, SMIDASMinimizer, SVRGMinimizer, CDecompressString< ST >, CGUIConverter, CKMeans, CNGramTokenizer, CMMDKernelSelectionMedian, CIsomap, CChiSquareDistance, CHammingWordDistance, CRandomSearchModelSelection, CGUILabels, MKLMulticlassGLPK, CSparseDistance< ST >, CLatentFeatures, CLogitVGLikelihood, CProbitVGLikelihood, CBinaryTreeMachineNode< T >, CMMDKernelSelectionOpt, CSparseDistance< float64_t >, CAveragedPerceptron, CSOBI, CKernelLocallyLinearEmbedding, CBrayCurtisDistance, CChebyshewMetric, CFactorGraphFeatures, CRegressionLabels, CNbodyTree, SMDMinimizer, CSparsePreprocessor< ST >, CLeastSquaresRegression, MKLMulticlassOptimizationBase, CVwNativeCacheWriter, CFFSep, CSparseEuclideanDistance, CRealFileFeatures, CJobResultAggregator, CGaussianARDSparseKernel, CKLDualInferenceMethodMinimizer, CMulticlassOneVsOneStrategy, AdaptMomentumCorrection, CGUIPluginEstimate, CVwAdaptiveLearner, CJediSep, CUWedgeSep, CStringDistance< ST >, CSingleLaplaceInferenceMethod, CLinearLatentMachine, AdaGradUpdater, CPNorm, CRescaleFeatures, CSparseMultilabel, CStringDistance< uint16_t >, CVwNonAdaptiveLearner, CStructuredAccuracy, CWeightedDegreeRBFKernel, CDenseMatrixExactLog, CECOCRandomSparseEncoder, CMulticlassStrategy, ElasticNetPenalty, InverseScalingLearningRate, L1PenaltyForTG, CGradientCriterion, CIndependentJob, CProbitLikelihood, CGMNPSVM, SGDMinimizer, CLogPlusOne, CMAPInference, CMixtureModel, CFactorGraphObservation, CNormOne, CLibSVM, CDenseSubSamplesFeatures< ST >, CStringFileFeatures< ST >, CGaussianCompactKernel, CScalarResult< T >, CLogitLikelihood, CBallTree, CKDTree, CStringPreprocessor< ST >, CStringPreprocessor< uint16_t >, CStringPreprocessor< uint64_t >, CFactorAnalysis, CCanberraWordDistance, CManhattanWordDistance, CCrossValidationOutput, CLinearMulticlassMachine, CDirectLinearSolverComplex, CIndividualJobResultAggregator, CECOCDiscriminantEncoder, CRandomCARTree, GradientDescendUpdater, CSumOne, CResultSet, CTaskGroup, CGUIDistance, CFastICA, CRationalApproximationCGMJob, L2Penalty, PNormMappingFunction, CSortWordString, CCCSOSVM, CIntronList, CRealNumber, CStoreVectorAggregator< T >, CIndexBlock, CIndexBlockGroup, CZeroMean, CRationalApproximationIndividualJob, CLBFGSMinimizer, CPruneVarSubMean, CSequence, CGUIPreprocessor, CStoreVectorAggregator< complex128_t >, CJade, CMeanSquaredError, CMeanSquaredLogError, CConjugateOrthogonalCGSolver, ConstLearningRate, CSortUlongString, CMeanAbsoluteError, CDummyFeatures, CListElement, CMulticlassLibLinear, CDenseDistance< ST >, CRealDistance, CCrossValidationResult, CStringMap< T >, CDenseExactLogJob, CMMDKernelSelectionMax, CDenseDistance< float64_t >, CSVMLightOneClass, CEMBase< T >, CEMMixtureModel, CIndependentComputationEngine, CVectorResult< T >, CKernelStructuredOutputMachine, CLMNN, CThresholdRejectionStrategy, CVwConditionalProbabilityTree, CEMBase< MixModelData >, CLinearLocalTangentSpaceAlignment, CNeighborhoodPreservingEmbedding, CCombinationRule, CClusteringAccuracy, CClusteringMutualInformation, CMultilabelAccuracy, CMeanShiftDataGenerator, CFactorGraphModel, CHessianLocallyLinearEmbedding, CCustomMahalanobisDistance, CSubsetStack, CStoreScalarAggregator< T >, CGridSearchModelSelection, CStochasticSOSVM, CKMeansMiniBatch, CLocalTangentSpaceAlignment, CMajorityVote, CLinearOperator< T >, CConjugateGradientSolver, CLinearOperator< float64_t >, CLinearOperator< complex128_t >, CMeanRule, CGradientEvaluation, CLinearSolver< T, ST >, CMulticlassLibSVM, CMKLRegression, CFactorDataSource, CFactorGraph, CTaskRelation, CLinearSolver< float64_t, float64_t >, CLinearSolver< complex128_t, float64_t >, CLinearSolver< T, T >, CLocalityPreservingProjections, CSerialComputationEngine, CIndexBlockRelation, CDirectEigenSolver, CECOCEncoder, CGradientResult, CROCEvaluation, CGaussianBlobsDataGenerator, CBalancedConditionalProbabilityTree, CFactorType, CSOSVMHelper, CMKLOneClass, CLibSVMOneClass, CMPDSVM, CKernelMulticlassMachine, CNormalSampler, CECOCIHDDecoder, CConditionalProbabilityTree, CRelaxedTree, CFWSOSVM, CDomainAdaptationMulticlassLibLinear, CMKLClassification, CSubset, CECOCRandomDenseEncoder, CShareBoost, CGNPPSVM, CFactorGraphDataGenerator, CPRCEvaluation, CStratifiedCrossValidationSplitting, CDirectSparseLinearSolver, CDisjointSet, CCrossValidationSplitting, CDenseSubsetFeatures< ST >, CECOCForestEncoder, CGUIMath, CGUITime, CCrossValidationPrintOutput, CTDistributedStochasticNeighborEmbedding, CCrossValidationMKLStorage, SerializableAsciiReader00, CJobResult, CFunction, CECOCAEDDecoder, CECOCDecoder, CECOCEDDecoder, CManifoldSculpting, CData, CNativeMulticlassMachine, CECOCStrategy, CConverter, CBaseMulticlassMachine, CECOCSimpleDecoder, CLOOCrossValidationSplitting, CECOCLLBDecoder, CStructuredData, CECOCHDDecoder, CRandomConditionalProbabilityTree, CECOCOVOEncoder, CECOCOVREncoder, and CRejectionStrategy.