は自己組織化マップ(英語で「self organizing map」と呼ばれて、略は「SOM」だ)の学習を行う
[SOMWeights] = TrainSOM(Samples, InitialWeights, GridSize, LearningRate, LearningRateParameter, Neighborhood, NeighborhoodParameter, NormType)
学習のベクトルを含む行列で、ベクトルは行である
初期のウェイトを含む行列で、ウェイトは行である
各次元におけるニューロンの数を表すベクトル又はスカラーである。構成要素が1つを超える必要はある
学習率で、時及び別のパラメータに依存する関数である
LearningRate()における2つ目のパラメータで、何の型でも可能である
距離、時及び別のパラメータに依存する関数である
Neighborhood()における3つ目のパラメータで、何の型でも可能である
ベクトルにおけるノルムで、ゼロを超える数で、無限(%inf)である可能性がある
最終のウェイトを含む行列で、ウェイトは行である
本関数は自己組織化マップ(英語で「self organizing map」と呼ばれて、略は「SOM」だ)の学習を行う。
global CLUSTER_PATH; Source = read_csv(CLUSTER_PATH + 'demos\IrisData.csv', ascii(9)); Samples = strtod(Source(:, 1 : 4)); GridSize = [5 3]; InitialWeights = InitSOM(Samples, GridSize, 'equidistant'); LearningRateStruct = struct('Max', 0.2, 'Min', 0.02, 'Duration', size(Samples, 1)); function [Result]=LinearLearningRate(TimeStep, Parameter) Result = Parameter.Max - (Parameter.Max - Parameter.Min) * (TimeStep - 1) / (Parameter.Duration - 1); endfunction NeighborhoodStruct = struct('Max', 5, 'Duration', size(Samples, 1)); function [Result]=CircularNeighborhood(Distance, TimeStep, Parameter) MaxDistance = Parameter.Max - (Parameter.Max - 1) * (TimeStep - 1) / (Parameter.Duration - 1); Result = double(Distance <= MaxDistance); endfunction SOMWeights = TrainSOM(Samples, ... InitialWeights, ... GridSize, ... LinearLearningRate, ... LearningRateStruct, ... CircularNeighborhood, .... NeighborhoodStruct, ... 2) | ![]() | ![]() |
T. Kohonen, 'Self-organizing maps', Springer Verlag, Berlin, 2001