public final int
correct;
public final int
trials;
public final double
percentage;
public
Results(
int
correct,
int
trials,
double
percentage) {
this
.correct = correct;
this
.trials = trials;
this
.percentage = percentage;
}
}
// Для параметризованных результатов, которые требуют классификации,
// эта функция возвращает правильное количество попыток
// и процентное отношение по сравнению с общим количеством
public
Results validate(List<
double
[]> inputs, List expecteds,
Function<
double
[], T> interpret) {
int
correct = 0;
for
(
int
i = 0; i < inputs.size(); i++) {
7.5. Задачи классификации
201
double
[] input = inputs.get(i);
T expected = expecteds.get(i);
T result = interpret.apply(outputs(input));
if
(result.equals(expected)) {
correct++;
}
}
double
percentage = (
double
) correct / (
double
) inputs.size();
return new
Results(correct, inputs.size(), percentage);
}
}
Нейронная.сеть.готова!.Ее.можно.протестировать.на.нескольких.настоящих.за-
дачах..Построенная.архитектура.достаточно.универсальна.для.того,.чтобы.с.ее.
помощью.можно.было.решать.различные.задачи,.но.мы.сосредоточимся.на.по-
пулярной.задаче.—.классификации.
7.5. ЗАДАЧИ КЛАССИФИКАЦИИ
В.главе.6.мы.классифицировали.набор.данных.посредством.кластеризации.с.по-
мощью.метода.
k
-средних,.не.используя.заранее.известных.представлений.о.том,.
к.какой.категории.принадлежит.каждый.элемент.данных..При.кластеризации.мы.
знаем,.что.хотим.найти.категории.данных,.но.заранее.не.знаем,.что.это.за.катего-
рии..При.решении.задачи.классификации.мы.тоже.пытаемся.классифицировать.
набор.данных,.но.в.этом.случае.существуют.заранее.определенные.категории..На-
пример,.если.бы.мы.пытались.классифицировать.набор.изображений.животных,.
то.могли.бы.перед.этим.выбрать.такие.категории,.как.млекопитающие,.рептилии,.
амфибии,.рыбы.и.птицы.
Существует.множество.методов.машинного.обучения,.которые.можно.задей-
ствовать.в.задачах.классификации..Возможно,.вы.слышали.о.методах.опорных.
векторов,.деревьях.принятия.решений.и.наивных.классификаторах.Байеса..
Существуют.и.другие.методы..В.последнее.время.нейронные.сети.стали.широко.
применяться.в.области.классификации..Они.требуют.больше.вычислительных.
ресурсов,.чем.некоторые.другие.алгоритмы.классификации,.но.их.способность.
классифицировать.казалось.бы.произвольные.виды.данных.делает.их.эффек-
тивной.технологией..Классификаторы.нейронных.сетей.лежат.в.основе.многих.
интересных.методов.классификаций.изображений,.которые.применяются.в.со-
временном.программном.обеспечении.для.обработки.фотографий.
Почему.вновь.возник.интерес.к.использованию.нейронных.сетей.для.задач.клас-
сификации?.Аппаратное.обеспечение.стало.достаточно.быстрым.для.того,.чтобы.
окупилась.необходимость.дополнительных.вычислений.по.сравнению.с.другими.
алгоритмами.
Do'stlaringiz bilan baham: |