Re[14]: Как важно проверять в программах ошибки до конца
От: Erop Россия  
Дата: 01.07.12 20:13
Оценка:
Здравствуйте, netch80, Вы писали:

N>Юнит-тесты делаются не на класс, а на отдельный метод. Поведение которого строго определено. Далее, мы можем не знать, во что выльется обучение на конкретных примерах, но мы можем рассчитать, какая комбинация входного состояния и воздействия даст какое выходное состояние, на нескольких примерах, отобранных по характерным признакам, и проверить работу именно по соответствию тому, что мы ожидаем.


Какой в этом смысл?
Все эмоциональные формулировки не соотвествуют действительному положению вещей и приведены мной исключительно "ради красного словца". За корректными формулировками и неискажённым изложением идей, следует обращаться к их автором или воспользоваться поиском
Re[15]: Как важно проверять в программах ошибки до конца
От: netch80 Украина http://netch80.dreamwidth.org/
Дата: 02.07.12 05:04
Оценка:
Здравствуйте, Erop, Вы писали:

N>>Юнит-тесты делаются не на класс, а на отдельный метод. Поведение которого строго определено. Далее, мы можем не знать, во что выльется обучение на конкретных примерах, но мы можем рассчитать, какая комбинация входного состояния и воздействия даст какое выходное состояние, на нескольких примерах, отобранных по характерным признакам, и проверить работу именно по соответствию тому, что мы ожидаем.

E>Какой в этом смысл?

Такой же как в других тестах — проверить соответствие выполняемого ожидаемому. Что тут непонятно?
The God is real, unless declared integer.
Re[16]: Как важно проверять в программах ошибки до конца
От: Erop Россия  
Дата: 02.07.12 06:11
Оценка:
Здравствуйте, netch80, Вы писали:

N>Такой же как в других тестах — проверить соответствие выполняемого ожидаемому. Что тут непонятно?


Дык ожидаемое известно не точно

Вот смотри, пусть наш классификатор -- машина опорных векторов. У этого классификатора есть два этапа жизни.
1) Обучение -- из большой обучающей выборки выбирается какое-то количество векторов, которые в дальнейшем считаются опорными, и для каждого из векторов вычисляется несколько чисел.
2) Классификация -- берём новый вектор, и применяем классификатор -- в ответ он называет класс, и вес. Вес -- это параметр. Который задаёт степень уверенности классификатора в том, что это этот класс.

Первый этап вообще носит стохастический характер часто, так что там с юнит-тестированием всё непросто. Максимум, что вы можете -- проверит работоспособность обучалки, но не качество её работы. А интересует, обычно, именно качество, и скорость.

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

Но, в результате, мы получаем, что стоит пошевелить классификатор, например сместить его шумы квантетизации, так именитс и "правильный" отклик, даже не эталонных результатах.
Все эмоциональные формулировки не соотвествуют действительному положению вещей и приведены мной исключительно "ради красного словца". За корректными формулировками и неискажённым изложением идей, следует обращаться к их автором или воспользоваться поиском
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.