Компактная модель нейронной сети для классификации
CompactClassificationNeuralNetwork является компактной версией ClassificationNeuralNetwork объект модели. Компактная модель не включает данные, используемые для настройки классификатора. Поэтому вы не можете выполнить некоторые задачи, такие как перекрестная валидация, используя компактную модель. Используйте компактную модель для задач, таких как предсказание меток новых данных.
Создайте CompactClassificationNeuralNetwork объект из полного ClassificationNeuralNetwork объект модели при помощи compact.
LayerSizes - Размеры полносвязных слоевЭто свойство доступно только для чтения.
Размеры полносвязных слоев в модели нейронной сети, возвращенные как положительный целочисленный вектор. i-й элемент LayerSizes - количество выходов в i-м полностью соединенном слое модели нейронной сети.
LayerSizes не включает размер конечного полносвязного слоя. Этот слой всегда имеет K выходов, где K количество классов в переменной отклика.
Типы данных: single | double
LayerWeights - Выученные веса слоевЭто свойство доступно только для чтения.
Обученные веса слоев для полносвязных слоев, возвращенные как массив ячеек. i-я запись в массиве ячеек соответствует весам слоев для i-го полносвязного слоя. Для примера, Mdl.LayerWeights{1} возвращает веса для первого полносвязного слоя модели Mdl.
LayerWeights включает веса для конечного полносвязного слоя.
Типы данных: cell
LayerBiases - Выученные смещения слояЭто свойство доступно только для чтения.
Выученные смещения слоя для полносвязных слоев, возвращенные как массив ячеек. i-я запись в массиве ячеек соответствует смещениям слоя для i-го полносвязного слоя. Для примера, 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-й элемент является функцией активации для i-го слоя модели нейронной сети.
Типы данных: 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 - Расходы на неправильную классификациюЭто свойство доступно только для чтения.
Стоимость неправильной классификации, возвращенная как числовая квадратная матрица, где Cost(i,j) - стоимость классификации точки в класс j если его класс true 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' | 2 x – 1 |
'symmetricismax' | Устанавливает счет для класса с самым большим счетом равным 1 и устанавливает счета для всех других классов равной -1 |
'symmetriclogit' | 2/(1 + e–x) – 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
Полная модель больше, чем компактная модель.
ClassificationNeuralNetwork | ClassificationPartitionedModel | compact | edge | fitcnet | loss | margin | predict
У вас есть измененная версия этого примера. Вы хотите открыть этот пример с вашими правками?
1. Если смысл перевода понятен, то лучше оставьте как есть и не придирайтесь к словам, синонимам и тому подобному. О вкусах не спорим.
2. Не дополняйте перевод комментариями “от себя”. В исправлении не должно появляться дополнительных смыслов и комментариев, отсутствующих в оригинале. Такие правки не получится интегрировать в алгоритме автоматического перевода.
3. Сохраняйте структуру оригинального текста - например, не разбивайте одно предложение на два.
4. Не имеет смысла однотипное исправление перевода какого-то термина во всех предложениях. Исправляйте только в одном месте. Когда Вашу правку одобрят, это исправление будет алгоритмически распространено и на другие части документации.
5. По иным вопросам, например если надо исправить заблокированное для перевода слово, обратитесь к редакторам через форму технической поддержки.