KRHebbian implemented Hebbian algorithm that is a non-supervisor of self-organization algorithm of Machine Learning (自分学習アルゴリズム).
platform :ios, '7.0' pod "KRHebbian", "~> 1.3.0"#import "KRHebbian.h"KRHebbian *_hebbian = [KRHebbian sharedAlgorithm]; _hebbian.activeFunction = KRHebbianActiveFunctionBySgn; // Tanh() for [-1.0, 1.0], Sgn() for (-1, 1) _hebbian.learningRate = 1.0f; _hebbian.maxIteration = 1; [_hebbian addPatterns:@[@0.0f, @1.5f, @-2.0f, @1.0f]]; // X1 [_hebbian addPatterns:@[@-1.5f, @-2.0f, @-0.5f, @1.0f]]; // X2 [_hebbian initializeWeights:@[@0.5f, @0.0f, @-1.0f, @1.0f]]; [_hebbian setTrainingIteraion:^(NSInteger iteration, NSArray *outputs, NSArray *weights) { NSLog(@"Training %li iteration = %@, outputs = %@", iteration, weights, outputs); }]; [_hebbian trainingWithCompletion:^(BOOL success, NSArray *outputs, NSArray *weights, NSInteger totalIteration) { NSLog(@"Trained %li iteration = %@, outputs = %@", totalIteration, weights, outputs); // Start in verifying [_hebbian directOutputAtInputs:@[@-0.5f, @-1.0f, @-0.2f, @0.5f] completion:^(NSArray *outputs, NSArray *weights) { NSLog(@"Verified weights = %@, outputs = %@", weights, outputs); }]; }];V1.3.0
MIT.