see this video kzitem.info/news/bejne/pWaOqqCasHWLZ3o
@spinLOL533
4 жыл бұрын
agreed
@rayenaouadi3190
4 жыл бұрын
Oh my god thank you so much dude, I've understood the theory behind NEAT for years but I have never known how to properly execute it until now, thanks dude
@CamiloGomezDev
5 жыл бұрын
Dude, this is amazing, you're an excellent coder. This series is very useful
@misaeljaime9695
3 жыл бұрын
i guess it is kinda off topic but does anyone know a good place to stream new series online ?
@zaynelangston6069
3 жыл бұрын
@Misael Jaime I dunno I use flixportal. just search on google after it =) -zayne
@misaeljaime9695
3 жыл бұрын
@Zayne Langston thanks, I went there and it seems like they got a lot of movies there :) I appreciate it!!
@zaynelangston6069
3 жыл бұрын
@Misael Jaime you are welcome =)
@WalrusDesign
6 жыл бұрын
*NEVER FEAR, REDDIT IS HERE* I'm so sorry to hear that you got demonetized. I really like your content (I dabble in coding), and I'd be willing to support you through patreon. Regardless, I subbed, can't wait to see whatever cool shit you decide to produce. Papa Bless...
@S2841
4 жыл бұрын
Any else notice that at 10:00 the reply on the neat yahoo group is from Ken Stanley, which is at least the name of the inventor of the NEAT algorithm?
@TheFrankvHoof
4 жыл бұрын
There's an extra connection from 5->4 in your child, probably because you're treating enabled & disabled connections as non-equal (and thus add both the disabled connection from the fitter parent, and the enabled connection from the other one)
@teenspirit1
6 жыл бұрын
while programming add connection mutation, why do you check if connection already exists? why not just subtract existing connections from a binary permutation of nodes and sample from that? e ∈ P(N, 2) \ C
@uonliaquat7957
3 жыл бұрын
But your Nodes doesn't have activation function, normally neural network does contain activation function on each node? So Do you think a network from population would be able to evolve where it could be used to output a complex non linear function?
@jeanmarabou9774
3 жыл бұрын
Haven't watched whole yet, but at 6:50 there's a difference from the NEATs from the paper: You put a boolean "is reversed" to make sure the direction of the link is forward. However, in NEATs there can be (and are) recursive info, and some links go the reverse way, if I read that paper properly
@johannes_7922
3 жыл бұрын
That’s the reason I’m here, I wanted to see how to implement the computation of recurrent connections. I got this ordered graph, what is the order of calculating the nodes? The only way I got this to run by now, is calculating every node in a loop until it has converged...
@scottk5083
3 жыл бұрын
This is indeed what I have been looking for. I thank you so much for this. Liked and subbed
@GrowlingM1ke
5 жыл бұрын
At 5:50 there is one more check you could have done. To see if the node1 == node2
@dewamscvbvx
6 жыл бұрын
I have a question. Say I have 2 genomes with 1 input and 1 output nodes. If I mutate both genomes to add a new node, will the node_id would be {1,2,3} for genomeA and {1,2,3} for genomeB or the node_id will be incremented globally like {1,2,3} for genomeA and {1,2,4} for genomeB?
@Hydrozoa
6 жыл бұрын
It is incremented globally. This is what the innovation numbers are for.
@dewamscvbvx
6 жыл бұрын
So, If I do a crossover for the 2 genomes, will I get a neural network structure of 4 nodes since the node_id is incremented globally which will result {1,2,3,4}? I'm talking about the node_id not the innovation numbers of the connections by the way.
@Hydrozoa
6 жыл бұрын
Both connections and nodes use innovation numbers to keep track of the origin of the gene. Crossing over {1,2,3} with {1,2,4} will result in the child having either {1,2,3} or {1,2,4}, depending on which parent had the fittest genome. When both parents share a gene, the offspring will get that gene from either parent randomly (these are called matching genes). However, when crossing over genes that are not shared between the parents, disjoint or excess genes, the child will only get the gene from the more fit parent.
@dewamscvbvx
6 жыл бұрын
Thank you for the response! I'm loving the series so far keep it up! I have another question. When doing crossover for 2 genomes. It was stated in the paper that matching genes will get inherited randomly from either parents. My question is, do we inherit the whole matching genes from one of the parent? or we inherit the gene one by one, meaning, we iterate through each of the matching genes and randomly pick a parent for that corresponding matching gene?
@Hydrozoa
6 жыл бұрын
Neil Francis Nahid Thank you :) We inherit the genes one by one. If it's a matching gene we randomly select a parent for the gene, and otherwise we take the gene from the more fit parent.
@tacofodder5313
6 жыл бұрын
Q1. In your code, you never check if parent2 (during crossover) has more nodes. what if parent 2 has more nodes? Q2. from the paper, excess and disjoint genes are taken from both parents. However, in your code you only take excess and disjoint genes from parent 1. would this not effect the outcome? I am a newbie when it comes to nets. Sorry if I missed something.
@Ynno2
6 жыл бұрын
In the paper it says "In composing the offspring, genes are randomly chosen from either parent at matching genes, whereas all excess or disjoint genes are always included from the more fit parent". In the caption for the example diagram from the paper it says "In this case, equal fitnesses are assumed, so the disjoint and excess genes are also inherited randomly.". At this point (having only watched part 1) it doesn't look like Hydrozoa's code handles cases where the parents are of equal fitness.
@zacmg
6 жыл бұрын
In reality, I think it's unlikely that the parents will have exactly equal fitness.
@126sivgucsivanshgupta2
4 жыл бұрын
what is the use of random r ? sorry i dont know java properly and am trying to follow in python
@Hydrozoa
4 жыл бұрын
It's just an object that can spit out random values from a seed.
@126sivgucsivanshgupta2
4 жыл бұрын
@@Hydrozoa thank you
@318volk
6 жыл бұрын
Do anybody knows what is the latest neuroevolution framework with augmented topology ? ( like a hyper NEAT). I’ve found only this (eplex.cs.ucf.edu/neat_software/#HyperNEAT) but it had been made more 7 years ago.
@revimfadli4666
2 жыл бұрын
Seems like real-time Evolving Substrate HyperNEAT with Link Expression Output is the most advanced version so far. Perhaps with LSTM or UGRNN/JANET gated nodes
@JohnPrice1
4 жыл бұрын
Where is the code? Github? Thanks!
@aydinahmadli7005
5 жыл бұрын
excellent, thank you very much, u saved my exam :)
@llljjj007
6 жыл бұрын
Very good explanation but please don't put music into your next tutorial videos, it's distracting.
@sankalpbhamare3759
5 жыл бұрын
See this video kzitem.info/news/bejne/pWaOqqCasHWLZ3o
@PROJECTJoza100
5 жыл бұрын
@@sankalpbhamare3759 stop man
@omarimai7428
5 жыл бұрын
@@sankalpbhamare3759 yes, stop !
@Luka-bc6xx
6 жыл бұрын
Why is there connection between node 4 and node 5 in the child genome while there is non in the paper? I did get the same result doing it in C#... That connection is expressed in Parent 2 but not in Parent 1. As we are taking Parent 2 as most fit parent shouldn't it stay expressed?
@Ynno2
6 жыл бұрын
Because the offspring genome isn't deterministic. Both parents have that innovation (innovation #5), but it's enabled in parent 1 and disabled in parent 2. From the paper: "there’s a preset chance that an inherited gene is disabled if it is disabled in either parent". In this implementation, 50% of offspring will have the 5->4 connection and 50% will not. Also in this case he's taking parent 2 to be more fit, but in the example diagram from paper the parents are stated as being of equal fitness. That's why in the paper it inherits excess and disjoint genes from both parents.
@Luka-bc6xx
6 жыл бұрын
Ah yes, its equal fitness in paper. Thanks.
@FerMJy
5 жыл бұрын
you are amazing.. thanks for your contribution
@bastiengermond
6 жыл бұрын
When creating a new connection, it's possible to have something like Output -> Output or Input -> Input ? It's seems to me weird but maybe I'm wrong.
@Hydrozoa
6 жыл бұрын
If that is possible, it's not correct. Those should be excluded. Maybe I did not spot it in this video. It is fixed in the codebase going forward.
@bastiengermond
6 жыл бұрын
Ok, thank you :D
@f3rdi881
4 жыл бұрын
I get all your code, I just don't know how you produced the .png of the NN. That's the impressive part lol
@Hydrozoa
4 жыл бұрын
For the windows I used a part of the test-package called GenomePrinter.java. You can see the source code here: github.com/hydrozoa-yt/hydroneat/blob/master/src/com/hydrozoa/hydroneat/test/GenomePrinter.java Edit: I realize now you're talking about the PNGs. You can see the source code for that here: github.com/hydrozoa-yt/hydroneat/blob/master/src/com/hydrozoa/hydroneat/test/LegacyGenomePrinter.java
@paulojorge1997
5 жыл бұрын
Music name? :)
@royvivat113
5 жыл бұрын
The child was wrong at the end. There was an extra connection from 5 to 4
@temisegun8631
5 жыл бұрын
so helpful, thanks a lot !
@ahmidahmid9303
6 жыл бұрын
great work
@StanisLoveSid
6 жыл бұрын
Could you push this code to github, please?
@Hydrozoa
6 жыл бұрын
Source code is available in the description of part 3
Пікірлер: 57