exponenta event banner

rica

Извлечение признаков с использованием реконструкции ICA

Описание

Mdl = rica(X,q) возвращает объект модели анализа независимых компонентов реконструкции (RICA), который содержит результаты применения RICA к таблице или матрице данных предиктора X содержащий переменные p. q - количество элементов, извлекаемых из X, следовательно, rica изучает p-by-q матрица весов преобразования. Для недополненных или сверхполных представлений элементов: q может быть меньше или больше числа переменных предиктора соответственно.

  • Для получения доступа к усвоенным весам преобразования используйте Mdl.TransformWeights.

  • Преобразовать X в новый набор элементов с помощью усвоенного преобразования, передать Mdl и X кому transform.

пример

Mdl = rica(X,q,Name,Value) использует дополнительные параметры, указанные одним или несколькими Name,Value аргументы пары. Например, можно стандартизировать данные предиктора или указать значение штрафного коэффициента в сроке реконструкции целевой функции.

Примеры

свернуть все

Создать ReconstructionICA с помощью rica функция.

Загрузить SampleImagePatches исправления изображений.

data = load('SampleImagePatches');
size(data.X)
ans = 1×2

        5000         363

Существует 5000 исправлений изображений, каждый из которых содержит 363 элемента.

Извлеките из данных 100 элементов.

rng default % For reproducibility
q = 100;
Mdl = rica(data.X,q,'IterationLimit',100)
Warning: Solver LBFGS was not able to converge to a solution.
Mdl = 
  ReconstructionICA
            ModelParameters: [1x1 struct]
              NumPredictors: 363
         NumLearnedFeatures: 100
                         Mu: []
                      Sigma: []
                    FitInfo: [1x1 struct]
           TransformWeights: [363x100 double]
    InitialTransformWeights: []
    NonGaussianityIndicator: [100x1 double]


  Properties, Methods

rica выдает предупреждение, поскольку оно остановлено из-за достижения предела итерации вместо достижения предела размера шага или предела размера градиента. Вы по-прежнему можете использовать изученные функции в возвращенном объекте, вызвав transform функция.

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

свернуть все

Данные предиктора, заданные как n-за-p числовая матрица или таблица. Строки соответствуют отдельным наблюдениям, а столбцы соответствуют отдельным переменным предиктора. Если X является таблицей, то все ее переменные должны быть числовыми векторами.

Типы данных: single | double | table

Количество элементов, извлекаемых из данных предиктора, указанных как положительное целое число.

rica сохраняет p-by-q преобразование весовой матрицы в Mdl.TransformWeights. Поэтому установка очень больших значений для q может привести к увеличению потребления памяти и увеличению времени вычислений.

Типы данных: single | double

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

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

Пример: Mdl = rica(X,q,'IterationLimit',200,'Standardize',true) пробеги rica с итерациями оптимизации, ограниченными 200, и стандартизированными данными предиктора.

Максимальное количество итераций, указанное как пара, разделенная запятыми, состоящая из 'IterationLimit' и положительное целое число.

Пример: 'IterationLimit',1e6

Типы данных: single | double

Уровень детализации для сходимости алгоритма мониторинга, указанный как пара, разделенная запятыми, состоящая из 'VerbosityLevel' и значение в этой таблице.

СтоимостьОписание
0rica не отображает информацию о сходимости в командной строке.
Положительное целое числоrica отображает информацию о сходимости в командной строке.

Сведения о сходимости

ЗаголовокЗначение
FUN VALUEЗначение целевой функции.
NORM GRADНорма градиента целевой функции.
NORM STEPНорма итеративного шага, означающая расстояние между предыдущей и текущей точками.
CURVOK означает, что слабое состояние Вулфа удовлетворено. Это условие представляет собой комбинацию достаточного уменьшения целевой функции и условия кривизны.
GAMMAВнутреннее произведение шага умножает разность градиентов, деленную на внутреннее произведение разности градиентов с самим собой. Разность градиентов - это градиент в текущей точке минус градиент в предыдущей точке. Предоставляет диагностическую информацию о кривизне целевой функции.
ALPHAМножитель направления шага, отличающийся от 1 когда алгоритм выполнил поиск строки.
ACCEPTYES означает, что алгоритм нашел приемлемый шаг.

Пример: 'VerbosityLevel',1

Типы данных: single | double

Значение коэффициента регуляризации для матрицы весов преобразования, указанное как пара, разделенная запятыми, состоящая из 'Lambda' и положительный числовой скаляр. При указании 0, то в целевой функции нет термина регуляризации.

Пример: 'Lambda',0.1

Типы данных: single | double

Флаг для стандартизации данных предиктора, указанный как пара, разделенная запятыми, состоящая из 'Standardize' и true (1) или false (0).

Если Standardize является true, затем:

  • rica центрирует и масштабирует каждый столбец данных предиктора (X) по столбцу среднее и стандартное отклонение соответственно.

  • rica извлекает новые функции с помощью стандартизированной матрицы предиктора и сохраняет значение переменной предиктора и стандартные отклонения в свойствах Mu и Sigma из Mdl.

Пример: 'Standardize',true

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

Контрастная функция, указанная как 'logcosh', 'exp', или 'sqrt'. Контрастная функция - это гладкая функция, аналогичная функции абсолютного значения. rica целевая функция содержит термин

∑j=1q1n∑i=1ng (wjTx˜i),

где g представляет контрастную функцию, wj - переменные, над которыми происходит оптимизация, а x˜i - данные.

Тремя доступными контрастными функциями являются:

  • 'logcosh' - g = 12log (cosh (2x))

  • 'exp' - g = exp (x22)

  • 'sqrt' - g = x2 + 10 − 8

Пример: 'ContrastFcn','exp'

Веса преобразования, инициализирующие оптимизацию, указанные как разделенная запятыми пара, состоящая из 'InitialTransformWeights' и p-by-q числовая матрица. p должно быть числом столбцов или переменных в X и q - значение q.

Совет

Можно продолжить оптимизацию ранее возвращенной матрицы весов преобразования, передав ее в качестве начального значения в другом вызове rica. Объект выходной модели Mdl сохраняет усвоенную матрицу весов преобразования в TransformWeights собственность.

Пример: 'InitialTransformWeights',Mdl.TransformWeights

Типы данных: single | double

Негауссовость источников, указанных как length-q вектор ± 1.

  • NonGaussianityIndicator(k) = 1 средства rica моделирует k-й источник как сверхгауссовский, с резким пиком в 0.

  • NonGaussianityIndicator(k) = -1 средства rica моделирует k-й источник как субгауссовский.

Типы данных: single | double

Относительный допуск сходимости для градиентной нормы, определяемый как разделенная запятыми пара, состоящая из 'GradientTolerance' и положительный числовой скаляр. Этот градиент является градиентом целевой функции.

Пример: 'GradientTolerance',1e-4

Типы данных: single | double

Абсолютный допуск сходимости для размера шага, определяемый как разделенная запятыми пара, состоящая из 'StepTolerance' и положительный числовой скаляр.

Пример: 'StepTolerance',1e-4

Типы данных: single | double

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

свернуть все

Наученная модель реконструкции ICA, возвращенная как ReconstructionICA объект модели.

Доступ к свойствам Mdl, используйте точечную нотацию. Например:

  • Для доступа к усвоенным весам преобразования используйте Mdl.TransformWeights.

  • Для доступа к структуре информации о фитингах используйте Mdl.FitInfo.

Алгоритмы

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

Дополнительные сведения см. в разделе Реконструкция алгоритма ICA.

Представлен в R2017a