CompactClassificationNeuralNetwork

Компактная модель нейронной сети для классификации

    Описание

    CompactClassificationNeuralNetwork является компактной версией ClassificationNeuralNetwork объект модели. Компактная модель не включает данные, используемые для настройки классификатора. Поэтому вы не можете выполнить некоторые задачи, такие как перекрестная валидация, используя компактную модель. Используйте компактную модель для задач, таких как предсказание меток новых данных.

    Создание

    Создайте CompactClassificationNeuralNetwork объект из полного ClassificationNeuralNetwork объект модели при помощи compact.

    Свойства

    расширить все

    Свойства нейронной сети

    Это свойство доступно только для чтения.

    Размеры полносвязных слоев в модели нейронной сети, возвращенные как положительный целочисленный вектор. i-й элемент LayerSizes - количество выходов в i-м полностью соединенном слое модели нейронной сети.

    LayerSizes не включает размер конечного полносвязного слоя. Этот слой всегда имеет K выходов, где K количество классов в переменной отклика.

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

    Это свойство доступно только для чтения.

    Обученные веса слоев для полносвязных слоев, возвращенные как массив ячеек. i-я запись в массиве ячеек соответствует весам слоев для i-го полносвязного слоя. Для примера, Mdl.LayerWeights{1} возвращает веса для первого полносвязного слоя модели Mdl.

    LayerWeights включает веса для конечного полносвязного слоя.

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

    Это свойство доступно только для чтения.

    Выученные смещения слоя для полносвязных слоев, возвращенные как массив ячеек. i-я запись в массиве ячеек соответствует смещениям слоя для i-го полносвязного слоя. Для примера, Mdl.LayerBiases{1} возвращает смещения для первого полносвязного слоя модели Mdl.

    LayerBiases включает смещения для конечного полносвязного слоя.

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

    Это свойство доступно только для чтения.

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

    ЗначениеОписание
    'relu'

    Функция выпрямленного линейного модуля (ReLU) - выполняет операцию порога для каждого элемента входа, где любое значение, меньше нуля, устанавливается в ноль, то есть,

    f(x)={x,x00,x<0

    'tanh'

    Функция гиперболического тангенса (tanh) - применяет tanh функцию каждому входному элементу

    'sigmoid'

    Сигмоидная функция - Выполняет следующую операцию на каждом входном элементе:

    f(x)=11+ex

    'none'

    Единичная функция - Возвращает каждый входной элемент, не выполняя никакого преобразования, то есть f (x) = x

    • Если Activations содержит только одну функцию активации, тогда это функция активации для каждого полносвязного слоя модели нейронной сети, исключая конечный полносвязный слой. Функция активации для конечного полносвязного слоя всегда является softmax (OutputLayerActivation).

    • Если Activations является массивом функций активации, тогда i-й элемент является функцией активации для i-го слоя модели нейронной сети.

    Типы данных: char | cell

    Это свойство доступно только для чтения.

    Функция активации для конечного полносвязного слоя, возвращенная следующим 'softmax'. Функция принимает каждый входной xi и возвращает следующее, где K количество классов в переменной отклика:

    f(xi)=exp(xi)j=1Kexp(xj).

    Результаты соответствуют предсказанным классификационным оценкам (или апостериорной вероятности).

    Свойства данных

    Это свойство доступно только для чтения.

    Имена переменных предиктора, возвращенные как массив ячеек из векторов символов. Порядок элементов PredictorNames соответствует порядку, в котором имена предикторов появляются в обучающих данных.

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

    Это свойство доступно только для чтения.

    Категориальные индексы предиктора, возвращенные как вектор положительных целых чисел. Принимая, что данные предиктора содержат наблюдения в строках, CategoricalPredictors содержит значения индекса, соответствующие столбцам данных предиктора, которые содержат категориальные предикторы. Если ни один из предикторов не является категориальным, то это свойство пустое ([]).

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

    Это свойство доступно только для чтения.

    Расширенные имена предикторов, возвращенные как массив ячеек из векторов символов. Если модель использует кодировку для категориальных переменных, то ExpandedPredictorNames включает имена, которые описывают расширенные переменные. В противном случае ExpandedPredictorNames то же, что и PredictorNames.

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

    Это свойство доступно только для чтения.

    Уникальные имена классов, используемые в обучении, возвращенные как числовой вектор, категориальный вектор, логический вектор, символьный массив или массив ячеек из векторов символов. ClassNames имеет тот совпадающий тип данных, что и метки классов в переменной отклика, используемой для обучения модели. (Программа обрабатывает массивы строк как массивы ячеек векторов символов.) ClassNames также определяет порядок классов.

    Типы данных: single | double | categorical | logical | char | cell

    Это свойство доступно только для чтения.

    Имя переменной отклика, возвращаемое как вектор символов.

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

    Другие классификационные свойства

    Это свойство доступно только для чтения.

    Стоимость неправильной классификации, возвращенная как числовая квадратная матрица, где Cost(i,j) - стоимость классификации точки в класс j если его класс true i. Матрица затрат всегда имеет следующую форму: Cost(i,j) = 1 если i ~= j, и Cost(i,j) = 0 если i = j. Строки соответствуют истинному классу, а столбцы - предсказанному классу. Порядок строк и столбцов Cost соответствует порядку классов в ClassNames.

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

    Это свойство доступно только для чтения.

    Предыдущие вероятности для каждого класса, возвращенные как числовой вектор. Порядок элементов Prior соответствует элементам ClassNames.

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

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

    Чтобы изменить функцию преобразования счета на functionдля примера используйте запись через точку.

    • Для встроенной функции введите вектор символов.

      Mdl.ScoreTransform = 'function';

      В этой таблице описываются доступные встроенные функции.

      ЗначениеОписание
      'doublelogit'1/(1 + e–2x)
      'invlogit'журнал (x/( 1 - x))
      'ismax'Устанавливает счет для класса с самым большим счетом равным 1 и устанавливает счета для всех других классов равным 0
      'logit'1/(1 + ex)
      'none' или 'identity'x (без преобразования)
      'sign'-1 для x < 0
      0 для x = 0
      1 для x > 0
      'symmetric'2 x – 1
      'symmetricismax'Устанавливает счет для класса с самым большим счетом равным 1 и устанавливает счета для всех других классов равной -1
      'symmetriclogit'2/(1 + ex) – 1

    • Для MATLAB® function или функция, которую вы задаете, вводите указатель на функцию.

      Mdl.ScoreTransform = @function;

      function необходимо принять матрицу (исходные счета) и вернуть матрицу того же размера (преобразованные счета).

    Типы данных: char | function_handle

    Функции объекта

    compareHoldoutСравните точности двух классификационных моделей с помощью новых данных
    edgeКлассификационные ребра для классификатора нейронных сетей
    lossКлассификационные потери для классификатора нейронной сети
    marginКлассификационные поля для классификатора нейронной сети
    partialDependenceВычисление частичной зависимости
    plotPartialDependenceСоздайте график частичной зависимости (PDP) и отдельные графики условного ожидания (ICE)
    predictКлассифицируйте наблюдения с помощью классификатора нейронных сетей

    Примеры

    свернуть все

    Уменьшите размер классификатора полной нейронной сети, удалив обучающие данные из модели. Можно использовать компактную модель для повышения эффективности памяти.

    Загрузите patients набор данных. Составьте таблицу из набора данных. Каждая строка соответствует одному пациенту, и каждый столбец соответствует диагностической переменной. Используйте Smoker переменная как переменная отклика, а остальная часть переменных как предикторы.

    load patients
    tbl = table(Diastolic,Systolic,Gender,Height,Weight,Age,Smoker);

    Обучите классификатор нейронной сети, используя данные. Задайте Smoker столбец tbl как переменная отклика. Задайте, чтобы стандартизировать числовые предикторы.

    Mdl = fitcnet(tbl,"Smoker","Standardize",true)
    Mdl = 
      ClassificationNeuralNetwork
               PredictorNames: {'Diastolic'  'Systolic'  'Gender'  'Height'  'Weight'  'Age'}
                 ResponseName: 'Smoker'
        CategoricalPredictors: 3
                   ClassNames: [0 1]
               ScoreTransform: 'none'
              NumObservations: 100
                   LayerSizes: 10
                  Activations: 'relu'
        OutputLayerActivation: 'softmax'
                       Solver: 'LBFGS'
              ConvergenceInfo: [1×1 struct]
              TrainingHistory: [36×7 table]
    
    
      Properties, Methods
    
    

    Mdl является полным ClassificationNeuralNetwork объект модели.

    Уменьшите размер модели при помощи compact.

    compactMdl = compact(Mdl)
    compactMdl = 
      CompactClassificationNeuralNetwork
                   LayerSizes: 10
                  Activations: 'relu'
        OutputLayerActivation: 'softmax'
    
    
      Properties, Methods
    
    

    compactMdl является CompactClassificationNeuralNetwork объект модели. compactMdl содержит меньше свойств, чем полная модель Mdl.

    Отобразите объем памяти, используемый каждой моделью нейронной сети.

    whos("Mdl","compactMdl")
      Name            Size            Bytes  Class                                                           Attributes
    
      Mdl             1x1             18836  ClassificationNeuralNetwork                                               
      compactMdl      1x1              6663  classreg.learning.classif.CompactClassificationNeuralNetwork              
    

    Полная модель больше, чем компактная модель.

    Введенный в R2021a