Вы помните, как у вас появился первый щенок (котенок или малыш), который начал реагировать на ваши команды? Вы помните, что первоначальные ответы были просто случайными? Вы говорите щенку «сесть», а он с любопытством трясет задницей в надежде, что мы с ней поиграем! Вы говорите «переворачивание», а она вращается в одном и том же месте, бесконечно гоняясь за собственным хвостом? (и вы обращаетесь к ладони со словами: «Я сказал * катите *, а не вращайте»)

Что ж, добро пожаловать на обучение нейронным сетям.

Как и щенки, вы не можете разрезать нейронную сеть, чтобы увидеть, что происходит внутри этого черного ящика, и исправить это. Если вы приземлитесь визуализировать внутренности нейронных сетей, вы просто увидите некоторые узлы и соединения и некоторые числа, которые с ними связаны. Нет кода, правил, этикеток, документации или заметных схем, которые позволили бы вам его программировать.

Как и щенки, вы дрессируете не щенка. Вы тренируетесь, чтобы получить от щенка желаемую реакцию.

  • В предыдущем посте мы узнали о том, как нейронные сети учатся сложному поведению › здесь
  • Мы также взяли нашу маленькую нейронную сеть на дегустацию вин, и она преуспела › здесь

В этом посте я намерен немного углубиться в «обучение самих себя», людей, чтобы лучше наблюдать за поведением нейронной сети, ее частотой ошибок, ее общей обусловленностью, а также изменить наши методы обучения, чтобы получить желаемый ответ от Нейронная сеть.

Но в Части 1 давайте сосредоточимся на понимании оценок ошибок.

Прежде чем мы начнем обучать Машины, давайте сначала изложим некоторые золотые правила (или принципы) для нас, людей.

Золотые правила до того, как ты станешь машинным дрессировщиком, ниндзя… штука!

  • Мы будем сформулировать проблему (желаемый результат) как можно короче, точнее и проще. (избегайте сложных, цветочных, двусмысленных заявлений)
  • Проблема должна быть изложена близко к домену (компании) таким образом, чтобы люди в домене понимали и соглашались с желаемым результатом. (Избегайте изложения проблемы на занудном математическом языке). Кроме того, когда я говорю «люди в предметной области», я имею в виду в первую очередь конечных потребителей, а затем людей в вашем бизнесе с гладкими волосами, в костюмах, галстуках, со степенью MBA ...
  • Мы всегда будем брать как можно больше входных данных из указанного домена и того, что является текущим. (избегайте исторических, устаревших данных)
  • Мы будем исчерпывающе брать более широкий набор входных данных из домена. (Не упускайте изображения кошек в пользу собак. Включите также все разновидности кошек. Обучите свою собаку всем международным акцентам, если вы планируете выпустить ее в более широкое сообщество,… если вы уловили мое мнение.)
  • Прежде чем приступить к проектированию сетевой модели, мы будем всегда сначала изучать и готовить входные данные, сколько потребуется времени. (Дана минута, потратьте 55 секунд на задачу и ввод данных и 5 секунд на дизайн)
  • Мы всегда сначала будем начинать с простейших подходов, прежде чем усложнять модели.
  • Мы будем позволять доказательствам определять наши решения. (Избегайте "интуиции" за столом. На самом деле, просто оставьте свой кишечник дома).
  • И, наконец, нужно терпение, мой юный падаван.

Почему эти правила и дисциплины?

  • Без них вы должны переучить и убить щенка, иначе щенок может вырасти и убить ваших конечных клиентов (конечно, ошибочно выполняя команды).
  • Без них ваши постановки проблем, данные и подход будут расплывчатыми, двусмысленными, устаревшими и не учитывающими основную реальность.
  • Без них вы не узнаете, почему ваш щенок так себя ведет.

Возьмите распечатку правил и приклейте ее к себе в кабинку. Хорошо, хватит аналогий, давайте узнаем о природе ошибок, которые совершают нейронные сети.

Анализ ошибок

Есть много типов ошибок. Начнем с самого простого. Обратите внимание, что в посте о дегустации вин здесь мы увидели следующий вывод:

Давайте углубимся в понимание того, каковы оценки.

Напомним, что в примере с дегустацией вин было 3 выхода или класса, по которым было классифицировано вино. Учитывая набор из 13 входных характеристик, сеть выбирает наиболее вероятный сорт, из которого получено вино. Сеть выбирала сорт путем включения или выключения определенного выходного нейрона, который был назначен сорту.

ВКЛ / ВЫКЛ рассматривается как двоичное состояние, а в статистике процесс называется двоичной классификацией. ВКЛ / ВЫКЛ, 1/0, ИСТИНА / ЛОЖЬ - это прогнозируемое состояние вероятности, основанное на некоторых входных данных, действиях и пороге, как мы поняли.

В наборе данных вин у нас было 178 различных вин, созданных из 3 разных сортов. Мы выделили 65% этого набора данных, что составляет около 115 вин, для обучения модели. Во время обучения мы контролировали выходные данные, чтобы увидеть, предсказывается ли правильный сорт, а если нет, мы распространяли ошибку в обратном направлении, чтобы исправить веса знаний в сети, чтобы предсказать правильный вес на следующей итерации. Там мы использовали ESS (Sum of Squared Error), чтобы контролировать функцию стоимости во время обучения. На дрессировку щенка мы потратили 600 итераций.

После завершения полного обучения мы прогнали оставшиеся 35% (без обратного распространения ошибки или каких-либо других оптимизаций сети), чтобы проверить, правильно ли прогнозирует модель. Теперь, точно так же, как ESS была функцией стоимости во время обучения, нам также нужен некоторый механизм ошибок для фазы проверки. Точность, прецизионность, отзывчивость и оценка F1 - это именно то, что вам нужно.

Давайте сначала разберемся с некоторыми базовыми статистическими ошибками, которые являются компонентами оценок.

Ложноположительные результаты (или ошибка типа 1). Ложноположительные результаты - это ошибка, когда ваша модель ошибочно определяет сорт как положительный для вина. Другими словами, если вино-1 происходит от сорта A, то положительный набор для вина-1 должен быть {сорт-A}, а отрицательный набор для вина-1 должен быть {сорт-B, сорт-C}. Когда модель просят предсказать сорт для вина-1, а модель предсказывает класс из отрицательного набора (либо сорт-B, либо C), мы заявляем, что имеем ложноположительную ошибку.

Ложноотрицательный результат (или ошибка типа 2): когда модель отклоняет истинно положительный результат как отрицательный, то это ложноотрицательная ошибка или ошибка типа 2. В примере с вином, если сорт-A для вина-1 (из положительного набора) не был выбран (неверно предсказан), то отклонение сорта-A из выходных данных называется ложным отклонением или ложным -отрицательный.

Противоположностью ложноположительных и ложноотрицательных результатов является истинно-положительный (предсказывается правильный сорт вина) и истинно-отрицательный (неподходящие сорта для вина отклоняются).

Используя эту базовую статистику, давайте теперь узнаем оценки ошибок в установленной проверке. У нас есть 13 вин сорта A, 26 вин сорта B и 24 вина сорта C (из приведенной выше иллюстрации).

Давайте возьмем гипотетический сценарий из 13 предсказаний вин, сделанных для сорта А, следующим образом:

Хотя у нас должно быть 13 прогнозов {1,0,0} (потому что все 13 вин принадлежат сорту A), допустим, вместо этого у нас есть прогнозы, приведенные выше.

Затем мы выделяем следующие типы базовых мер:

  • В прогнозе имеется 13 релевантных ответов (13 сорт-A) и 26 нерелевантных ответов (13 сорт-B + 13 сорт-C).
  • Согласно таблице результатов прогноза на иллюстрации, у нас есть только 8 истинно положительных результатов. Другими словами, у нас есть только 8 правильных прогнозов.
  • Это приводит к 5 ложноположительным результатам (3 + 2 = 5 сортов из отрицательного, нерелевантного набора, идентифицированного как положительный),
  • 5 ложноотрицательных результатов (5 нулей в столбце A показывают, что мы отклоняли сорт A 5 раз) и
  • 21 истинно-отрицательный (21 ноль в столбцах B и C показывает, что мы правильно определили отрицания как отрицательные).

Теперь идет счет.

Точность

Точность - это мера, которая показывает среди всех выбранных элементов, сколько релевантных. Его также называют положительным прогнозным значением или PPV.

В нашем сценарии у нас есть 13 прогнозируемых положительных результатов (поскольку в этом примере мы получим прогноз для каждого ввода), и только 8 из них являются истинно положительными. следовательно, наша оценка точности должна быть

Напомнить

Напоминание - это мера, которая отображает среди всех возможных релевантных элементов, которые должны были быть выбраны, сколько действительно выбрано. Его также называют истинно положительным показателем или TPR, иногда также называемым чувствительностью.

В нашем случае релевантных элементов также является 13 (это потому, что у нас есть взаимоисключающая многовариантность, и нам предсказывается значение для каждого ввода). Итак, наша оценка отзыва выглядит следующим образом:

Точность

Точность - это мера близости предсказанных значений к их истинным значениям. Согласно статистике, это расстояние между истинным значением как ссылка на среднее значение плотности вероятности предсказанного значения. Уравнение точности выглядит следующим образом:

Общая популяция - это сумма всех сеток, которые необходимо спрогнозировать для каждого вина, что в нашем случае составляет 13 релевантных классов для сорта A и 26 неактуальных классов для сорта B + сорта C. Следовательно:

Вот иллюстрация, показывающая разницу между точностью и точностью.

Точность - это мера повторяемости или воспроизводимости прогноза. Если модель воспроизводит аналогичный ответ на аналогичные входные данные каждый раз, когда вы прогнозируете ответ на свой входной сигнал, то он будет точным (это может быть неточный прогноз, когда прогноз близок к его истинному значению). Вот еще один пример точности и точности:

F1-счет

F1-оценка, F-оценка или F-мера - это гармоническое среднее точности и запоминания. Это истинный показатель общей производительности модели, учитывающий как точность, так и отзывчивость. Вы можете рассматривать это как средневзвешенное значение точности и отзыва.

Следовательно, в нашем винном сценарии это будет:

Что ж, значения точности, отзыва и F1-балла для многомерного класса, которые являются «взаимоисключающими» и «точно округленными», где прогноз доступен для каждого входа, должны быть одинаковыми.

Но в нейронной сети значение не должно быть «точно округлено» до набора {1,0,0}, {0,1,0} или {0,0,1} при активации softmax. Вместо этого значение представляет собой вероятность, как показано

Здесь сумма k-мерного набора складывается до 1 (в результате функции обнуления softmax), следовательно, при запуске модели должны быть различия в точности, полноте и f1-показателях. С технической точки зрения вы можете увидеть следующие результаты:

Обратите внимание, что в приведенном выше результате есть 2 неверных прогноза, обозначенных выводом «Примеры, помеченные как 1, классифицируются моделью как 0: 2 раза».

Мы должны стремиться к повышению общей производительности системы (оценка F1).

Есть случаи или бизнес-потребности, в которых требуется высокая точность, в то время как точность может быть смягчена. В таких случаях вы стремитесь улучшить «отзыв» системы.

Примером может служить медицинская диагностическая система, которая хочет, чтобы все люди, у которых есть заболевания, были правильно предсказаны системой, что они действительно болеют. Возможно, такое медицинское учреждение может терпеть ложноположительные результаты (модель, предсказывающая, что у человека есть болезнь, а у него нет), потому что лекарство, введенное нормальному человеку, у которого нет болезни, не так вредно, по сравнению с отсутствием введения лекарства для человек, который действительно болел, но модель, предсказывающая его нет, может оказаться критическим.

Следовательно, выбор того, какая оценка более важна для прогнозов, определяется экономическим обоснованием, а не попыткой улучшить модель в вакууме.

В этом посте установлены базовые баллы для анализа ошибки в вашем проверочном тесте после обучения модели. В следующих сообщениях мы увидим, как улучшить ошибки и другие числовые условия нейронной сети.

Помните, вы дрессируете не щенка ...