I'm fairly new to ML and now that I digged through tutorials and documentations I wanted to create a model myself now.
The problem:
I am a carpenter and back then in shool we had a problem where we got multiple example room layouts from living rooms with furniture and should decide where we would advice a new customer where to place any given object based on the customers current room layout and the example layouts we got for analysis.
So I thought will it be possible to train an ML algorithm to do that for me:
What I've got:
Ive created a 15x15 grid where each cell represents a (0.5m x 0.5m) part of the room. Each cell contains an int representing the class of the item in the room e.g:
A | B | C | D | ... |
---|---|---|---|---|
None(0) | wall(1) | wall(1) | wall(1) | |
None(0) | wall(1) | bed(2) | bed(2) | |
None(0) | wall(1) | bed(2) | bed(2) | |
None(0) | wall(1) | bed(2) | bed(2) | |
wall(1) | wall(1) | bed(2) | bed(2) | |
shelf(3) | shelf(3) | None(0) | None(0) | |
... |
For input (x) I have tables with data about walls and objects and some blank space (None (0))
As output (y) I'd like to receive any representation of the x,y coordinates of the given item e.g a couch.
For training purposes I thought of creating a "filled" map and an empty map of the same size (15x15) with just the representation of the given object.
The question:
How I understood ML by now I would say:
- there's no linear relationship between input and output so linear regression is out.
- so are decision trees or forests.
My first Intuition is to create a NN with a flattend floorplan as input (255 neurons), 2 dense hidden layers and a dens output layer of (255 neurons) outputs.
The problem is in a large room with just a bed in the middle, the wardrobe can stand anywhere as long it's not infront of the door and it's near a wall.
So how to deal with multiple correct outputs in ML?
Subquestions:
Is a NN even suitable for my problem or am I missing out other suitable models?
Is my way of preprocessing the data even correct or should the data be represented in another way to get a better result?
Due to the fact that I understood Reinforcement learning as representing actions at any given state it seems that it might be suitable here to train an agent to return all possible positions but there can be many correct solutions, how to teach this to an agent? (Maybe I need a little help on understanding RL)
The algorithm should be expandable: It should be able to give reasonable predictions even if there are more parameters come into play like orientation of furniture or age of the person owning the room to gather intel about the positioning.
Please ignore the fact that it's overcomplicating a problem where no ML might need to be used. It's just for learning purposes!:)
If there is documentation or tutorials I'm missing out I'm not afraid of reading up things myself :) So just a short hint which Model is capable of fulfilling my needs would help me gain a deeper understanding of ML processes :)
Any help is highly appreciated!! Thanks in advance:)