This is a read-only snapshot of the ComputerCraft forums, taken in April 2020.
InDieTasten's profile picture

[General AF] Neural nets in ComputerCraft? A bad idea?

Started by InDieTasten, 19 February 2015 - 02:37 AM
InDieTasten #1
Posted 19 February 2015 - 03:37 AM
Hi, I don't know if someone has experience with pattern recognition and neural nets in general.
So one day I was thinking, it would be kinda cool to have handwriting recognition on advanced monitors. And as I am coming closer and closer to the actual implementation(I'm currently like reading and reading and reading how it works in theory) I don't exactly know, whether a neural net is "efficient".
And if it actually comes to it, I would definitely want to also train the nets in ComputerCraft and bake the net to a single function at the end of the training for speed purposes. But I'm not too experienced with neural nets and maybe some of you have already made something AI like in CC and could tell me if the training would exceed my lifetime? :D/>

Is pattern/handwriting recognition a bad idea to train in plain lua code?
I could theoretically train it in something like Torch or similar and try to export it, but I don't know if thats practical

Are there already neural nets in use of some programs? (haven't seen any myself, but I don't know every program on the platform^^)
Maybe even some frameworks?

Is pattern/handwriting recognition a bad idea to implement in ComputerCraft?
Maybe theres a chance, that even a fully trained system becomes too large(in layers and neurons) that a single execution takes too much time to be enjoyful, but I think training will become more of a question. Most likely to be reached at a level of word recognition(but I'm not at the level of recurrent networks yet)



Besides digit recognition I could do a lot more even simpler stuff. Like differentiate between circles and crosses and stuff. What are your ideas on things like these? Do you think there are other regions, where the application of neural nets would make sense? Some turtly stuff? Prediction stuff for breaking bad encryptions which I see a lot around here? Any other ideas?
Edited on 19 February 2015 - 02:52 AM
Geforce Fan #2
Posted 19 February 2015 - 03:41 AM
They're very possible. You could make one in CC. Heck, you can calculate pi to any digit in computercraft!…
…that is, if you can live… 1,000 years or so?
Jokes aside, yes this is possible, but it likely take years to execute.
InDieTasten #3
Posted 19 February 2015 - 03:48 AM
They're very possible. You could make one in CC. Heck, you can calculate pi to any digit in computercraft!…
…that is, if you can live… 1,000 years or so?
Jokes aside, yes this is possible, but it likely take years to execute.
What if I were to run it on a GeForce card? :'D
I think my question shouldn't be as specific to ComputerCraft, but to Lua implementation. Lua itself is extremely fast, if run on original c code interpreter, than Lua inside java inside jvm.
Like the difference between Lua frameworks written in C to a Lua framework implemented as plain lua source code. I could also use Quickprop instead of classical backprop and all these fancy things. You think I shouldn't try? I mean, I'm not asking to afterwards defend my intention, I'm asking to actually see if it makes some sort of sense. ;)/>
InDieTasten #4
Posted 19 February 2015 - 04:09 AM
I've got some code now for easily instantiating nets of any dimension. I tested with random weights and for a net with 1 input, 128 hidden, 128 hidden, 64 out, and evaluated the outcome in a loop for a test set of 1000. It took about 10 seconds, which is slow, but for 2 layers of 128 nodes it's actually ok I would assume. I don't think I would need this many. Maybe to the point of digit recognition. More wouldn't necessarily make sense to use in ComputerCraft, since writing words on a monitor isn't really readable (even to human :D/>)
HPWebcamAble #5
Posted 19 February 2015 - 06:25 AM
I was thinking about this the other day.

Instead of on a monitor, I thought it would be in an advanced computer, with an area to draw on (like paint, but only one color). When you finish the letter, the computer analyzes it to see what it might be.

There is actually a free keyboard for iOS where you draw the letters and it decides what you want to type based on what you already have typed, and various other things.
MyScrypt Stack - Handwriting Keyboard. Im sure you could find it on the App Store
And heres the website: http://myscript.com/
Geforce Fan #6
Posted 20 February 2015 - 03:07 AM
the issue with doing it on a monitor is the fact you cannot drag your cursor. It would be a very slow process to click each pixel one at a time
InDieTasten #7
Posted 20 February 2015 - 11:16 AM
Oh yeah, true. Haven't thought of that. In terminal is also okay. Kinda sad though, is there a reason why monitors do not have this feature?