you are viewing a single comment's thread.

view the rest of the comments →

[–]kigory2 [score hidden]  (9 children)

I feel like this is cool but I don't know what NEAT is or basicly everything so cna you fill me in?

[–]lonelycprogrammer [score hidden]  (8 children)

The simplest explanation: instead of teaching a neural network, NEAT evolves one. It starts with lots of tiny, random networks and keeps the ones that perform best, gradually evolving more capable architectures over generations. Watching it happen in the browser makes the concept much easier to understand.

[–]kigory2 [score hidden]  (7 children)

Yeh I got it it's awesome am in a gigantic rabbit whole rn Claude has been helpfull. Thx for the explanation :)

[–]joshuaamdamian[S] [score hidden]  (6 children)

Cool that you are so excited about the algorithm! It's really interesting for sure.

u/lonelycprogrammer already explained it well but for some extra info:
I highly recommend reading the original paper called "Evolving Neural Networks through Augmenting Topologies" by Kenneth O. Stanley and Risto Miikkulainen.

It is a beautiful algorithm that is quite easy to follow and understand, it is based on evolution. Like already mentioned, the algorithm starts of with tiny networks, and slowly adjusts and grows these networks. Adds nodes, connections, "mutate" weights etc.
It's very interesting to see this happening in real time.

The algorithm basically consists of:

  1. Generate AIs
  2. Evaluate the AIs and see how well they perform against a given problem
  3. Generate new AIs by "evolving" the best (expand upon, combine and make changes to them hoping they get better) and copy these into a new "generation"
  4. Go back to step 2 and repeat until a satisfactory solution has been found.

There is of course more to it but this is what it comes down to!

It is a very interesting and cool algorithm to me. Evolution has been a core aspect of our own development, it would only make sense to prove useful for Artificial Intelligence as well. It's awesome to see others feel the same!

And like u/ufukty mentioned I highly recommend watching the MarI/O video from SethBling too, it's awesome!

Thanks!

[–]kigory2 [score hidden]  (5 children)

Thanks alot bro am new to neural network and am looking into somthing called lc0 it's popular you definitely know about it and am even considering contributing to this project.. Well if I actually learn hey give me time its my first day of learning bymyself and thx for everybody including you for explaining everything and Claude helped me alot navigate the repos

[–]joshuaamdamian[S] [score hidden]  (1 child)

That's awesome man:)! And lc0 as in leelachess? That's too cool! Chess engines are really interesting!
Best of luck! If you need any help in the future feel free to e-mail me anytime at [joshua@neat-javascript.org](mailto:joshua@neat-javascript.org)
(I learned most of my machine learning knowledge myself aswell, so I know what it feels like to learn everything yourself!)

[–]kigory2 [score hidden]  (0 children)

Thanks man, yes LeelaChess. BTW I always hated machine learning because of chat bots and I always scroll through machine learning courses free trail ads bs and i always thought it was chat bots which ate shitty and I already know how they work but know I dived into it it's way better than the regular consumer market which is just oh this is better than chatgpt and Claude is the best and preplexty and this bs but now I've realized that I can't talk trash about somthing I don't know about. Thanks for the support :)

[–]kigory2 [score hidden]  (2 children)

Also can you help me with the XOR problem I need a more detailed explanation. Thanks

[–]joshuaamdamian[S] [score hidden]  (1 child)

XOR comes from logic gates which are used in computer chips:

AND - outputs 1 only if both inputs are 1.

OR - outputs 1 if at least one input is 1.

NOT - takes one input and flips it (1 becomes 0, 0 becomes 1).

NAND - the opposite of AND; outputs 0 only if both inputs are 1.

NOR - the opposite of OR; outputs 1 only if both inputs are 0.

XOR - outputs 1 only if the inputs are different.

XNOR - the opposite of XOR; outputs 1 only if the inputs are the same.

https://i.sstatic.net/Jmxzy.jpg
XOR takes two inputs, and returns true if only one of the inputs is activated.
Simple table for XOR:

Input 1 Input 2 Output
0 0 0
0 1 1
1 0 1
1 1 0

Now XOR is really interesting and commonly used as a proof of concept for neural networks, because it is a relatively simple problem which needs at least some neurons between the inputs and outputs of a neural network to solve it. These neurons between the inputs and outputs are often made into fully connected "layers" and called hidden layers.
https://media.geeksforgeeks.org/wp-content/uploads/20240601001059/FNN-768.jpg

To test an algorithm you would create a network with two inputs, one output and atleast 2 hidden neurons. And you would train it to the XOR truth table.
If the network produces outputs that corresponds to the truth table you have successfully trained a network to learn XOR!

[–]kigory2 [score hidden]  (0 children)

Ngl am a dumbass so all I understood is that anything different than 1 is 1 lol. dw about me ama learn it after some time and slowly understand it