1

Я смотрю на поисковые бумаги, которые пытаются предсказать цену акций. В этих документах я заметил, что функция активации применяется к выходу с использованием одного из следующих типов функции активации. Униполярный сигмовидный, биполярный сигмовидный, гиперболический Tan, радиальная базисная функция.Artifcial Neural Networks для прогнозирования

Мой вопрос Если один из перечисленных выше типов активации функции применяется к выходу, то как она может быть использована для прогнозирования цены акций т.е. значение как $ 103,56? Поскольку большинство из этих функций имеют минимальные или максимальные значения между (0,1) или (-1,1).

Ответить на Bakkal Перед тем, как поместить в качестве входных данных в ИНС, входы были нормализованы в соответствии с функцией «zscore», определенной в MATLAB, отличающийся тем, что среднее значение вычитали и значение , деленной на дисперсию данные. Целевые выходы были также нормализованы в соответствии с целевыми функциями, делясь на их максимальными значениями, имея в виду верхние и нижние пределы для соответствующих функций активации ((0,1) для униполярных сигмоида, (-1, 1) для биполярного сигмоида и загарных гиперболических функций).

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

ответ

0

Мы использовали нормализацию для сопоставления целевых значений с диапазоном (0, 1) или (-1, 1) или любым другим, что вы хотите в соответствии с вашей функцией активации. Как правило, мы также сопоставляем входные значения в диапазоне, близком к (-1, 1). Наиболее часто используемой нормировкой для масштабирования входных значений является гауссова нормализация. Если входной вектор х, и если вы работаете с Numpy массивами, то следующее гауссова нормализация х:

xScaled = (x-x.mean())/(x.std()) 

, где средняя() дает среднее значение и БПП() дает стандартное отклонение.

Другой нормировка:

xScaled = (x-x.min())/(x.max()-x.min()) 

, который масштабирует вектор входных значений в диапазоне (0,1).

Итак, вы работаете с нормализованными входными и выходными значениями, чтобы закрепить процесс обучения. Вы также можете обратиться к курсу Эндрю Нг, чтобы узнать, почему это происходит. Если вы хотите масштабировать нормализованные значения до их фактических значений, вы можете использовать обратную нормализацию. Например, для приведенной выше (0,1) нормализации, обратная нормализация будет:

x = x.min() + (x.max()-x.min())*xScaled 

Аналогичным образом можно получить обратную нормализацию для гауссовского случая.

+0

Спасибо за отличный ответ, однако здесь есть две вещи. Нормализация данных adn, а затем активационная функция, применяемая на основе нормализованных данных. Таким образом, выход должен будет удалить функцию активации и нормализацию, правильно? – edb500

+0

Не нужно удалять функцию активации. Только сделать обратное масштабирование, и это сработает. –

+0

Хмм, спасибо, так что выше, когда в статье говорится: «Целевые значения, деленные на их максимальные значения, означает ли он максимальные значения функции активации?» Или «Максимальные значения цен»? – edb500

2

Если вы ищете непрерывный выход типа 103.56, то вы используете нейронную сеть для реализации регрессии (в отличие от классификации). В этом случае вы не будете применять уровень активации на выходе. Ваш результат будет суммой взвешенных входов от предыдущего слоя.

Тем не менее, ничто не мешает использовать слои активации на скрытых слоях в сети (например, для создания промежуточных функций, которые затем используются для регрессии)

Почему не использование функция активации действует как функция нормализации? Нужно ли нам нормализовать, если мы используем функцию активации? Потому что функция активации будет действовать как нормализатор?

Нормализация

Ну не совсем, feature normalization является, например, взяв все ваши данные о ценах на прошлые фондовые индексы, найдя max, min, std dev и т. д., и примените преобразование, чтобы все эти исторические данные входили, например. [0, 1].

Зачем это делать? Потому что ваши исторические данные могут иметь цены от AMZN, которые могут вырасти до 500 долларов, но это рыночная капитализация - $ 200 миллиардов. Это много нулей в разнице между двумя функциями price и market cap, что не подходит для некоторых числовых алгоритмов. Итак, что вы делаете, это нормализовать их в какой-то стандартизованном масштабе, так что все цены будут находиться между [0, 1] и что все рыночные колпаки будут [0, 1]. Например. это помогает алгоритму backpropagation.

Активация

Теперь функция активации делает другое дело, он там так, чтобы создать эффект активации, так как в нейроне либо пожаров или не срабатывает.Функция активации принимает входной сигнал say [-inf, + inf] и пытается щелкнуть его, сказав [-1, +1]. Это отличается от нормализации

Теперь, как эффект активации может помочь с регрессией? Хорошо, например. в акциях, прогнозирование цен в запасах пенни (например, около 4 млн. долл. США) может сильно отличаться от прогнозирования цен в «голубых фишках» (~ 200 млрд. долл. США), поэтому вы можете захотеть иметь функцию, которая включается/выключается на основе копейки/большой колпачок. Эта функция может быть использована для улучшения регрессии прогнозируемой цены.

+0

Благодарим вас за ответ. – edb500

+0

см. Мой отредактированный вопрос, в исследовательской работе выглядит так, как будто функция активации применяется к выходу – edb500

+0

Ок см. Ссылку выше – edb500

Смежные вопросы