filmov
tv
Играемся с Python: приближаем функцию 2х переменных с помощью нейросети. Пробуем Keras + Tensorflow
Показать описание
Продолжим развлекаться с однослойной нейронной сетью в питоне. Для наведения пушки в Space Engineers нужно будет учитывать много параметров, а не один: расстояние, высота цели, скорость снаряда, радиус планеты и прочее. Так что, хорошо бы посмотреть, насколько мы можем приблизить функцию нескольких переменных с помощью нейронной сети, и какие у нас при этом возникнут сложности.
В планах на сегодня следующее:
2. Соберем аналог самопальной сети в конструкторе Keras (в качестве бэкенда будет Tensorflow и даже с возможностью использовать GPU)
3. Сравним обучение 2х этих вариантов на какой-то простой функции. Попробуем перенести таблички весов из Кераса в свою самопальную сеть, чтобы убедиться, что все работает и мы сможем потом воспользоваться плодами обучения в Space Engineers.
4. Построим графики нескольких функций от 2х переменных (это будут какие-то поверхности) в matplotlib и попробуем поучить нейросетку приближенному вычислению этих функций.
5. Наверное, придется столкнуться с необходимостью как-то сжимать диапазоны входных данных (а может и результатов) для лучшего обучения сети. Пока я заметил, что если входящие X и Y выходят за пределы примерно +-20, то сеть или не обучается совсем, или обучается очень криво. Если целевые значения вылазят за 100 - это тоже как-то не очень хорошо влияет.
Планы примерно такие, но если не все успеем - то часть уйдет на следующий стрим по теме.
В планах на сегодня следующее:
2. Соберем аналог самопальной сети в конструкторе Keras (в качестве бэкенда будет Tensorflow и даже с возможностью использовать GPU)
3. Сравним обучение 2х этих вариантов на какой-то простой функции. Попробуем перенести таблички весов из Кераса в свою самопальную сеть, чтобы убедиться, что все работает и мы сможем потом воспользоваться плодами обучения в Space Engineers.
4. Построим графики нескольких функций от 2х переменных (это будут какие-то поверхности) в matplotlib и попробуем поучить нейросетку приближенному вычислению этих функций.
5. Наверное, придется столкнуться с необходимостью как-то сжимать диапазоны входных данных (а может и результатов) для лучшего обучения сети. Пока я заметил, что если входящие X и Y выходят за пределы примерно +-20, то сеть или не обучается совсем, или обучается очень криво. Если целевые значения вылазят за 100 - это тоже как-то не очень хорошо влияет.
Планы примерно такие, но если не все успеем - то часть уйдет на следующий стрим по теме.
Комментарии