I was recently urged to start some kind of research based project. After thinking for a time of what I would like to do, I came to the conclusion that creating an Artificial Neural Network (just a simple one or several simple ones) would do the trick.

My knowledge of the subject is not great. I have only known of the term for about a year, maybe a little longer. I have never taken a CS or EE specific course. I have, however, read a handful of articles online and as well the book "Chaos Under Control: The Art and Science of Complexity" which had a rather excellent section on the subject. I know of some of the theoretical abilities of ANNs, such as the proof that they are Super Turing as opposed to just being Turing complete. A few years ago, I actually sketched out a model for an ANN when a friend of mine challenged me to make AI. At the time, I had no clue that it had already been an extensively studied model.

All this past summer, I have been working with cellular automata, studying insects and their movements, trying to pin down some kind of "ruleset" that I could work with to emulate a small organism, so naturally an ANN would be a good place to start.

Problems:
As stated above, I have no background in electrical engineering or computer science (aside from my ventures in calculator programming). My personal goal for a project like this will be to take the theoretical knowledge I have and actually apply it. I want to actually wire it mostly from scratch, making physical nodes connected with actual wires. I will need to know what components I will need as well as costs. Then, I can figure out if this is a project I should attempt. The school will give a grant of up to $750 and will expect a presentation on the topic as well. (it will also count for credits, of which I can possibly apply towards an EE minor)

Project Ideas:
-Bugs: These could be small little robots that have basic sensors and movements. I even thought of making a neural network that controlled a K'Nex car (with the ability to steer and whatnot) I could possibly make several of the simple "Bugs" and have them interact within a controlled environment.

-The Composer: This would be an ANN that you could train to make original music according to what your preferences are.

-Strategist: This would be an ANN that could learn how to play simple games like Tic-Tac-Toe

Right now, I feel like I would not be able to do this at all. However, I know that there are experienced people on Cemetech that might be able to help. I know how to research the basic information that I need, but applying it is where I will have trouble. So does anybody have any ideas, concerns, or anything else they would like to share?
Well, somehow I managed to not post in this topic at all, after suggesting that you posted it. Luckily I caught it when we were looking for your EnG topic. Anyway, I think it's great that you want to implement this ANN in hardware, as the vast majority of people choose to write their NNs in software. To be honest, you're probably best off testing in software first, as a simple feed-forward neural network with back-propagation learning is not that hard to implement in something like C or Python. I'd be happy to help as much as I can with both the software and hardware aspects of this, of course, and I know that several others of us around here have played around with neural networks. As far as a hardware implementation, doing it with something like an FPGA would be a good compromise between hardware and software. Doing it purely with logic is rather challenging. I know of an ancient ANN that used potentiometers and motors to control and read the network weights, but that's not exactly what you want. Laughing
Okay, thanks! I was thinking about writing a program for my calculator, but I really do need to get experience with other devices and languages. What is the most efficient way to go about this, writing some software? Should I use an adjacency matrix with appropriate weights (instead of 1s and 0s)? Or are there more efficient algorithms?
I'll give you the same advice I gave to a student I was working with this past summer, whom I taught the basics of implementing distributed neural networks. I would definitely start with a neural network with one hidden layer and one output that either attempts to perform linear classification (take input vectors and place them in one of two classes) or linear regression (take input-output pairs, ie, (x,y) pairs), and train the network to learn the general equation, so that any arbitrary input x will produce a nearly-correct y value. You can do that with a series of lists or with a matrix. Although it's more efficient with matrix math, I prefer people start with lists or even discrete variables for the weights, as it is much easier to see how the connections work and which parts of which layers affect which parts of the next layer (during feed-forward) and the previous layer (during back-propagation).
Xeda112358 wrote:
I know of some of the theoretical abilities of ANNs, such as the proof that they are Super Turing as opposed to just being Turing complete.


Uhhh, [citation needed]. As computer science theory guy, that sounds incredibly fishy.
  
Register to Join the Conversation
Have your own thoughts to add to this or any other topic? Want to ask a question, offer a suggestion, share your own programs and projects, upload a file to the file archives, get help with calculator and computer programming, or simply chat with like-minded coders and tech and calculator enthusiasts via the site-wide AJAX SAX widget? Registration for a free Cemetech account only takes a minute.

» Go to Registration page
Page 1 of 1
» All times are GMT - 5 Hours
 
You cannot post new topics in this forum
You cannot reply to topics in this forum
You cannot edit your posts in this forum
You cannot delete your posts in this forum
You cannot vote in polls in this forum

 

Advertisement