activations

Вычислите активации слоя нейронной сети для глубокого обучения

Описание

Можно вычислить активации слоя нейронной сети для глубокого обучения или на центральном процессоре или на графическом процессоре. Используя графический процессор требует Parallel Computing Toolbox™ и поддерживаемого устройства графического процессора. Для получения информации о поддерживаемых устройствах смотрите Поддержку графического процессора Релизом (Parallel Computing Toolbox). Задайте требования к аппаратным средствам с помощью ExecutionEnvironment аргумент пары "имя-значение".

act = activations(net,imds,layer) возвращает сетевые активации для определенного слоя с помощью обучившего сеть net и данные изображения в datastore изображений imds.

act = activations(net,ds,layer) возвращает сетевые активации с помощью данных в datastore ds.

act = activations(net,X,layer) возвращает сетевые активации с помощью изображения или данных о функции в числовом массиве X.

act = activations(net,X1,...,XN) возвращает сетевые активации для данных в числовых массивах X1, …, XN для mutli-входной сети net. Вход Xi соответствует сетевому входу net.InputNames(i).

act = activations(net,sequences,layer) возвращает сетевые активации для текущей сети (например, LSTM или сеть ГРУ), где sequences содержит предикторы временных рядов или последовательность.

act = activations(net,tbl,layer) возвращает сетевые активации с помощью данных в таблице tbl.

пример

act = activations(___,Name,Value) возвращает сетевые активации с дополнительными опциями, заданными одним или несколькими аргументами пары "имя-значение". Например, 'OutputAs','rows' задает выходной формат активации как 'rows'. Задайте аргументы пары "имя-значение" после всех других входных параметров.

Примеры

свернуть все

В этом примере показано, как извлечь изученные функции изображений из предварительно обученной сверточной нейронной сети и использовать те функции, чтобы обучить классификатор изображений. Извлечение признаков является самым легким и самым быстрым способом использовать представительную степень предварительно обученных глубоких сетей. Например, можно обучить машину опорных векторов (SVM) с помощью fitcecoc (Statistics and Machine Learning Toolbox™) на извлеченных функциях. Поскольку извлечение признаков только требует одного прохода через данные, это - хорошая начальная точка, если у вас нет графического процессора, чтобы ускорить сетевое обучение с.

Загрузка данных

Разархивируйте и загрузите демонстрационные изображения как datastore изображений. imageDatastore автоматически помечает изображения на основе имен папок и хранит данные как ImageDatastore объект. Datastore изображений позволяет вам сохранить большие данные изображения, включая данные, которые не умещаются в памяти. Разделите данные в 70%-е обучение и 30% тестовых данных.

unzip('MerchData.zip');

imds = imageDatastore('MerchData', ...
    'IncludeSubfolders',true, ...
    'LabelSource','foldernames');

[imdsTrain,imdsTest] = splitEachLabel(imds,0.7,'randomized');

Этот очень небольшой набор данных теперь имеет 55 учебных изображений и 20 изображений валидации. Отобразите некоторые демонстрационные изображения.

numImagesTrain = numel(imdsTrain.Labels);
idx = randperm(numImagesTrain,16);

I = imtile(imds, 'Frames', idx);

figure
imshow(I)

Figure contains an axes. The axes contains an object of type image.

Загрузите предварительно обученную сеть

Загрузите предварительно обученную сеть SqueezeNet. SqueezeNet обучен больше чем на миллионе изображений и может классифицировать изображения в 1 000 категорий объектов, например, клавиатуры, мыши, карандаша и многих животных. В результате модель изучила богатые представления функции для широкого спектра изображений.

net = squeezenet;

Анализируйте сетевую архитектуру.

analyzeNetwork(net)

Первый слой, входной слой для изображений, требует входных изображений размера 227 227 3, где 3 количество цветовых каналов.

inputSize = net.Layers(1).InputSize
inputSize = 1×3

   227   227     3

Извлеките функции изображений

Сеть создает иерархическое представление входных изображений. Более глубокие слои содержат высокоуровневые функции, созданное использование более низких функций уровня более ранних слоев. Чтобы получить представления функции обучения и тестовых изображений, используйте activations на глобальном среднем слое 'pool10' объединения. Чтобы получить более низкое представление уровня изображений, используйте более ранний слой в сети.

Сеть требует входных изображений размера 227 227 3, но изображения в хранилищах данных изображений имеют различные размеры. Чтобы автоматически изменить размер обучения и тестовых изображений, прежде чем они будут введены к сети, создайте увеличенные хранилища данных изображений, задайте желаемый размер изображения и используйте эти хранилища данных в качестве входных параметров к activations.

augimdsTrain = augmentedImageDatastore(inputSize(1:2),imdsTrain);
augimdsTest = augmentedImageDatastore(inputSize(1:2),imdsTest);

layer = 'pool10';
featuresTrain = activations(net,augimdsTrain,layer,'OutputAs','rows');
featuresTest = activations(net,augimdsTest,layer,'OutputAs','rows');

Извлеките метки класса из обучения и тестовых данных.

YTrain = imdsTrain.Labels;
YTest = imdsTest.Labels;

Подходящий классификатор изображений

Используйте функции, извлеченные из учебных изображений как переменные предикторы, и соответствуйте машине опорных векторов (SVM) мультикласса с помощью fitcecoc (Statistics and Machine Learning Toolbox).

mdl = fitcecoc(featuresTrain,YTrain);

Классифицируйте тестовые изображения

Классифицируйте тестовые изображения с помощью обученной модели SVM и функций, извлеченных из тестовых изображений.

YPred = predict(mdl,featuresTest);

Отобразите четыре демонстрационных тестовых изображения с их предсказанными метками.

idx = [1 5 10 15];
figure
for i = 1:numel(idx)
    subplot(2,2,i)
    I = readimage(imdsTest,idx(i));
    label = YPred(idx(i));
    
    imshow(I)
    title(label)
end

Figure contains 4 axes. Axes 1 with title MathWorks Cap contains an object of type image. Axes 2 with title MathWorks Cube contains an object of type image. Axes 3 with title MathWorks Playing Cards contains an object of type image. Axes 4 with title MathWorks Screwdriver contains an object of type image.

Вычислите точность классификации на набор тестов. Точность является частью меток, которые сеть предсказывает правильно.

accuracy = mean(YPred == YTest)
accuracy = 1

Этот SVM имеет высокую точность. Если точность высоко достаточно не использует извлечение признаков, то попробуйте передачу обучения вместо этого.

Входные параметры

свернуть все

Обучивший сеть в виде SeriesNetwork или DAGNetwork объект. Можно получить обучивший сеть путем импорта предварительно обученной сети (например, при помощи googlenet функция) или по образованию ваше собственное сетевое использование trainNetwork.

Отобразите datastore в виде ImageDatastore объект.

ImageDatastore позволяет пакетное чтение JPG или упреждающую выборку использования файлов изображений PNG. Если вы используете пользовательскую функцию для чтения изображений, то ImageDatastore не выбирает с упреждением.

Совет

Использование augmentedImageDatastore для эффективной предварительной обработки изображений для глубокого обучения включая изменение размеров изображений.

Не используйте readFcn опция imageDatastore для предварительной обработки или изменения размеров, когда эта опция обычно значительно медленнее.

Datastore для данных, которые не помещаются в память, и предварительной обработки. Datastore должен возвратить данные в таблице или массиве ячеек. Формат datastore выход зависит от сетевой архитектуры.

Сетевая архитектураDatastore ВыходПример Выход
Один вход

Таблица или массив ячеек, где первый столбец задает предикторы.

Табличными элементами должны быть скаляры, векторы-строки или массивы ячеек 1 на 1, содержащие числовой массив.

Пользовательские хранилища данных должны вывести таблицы.

data = read(ds)
data =

  4×1 table

        Predictors    
    __________________

    {224×224×3 double}
    {224×224×3 double}
    {224×224×3 double}
    {224×224×3 double}
data = read(ds)
data =

  4×1 cell array

    {224×224×3 double}
    {224×224×3 double}
    {224×224×3 double}
    {224×224×3 double}
Несколько вход

Массив ячеек, по крайней мере, с numInputs столбцы, где numInputs количество сетевых входных параметров.

Первый numInputs столбцы задают предикторы для каждого входа.

Распоряжение входных параметров дано InputNames свойство сети.

data = read(ds)
data =

  4×2 cell array

    {224×224×3 double}    {128×128×3 double}
    {224×224×3 double}    {128×128×3 double}
    {224×224×3 double}    {128×128×3 double}
    {224×224×3 double}    {128×128×3 double}

Формат предикторов зависит от типа данных.

ДанныеФормат предикторов
2D изображение

h-by-w-by-c числовой массив, где h, w и c являются высотой, шириной и количеством каналов изображения, соответственно.

3-D изображение

h-by-w-by-d-by-c числовой массив, где h, w, d и c являются высотой, шириной, глубиной и количеством каналов изображения, соответственно.

Векторная последовательность

c-by-s матрица, где c является количеством функций последовательности и s, является длиной последовательности.

2D последовательность изображений

h-by-w-by-c-by-s массив, где h, w и c соответствуют высоте, ширине, и количеству каналов изображения, соответственно, и s, является длиной последовательности.

Каждая последовательность в мини-пакете должна иметь ту же длину последовательности.

3-D последовательность изображений

h-by-w-by-d-by-c-by-s массив, где h, w, d и c соответствуют высоте, ширине, глубине, и количеству каналов изображения, соответственно, и s, является длиной последовательности.

Каждая последовательность в мини-пакете должна иметь ту же длину последовательности.

Функции

c-by-1 вектор-столбец, где c является количеством функций.

Для получения дополнительной информации смотрите Хранилища данных для Глубокого обучения.

Отобразите или покажите данные в виде числового массива. Размер массива зависит от типа входа:

Входной параметрОписание
2D изображенияh-by-w-by-c-by-N числовой массив, где h, w и c являются высотой, шириной, и количеством каналов изображений, соответственно, и N, является количеством изображений.
3-D изображенияh-by-w-by-d-by-c-by-N числовой массив, где h, w, d и c являются высотой, шириной, глубиной, и количеством каналов изображений, соответственно, и N, является количеством изображений.
ФункцииN-by-numFeatures числовой массив, где N является количеством наблюдений и numFeatures количество функций входных данных.

Если массив содержит NaNs, затем они распространены через сеть.

Для сетей с несколькими входными параметрами можно задать несколько массивов X1, …, XN, где N количество сетевых входных параметров и входа Xi соответствует сетевому входу net.InputNames(i).

Для входа изображений, если 'OutputAs' опцией является 'channels', затем изображения во входных данных X может быть больше, чем входной размер входного слоя изображений сети. Для других выходных форматов, изображений в X должен иметь тот же размер как входной размер входного слоя изображений сети.

Последовательность или данные временных рядов в виде N-by-1 массив ячеек числовых массивов, где N является количеством наблюдений, числовой массив, представляющий одну последовательность или datastore.

Для входа массива ячеек или числового массива размерности числовых массивов, содержащих последовательности, зависят от типа данных.

Входной параметрОписание
Векторные последовательностиc-by-s матрицы, где c является количеством функций последовательностей и s, является длиной последовательности.
2D последовательности изображенийh-by-w-by-c-by-s массивы, где h, w и c соответствуют высоте, ширине, и количеству каналов изображений, соответственно, и s, является длиной последовательности.
3-D последовательности изображенийh-by-w-by-d-by-c-by-s, где h, w, d и c соответствуют высоте, ширине, глубине, и количеству каналов 3-D изображений, соответственно, и s, является длиной последовательности.

Для входа datastore datastore должен возвратить данные как массив ячеек последовательностей или таблицы, первый столбец которой содержит последовательности. Размерности данных о последовательности должны соответствовать приведенной выше таблице.

Таблица изображения или данных о функции. Каждая строка в таблице соответствует наблюдению.

Расположение предикторов в столбцах таблицы зависит от типа входных данных.

Входной параметрПредикторы
Данные изображения
  • Путь к абсолютному или файлу прямого доступа к изображению в виде вектора символов в отдельном столбце

  • Изображение, заданное как 3-D числовой массив

Задайте предикторы в отдельном столбце.

Покажите данные

Числовой скаляр.

Задайте предикторы в первом numFeatures столбцы таблицы, где numFeatures количество функций входных данных.

Этот аргумент поддерживает сети с одним входом только.

Типы данных: table

Слой, чтобы извлечь активации из в виде числового индекса или вектора символов.

Вычислить активации SeriesNetwork возразите, задайте слой с помощью его числового индекса, или как вектора символов, соответствующего имени слоя.

Вычислить активации DAGNetwork возразите, задайте слой как вектор символов, соответствующий имени слоя. Если слой имеет несколько выходных параметров, задайте слой и выведите как имя слоя, сопровождаемое символом “/”, сопровождаемый под названием слой выход. Таким образом, layer имеет форму 'layerName/outputName'.

Пример 3

Пример: 'conv1'

Пример: 'mpool/out'

Аргументы в виде пар имя-значение

Задайте дополнительные разделенные запятой пары Name,Value аргументы. Name имя аргумента и Value соответствующее значение. Name должен появиться в кавычках. Вы можете задать несколько аргументов в виде пар имен и значений в любом порядке, например: Name1, Value1, ..., NameN, ValueN.

Пример: activations(net,X,layer,'OutputAs','rows')

Формат выходных активаций в виде разделенной запятой пары, состоящей из 'OutputAs' и любой 'channels''Строки' , или 'columns'. Для описаний различных выходных форматов смотрите act.

Для входа изображений, если 'OutputAs' опцией является 'channels', затем изображения во входных данных X может быть больше, чем входной размер входного слоя изображений сети. Для других выходных форматов, изображений в X должен иметь тот же размер как входной размер входного слоя изображений сети.

Пример: 'OutputAs','rows'

Размер мини-пакетов, чтобы использовать для предсказания в виде положительного целого числа. Большие мини-пакетные размеры требуют большей памяти, но могут привести к более быстрым предсказаниям.

Пример: 'MiniBatchSize',256

Опция, чтобы заполнить, обрежьте или разделите входные последовательности в виде одного из следующего:

  • 'longest' — Заполните последовательности в каждом мини-пакете, чтобы иметь ту же длину как самая длинная последовательность. Эта опция не отбрасывает данных, хотя дополнение может ввести шум сети.

  • 'shortest' — Усеченные последовательности в каждом мини-пакете, чтобы иметь ту же длину как самая короткая последовательность. Эта опция гарантирует, что никакое дополнение не добавляется, за счет отбрасывания данных.

  • Положительное целое число — Для каждого мини-пакета, заполните последовательности к самому близкому кратному заданная длина, которая больше самой долгой длины последовательности в мини-пакете, и затем разделяет последовательности в меньшие последовательности заданной длины. Если разделение происходит, то программное обеспечение создает дополнительные мини-пакеты. Используйте эту опцию, если полные последовательности не умещаются в памяти. В качестве альтернативы попытайтесь сократить количество последовательностей на мини-пакет путем установки 'MiniBatchSize' опция к нижнему значению.

Чтобы узнать больше об эффекте дополнения, усечение и разделение входных последовательностей, видят, что Последовательность Дополняет, Усечение, и Разделяет.

Пример: 'SequenceLength','shortest'

Значение, которым можно заполнить входные последовательности в виде скаляра. Опция допустима только когда SequenceLength 'longest' или положительное целое число. Не заполняйте последовательности NaN, потому что выполнение так может распространить ошибки в сети.

Пример: 'SequencePaddingValue',-1

Направление дополнения или усечения в виде одного из следующего:

  • 'right' — Заполните или обрежьте последовательности справа. Последовательности запускают одновременно шаг, и программное обеспечение обрезает или добавляет дополнение в конец последовательностей.

  • 'left' — Заполните или обрежьте последовательности слева. Программное обеспечение обрезает или добавляет дополнение в запуск последовательностей так, чтобы конец последовательностей одновременно продвинулся.

Поскольку слои LSTM обрабатывают данные о последовательности один временной шаг за один раз, когда слой OutputMode свойством является 'last', любое дополнение в итоговых временных шагах может негативно влиять на слой выход. Чтобы заполнить или обрезать данные о последовательности слева, установите 'SequencePaddingDirection' опция к 'left'.

Для сетей от последовательности к последовательности (когда OutputMode свойством является 'sequence' для каждого слоя LSTM), любой дополняющий в первых временных шагах может негативно влиять на предсказания для более ранних временных шагов. Чтобы заполнить или обрезать данные о последовательности справа, установите 'SequencePaddingDirection' опция к 'right'.

Чтобы узнать больше об эффекте дополнения, усечение и разделение входных последовательностей, видят, что Последовательность Дополняет, Усечение, и Разделяет.

Оптимизация эффективности в виде разделенной запятой пары, состоящей из 'Acceleration' и одно из следующего:

  • 'auto' — Автоматически примените много оптимизации, подходящей для входной сети и аппаратных ресурсов.

  • 'mex' — Скомпилируйте и выполните MEX-функцию. Эта опция доступна при использовании графического процессора только. Используя графический процессор требует Parallel Computing Toolbox и поддерживаемого устройства графического процессора. Для получения информации о поддерживаемых устройствах смотрите Поддержку графического процессора Релизом (Parallel Computing Toolbox). Если Parallel Computing Toolbox или подходящий графический процессор не доступны, то программное обеспечение возвращает ошибку.

  • 'none' — Отключите все ускорение.

Опцией по умолчанию является 'auto'. Если 'auto' задан, MATLAB® применит много совместимой оптимизации. Если вы используете 'auto' опция, MATLAB никогда не генерирует MEX-функцию.

Используя 'Acceleration' опции 'auto' и 'mex' может предложить выигрыши в производительности, но за счет увеличенного начального времени выполнения. Последующие вызовы совместимыми параметрами быстрее. Используйте оптимизацию эффективности, когда вы запланируете вызвать функцию многократно с помощью новых входных данных.

'mex' опция генерирует и выполняет MEX-функцию на основе сети и параметров, используемых в вызове функции. У вас может быть несколько MEX-функций, сопоставленных с одной сетью одновременно. Очищение сетевой переменной также очищает любые MEX-функции, сопоставленные с той сетью.

'mex' опция только доступна, когда вы используете графический процессор. Необходимо было установить компилятор C/C++ и Интерфейс GPU Coder™ для пакета поддержки Библиотек Глубокого обучения. Установите пакет поддержки с помощью Add-On Explorer в MATLAB. Для инструкций по настройке смотрите Setup MEX (GPU Coder). GPU Coder не требуется.

'mex' опция не поддерживает все слои. Для списка поддерживаемых слоев смотрите Поддерживаемые Слои (GPU Coder). Рекуррентные нейронные сети (RNNs), содержащий sequenceInputLayer не поддерживаются.

'mex' опция не поддерживает сети с несколькими входными слоями или несколькими выходными слоями.

Вы не можете использовать MATLAB Compiler™, чтобы развернуть вашу сеть при использовании 'mex' опция.

Пример: 'Acceleration','mex'

Аппаратный ресурс в виде разделенной запятой пары, состоящей из 'ExecutionEnvironment' и одно из следующего:

  • 'auto' — Используйте графический процессор, если вы доступны; в противном случае используйте центральный процессор.

  • 'gpu' — Используйте графический процессор. Используя графический процессор требует Parallel Computing Toolbox и поддерживаемого устройства графического процессора. Для получения информации о поддерживаемых устройствах смотрите Поддержку графического процессора Релизом (Parallel Computing Toolbox). Если Parallel Computing Toolbox или подходящий графический процессор не доступны, то программное обеспечение возвращает ошибку.

  • 'cpu' — Используйте центральный процессор.

Пример: 'ExecutionEnvironment','cpu'

Выходные аргументы

свернуть все

Активации от слоя сети, возвращенного как числовой массив или массив ячеек числовых массивов. Формат act зависит от типа входных данных, типа слоя выход и 'OutputAs' опция.

Отобразите или свернутая последовательность Выход

Если слой выходные параметры отображает или свернутые данные о последовательности, то act числовой массив.

'OutputAs'act
'channels'

Для 2D изображения выход, act h-by-w-by-c-by-n массив, где h, w и c являются высотой, шириной и количеством каналов для выхода выбранного слоя, соответственно, и n является количеством изображений. В этом случае, act(:,:,:,i) содержит активации для iизображение th.

Для 3-D изображения выход, act h-by-w-by-d-by-c-by-n массив, где h, w, d и c являются высотой, шириной, глубиной и количеством каналов для выхода выбранного слоя, соответственно, и n является количеством изображений. В этом случае, act(:,:,:,:,i) содержит активации для iизображение th.

Для свернутой 2D последовательности изображений выход, act h-by-w-by-c-by-(n *s) массив, где h, w и c являются высотой, шириной и количеством каналов для выхода выбранного слоя, соответственно, n является количеством последовательностей, и s является длиной последовательности. В этом случае, act(:,:,:,(t-1)*n+k) содержит активации для временного шага t из kпоследовательность th.

Для свернутой 3-D последовательности изображений выход, act h-by-w-by-d-by-c-by-(n *s) массив, где h, w, d и c являются высотой, шириной, глубиной и количеством каналов для выхода выбранного слоя, соответственно, n является количеством последовательностей, и s является длиной последовательности. В этом случае, act(:,:,:,:,(t-1)*n+k) содержит активации для временного шага t из kпоследовательность th.

'rows'

Для 2D и 3-D изображения выход, act n-by-m матрица, где n является количеством изображений и m количество выходных элементов от слоя. В этом случае, act(i,:) содержит активации для iизображение th.

Для свернутой 2D и 3-D последовательности изображений выход, act (n *s)-by-m матрица, где n является количеством последовательностей, s является длиной последовательности и m количество выходных элементов от слоя. В этом случае, act((t-1)*n+k,:) содержит активации для временного шага t из kпоследовательность th.

'columns'

Для 2D и 3-D изображения выход, act m-by-n матрица, где m является количеством выходных элементов от выбранного слоя, и n является количеством изображений. В этом случае, act(:,i) содержит активации для iизображение th.

Для свернутой 2D и 3-D последовательности изображений выход, act m (n *s) матрица, откуда m является количеством выходных элементов выбранного слоя, n является количеством последовательностей, и s является длиной последовательности. В этом случае, act(:,(t-1)*n+k) содержит активации для временного шага t из kпоследовательность th.

Последовательность Выход

Если layer имеет последовательность выход (например, слои LSTM с режимом вывода 'sequence'), затем act массив ячеек. В этом случае, 'OutputAs' опцией должен быть 'channels'.

'OutputAs'act
'channels'

Для векторной последовательности выход, act n-by-1 массив ячеек, c-by-s матрицы, где n является количеством последовательностей, c является количеством функций в последовательности, и s является длиной последовательности.

Для 2D последовательности изображений выход, act n-by-1 массив ячеек, h-by-w-by-c-by-s матрицы, где n является количеством последовательностей, h, w, и c является высотой, шириной и количеством каналов изображений, соответственно, и s является длиной последовательности.

Для 3-D последовательности изображений выход, act n-by-1 массив ячеек, h-by-w-by-c-by-d-by-s матрицы, где n является количеством последовательностей, h, w, d, и c является высотой, шириной, глубиной и количеством каналов изображений, соответственно, и s является длиной последовательности.

В этих случаях, act{i} содержит активации iпоследовательность th.

Один такт Выход

Если layer выводит один такт последовательности (например, слой LSTM с режимом вывода 'last'), затем act числовой массив.

'OutputAs'act
'channels'

В течение одного такта, содержащего векторные данные, act c-by-n матрица, где n является количеством последовательностей, и c является количеством функций в последовательности.

В течение одного такта, содержащего 2D данные изображения, act h-by-w-by-c-by-n массив, где n является количеством последовательностей, h, w, и c является высотой, шириной и количеством каналов изображений, соответственно.

В течение одного такта, содержащего 3-D данные изображения, act h-by-w-by-c-by-d-by-n массив, где n является количеством последовательностей, h, w, d, и c является высотой, шириной, глубиной и количеством каналов изображений, соответственно.

'rows'n-by-m матрица, где n является количеством наблюдений и m количество выходных элементов от выбранного слоя. В этом случае, act(i,:) содержит активации для iпоследовательность th.
'columns'm-by-n матрица, где m является количеством выходных элементов от выбранного слоя и n, является количеством наблюдений. В этом случае, act(:,i) содержит активации для iизображение th.

Алгоритмы

Когда вы обучаете сеть с помощью trainNetwork функция, или когда вы используете предсказание или функции валидации с DAGNetwork и SeriesNetwork объекты, программное обеспечение выполняет эти расчеты с помощью арифметики с плавающей точкой, с одинарной точностью. Функции для обучения, предсказания и валидации включают trainNetwork, predict, classify, и activations. Программное обеспечение использует арифметику с одинарной точностью, когда вы обучаете нейронные сети с помощью и центральных процессоров и графических процессоров.

Ссылки

[1] М. Кудо, J. Тояма, и М. Шимбо. "Многомерная Классификация Кривых Используя Прохождение через области". Буквы Распознавания образов. Издание 20, № 11-13, страницы 1103-1111.

[2] Репозиторий Машинного обучения UCI: японский Набор данных Гласных. https://archive.ics.uci.edu/ml/datasets/Japanese+Vowels

Расширенные возможности

Введенный в R2016a