Sign in to follow this  
phi

Which Neural Network would be most suited?

Recommended Posts

Hi, I'm looking into neural networks but am not sure what type I should be using for my problem. I have 10 images, and the user clicks on them in a particular order (e.g. 1, 8, 3, 10, 5....). They then do it again, but slightly different. After a few iterations, I want the program to choose what order they're most likely to choose. Assuming the number of images increases to 10000, I want to extrapolate the pattern to have the NN decide what order the user would select within the 10000. Also assume the images have tags that show similarities and differences between them which is used to monitor the pattern of image selection. What type of NN would be best in this situation? Thank you

Share this post


Link to post
Share on other sites
Quote:
Original post by phi
I'm looking into neural networks but am not sure what type I should be using for my problem.


Then you probably shouldn't be using neural networks. ;)

Quote:
Assuming the number of images increases to 10000, I want to extrapolate the pattern to have the NN decide what order the user would select within the 10000.


If all you're interested in is this order, then surely taking the average ranking for each image over all trials will give you what you ask for. (eg. Picture 7 appears at rank 4.5 out of 10.) However, the values will tend towards the central value and themselves will only really be useful as ordinal data.

However, if you wanted to find the most likely successor image for each image, ie. predicting which comes next at each step, that's more practical. But again it doesn't require neural networks, and is probably more suited to something like Markov chains I think. Not to mention that you'd need a lot of training data or quite distinct patterns before you could get useful results out of a 10,000 element choice.

Do you absolutely need to use neural networks for this? Or is it more important that you get the task done?

Quote:
Also assume the images have tags that show similarities and differences between them which is used to monitor the pattern of image selection. What type of NN would be best in this situation?


This implies that what is important about the images is this set of tags. If that is true, it is reasonable to expect that your algorithm would, given an image, guess what sort of tags it would expect from the next image you choose. The neural network, if you used such a thing, would presumably take a set of tags as input and a set of tags as output. I get the feeling that this wouldn't help you much, since I assume there is some method to the user's choice and that it's probably predictable anyway.

Share this post


Link to post
Share on other sites
Hi,

Thanks for the reply. Rereading my original question made me realise some ambiguity. Hopefully, I can clear this up lol.
The order of the image is irrelevant, but the tags are important. So the tags I have for the images are "cars, actors, films, music" (arbitrary example). Each image would fall into such a category. Now, I want to see what images the user tends to click on. They may click on 'cars' and 'music' often, but 'actors' less so. Therefore, when more images are added, I want the AI to predict which image it should display based on previous records of what the user has been doing and in what particular order. I'd rather use Neural Networks for learning purposes. In an ideal world, would you say the Markov Chain would be better for such a task? What if there were more complicated factors inputted on top of the image types chosen such as the user's mood etc... (human inputted data)?

Thanks

edit: I'm worried that averaging would lose the order of images shown. It'll only give the number of occurrences as opposed to when. (I may be wrong)

Share this post


Link to post
Share on other sites
NNs aren't really spectacular at doing time-based pattern recognition things either, however. Now, this is order-based which is a little easier to quantify than all out time-based, but still. How much of a sequence do you want to track? 5? 10? 50? You can add the "click sequence number" as an input. Or even a "click sequence range" such as 1-5, 6-10, 11-15. It depends on how granular you want to get. *shrug*

I'm still not convinced this is the best route.

Share this post


Link to post
Share on other sites
Assuming I didn't have to use neural networks, what would you recommend? Effectively, the system is learning that the user likes certain types of images and therefore will guess what they will like in the future. I've been looking at the Markov method as it's probability based. This does look like a convincing method (i.e. 10000 images all starting with 0.0001 chance of being selected). As the user selected more and more of 'cars' the probability for that increases and the other section decreases.
How are NNs used in forecasting financial situations? I assumed they take previous information and extrapolate?

Share this post


Link to post
Share on other sites
If you want to predict the probability of a certain picture being chosen given the previous N selected pictures, I'd recommend using Markov Chains. They seem particularly suited to this task, especially considering how the data is being gathered.

Share this post


Link to post
Share on other sites
Concur on the Markov Chains. But even just simple weighting, as mentioned previously, would do some serious damage to the problem. Especially if you can get fancy with decay times on the weights or something. But looking into ol' Markov would do you some good.

off-topic @ Stephen R: Dude... your user rating is 1337! That's so cool!

Share this post


Link to post
Share on other sites
Quote:
Original post by InnocuousFox
off-topic @ Stephen R: Dude... your user rating is 1337! That's so cool!


also-off-topic: I think I may have stopped posting here for so long for fear of someone rating me again [smile]

Share this post


Link to post
Share on other sites
Quote:
also-off-topic: I think I may have stopped posting here for so long for fear of someone rating me again
Bwahahaha.

Quote:
(Phi)
How are NNs used in forecasting financial situations? I assumed they take previous information and extrapolate?
Meh, there's mathematical models that are useful for forecasting. My mind wouldn't jump to NNs for such forecasting.

Share this post


Link to post
Share on other sites
Quote:
Original post by phi
How are NNs used in forecasting financial situations? I assumed they take previous information and extrapolate?

I believe they have to have discrete periods before the present moment. e.g. 1 day, 2 days, 5 days, 10 days, 30 days, etc.
Not sure.

Share this post


Link to post
Share on other sites
Ah I see. Well, I've delved deeper into Markov chains and it seems that this is the way forward. It's quite difficult to find practical information on Markov chains as a lot of it is academic. Does anyone have good resources (esp. introductory) which are more programming orientated? I can find some code snippets, but preferably an explanation so I can run with it and do my own thing.
Thanks.

Share this post


Link to post
Share on other sites
Quote:
Original post by phi
It's quite difficult to find practical information on Markov chains as a lot of it is academic.


What would you consider is 'practical information'?

Share this post


Link to post
Share on other sites
Something like this:
http://www.ai-junkie.com/ann/evolved/nnt1.html

but related to Markov Chains. A lot of examples are very mathematical, which is good when it comes to understanding, but difficult to implement efficiently. I might be asking for too much, in that regards, but if there's something more programming orientated than "proof" orientated, that would be good.

Thanks for the help.

Share this post


Link to post
Share on other sites
This is kind of funny, because it looks like you asked a very similar question on NNs almost 2 years ago, and were redirected towards Markov methods back then too.

It's true that Markov Chains - as indeed with most AI methods, to be honest - are often described in complex mathematical terms with the emphasis on proving effectiveness at the expense of simplicity.

In the article on Markov chains, there's a load of mathematical wording which isn't that important to you. What is important is this line: "Markov chains are often described by a directed graph, where the edges are labeled by the probabilities of going from one state to the other states." When a user chooses one of your images, they are in a unique state, specific to having just chosen that image. When they choose the next image, they move to that state. The probability of moving from one state to the next is thus the probability of choosing one image after a given previous image. So, you need to implement one state per image, and each of those states must store the (relative) probability of moving to any of the other states.

Share this post


Link to post
Share on other sites
Thanks Kylotan! I completly forgot that I had asked the question before. I had this idea at the beginning of uni, but work got in the way and it found it's way into ether. However, I now have some time and decided to ressurect it.
I noticed that the Markov chain only takes into account the previous image. If they were layered, would I be able to have it remember a previous chain of images rather than just the one? For example, a user clicks CAR ---> ACTOR--->ANIMAL but another time they click FILM--->ACTOR and the system would predict "ANIMAL" since it was previously followed straight from ACTOR and completly ignored the CAR/FILM. Is it possible to remember a chain of states rather than the last one?

Share this post


Link to post
Share on other sites
The Markov chain by definition only takes into account the previous 'state' - you'll see references to that in the technical description. However, you get to define what constitutes a state however you like. So, that state could in fact be the previous 2 (or more) images, should you so choose. So rather than looking at the 'actor' state and predicting 'animal', it would look at the 'film->actor' state and predict whatever else was there. Note that this increases the amount of potential states however, necessarily rarifying your training data somewhat, and so you may want to use some sort of optimisation to aggregate states together.

PS. What uni are you at?

Share this post


Link to post
Share on other sites
It's finally clicked! :D Thanks for the help. I'm sure I'll be back lol, but I think I'm on some sort of path for now to do some own work. I'm at Nottingham Uni, which I just realised is in your hometown!

Share this post


Link to post
Share on other sites
Quote:
Original post by Kylotan
What is important is this line: "Markov chains are often described by a directed graph, where the edges are labeled by the probabilities of going from one state to the other states."


More correctly, that should read: there is a one-to-one relationship between a first order Markov chain and a finite state automata. As Kylotan noted, one cannot easily represent a k-th order chain with a finite state automata (and one probably shouldn't try for a non-trivial problem).

Cheers,

Timkin

Share this post


Link to post
Share on other sites

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now

Sign in to follow this