RubixML / ML

A high-level machine learning and deep learning library for the PHP language.

Home Page:https://rubixml.com

Geek Repo:Geek Repo

Github PK Tool:Github PK Tool

Does Rubix ML support multi-dimensional output?

epoxa opened this issue · comments

commented

I would like to utilize MLPRegressor to predict multi-dimensional continuous vectors (arrays). Is it possible?
As I see train and partial methods require Labeled datasets, so what should I use as labels?
Thanks.

You are correct. From the classifiers we have, the NeuralNet should trivially support multiple outputs for regression but it is currently capt at one in \Rubix\ML\NeuralNet\Layers\Continuous

Even if that capt is removed, Rubix\ML\Datasets\Labeled as you mention cannot take multi values. Allowing for the labels to be arrays will need changes in Continuous back and gradient but once you get gradient, the rest of the code will stay the same. Feel like trying it yourself? Would love to hear whether it works or if you find any further issues.

Actually, I needed this for reinforcement learning and programmed it myself. Give it a try: https://github.com/Textualization/ML/blob/rl/src/NeuralNet/Layers/MultiContinuous.php

We could allow a new "list" datatype in the Dataset object to accommodate multi-label problems. We could also implement a new "MultiOutput" layer.

We could allow a new "list" datatype in the Dataset object to accommodate multi-label problems. We could also implement a new "MultiOutput" layer.

Well, I did implement that MultiOuput layer already. It is in my fork. But without a Dataset extension, it can only be accessed by fiddling with the neural network directly.