Рыночный этикет или правила хорошего тона на минном поле - страница 42
Вы упускаете торговые возможности:
- Бесплатные приложения для трейдинга
- 8 000+ сигналов для копирования
- Экономические новости для анализа финансовых рынков
Регистрация
Вход
Вы принимаете политику сайта и условия использования
Если у вас нет учетной записи, зарегистрируйтесь
Благо Маткад позволяет на любом шаге визуализировать процесс счёта. Экспериментируй.
А можно об этом пару слов? У меня графики строятся только по окончании всех расчетов.
У меня тоже:-(
Я имел в виду, что ты можешь выводить на просмотр любую интересующую тебя информацию и пердставлять её в удобном для последующего анализа виде.
Щас, погоди.
Мы подаём на вход НС вектор данных длиной d, где d - число информационных входов сетки (не считая смещения). На ВЫХОД сети, для её тренировки мы подаём d+1 отсчёт. Веса у нас на этом шаге случайные. Получили на этом этапе дельту для коррекции каждого вектора. Запомнили её (ничего не корректируем). Сдвигаемся на один отсчёт и повторяем процедуру. Складываем коррекции и отдельно её квадраты. Так поступаем Р раз (без коррекции весов). Наконец, первый раз корректируем все веса, это ПЕРВАЯ эпоха обучения. Теперь, начинаем всё заново на тех же данных, но стартуем уже с найденными весами. В конце корректируем веса, это ВТОРАЯ эпоха обучения. Так поступаем 100 раз (для примера), это 100 эпох обучения. Всё. Сеть готова к предсказанию. Суём ей на вход весь вектор данных с самым свежим последним отсчётом и получаем прогноз. После прихода реального (не прогнозного) отсчёта, переобучаем сеть заново, с рандомизацией весов.
Интересная дискуссия.:) Neutron, кстати, ты так и не ответил мне на вопрос что же все таки с начальными весами? Ты сказал только о том, как ты переучиваешь сеть. Но даже без этого, если обучить хотя бы один раз сеть будет иметь погрешность и даже ощутимую. Расхождение с прогнозами бывает ну просто очень большим, это я про свой опыт работы с backprop-м говорю.:) На самом деле меня интересует только этот вопрос, все остальное в технике сетки это не главное. Комитеты сетей, как ты на это смотришь, и нужно ли это вообще, может быть как-то можно подстроить веса изначально, чтобы сетка оказывалась вблизи глобального минимума на старте обучения, чтобы комитеты просто не были нужны?
Тогда ошибки нет.
Я переходя от эпохи к эпохе, поджимаю каждый вес с помощью во такого "поджимателя":
Это позволяет избежать расползания весов в область насыщения и удерживает их в процессе обучения в диапазоне +/-5.
Neutron, кстати, ты так и не ответил мне на вопрос что же все таки с начальными весами? Ты сказал только о том, как ты переучиваешь сеть. Но даже без этого, если обучить хотя бы один раз сеть будет иметь погрешность и даже ощутимую. Расхождение с прогнозами бывает ну просто очень большим, это я про свой опыт работы с backprop-м говорю.:) На самом деле меня интересует только этот вопрос, все остальное в технике сетки это не главное. Комитеты сетей, как ты на это смотришь, и нужно ли это вообще, может быть как-то можно подстроить веса изначально, чтобы сетка оказывалась вблизи глобального минимума на старте обучения, чтобы комитеты просто не были нужны?
Начальные веса я рандомизирую случайной величиной распределённой по полочке в диапазоне +/-1. Делаю это на каждом отсчёте. Сетка, переобучаясь на каждом шаге в среднем находит именно глобальный минимум и это преимущество переобучения на каждом шаге, по сравнению с раз и на всегда обученной сеткой. Там она может случайно залезть в локальную яму и все её прогнозы будут не адекватными. В этом случае действительно важно искать способы оптимизации точки старта для весов. Я эту проблему не решал.
Что касается коммитета сетей, то это вещь полезная, но ресурсоёмкая. Можно показать, что простое увеличение числа нейронов в скрытом слое по-сути и есть коммитет, но более ресурсоёмким в обучении чем классический вариант, зато и более мощный из-за интегрированной нелинейности членов коммитета. Тут экспериментировать нужно.
Я переходя от эпохи к эпохе, поджимаю каждый вес с помощью во такого "поджимателя":
Это позволяет избежать расползания весов в область насыщения и удерживает их в процессе обучения в диапазоне +/-5.
Я просто интервал сжимаю при нормировке не от [-1;1], а от [-0.9;0.9] эффект тот же, насыщения нет. Я несколько о другом, начальные весовые коэффициенты в процессе подстройки весов могут просто не достичь опимальных значений из-за так называемой овражности функции. Над этим я бьюсь честно говоря. Да и у вас тоже эта проблема скорее всего не решена, поэтому что-то стоящее получить на рынке с помощью backprop сложно, даже если доказательная база неплохая для моделирования.
Начальные веса я рандомизирую случайной величиной распределённой по полочке в диапазоне +/-1. Делаю это на каждом отсчёте. Сетка, переобучаясь на каждом шаге в среднем находит именно глобальный минимум и это преимущество переобучения на каждом шаге, по сравнению с раз и на всегда обученной сеткой. Там она может случайно залезть в локальную яму и все её прогнозы будут не адекватными. В этом случае действительно важно искать способы оптимизации точки старта для весов. Я эту проблему не решал.
Что касается коммитета сетей, то это вещь полезная, но ресурсоёмкая. Можно показать, что простое увеличение числа нейронов в скрытом слое по-сути и есть коммитет, но более ресурсоёмким в обучении чем классический вариант, зато и более мощный из-за интегрированной нелинейности членов коммитета. Тут экспериментировать нужно.
Вот эта вещь всю малину и портит.:) Кстати, в результате моих наблюдений, наилучшая рандомизация весов, при которой сетка быстро обучается находится в интервале [-0.07; +0.07]. Незнаю, почему так.:)
Я просто интервал сжимаю при нормировке не от [-1;1], а от [-0.9;0.9] эффект тот же, насыщения нет. Я несколько о другом, начальные весовые коэффициенты в процессе подстройки весов могут просто не достичь опимальных значений из-за так называемой овражности функции. Над этим я бьюсь честно говоря. Да и у вас тоже эта проблема скорее всего не решена, поэтому что-то стоящее получить на рынке с помощью backprop сложно, даже если доказательная база неплохая для моделирования.
Тут бережённого - Бог бережёт! Процедура поджатия не сложна, обученность НС не страдает - эффективный метод.
Что касается неприменного достижения оптимальных значений, так это блеф чистой воды для наших ВР. Я понимаю, если ты прогнозируешь синусоиду! - тут да, - есть оптимальные значения. А что таковыми являются в условиях рыночного дребезга? Сейчас оптимум тут, а на следующем шаге (который ты и прогнозируешь), он - там... а ты его всеми силами искал "тут". Короче, не стоит задача точной локализации, и она решается удовлетворительно переобучением на каждом шаге.