rica

Выделение признаков при помощи ICA реконструкции

Синтаксис

Mdl = rica(X,q)
Mdl = rica(X,q,Name,Value)

Описание

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

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

  • Чтобы преобразовать X к новому набору функций при помощи изученного преобразования, передайте Mdl и X к transform.

пример

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

Примеры

свернуть все

Создайте объект ReconstructionICA при помощи функции rica.

Загрузите закрашенные фигуры caltech101 изображений.

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

      100000         363

Существует 100 000 закрашенных фигур изображений, каждый содержащий 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-by-p числовая матрица или таблица. Строки соответствуют отдельным наблюдениям, и столбцы соответствуют отдельным переменным прогноза. Если X является таблицей, то все ее переменные должны быть числовыми векторами.

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

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

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

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

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

Укажите необязательные аргументы в виде пар ""имя, значение"", разделенных запятыми. Имя (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

Типы данных: логический

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

j=1q1ni=1ng(wjTx˜i),

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

Три доступных контрастных функции:

  • 'logcosh'g=12журнал(дубинка(2x))

  • exp g=exp(x22)

  • sqrt g=x2+108

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

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

Совет

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

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

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

Non-Gaussianity источников, заданных как вектор длины-q ±1.

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

  • NonGaussianityIndicator(k) = -1 означает модели rica k th источник как подгауссовы.

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

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

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

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

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

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

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

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

свернуть все

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

К свойствам доступа Mdl используйте запись через точку. Например:

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

  • Чтобы получить доступ к структуре подходящей информации, используйте Mdl.FitInfo.

Алгоритмы

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

Для получения дополнительной информации см. Алгоритм ICA Реконструкции.

Введенный в R2017a