Это функции для коэффициентов угла атаки сигмоида:
//+------------------------------------------------------------------+double ytrans0(double y=0.5)// [0;0.5;1] --> [0;1;500.5] гипербола с перегибом в 0.5
{
double x=line0(y);
return(x>0.5005?0.5005/(1.001-x):x*2.);
}
//+------------------------------------------------------------------+double ytrans1(double y=0.)// [-1;0;1] --> [0;1;500.5] сдвинутая гипербола с перегибом в 0.0
{
double x=(line1(y)+1.)/2.;
return(x>0.5005?0.5005/(1.001-x):x*2.);
}
//+------------------------------------------------------------------+
ЗЫ поясню для чего это писалось:
задача: необходимо регулировать угол атаки сигмоида самими выходами нейронов, выходы в пределах [0;1] либо [-1;1].
Разберём вариант с [0;1]. На участке от 0 до 0.5 требуется уменьшать угол атаки что приводит к падению температуры выхода, на участке от 0.5 до 1 наоборот угол должен возрастать, но главное плавность и без переходов.
Те нужна гипербола с перегибом в заданной срединной точке. Правда для управления углом атаки стоит использовать лишь один выход, либо обрабатывать несколько как среднеарифметическое, иначе будет запирание в сторону угла эмитирующего пороговую функцию.
ЗЗЫ если используется приведённые входы то функции line0() и line1() не нужны, но тогда в ytrans1() нужен сдвиг к диапазону входа [0;1].
Это функции для коэффициентов угла атаки сигмоида:
ЗЫ поясню для чего это писалось:
задача: необходимо регулировать угол атаки сигмоида самими выходами нейронов, выходы в пределах [0;1] либо [-1;1].
Разберём вариант с [0;1]. На участке от 0 до 0.5 требуется уменьшать угол атаки что приводит к падению температуры выхода, на участке от 0.5 до 1 наоборот угол должен возрастать, но главное плавность и без переходов.
Те нужна гипербола с перегибом в заданной срединной точке. Правда для управления углом атаки стоит использовать лишь один выход, либо обрабатывать несколько как среднеарифметическое, иначе будет запирание в сторону угла эмитирующего пороговую функцию.
ЗЗЫ если используется приведённые входы то функции line0() и line1() не нужны, но тогда в ytrans1() нужен сдвиг к диапазону входа [0;1].
Кстати.
Нужна функция сигмоидного типа.
Требования -- нормальный вид самой функции и производной (не сильно сложная в вычислении) и нормальный вид обратной функции и ее производной.
Это обратные приведённому выше сигмоиду функции.
но у второй нужна проверка, а то можно на #IND нарваться
ЗЫ Я не проверял, всё нужно проверить чтоб не нарваться на #IND
ЗЗЫ сори забыл квадрат, исправил.
Это обратные приведённому выше сигмоиду функции.
но у второй нужна проверка, а то можно на #IND нарваться
Вставь сразу в функцию что то типа:
Вставь сразу в функцию что то типа:
Это можно линейные активаторы вызывать, незачем и так путанные формулы ещё путать.
ЗЫ 39 страница, последние две функции line0() и line1().
ЗЗЫ добавил на 39 стр ещё одну функцию проверки Mline() на превышение -#IND #IND
?
А чо? Мне нравится.
Я так понимаю, вопрос об имени уже не стоит?
А чо? Мне нравится.
Я так понимаю, вопрос об имени уже не стоит?
))
в процессе развития всё ещё сто раз поменяется как всегда
Вроде все классно, но что-то то ли не то, то ли лишнее, то ли не хватает...
И непонятно почему, т.к. при ближайшем рассмотрении вообще не придерешься.
У тебя есть голова отдельно? на аватарку юзверю?
Или проспаться надоъ. Чем сейчас и займусь. А завтра на щуку.