Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > IT форум > Общие вопросы по программированию, компьютерный форум
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 15.11.2019, 21:28   #1
WorldMaster
Старожил
 
Аватар для WorldMaster
 
Регистрация: 25.08.2011
Сообщений: 2,841
По умолчанию Измерить безразмерное.

Здравствуйте.
Подскажите как можно решить задачу:
Строю тут НС для анализа данных. А в наборах данных есть параметр который по сути может быть безразмерным. А НС требует от 0 до 1.
Сейчас пробую перевести его в процент изменений от предыдущего значения. Вроде меньше но все равно иногда бывают заходы через 1.

Каким образом можно решить такую проблему?? Может есть метрики какие нибудь особые?? Или я чего то не в ту сторону думаю??

Для пример вот есть бредовая статья. но снимать там деньги любыми суммами до максимумуа. Так как масштабировать данные то .. в статье об этом ни слова. Да и вообще в таких случаях как формировать данные для нейросети?
Изображения
Тип файла: jpg karlon-data-scientist.jpg (89.0 Кб, 63 просмотров)
Skype - wmaster_s E-Mail - WorldMasters@gmail.com
Работаем по 3 критериям - быстро, качественно, недорого. Заказчик выбирает любые два.

Последний раз редактировалось WorldMaster; 15.11.2019 в 21:43.
WorldMaster вне форума Ответить с цитированием
Старый 15.11.2019, 22:18   #2
Аватар
Старожил
 
Аватар для Аватар
 
Регистрация: 17.11.2010
Сообщений: 19,042
По умолчанию

Простейший вариант функции, а вот можно ли такое использовать без понятия )
x=ИзмерениеТекущее/ИзмерениеПредшествующее
f(x)=x/(x+1)
Если бы архитекторы строили здания так, как программисты пишут программы, то первый залетевший дятел разрушил бы цивилизацию
Аватар вне форума Ответить с цитированием
Старый 15.11.2019, 22:23   #3
WorldMaster
Старожил
 
Аватар для WorldMaster
 
Регистрация: 25.08.2011
Сообщений: 2,841
По умолчанию

Цитата:
Сообщение от Аватар Посмотреть сообщение
x=ИзмерениеТекущее/ИзмерениеПредшествующее
Хм ... забавно .. а физический смысл можно объяснить ??
Если это скорость то результат вашей функции это что будет?
Skype - wmaster_s E-Mail - WorldMasters@gmail.com
Работаем по 3 критериям - быстро, качественно, недорого. Заказчик выбирает любые два.
WorldMaster вне форума Ответить с цитированием
Старый 15.11.2019, 22:46   #4
Аватар
Старожил
 
Аватар для Аватар
 
Регистрация: 17.11.2010
Сообщений: 19,042
По умолчанию

Та нет там смысла физического, наверно. А может есть, не задумывался. При совпадении измерений 0.5. Чем больше текущее измерение предшествующего тем ближе к 1. И чем меньше - то к 0. Ты же просил как-то отобразить в (0,1) результаты измерений. Это вариант на вскидку. Можно поизвращаться и подобрать многочлены более высокой степени в дроби с другой скоростью сходимости к 1
Если бы архитекторы строили здания так, как программисты пишут программы, то первый залетевший дятел разрушил бы цивилизацию
Аватар вне форума Ответить с цитированием
Старый 15.11.2019, 23:07   #5
WorldMaster
Старожил
 
Аватар для WorldMaster
 
Регистрация: 25.08.2011
Сообщений: 2,841
По умолчанию

Цитата:
Сообщение от Аватар Посмотреть сообщение
ем больше текущее измерение предшествующего тем ближе к 1.
Похоже на вторую производную вроде ...
Ну да ладно .. попробую.

Что то первые запуски сети какой то странный результат показывают. Всегда одно и тоже значение ошибки. Один в один.
Это что значит что в выборке нету характерных признаков чтоли?

ЗЫ. Нашел вариант когда ваша формула не рулит.
Пример текущее 1 предыдущее 5.
(1 - 5)/((1-5)+1) = 1,3333
Skype - wmaster_s E-Mail - WorldMasters@gmail.com
Работаем по 3 критериям - быстро, качественно, недорого. Заказчик выбирает любые два.

Последний раз редактировалось WorldMaster; 15.11.2019 в 23:32.
WorldMaster вне форума Ответить с цитированием
Старый 16.11.2019, 04:03   #6
MihalNik
МегаМодератор
СуперМодератор
 
Регистрация: 27.11.2012
Сообщений: 5,723
По умолчанию

А что значит "безразмерное"?
Отображение вещественного на промежуток? 1/(|x|+1), (th(x)+1)/2 и т.п.
Благими намерениями устлана дорога на programmersforum.ru
MihalNik вне форума Ответить с цитированием
Старый 16.11.2019, 08:47   #7
Аватар
Старожил
 
Аватар для Аватар
 
Регистрация: 17.11.2010
Сообщений: 19,042
По умолчанию

Цитата:
Сообщение от WorldMaster Посмотреть сообщение
1 - 5
В формуле 1/5, а не 1-5
Если бы архитекторы строили здания так, как программисты пишут программы, то первый залетевший дятел разрушил бы цивилизацию
Аватар вне форума Ответить с цитированием
Старый 16.11.2019, 09:22   #8
Pavia
Лис
Старожил
 
Аватар для Pavia
 
Регистрация: 18.09.2015
Сообщений: 2,409
По умолчанию

А что за НС у вас такая которая требует 0-1 на входе?

Входной слой НС как раз и нормирует данные. При помощи функции активации. Для входного слой функция активации называется функций нормализации данных.

Вот сигмоид как раз приводит к [0;+1]
f(x)=1/(1+exp(-x))
Хорошо поставленный вопрос это уже половина ответа. | Каков вопрос, таков ответ.
У дзен программиста программа делает то что он хотел, а не то что он написал .
Pavia вне форума Ответить с цитированием
Старый 16.11.2019, 15:18   #9
WorldMaster
Старожил
 
Аватар для WorldMaster
 
Регистрация: 25.08.2011
Сообщений: 2,841
По умолчанию

Цитата:
Сообщение от Аватар Посмотреть сообщение
В формуле 1/5, а не 1-5
Да да ... извините. Под вечер голова настолько забита что пропустил это )))


Цитата:
Сообщение от Pavia Посмотреть сообщение
А что за НС у вас такая которая требует 0-1 на входе?

строю через CNTK
Код:
// For MLP, we like to have the middle layer to have certain amount of states.
                int hiddenLayerDim = 200;
                //var scaledInput = CNTKLib.ElementTimes(Constant.Scalar<float>(1.0f / 255.0f, device), input);
                classifierOutput = CreateMLPClassifier(device, numClasses, hiddenLayerDim, input, classifierName);
Когда работал с картинками был слой scaledInput нормализатор. Он цвет приводил к 0 - 1.
А сейчас я его просто убрал и сам пытаюсь нормировать.

вот сама сеть
Код:
   private static Function CreateMLPClassifier(DeviceDescriptor device, int numOutputClasses, int hiddenLayerDim, Function scaledInput, string classifierName)
        {
            Function dense1 = TestHelper.Dense(scaledInput, hiddenLayerDim, device, Activation.ReLU, "");
            Function dense2 = TestHelper.Dense(dense1, hiddenLayerDim, device, Activation.ReLU, "");
            Function classifierOutput = TestHelper.Dense(dense2, numOutputClasses, device, Activation.None, classifierName);
            return classifierOutput;
        }
Skype - wmaster_s E-Mail - WorldMasters@gmail.com
Работаем по 3 критериям - быстро, качественно, недорого. Заказчик выбирает любые два.
WorldMaster вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц

Опции темы Поиск в этой теме
Поиск в этой теме:

Расширенный поиск


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Измерить время выполнения сортировки StillNoob Общие вопросы C/C++ 0 24.06.2018 21:54
Измерить скорость передачи данных (С++) Merzaffka Помощь студентам 4 21.03.2014 12:29
Измерить амперы akmal52 Общие вопросы Delphi 8 24.02.2014 21:43
Синоптик должен измерить 6y6JIuK Помощь студентам 3 04.02.2010 20:08
измерить время сортировки Cyberbest Помощь студентам 1 01.05.2008 19:30