Модель нейронной сети для классификации
A ClassificationNeuralNetwork
объект является обученной, feedforward и полностью связанной нейронной сетью для классификации. Первый полностью соединенный слой нейронной сети имеет соединение с сетевого входа (данные предиктора X
), и каждый последующий слой имеет соединение с предыдущего слоя. Каждый полносвязный слой умножает вход на весовую матрицу (LayerWeights
) и затем добавляет вектор смещения (LayerBiases
). Функция активации следует за каждым полносвязным слоем (Activations
и OutputLayerActivation
). Конечный полносвязный слой и последующая функция активации softmax производят выход сети, а именно классификационных оценок (апостериорные вероятности) и предсказанные метки. Для получения дополнительной информации см. «Нейронные Структуры сети».
Создайте ClassificationNeuralNetwork
объект при помощи fitcnet
.
LayerSizes
- Размеры полносвязных слоевЭто свойство доступно только для чтения.
Размеры полносвязных слоев в модели нейронной сети, возвращенные как положительный целочисленный вектор. i-й элемент LayerSizes
- количество выходов в i-м полностью соединенном слое модели нейронной сети.
LayerSizes
не включает размер конечного полносвязного слоя. Этот слой всегда имеет K выходов, где K количество классов в Y
.
Типы данных: 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 количество классов в переменной отклика:
Результаты соответствуют предсказанным классификационным оценкам (или апостериорной вероятности).
ModelParameters
- Значения параметров, используемые для обучения моделиNeuralNetworkParams
объектЭто свойство доступно только для чтения.
Значения параметров, используемые для обучения ClassificationNeuralNetwork
модель, возвращенная как NeuralNetworkParams
объект. ModelParameters
содержит значения параметров, такие как аргументы имя-значение, используемые для обучения классификатора нейронной сети.
Доступ к свойствам ModelParameters
при помощи записи через точку. Для примера получите доступ к функции, используемой для инициализации весов полносвязного слоя модели Mdl
при помощи Mdl.ModelParameters.LayerWeightsInitializer
.
ConvergenceInfo
- Информация о сходимостиЭто свойство доступно только для чтения.
Информация о сходимости, возвращенная как массив структур.
Область | Описание |
---|---|
Iterations | Количество итераций обучения, используемых для обучения модели нейронной сети |
TrainingLoss | Настройка потерь перекрестной энтропии для возвращенной модели или resubLoss(Mdl,'LossFun','crossentropy') для Mdl модели |
Gradient | Градиент функции потерь относительно весов и смещений в итерации, соответствующей возвращенной модели |
Step | Размер шага в итерации, соответствующей возвращенной модели |
Time | Общее время, потраченное на все итерации (в секундах) |
ValidationLoss | Потеря перекрестной энтропии валидации для возвращенной модели |
ValidationChecks | Максимальное количество раз в строке, когда потеря валидации была больше или равна минимальной потере валидации |
ConvergenceCriterion | Критерий сходимости |
History | См. TrainingHistory |
Типы данных: struct
TrainingHistory
- История обученияЭто свойство доступно только для чтения.
История обучения, возвращенная как таблица.
Столбец | Описание |
---|---|
Iteration | Итерация обучения |
TrainingLoss | Настройка потерь перекрестной энтропии для модели при этой итерации |
Gradient | Градиент функции потерь относительно весов и смещений при этой итерации |
Step | Размер шага при этой итерации |
Time | Время, проведенное во время этой итерации (в секундах) |
ValidationLoss | Потеря перекрестной энтропии валидации для модели на этой итерации |
ValidationChecks | Суммарная сумма потерь при валидации больше или равна минимальной потере при валидации |
Типы данных: table
Solver
- Решатель, используемый для обучения модели нейронной сети'LBFGS'
Это свойство доступно только для чтения.
Решатель, используемый для обучения модели нейронной сети, возвращается как 'LBFGS'
. Как создать ClassificationNeuralNetwork
модель, fitcnet
использует алгоритм Бройдена-Флектера-Голдфарба-Шанно квази-Ньютона (LBFGS) ограниченной памяти в качестве метода минимизации функции потерь, где программное обеспечение минимизирует потери перекрестной энтропии.
PredictorNames
- Имена переменных предиктораЭто свойство доступно только для чтения.
Имена переменных предиктора, возвращенные как массив ячеек из векторов символов. Порядок элементов PredictorNames
соответствует порядку, в котором имена предикторов появляются в обучающих данных.
Типы данных: cell
CategoricalPredictors
- Категориальные индексы предиктора[]
Это свойство доступно только для чтения.
Категориальные индексы предиктора, возвращенные как вектор положительных целых чисел. Принимая, что данные предиктора содержат наблюдения в строках, CategoricalPredictors
содержит значения индекса, соответствующие столбцам данных предиктора, которые содержат категориальные предикторы. Если ни один из предикторов не является категориальным, то это свойство пустое ([]
).
Типы данных: double
ExpandedPredictorNames
- Расширенные имена предикторовЭто свойство доступно только для чтения.
Расширенные имена предикторов, возвращенные как массив ячеек из векторов символов. Если модель использует кодировку для категориальных переменных, то ExpandedPredictorNames
включает имена, которые описывают расширенные переменные. В противном случае ExpandedPredictorNames
то же, что и PredictorNames
.
Типы данных: cell
X
- Нестандартные предикторыЭто свойство доступно только для чтения.
Нестандартные предикторы, используемые для обучения модели нейронной сети, возвращаются как числовая матрица или таблица. X
сохраняет свою исходную ориентацию, с наблюдениями в строках или столбцах в зависимости от значения ObservationsIn
аргумент имя-значение в вызове fitcnet
.
Типы данных: single
| double
| table
ClassNames
- Уникальные имена классовЭто свойство доступно только для чтения.
Уникальные имена классов, используемые в обучении, возвращенные как числовой вектор, категориальный вектор, логический вектор, символьный массив или массив ячеек из векторов символов. ClassNames
имеет тот совпадающий тип данных, что и метки классов Y
. (Программа обрабатывает массивы строк как массивы ячеек векторов символов.)
ClassNames
также определяет порядок классов.
Типы данных: single
| double
| categorical
| logical
| char
| cell
ResponseName
- Имя переменной откликаЭто свойство доступно только для чтения.
Имя переменной отклика, возвращаемое как вектор символов.
Типы данных: char
Y
- Метки классовЭто свойство доступно только для чтения.
Метки классов, используемые для обучения модели, возвращаются как числовой вектор, категориальный вектор, логический вектор, символьный массив или массив ячеек из векторов символов. Y
имеет тот совпадающий тип данных, что и переменная отклика, используемая для обучения модели. (Программа обрабатывает массивы строк как массивы ячеек векторов символов.)
Каждая строка Y
представляет классификацию соответствующего наблюдения в X
.
Типы данных: single
| double
| categorical
| logical
| char
| cell
NumObservations
- Количество наблюденийЭто свойство доступно только для чтения.
Количество наблюдений в обучающих данных, хранимых в X
и Y
, возвращенный как положительный числовой скаляр.
Типы данных: double
RowsUsed
- Строки, используемые в подборе кривой[]
| логический векторЭто свойство доступно только для чтения.
Строки исходных обучающих данных, используемых в подборе кривой модели, возвращаются как логический вектор. Это свойство пустое, если используются все строки.
Типы данных: logical
W
- Веса наблюденийЭто свойство доступно только для чтения.
Веса наблюдений, используемые для обучения модели, возвращаются как n-на-1 числовой вектор. n - количество наблюдений (NumObservations
).
Программа нормализует веса наблюдений, указанные в Weights
аргумент имя-значение так, чтобы элементы W
в пределах конкретной суммы классов до предшествующей вероятности этого класса.
Типы данных: single
| double
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
compact | Уменьшите размер модели машинного обучения |
compareHoldout | Сравните точности двух классификационных моделей с помощью новых данных |
crossval | Перекрестная валидация модели машинного обучения |
edge | Классификационные ребра для классификатора нейронных сетей |
loss | Классификационные потери для классификатора нейронной сети |
margin | Классификационные поля для классификатора нейронной сети |
partialDependence | Вычисление частичной зависимости |
plotPartialDependence | Создайте график частичной зависимости (PDP) и отдельные графики условного ожидания (ICE) |
predict | Классифицируйте наблюдения с помощью классификатора нейронных сетей |
resubEdge | Ребро классификации реституции |
resubLoss | Потери по классификации реституции |
resubMargin | Классификационный запас для реституции |
resubPredict | Классификация обучающих данных с помощью обученного классификатора |
Обучите классификатор нейронной сети и оцените эффективность классификатора на тестовом наборе.
Прочтите образец файла CreditRating_Historical.dat
в таблицу. Данные предиктора состоят из финансовых коэффициентов и отраслевой информации для списка корпоративных клиентов. Переменная ответа состоит из кредитных рейтингов, присвоенных рейтинговым агентством. Предварительный просмотр первых нескольких строк набора данных.
creditrating = readtable("CreditRating_Historical.dat");
head(creditrating)
ans=8×8 table
ID WC_TA RE_TA EBIT_TA MVE_BVTD S_TA Industry Rating
_____ ______ ______ _______ ________ _____ ________ _______
62394 0.013 0.104 0.036 0.447 0.142 3 {'BB' }
48608 0.232 0.335 0.062 1.969 0.281 8 {'A' }
42444 0.311 0.367 0.074 1.935 0.366 1 {'A' }
48631 0.194 0.263 0.062 1.017 0.228 4 {'BBB'}
43768 0.121 0.413 0.057 3.647 0.466 12 {'AAA'}
39255 -0.117 -0.799 0.01 0.179 0.082 4 {'CCC'}
62236 0.087 0.158 0.049 0.816 0.324 2 {'BBB'}
39354 0.005 0.181 0.034 2.597 0.388 7 {'AA' }
Потому что каждое значение в ID
переменная является уникальным идентификатором клиента, то есть length(unique(creditrating.ID))
равно количеству наблюдений в creditrating
, а ID
переменная является плохим предиктором. Удалите ID
переменная из таблицы и преобразуйте Industry
переменная к categorical
переменная.
creditrating = removevars(creditrating,"ID");
creditrating.Industry = categorical(creditrating.Industry);
Преобразуйте Rating
переменная отклика на порядковый categorical
переменная.
creditrating.Rating = categorical(creditrating.Rating, ... ["AAA","AA","A","BBB","BB","B","CCC"],"Ordinal",true);
Разделите данные на обучающие и тестовые наборы. Используйте приблизительно 80% наблюдений для обучения модели нейронной сети и 20% наблюдений для тестирования эффективности обученной модели на новых данных. Использование cvpartition
для разбиения данных на разделы.
rng("default") % For reproducibility of the partition c = cvpartition(creditrating.Rating,"Holdout",0.20); trainingIndices = training(c); % Indices for the training set testIndices = test(c); % Indices for the test set creditTrain = creditrating(trainingIndices,:); creditTest = creditrating(testIndices,:);
Обучите классификатор нейронной сети путем передачи обучающих данных creditTrain
на fitcnet
функция.
Mdl = fitcnet(creditTrain,"Rating")
Mdl = ClassificationNeuralNetwork PredictorNames: {'WC_TA' 'RE_TA' 'EBIT_TA' 'MVE_BVTD' 'S_TA' 'Industry'} ResponseName: 'Rating' CategoricalPredictors: 6 ClassNames: [AAA AA A BBB BB B CCC] ScoreTransform: 'none' NumObservations: 3146 LayerSizes: 10 Activations: 'relu' OutputLayerActivation: 'softmax' Solver: 'LBFGS' ConvergenceInfo: [1×1 struct] TrainingHistory: [1000×7 table] Properties, Methods
Mdl
является обученным ClassificationNeuralNetwork
классификатор. Вы можете использовать запись через точку для доступа к свойствам Mdl
. Для примера можно задать Mdl.TrainingHistory
для получения дополнительной информации об истории обучения модели нейронной сети.
Оцените эффективность классификатора на тестовом наборе путем вычисления ошибки классификации тестового набора. Визуализируйте результаты с помощью матрицы неточностей.
testAccuracy = 1 - loss(Mdl,creditTest,"Rating", ... "LossFun","classiferror")
testAccuracy = 0.8003
confusionchart(creditTest.Rating,predict(Mdl,creditTest))
Задайте структуру классификатора нейронной сети, включая размер полносвязных слоев.
Загрузите ionosphere
набор данных, который содержит данные радиолокационного сигнала. X
содержит данные предиктора и Y
- переменная отклика, значения которой представляют либо хорошие («g»), либо плохие («b») радиолокационные сигналы.
load ionosphere
Разделите данные на обучающие данные (XTrain
и YTrain
) и тестовые данные (XTest
и YTest
) при помощи стратифицированного раздела удержания. Резервируйте приблизительно 30% наблюдений для проверки и используйте остальные наблюдения для обучения.
rng("default") % For reproducibility of the partition cvp = cvpartition(Y,"Holdout",0.3); XTrain = X(training(cvp),:); YTrain = Y(training(cvp)); XTest = X(test(cvp),:); YTest = Y(test(cvp));
Обучите классификатор нейронной сети. Задайте, чтобы иметь 35 выходов в первом полностью соединенном слое и 20 выходов во втором полностью соединенном слое. По умолчанию оба слоя используют функцию активации с выпрямленным линейным модулем (ReLU). Можно изменить функции активации для полносвязных слоев с помощью Activations
аргумент имя-значение.
Mdl = fitcnet(XTrain,YTrain, ... "LayerSizes",[35 20])
Mdl = ClassificationNeuralNetwork ResponseName: 'Y' CategoricalPredictors: [] ClassNames: {'b' 'g'} ScoreTransform: 'none' NumObservations: 246 LayerSizes: [35 20] Activations: 'relu' OutputLayerActivation: 'softmax' Solver: 'LBFGS' ConvergenceInfo: [1×1 struct] TrainingHistory: [47×7 table] Properties, Methods
Доступ к весам и смещениям для полносвязных слоев обученного классификатора с помощью LayerWeights
и LayerBiases
свойства Mdl
. Первые два элемента каждого свойства соответствуют значениям для первых двух полносвязных слоев, а третий элемент соответствует значениям для последнего полносвязного слоя с функцией активации softmax для классификации. Для примера отобразите веса и смещения для второго полносвязного слоя.
Mdl.LayerWeights{2}
ans = 20×35
0.0481 0.2501 -0.1535 -0.0934 0.0760 -0.0579 -0.2465 1.0411 0.3712 -1.2007 1.1162 0.4296 0.4045 0.5005 0.8839 0.4624 -0.3154 0.3454 -0.0487 0.2648 0.0732 0.5773 0.4286 0.0881 0.9468 0.2981 0.5534 1.0518 -0.0224 0.6894 0.5527 0.7045 -0.6124 0.2145 -0.0790
-0.9489 -1.8343 0.5510 -0.5751 -0.8726 0.8815 0.0203 -1.6379 2.0315 1.7599 -1.4153 -1.4335 -1.1638 -0.1715 1.1439 -0.7661 1.1230 -1.1982 -0.5409 -0.5821 -0.0627 -0.7038 -0.0817 -1.5773 -1.4671 0.2053 -0.7931 -1.6201 -0.1737 -0.7762 -0.3063 -0.8771 1.5134 -0.4611 -0.0649
-0.1910 0.0246 -0.3511 0.0097 0.3160 -0.0693 0.2270 -0.0783 -0.1626 -0.3478 0.2765 0.4179 0.0727 -0.0314 -0.1798 -0.0583 0.1375 -0.1876 0.2518 0.2137 0.1497 0.0395 0.2859 -0.0905 0.4325 -0.2012 0.0388 -0.1441 -0.1431 -0.0249 -0.2200 0.0860 -0.2076 0.0132 0.1737
-0.0415 -0.0059 -0.0753 -0.1477 -0.1621 -0.1762 0.2164 0.1710 -0.0610 -0.1402 0.1452 0.2890 0.2872 -0.2616 -0.4204 -0.2831 -0.1901 0.0036 0.0781 -0.0826 0.1588 -0.2782 0.2510 -0.1069 -0.2692 0.2306 0.2521 0.0306 0.2524 -0.4218 0.2478 0.2343 -0.1031 0.1037 0.1598
1.1848 1.6142 -0.1352 0.5774 0.5491 0.0103 0.0209 0.7219 -0.8643 -0.5578 1.3595 1.5385 1.0015 0.7416 -0.4342 0.2279 0.5667 1.1589 0.7100 0.1823 0.4171 0.7051 0.0794 1.3267 1.2659 0.3197 0.3947 0.3436 -0.1415 0.6607 1.0071 0.7726 -0.2840 0.8801 0.0848
0.2486 -0.2920 -0.0004 0.2806 0.2987 -0.2709 0.1473 -0.2580 -0.0499 -0.0755 0.2000 0.1535 -0.0285 -0.0520 -0.2523 -0.2505 -0.0437 -0.2323 0.2023 0.2061 -0.1365 0.0744 0.0344 -0.2891 0.2341 -0.1556 0.1459 0.2533 -0.0583 0.0243 -0.2949 -0.1530 0.1546 -0.0340 -0.1562
-0.0516 0.0640 0.1824 -0.0675 -0.2065 -0.0052 -0.1682 -0.1520 0.0060 0.0450 0.0813 -0.0234 0.0657 0.3219 -0.1871 0.0658 -0.2103 0.0060 -0.2831 -0.1811 -0.0988 0.2378 -0.0761 0.1714 -0.1596 -0.0011 0.0609 0.4003 0.3687 -0.2879 0.0910 0.0604 -0.2222 -0.2735 -0.1155
-0.6192 -0.7804 -0.0506 -0.4205 -0.2584 -0.2020 -0.0008 0.0534 1.0185 -0.0307 -0.0539 -0.2020 0.0368 -0.1847 0.0886 -0.4086 -0.4648 -0.3785 0.1542 -0.5176 -0.3207 0.1893 -0.0313 -0.5297 -0.1261 -0.2749 -0.6152 -0.5914 -0.3089 0.2432 -0.3955 -0.1711 0.1710 -0.4477 0.0718
0.5049 -0.1362 -0.2218 0.1637 -0.1282 -0.1008 0.1445 0.4527 -0.4887 0.0503 0.1453 0.1316 -0.3311 -0.1081 -0.7699 0.4062 -0.1105 -0.0855 0.0630 -0.1469 -0.2533 0.3976 0.0418 0.5294 0.3982 0.1027 -0.0973 -0.1282 0.2491 0.0425 0.0533 0.1578 -0.8403 -0.0535 -0.0048
1.1109 -0.0466 0.4044 0.6366 0.1863 0.5660 0.2839 0.8793 -0.5497 0.0057 0.3468 0.0980 0.3364 0.4669 0.1466 0.7883 -0.1743 0.4444 0.4535 0.1521 0.7476 0.2246 0.4473 0.2829 0.8881 0.4666 0.6334 0.3105 0.9571 0.2808 0.6483 0.1180 -0.4558 1.2486 0.2453
⋮
Mdl.LayerBiases{2}
ans = 20×1
0.6147
0.1891
-0.2767
-0.2977
1.3655
0.0347
0.1509
-0.4839
-0.3960
0.9248
⋮
Конечный полносвязный слой имеет два выхода, по одному для каждого класса в переменной отклика. Количество выходов слоя соответствует первой размерности весов слоя и смещений слоя.
size(Mdl.LayerWeights{end})
ans = 1×2
2 20
size(Mdl.LayerBiases{end})
ans = 1×2
2 1
Чтобы оценить эффективность обученного классификатора, вычислите ошибку классификации тестового набора для Mdl
.
testError = loss(Mdl,XTest,YTest, ... "LossFun","classiferror")
testError = 0.0774
accuracy = 1 - testError
accuracy = 0.9226
Mdl
точно классифицирует приблизительно 92% наблюдений в тестовом наборе.
ClassificationPartitionedModel
| CompactClassificationNeuralNetwork
| edge
| fitcnet
| loss
| margin
| predict
У вас есть измененная версия этого примера. Вы хотите открыть этот пример с вашими правками?
1. Если смысл перевода понятен, то лучше оставьте как есть и не придирайтесь к словам, синонимам и тому подобному. О вкусах не спорим.
2. Не дополняйте перевод комментариями “от себя”. В исправлении не должно появляться дополнительных смыслов и комментариев, отсутствующих в оригинале. Такие правки не получится интегрировать в алгоритме автоматического перевода.
3. Сохраняйте структуру оригинального текста - например, не разбивайте одно предложение на два.
4. Не имеет смысла однотипное исправление перевода какого-то термина во всех предложениях. Исправляйте только в одном месте. Когда Вашу правку одобрят, это исправление будет алгоритмически распространено и на другие части документации.
5. По иным вопросам, например если надо исправить заблокированное для перевода слово, обратитесь к редакторам через форму технической поддержки.