1

Я делаю проект классификации изображений, и я создал корпус функций.Компьютерное зрение: вычислить нормализованное значение дескрипторов

Я хочу, чтобы нормализовать свои функции для ввода PyBrain между -1 до 1, я использую следующую формулу для нормализации функции

Normalized value = (Value - Mean)/Standard Deviation 

но это дает мне нормированному некоторые значения от -3 до 3, что очень неточно.

У меня есть 100 входов в pybrain и 1 выход из pybrain.

+0

Что вы делаете, это Center/Normalize => Итак, после модификации среднее значение будет 0 (в центре), а стандартное отклонение будет 1 (нормализуется). Это очень эффективный способ предварительной обработки данных. – FiReTiTi

ответ

1

Уравнение, которое вы использовали, это стандартизация. Он не гарантирует, что ваши значения находятся в -1; 1, но он пересказывает ваши данные, чтобы иметь среднее значение 0, и стандартное отклонение 1 после. Но точки могут быть более чем на 1x стандартным отклонением от среднего.

Существует несколько вариантов привязки данных.

  1. Использование нелинейной функции, такие как tanh (очень популярной в нейронных сетях)
  2. центра, а затем масштабировать с 1/max(abs(dev))
  3. сохраняет 0, то отмасштабировать с 1/max(abs(dev))
  4. 2*(x-min)/(max-min) - 1
  5. Стандартизации (как вы это сделали), но усекать значения до -1; +1
  6. ... еще
0

В случае у вас есть положительный набор данных, вы можете нормализовать свои значения, используя эту формулу

Normalized value = (Value/(0.5*Max_Value))-1; 

Это будет давать вам значения с диапазоном [-1, + 1]

В случае, если у вас есть положительный и отрицательный:

Normalized value = ((Normalized - Min_Value)/(Max_Value-Min_Value)-0.5)*2 
+0

Я предположил, что вход положительный .. моя ошибка –

+1

Это уравнение неверно и * может * вернуть значения, значительно меньшие -1. Рассмотрим, например, inout набор данных [-100,1,2]. Или еще хуже: [-1, -2, -3,0] –

+0

отредактировал .. Спасибо за комментарий –

0

может быть, вы можете сделать это:

Mid_value = (Max_value + Min_Value)/2 
Max_difference = (Max_value - Min_Value)/2; 
Normalized_value = (Value - Mid_value)/Max_difference; 

Нормализованная_значение должно быть в пределах [-1, + 1].