Компактная модель нейронной сети для классификации
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) - выполняет пороговую операцию для каждого элемента входа, где любое значение меньше нуля устанавливается равным нулю, то есть ={x,x≥00,x<0 |
'tanh' | Функция гиперболической касательной (tanh) - применяет |
'sigmoid' | Sigmoid function - выполняет следующую операцию над каждым входным элементом: + e − x |
'none' | Функция Identity - возвращает каждый входной элемент без какого-либо преобразования, то есть f (x) = x |
Если Activations содержит только одну функцию активации, то она является функцией активации для каждого полностью связанного уровня модели нейронной сети, исключая конечный полностью связанный уровень. Функция активации для конечного полностью подключенного уровня всегда softmax (OutputLayerActivation).
Если Activations - массив функций активации, затем i-й элемент - функция активации для i-го уровня модели нейронной сети.
Типы данных: char | cell
OutputLayerActivation - Функция активации для конечного полностью подключенного уровня'softmax'Это свойство доступно только для чтения.
Функция активации для конечного полностью подключенного уровня, возвращенная как 'softmax'. Функция принимает каждый вход xi и возвращает следующее, где K - количество классов в переменной ответа:
(xj).
Результаты соответствуют прогнозируемым показателям классификации (или задним вероятностям).
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 если его истинный класс 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' | 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
Полная модель больше компактной.
ClassificationNeuralNetwork | ClassificationPartitionedModel | compact | edge | fitcnet | loss | margin | predict
Имеется измененная версия этого примера. Открыть этот пример с помощью изменений?
1. Если смысл перевода понятен, то лучше оставьте как есть и не придирайтесь к словам, синонимам и тому подобному. О вкусах не спорим.
2. Не дополняйте перевод комментариями “от себя”. В исправлении не должно появляться дополнительных смыслов и комментариев, отсутствующих в оригинале. Такие правки не получится интегрировать в алгоритме автоматического перевода.
3. Сохраняйте структуру оригинального текста - например, не разбивайте одно предложение на два.
4. Не имеет смысла однотипное исправление перевода какого-то термина во всех предложениях. Исправляйте только в одном месте. Когда Вашу правку одобрят, это исправление будет алгоритмически распространено и на другие части документации.
5. По иным вопросам, например если надо исправить заблокированное для перевода слово, обратитесь к редакторам через форму технической поддержки.