exponenta event banner

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,x≥00,x<0

    'tanh'

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

    'sigmoid'

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

    f (x) = 11 + e − x

    'none'

    Функция Identity - возвращает каждый входной элемент без какого-либо преобразования, то есть 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 если его истинный класс 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'log (x/( 1 - x))
      'ismax'Устанавливает балл для класса с наибольшим баллом в 1 и устанавливает балл для всех остальных классов в 0
      'logit'1/( 1 + e-x)
      'none' или 'identity'x (без преобразования)
      'sign'-1 для x < 0
      0 для x = 0
      1 для x > 0
      'symmetric'2x – 1
      'symmetricismax'Устанавливает балл для класса с наибольшим баллом в 1 и устанавливает балл для всех остальных классов в -1
      'symmetriclogit'2/( 1 + e-x) - 1

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

      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