Почему выходные данные уравнения модели не соответствуют обученному выходу модели - PullRequest
0 голосов
/ 14 апреля 2020

Так что я тихий новичок в углубленном изучении. Так что терпите меня. У меня есть ANN, и у меня есть набор данных прогноза цен на жилье, который я передаю ему. Я очистил набор данных, нормализовал вывод (принимая журнал) и разделил набор данных, обучил модель и извлек веса и смещение. Я жестко закодировал свое собственное уравнение нейронной сети с использованием этих весов и смещений (что на самом деле является функцией), которая возвращает прогнозируемый результат. Теперь я предполагал, что если я сравню значение из прогнозируемого результата обученной модели, используя model.predict(), а затем использую те же входные данные и добавлю его в мое уравнение, тогда оба выходных значения должны совпадать. Однако, это не так. И прежде чем кто-либо еще спросит, я использую трехслойную модель с (12,8,1) и relu в первых 2 слоях и линейную в последнем слое, и я также применил свою функцию активации к выходу всех слоев (если -ve тогда вернуть 0 или значение). Итак, я хочу знать, есть ли какая-либо другая причина, почему эти результаты не будут совпадать. Вот как выглядит мое уравнение примерно (не воспроизводимо):

layer1:
L1N0=activation_function(I1*w(0,0)+I2*w(0,1)+I3*w(0,2)+b1N0)
L1N1=activation_function(I1*w(0,1)+I2*w(1,1)+I3*w(1,2)+b1N1)
layer2:
L2N0=activation_function(L1N0*w_layer2(0,0)+L1N0*w_layer2(0,1)+b2N0)
```

1 Ответ

0 голосов
/ 14 апреля 2020

Привет. Как вы упомянули здесь, «если я сравниваю значение из прогнозируемого результата обученной модели с использованием model.predict (), а затем использую те же входные данные и подаю его в мое уравнение, тогда оба выходных значения должны совпадать»

Да, именно модель должна дать вам ок. тот же результат, что и у вас уравнение при условии, что модель должна была обучаться должным образом Обучаясь, ANN пытается вычислить весовые коэффициенты и смещения, относящиеся к слоям, чтобы приблизить уравнение, которое в этом случае является основными значениями истинности. Ваш ANN пытается сделать то, что он пытается приблизить уравнение, как сказано в этой ссылке https://en.wikipedia.org/wiki/Universal_approximation_theorem.

Что вы можете сделать, чтобы улучшить точность:

  • увеличение эпох
  • увеличение уровней
  • проба с разной скоростью обучения
  • проба разных оптимизаторов и c.
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...