Рыночный этикет или правила хорошего тона на минном поле - страница 50

 
Prival >>:

Если бы я знал какой нужен пример, не спрашивал бы. Что нибудь простое на маткаде. Желательно с поясненими что такое эпохи т.д. для меня много терминов непонятно, поэтому часто ускальзает смысл того что Вы делаете.

Когда то я видел пример в учебнике как сеть обучается на синусойду, что нибудь подобное. Если не затруднит конечно.

Сейчас выложу. Коментариев навставляю, чтоб было понятно что откуда и куда.

Готово. Загляни в личку.


to Neutron

Сижу, вот, карпаю двухслойку. Попутно кой-чего раскопал...

Кажется я знаю, почему моя однослойка так работает - то есть её работа не похожа на работу твоей.

Взгляни сюда:


Теперь я даже не знаю, считать ли это ошибкой(для однослойки) -:) Что скажешь?

 
Двухслойка пока не работает. Какое-то исключение никак поймать не могу...
 

paralocus писал(а) >>

Теперь я даже не знаю, считать ли это ошибкой(для однослойки) -:) Что скажешь

Убирай нафик индексы!

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

И ещё. Вот выражение для корректного вывода ошибки обучения:

Другими словами, ты сначала набираешь сумму квадратов ошибок по всей обучающей выборке в пределах конкретной эпохи и делишь полученное выражение на квадрат разброса обучающего вектора (нормировка). Это нужно, что бы не привязываться к числу эпох или конкретной архитектуре. Так проще будет сравнивать результаты обучения НС. Получается, что если полученное значение <1 то сеть обучается, если нет, то лучшим прогнозом будет выкинуть её на помойку и пойти спать.

 
Понял, а я просто накапливал модуль ошибки за всю эпоху, а потом делил её на длину эпохи. Сейчас с двухслойкой вожусь
 

Вот только я не понял зачем индексы убирать? По-моему там просто квадрат коррекции неправильно накапливается.

То есть надо так:


А ты что имел в виду?

 

to Neutron


Серега, просвяти концептуально. Ты свою НС будешь заряжать на прогноз какой то величины (Close, (H+L)/2, цвет бара, ....) которое ожидается на следующем отсчете (т.е. прогноз на один отсчет вперед)? Я правильно понял или как то еще?

 
paralocus писал(а) >>

Вот только я не понял зачем индексы убирать? По-моему там просто квадрат коррекции неправильно накапливается.

Зачем тебе индексы? Ты накапливаешь коррекцию (не её квадрат, а именно коррекцию с учётом знака), индексы тут не нужны. Потом нормируешь на сумму квадратов под корнем (опять без индексов) и получаешь искомую величину коррекции за данную эпоху.

grasn писал(а) >>

to Neutron

Серега, просвяти концептуально. Ты свою НС будешь заряжать на прогноз какой то величины (Close, (H+L)/2, цвет бара, ....) которое ожидается на следующем отсчете (т.е. прогноз на один отсчет вперед)? Я правильно понял или как то еще?

Да, я прогнозирую только на один шаг вперёд и затем переобучаю сетку. Прогнозирую направление ожидаемого движения, а не его величину и не его длительность по времени.

 

Но коррекцию, то я накапливаю для каждого веса персонально, т.е. для разных весов, входящих в нейрон она будет разной(по моему ты так объяснял, щас гляну)

Вот как это выглядит:


 

Ну, точно!

Это я индексацию по эпохам попутал с индексацией по синапсам. У тебя это несколько иначе реализовано, вот я и корки мочу. Прости!

Тогда в чём суть твоего вопроса? Что не так?

 
Ты же перед каждой эпохой обнуляешь счётчики?
Причина обращения: