Математическое и компьютерное

Jul 12, 2024 13:26


Вот некоторые думают, что если вычисления перенести на ГПУ вместо ЦПУ, то:

1. Всё сразу заработает в сто раз быстрее.
2. Будет сразу работать лучше.

АвотшЫш. Не всегда, и не везде.

Вот сделал я нейросеть, модель одинаковая, довольно несложная, пятислойная, сто нейронов в каждом слое, итого 50 тысяч параметров - по нынешним меркам вообще три копейки ( Read more... )

математика, компьютеры, чесать репу, ai, непонять

Leave a comment

Comments 10

ny_quant July 12 2024, 18:53:26 UTC

Зависит от того, что делает модель и что важно для пользователя. Если ошибки на +1% и на -1% одинаково важны,то естественно осреднять модуль ошибки, и так чаще всего и делают.

Reply


lev July 12 2024, 19:30:37 UTC

вероятно слишком маленькая модель

Reply


mi_b July 12 2024, 20:58:01 UTC
Во-первых, не нужно считать относительную ошибку - вдруг правильное значение бывает 0, тогда любая ошибка будет бесконечна. Если же наши значения нулем никак не бывают, то, скорее всего, вы не нормализовали данные, возьмите быстренько от низ логарифм. А когда возьмете, то усредняйте абсолютную ошибку.

Что же касается ГПУ, то нужно проверить версии CUDA, тензорфлоу к ним требователен. А число нейронов в слое лучше бы сделать кратным 256.

Reply

mi_b July 12 2024, 20:59:22 UTC
Усредняйте абсолютную - это значит mean(abs(error)) или считайте среднеквадратичную

Reply


seadevil001 July 12 2024, 23:28:34 UTC
Две функции экселя нужны. Average и stdev.s, на их основе высчитывается relative standard deviation. Добавлю - стандартное отклонение, показывает насколько разнятся результаты нескольких измерений одного обьекта. Или, одного измерения нескольких отдельных люьектров, которые должны быть одинаковыми. В теории, для любых измерений или обьектов, работает правило что 95 проуентов ихмерений/обьектов будет в пределах +- трех стандартных отклонений от среднего ( ... )

Reply

nlothik July 15 2024, 17:48:32 UTC

Ну, мне просто в идеале надо одним числом понять, улучшаю я модель, или наоборот, ухудшаю.

То-есть, если мне надо предсказать число 100 и 120, то лучшая модель будет приближаться к этим показателям как можно ближе, скажем, выдавать 109 и 121 - вот, пытаюсь понять, как точность попадания определить математически.

Среднеквадратичное отклонение, по-моему, тут не годится - если модель постоянно врёт, но врёт стабильно, то оно будет маленьким. А мне не это надо мерять.

Reply

seadevil001 July 15 2024, 19:17:24 UTC
Тогда надо мониторить разницу между теоретическим и предсказанным, нормализованную к теоретическому. Каждую итерацию высчитываеть это значение, по модулю и смотреть куда идёт тренд - к нулю, хорошо, увеличивается, плохо. Интересно ещё график этих значений в зависимости от количества итераций сделать

Reply


dibr July 12 2024, 23:29:21 UTC
> если в одном предсказании из двух программа ошиблась на +100%, а во втором - на -100%, врядли заявление о том, что средняя ошибка составляет 0% (100-100)/2, будет представляться нам истинным

Есть случайная погрешность, она равна 100%, есть систематическая, она равна 0. А если программа всё время ошибается ровно на +50%, то систематическая погрешность - 50%, а случайная после вычета систематической - 0% (если систематическая погрешность неизвестна, считают общую погрешность по правилам случайной погрешности, т.е. считают что систематической погрешности нет).
Но это не точно, надо уточнить в учебниках.

Reply

nlothik July 15 2024, 17:49:43 UTC

Пасиба! По-моему, мне нужна всё же случайная погрешность. Систематическая будет показывать, насколько систематически врёт модель :)

Reply


Leave a comment

Up