Компактная модель нейронной сети для классификации
CompactClassificationNeuralNetwork
компактная версия ClassificationNeuralNetwork
объект модели. Компактная модель не включает данные, используемые для обучения классификатор. Поэтому вы не можете выполнить некоторые задачи, такие как перекрестная проверка, с помощью компактной модели. Используйте компактную модель для задач, таких как предсказание меток новых данных.
Создайте CompactClassificationNeuralNetwork
объект от полного ClassificationNeuralNetwork
объект модели при помощи compact
.
LayerSizes
— Размеры полносвязных слоевЭто свойство доступно только для чтения.
Размеры полносвязных слоев в модели нейронной сети, возвращенной как положительный целочисленный вектор. i th элемент LayerSizes
количество выходных параметров в i th полносвязный слой модели нейронной сети.
LayerSizes
не включает размер итогового полносвязного слоя. Этот слой всегда имеет K выходные параметры, где K является количеством классов в переменной отклика.
Типы данных: single
| double
LayerWeights
— Изученные веса слояЭто свойство доступно только для чтения.
Изученные веса слоя для полносвязных слоев, возвращенных как массив ячеек. i th запись в массиве ячеек соответствует весам слоя для i th полносвязный слой. Например, Mdl.LayerWeights{1}
возвращает веса для первого полносвязного слоя модели Mdl
.
LayerWeights
включает веса для итогового полносвязного слоя.
Типы данных: cell
LayerBiases
— Изученные смещения слояЭто свойство доступно только для чтения.
Изученный слой смещает для полносвязных слоев, возвращенных как массив ячеек. i th запись в массиве ячеек соответствует смещениям слоя для i th полносвязный слой. Например, Mdl.LayerBiases{1}
возвращает смещения для первого полносвязного слоя модели Mdl
.
LayerBiases
включает смещения для итогового полносвязного слоя.
Типы данных: cell
Activations
— Активация функционирует для полносвязных слоев'relu'
| 'tanh'
| 'sigmoid'
| 'none'
| массив ячеек из символьных векторовЭто свойство доступно только для чтения.
Активация функционирует для полносвязных слоев модели нейронной сети, возвращенной как вектор символов или массив ячеек из символьных векторов со значениями из этой таблицы.
Значение | Описание |
---|---|
'relu' | Исправленный линейный модуль (ReLU), функция — Выполняет пороговую операцию на каждом элементе входа, где любое значение меньше, чем нуль обнуляется, то есть, |
'tanh' | Гиперболическая касательная (tanh) функция — Применяется |
'sigmoid' | Сигмоидальная функция — Выполняет следующую операцию на каждом входном элементе: |
'none' | Тождественное отображение — Возвращает каждый входной элемент, не выполняя преобразования, то есть, f (x) = x |
Если Activations
содержит только одну функцию активации, затем это - функция активации для каждого полносвязного слоя модели нейронной сети, исключая итоговый полносвязный слой. Функция активации для итогового полносвязного слоя всегда softmax (OutputLayerActivation
).
Если Activations
массив функций активации, затем i th элемент является функцией активации для i th слой модели нейронной сети.
Типы данных: char |
cell
OutputLayerActivation
— Функция активации для итогового полносвязного слоя'softmax'
Это свойство доступно только для чтения.
Функция активации для итогового полносвязного слоя, возвращенного как 'softmax'
. Функция берет каждый вход xi и возвращает следующее, где K является количеством классов в переменной отклика:
Результаты соответствуют предсказанным классификационным оценкам (или апостериорные вероятности).
PredictorNames
— Имена переменного предиктораЭто свойство доступно только для чтения.
Имена переменного предиктора, возвращенные как массив ячеек из символьных векторов. Порядок элементов PredictorNames
соответствует порядку, в котором имена предиктора появляются в обучающих данных.
Типы данных: cell
CategoricalPredictors
— Категориальные индексы предиктора[]
Это свойство доступно только для чтения.
Категориальные индексы предиктора, возвращенные как вектор из положительных целых чисел. Предположение, что данные о предикторе содержат наблюдения в строках, CategoricalPredictors
содержит значения индекса, соответствующие столбцам данных о предикторе, которые содержат категориальные предикторы. Если ни один из предикторов не является категориальным, то это свойство пусто ([]
).
Типы данных: double
ExpandedPredictorNames
— Расширенные имена предиктораЭто свойство доступно только для чтения.
Расширенные имена предиктора, возвращенные как массив ячеек из символьных векторов. Если кодирование использования модели для категориальных переменных, то ExpandedPredictorNames
включает имена, которые описывают расширенные переменные. В противном случае, ExpandedPredictorNames
совпадает с PredictorNames
.
Типы данных: cell
ClassNames
— Уникальные имена классовЭто свойство доступно только для чтения.
Уникальные имена классов используются в обучении, возвращенном как числовой вектор, категориальный вектор, логический вектор, символьный массив или массив ячеек из символьных векторов. ClassNames
имеет совпадающий тип данных, когда класс помечает в переменной отклика используемый, чтобы обучить модель. (Программное обеспечение обрабатывает строковые массивы как массивы ячеек из символьных векторов.)
ClassNames
также определяет порядок класса.
Типы данных: single
| double
| categorical
| logical
| char
| cell
ResponseName
— Имя переменной откликаЭто свойство доступно только для чтения.
Имя переменной отклика, возвращенное как вектор символов.
Типы данных: char
Cost
— Misclassification стоитсяЭто свойство доступно только для чтения.
Стоивший Misclassification, возвратился как числовая квадратная матрица, где Cost(i,j)
стоимость классификации точки в класс j
если его истинным классом является i
. Матрица стоимости всегда имеет эту форму: Cost(i,j) = 1
если i ~= j
, и Cost(i,j) = 0
если i = j
. Строки соответствуют истинному классу, и столбцы соответствуют предсказанному классу. Порядок строк и столбцов Cost
соответствует порядку классов в ClassNames
.
Типы данных: double
Prior
— Априорные вероятностиЭто свойство доступно только для чтения.
Априорные вероятности для каждого класса, возвращенного как числовой вектор. Порядок элементов Prior
соответствует элементам ClassNames
.
Типы данных: double
ScoreTransform
— Выиграйте преобразованиеВыиграйте преобразование в виде вектора символов или указателя на функцию. ScoreTransform
представляет встроенную функцию преобразования или указатель на функцию для преобразования предсказанных классификационных оценок.
Чтобы изменить преобразование счета функционируют к function
, например, используйте запись через точку.
Для встроенной функции введите вектор символов.
Mdl.ScoreTransform = 'function';
Эта таблица описывает доступные встроенные функции.
Значение | Описание |
---|---|
'doublelogit' | 1/(1 + e–2x) |
'invlogit' | журнал (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
lime | Локальные поддающиеся толкованию объяснения модели агностические (LIME) |
partialDependence | Вычислите частичную зависимость |
plotPartialDependence | Создайте графики отдельного условного ожидания (ICE) и частичный график зависимости (PDP) |
shapley | Шепли оценивает |
compareHoldout | Сравните точность двух моделей классификации с помощью новых данных |
testckfold | Сравните точность двух моделей классификации повторной перекрестной проверкой |
Уменьшайте размер полного классификатора нейронной сети путем удаления обучающих данных из модели. Можно использовать компактную модель, чтобы повысить эффективность памяти.
Загрузите 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
Полная модель больше, чем компактная модель.
fitcnet
| predict
| loss
| margin
| edge
| ClassificationPartitionedModel
| ClassificationNeuralNetwork
| compact
У вас есть модифицированная версия этого примера. Вы хотите открыть этот пример со своими редактированиями?
1. Если смысл перевода понятен, то лучше оставьте как есть и не придирайтесь к словам, синонимам и тому подобному. О вкусах не спорим.
2. Не дополняйте перевод комментариями “от себя”. В исправлении не должно появляться дополнительных смыслов и комментариев, отсутствующих в оригинале. Такие правки не получится интегрировать в алгоритме автоматического перевода.
3. Сохраняйте структуру оригинального текста - например, не разбивайте одно предложение на два.
4. Не имеет смысла однотипное исправление перевода какого-то термина во всех предложениях. Исправляйте только в одном месте. Когда Вашу правку одобрят, это исправление будет алгоритмически распространено и на другие части документации.
5. По иным вопросам, например если надо исправить заблокированное для перевода слово, обратитесь к редакторам через форму технической поддержки.