rica

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

Описание

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 функция.

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

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

        5000         363

Существует 5 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,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

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

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

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

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

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

  • 'logcosh'g=12log(cosh(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