Правильность нейронных сетей

Все SDK Smartsheet будут откатываться и повторяться по умолчанию. Другие ошибки будут выброшены как исключения. Существует способ увеличить время ожидания по умолчанию (чтобы разрешить больше попыток) при создании клиента. Тем не менее, специфичный для Python способ сделать это еще не документирован. Я добавлю это в очередь. Между тем, я думаю, что приведенный ниже пример Ruby будет наиболее близким к тому, как Python, вероятно, это делает, но вы можете прочитать различные способы сделать это.

C #: https://github.com/smartsheet-platform/smartsheet-csharp-sdk/blob/master/ADVANCED.md#sample-retryhttpclient

Java: [111 ] https://github.com/smartsheet-platform/smartsheet-java-sdk/blob/master/ADVANCED.md#sample-retryhttpclient

Node.js: https: // github.com/smartsheet-platform/smartsheet-javascript-sdk#retry-configuration

Ruby: https://github.com/smartsheet-platform/smartsheet-ruby-sdk#retry -конфигурация

14
задан bias 19 July 2009 в 05:16
поделиться

8 ответов

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

Это, конечно, относится только к нейронным сетям. которые достаточно велики, где прямое доказательство правильности невозможно.

8
ответ дан 1 December 2019 в 10:04
поделиться

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

Один метод, который я могу порекомендовать, это складной нож .

1
ответ дан 1 December 2019 в 10:04
поделиться

Нет реального осязаемого ответа, только смутная интуиция. Поскольку вы не знаете алгоритм упорядочения, только то, что данные упорядочены в каждом списке, это отдаленно похоже на алгоритмы, используемые для "сравнения" файлов (например, в Beyond Compare) и сопоставления последовательностей строк вместе. Или также отдаленно похожий на алгоритмы регулярных выражений.

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

(cf качество) ответа на данный ввод, который вы уже видели, скорее вы заботитесь о том, чтобы предсказать качество ответа на ввод, который вы еще не видели. Это гораздо более сложная проблема. Типичные подходы включают в себя «удержание» некоторых ваших обучающих данных (то есть того, на что вы знаете «правильный» ответ) и тестирование вашей обученной системы на этом. Однако это становится тонким, когда вы начинаете думать, что у вас может не хватить данных, или они могут быть предвзятыми и т. Д. Итак, есть много исследователей, которые в основном тратят все свое время на размышления о такого рода проблемах!

некоторые из ваших обучающих данных (то есть материал, на который вы знаете "правильный" ответ) и тестирование вашей обученной системы на этом. Однако это становится тонким, когда вы начинаете думать, что у вас может не хватить данных, или они могут быть предвзятыми и т. Д. Итак, есть много исследователей, которые в основном тратят все свое время на размышления о такого рода проблемах!

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

3
ответ дан 1 December 2019 в 10:04
поделиться

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

Возникает вопрос, зачем вам использовать нейронные сети, если вы не можете быть уверены, что вывод, к которому они пришли, достоверно верен; Ответ состоит в том, что нейронные сети могут давать ответы с высокой степенью достоверности для определенных классов проблем (в частности, NP-Complete задач) за линейное время, тогда как проверяемые правильные решения NP-Complete задач могут быть получены только за полиномиальное время. С точки зрения непрофессионала, нейронные сети могут «решать» проблемы, которые не могут выполнить обычные вычисления; но вы можете быть уверены в правильности своего ответа только на определенный процент. Вы можете определить эту уверенность по тренировочному режиму и обычно можете быть уверены, что у вас будет как минимум 99,9% уверенности.

проблемы, недоступные при обычном вычислении; но вы можете быть уверены в правильности своего ответа только на определенный процент. Вы можете определить эту уверенность по тренировочному режиму и обычно можете быть уверены, что у вас будет как минимум 99,9% уверенности.

проблемы, недоступные при обычном вычислении; но вы можете быть уверены в правильности своего ответа только на определенный процент. Вы можете определить эту уверенность по тренировочному режиму и обычно можете быть уверены, что у вас будет как минимум 99,9% уверенности.

12
ответ дан 1 December 2019 в 10:04
поделиться

Я работал над проектами, в которых есть как тестовые, так и обучающие данные, поэтому вы знаете ожидаемые результаты для набора входных данных, которых NN не видела.

Одним из распространенных способов анализа результата любого классификатора является использование кривой ROC; введение в статистику классификаторов и кривых ROC можно найти в Интерпретация диагностических тестов

2
ответ дан 1 December 2019 в 10:04
поделиться

Что мне действительно нужно, так это что-нибудь вроде ICU, но в более дружественной форме

К сожалению, такого нет. Их API не ТАК ужасен, поэтому вы можете привыкнуть к нему, приложив некоторые усилия.

Может форматировать время, даты и т. Д. В зависимости от локали (например, дд / мм / гг в Великобритании и мм / дд / гг в НАС).

Он полностью поддерживается в классе std :: locale , узнайте, как его использовать. Вы также можете указать языковой стандарт для std :: iostream , чтобы он правильно форматировал числа и даты.

Простое преобразование строк между кодировками

std :: locale предоставляет фасеты для покрытия 8-битных локальных

, поэтому я могу, например, использовать UTF-16

ICU внутренне использует utf-16, win32 wchar_t и wstring также используют utf-16,

1
ответ дан 1 December 2019 в 10:04
поделиться

Мой учитель всегда говорил, что его эмпирическое правило состоит в том, чтобы обучить NN с 80% ваших данных и проверить их с помощью остальных 20%. И, конечно же, убедитесь, что набор данных настолько полный, насколько вам нужно.

0
ответ дан 1 December 2019 в 10:04
поделиться

Если вы хотите выяснить, является ли обратное распространение сети правильным, есть простой способ.

Поскольку вы вычисляете производную ландшафта ошибок, вы можете проверить, соответствует ли ваша реализация правильно численно. Вы вычислите производную ошибки по определенному весу, ∂E / ∂w. Вы можете показать, что

∂E / ∂w = (E (w + e) ​​- E (w - e)) / (2 * e) + O (e ^ 2).

(Бишоп, Машинное обучение и распознавание образов, стр. 246)

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

( Вот реализация: http://github.com/bayerj/arac/raw/9f5b225d6293974f8adfc5f20dfc6439cc1bed35/src/cpp/utilities/utilities.cpp )

0
ответ дан 1 December 2019 в 10:04
поделиться
Другие вопросы по тегам:

Похожие вопросы: