- 5
- 68 997
Benjamin James Bush
เข้าร่วมเมื่อ 18 ส.ค. 2011
Marvin Bush at Angaur during WW2
An experiment in using AI generated video from Runway Gen 3 together with voice narration and sound effects from Elevenlabs in order to bring an excerpt from Marvin Bush's autobiography to life. In particular, this short depicts Marvin Bush's experience at Angaur during WW2.
มุมมอง: 187
วีดีโอ
Prompt Engineering, Part 1
มุมมอง 358 หลายเดือนก่อน
Song about a harsh prompt engineer giving advice to a normie. Music generated with Udio. Lyrics created by me. Based on the first part of David Ondrej's prompt engineering video: th-cam.com/video/NBgF8Fi1dNQ/w-d-xo.htmlsi=86fzKEr3t_QiJItX
neural network oscillators in tensorflow playground
มุมมอง 2576 ปีที่แล้ว
Experimenting with the tensorflow playground neural network sandbox to try and make oscillators. You can play around with it yourself at playground.tensorflow.com This video was created as part of an assignment for the "Machine Learning in R" course at UCLA extension. Music is "Container" by Simon Mathewson (attribution share-alike license).
Information Loss of Summary Statistics
มุมมอง 836 ปีที่แล้ว
In the book "The Visual Display of Quantitative Information", Edward R. Tufte gives an example showing that summary statistics are no substitute for visualizing data with scatter plots.
Solving The Eltrut Problem With Evolutionary Algorithms
มุมมอง 68K12 ปีที่แล้ว
A video describing some ideas I had for solving the ELTRUT problem with evolutionary algorithms.
It's great. definitely needs some editing.
Wait, how has this only 13 views?
F'ing skill issue.
Nice video, people still visiting it, maybe you do a little writeup of it somewhere too? Probably your non-coding genes is not analogous, or only a bit, to how it functions in actual DNA. Maybe instead of more dimension, have a linear gene again, but each with a position, and if the x,y is high/low you get four quadrants of that gene? Maybe something like that for rotation too? Gets rid of that N².. For practically doing this particular task not sure if this is best. But then maybe the general idea was the real question here anyway.
This video presents brilliant ideas and makes them approachable to layman - which is why the comment section is full of people who think they can do it better than you (but really have no idea what they are talking about).
you can remove a variable, if instead of if (mode) forward(forwardBy); else right(turnBy); you'd've used forward(forwardBy); right(turnBy); forwardBy = 0; turnBy = 0; or if (mode) forward(num); else right(num); instead. although this kind of optimization may be pointless.
such a great video!
I like how well the two different "chromosomes" used for this problem illustrate an evolutionary problem with real genes (in that it's a problem for the organisms, that is). Your first chromosome was designed simply, but it easily got caught on local maxima because small changes could easily devastate the organism's fitness. This is because the chromosome consisted of a series of commands which were followed to get the final result, which roughly parallels how real genes work. (There's another layer between gene and phenotype in organisms-specifically, protein function-but otherwise, it's a solid approximation.) On the other hand, your second chromosome design was tailor-made for the problem at hand, including a 1:1 map between genes and the problem space, loosely analogous to an organism which literally had separate sets of genes for growing each of its body parts (ie, LEGO Genetics). This makes it harder for the algorithm to be caught on local maxima, which not only dampens the effects of mutation but also allows more and larger mutations to enjoy their beneficial effects without incidentally destroying everything that evolutionary history has built for it. A world where genetics worked more like that, with genomes designed from the ground up to be safe and flexible and allowing for maximum evolution, would be a world with biology that _wasn't_ riddled with weird evolutionary flaws that would be too costly to fix. The idea of using an evolutionary algorithm to optimise (parts of) the chromosome design of your main evolutionary algorithm is also interesting. Obviously, there is no way that real animals with their clunky linear genes could evolve some way of optimizing their genetic structure without incidentally dying because all of their proteins are coming out wrong, but a genome which is designed differently potentially could. Funny how the Intelligent Design folks don't pick up on this sort of thing. If we were designed, we were designed pretty lazily.
"We'll be discussing in my next video" - Never posts another video, lol...
This is absolutely brilliantly explained. The mouse on screen and motion and the way you broke down your discussion and argument is incredible. After having watched many evolutionary and neural network videos, I can say that most are less than half this long and less than half as informed and clear.
You are party to the machine apocalypse! I hope you're happy with yourself!
Great and very instructive. i loved how you dealt with the rigidity of code with a 2D chromosom from which you derive code, it gave me lots of ideas ! thanks !
Wow, that is really cool! ...pretty sure 3D chromosomes is overkill, though. I have an idea: how about each gene is only allowed to be used once per drawing? What I'm saying is, for any given attempt, once the turtle reads a gene, it fades out. Then, if the turtle lands on it again, it could...how about just execute the last instruction again? Or... just keeps going one more space? Hmm...sounded a lot better until the very end there...doesn't even help with the "two squares" issue... ...you know, suddenly, 3D chromosomes don't seem like such a bad idea...
I have to be harsh about this one: LOGO corpse is long cold; can we please stop humping it already? Could this project be any more bland and basic than it already is?
nice!
ogm; you have added more dimensions, and there is some very high complexity. u r going to run out of nucleotides to make yur chromosomes.
I really like your concept of "junk DNA", I like how you speak about how to setup your genes and all. I played a bit with genetic algorithm and the really bad mutation is always my main problem. Most mutation or reproduction ends up being really bad compared to the parent, so my population rapidly converge towards my first "good" DNA, which is not that good really since it didn't evolve much. Most videos mostly talk about the algortihm itself without going into details, mostly not talking about what their genes looks like. Good video, thank you.
It's funny because I've been a programmer for about 15 years now and I remember doing the logo turtle in elementary school and I HATED it. Probably because it was finite, the magic of programming imo is that it has rules and it keep going forever. Logo turtle is more an hardcoded thing than a program, but I guess you have to start somewhere, but for me it totally failed to make me grasp programming.
Man, your faith in humanity is way too high, dont put your cellphone number on a youtube video :P
For the linear chromosome model, would some of the problems be fixed if each gene encodes both a move and a turn?
I think evolutionary algorithm should be renamed to creation algorithm since there is no such thing as evolution without creationism. the creator had to input data for it to do anything at all.
I can't tell if this is ironically stupid or actually stupid, could you please clarify this point.
+Alex Terzaghi yeah, we need the answer to that question...
Alex Terzaghi the only stupid is you. it is creation since the program was created, the data inputs for what the simulations should be doing or looking for is created. even the graphics is created. there is no such thing as evolution. Even the hardware is created and since its a computer it will always have a pre-defined set of outcomes since computers can not create random numbers. There is no such thing as evolution in computers simulation, it is called Creationism.
MrPepsicola123 The algorithm is LITERALLY the theory of evolution.
moonorc so its false.
Your linear chromosomes worked perfectly fine. Unfortunately the purpose of natural selection is to create organisms that survive, not produce perfect organisms. This is why you could only achieve command lines that were almost right, but never a perfect one.
No more videos? I was hoping to see the results of the experiment. Good work, though.
so.... almost 5 years later, where's that "future video"?
Well that locks like its gonna need a lot of calculation power why not go a simpler path start with linear DNA of length 2 add a mutation that adds DNA length force the turtle to draw each odd move and to not draw each even move. make the fitness function count the tiles the turtle has moved over by 50% and those untouched by 50% now count the correctly coloured tiles. that should be fairly simple ;)
The problem presented at 17:12 reminds me of the puzzles in SpaceChem
myBrain.exe stopped working!
To deal with the infinite loop problem, have you considered having two instructions per site, so that if a site is visited more than once it reads the second instruction the second time? To me it seems that this would avoid infinite loops. It would require a rather simple procedure to reconstruct the LOGO instructions regardless of this added complexity. Loved the video though, you make me want to change field :)
Is there any particular reason why the turtle couldn't stop one pixel early and pick up a new set of commands? I mean, it seems that given N pixels which are active on the grid, there are at most N-1 commands required to move a turtle to reach each active pixel.
this is certainly a more elegant solution, especially if you visit a cell n times you get n different directions
while having mathematical merit, you will never be able to optimize a system by higher abstraction planes, as they always use more performance. the way to go to optmize a computer program is to run a genetic algoritm on machine code.
I'm 12, why the fuck am I here?
learning!
There is no too early. ... O.K., there is :D but not as much as one might think.
im 11 and im intrested
I remember how gangsta I was when I cursed as a 12 year old.
You just *had* to use the F word in a comment on a college presentation...
I think, one could also use a changing color in the Master bitmap and the pen, in order to prevent a local maximum.
what if each gene was a position, along with information of whether the turtle should draw in that move or not? That way, if you mutated a gene, it wouldn't have incremental changes to the result, as long as instead of using the crossover method to pass down the parent's information, you used random genes in random positions from each parent. I'm a noob so i might not know what i'm talking about but it's an idea. If having few moves was part of the fitness function, you could also have the advantage of generating algorithms with a low memory footprint. If a you had an "off chance" of adding a gene with random information to a child, you could have an unlimited number of moves. I'm not sure about anything anyway.
I think the point of this algorithm is to recreate the brush strokes, not copy the image.
Well, if each gene was a position, it could still be a "brush stoke". You just needed to translate the point information to data about direction and length of the stroke. Moreover, if you wanted to make it evolve to draw the image in the minimum amount of strokes, you could put efficiency on the fitness function. No?
Paulo Andre Azevedo Quirino -- Oh, you mean having a destination rather than a direction and length? That would effectively be the same thing, but it's clearer.
Yeah that's what i ment :P thanks.
Regarding the problem of performing recombination of 2D and 3D chromosomes, perhaps you could implement indexing with a Hilbert space-filling curve or a similar space-filling curve to map the genes to a linear chromosome. Then you could simply use linear recombination. Many space-filling curves preserve the spatial (sequential) relationships of their indices (in this case, genes).
Instead of encoding more in the genes to battle that 'dramatic' effect of small gene changes, why not rework the fitness function? Those two zigzag paths ARE very similar if you evaluate similarity based on progressively matching parts of the image under rotations and translations. The less parts are required the better the fitness. You could also try breaking the problem down into steps where the first step involves genetic generation of instructions to match at least part of the image and the second step requires stitching together the results of the first problem, genetically or otherwise.
Amazing!
And i thought i am smart... i hardly got it! ^_^
First video I ever found really explaining evolution in computers. I had to pause the video at 18 min. I got so deep in thinking. I made my own program that simulates evolution. It works. It's briliant too. I'll eventually get into more complex AI. but ohhh man! Thank you for helping me on the first step.
+deleteaman although my DNA was only 1 dimensional
+deleteaman All that matters is that it's working ^^ The simplest you get it to work well, the better :)
lol I wish I could say it was working. but the program is flawed.
Rather than using a predfined number of moves, why not allow the number of moves to evolve as well.
That's what i thought, too. Though i'm not sure how that information would be passed down from parent to child.
I've thought of this too, and it could be useful if implemented effectively. However, I can't think of a way to do so.
Here's an idea: You could give the turtle an "energy" value. Each gene/cell on the grid has an energy cost that is subtracted from the turtle's energy when the turtle moves to (or from, maybe) that cell. When the turtle's energy is gone, it stops. The energy value for each cell could then evolve independently.
@@kamoroso94 you could probably just throw it in and randomly lengthen/shorten by one/randomly select which for sexual reproduction. At first sight, it doesn't seem this would be hugely problematic?
13:23 the turtle moved in the wrong direction.
I can remember using logo in school computer club back in the 80's. It was bundled with the apple IIe.
+Mick Wright Do you mean Terrapin Logo? On of our Teachers still uses it :) (Germany)
Not sure which one... hey it was decades ago...
just a suggestion, why not try adding to a pixel's red, green or blue component to a maximum determined by the pen down (eg. if less than 127, add 16 to red) and either play the Dawkins bimorphs style artificial aesthetics OR try match the Mona Lisa ? etc. awesome presentation, I love this field. thanks heaps.
Its beautiful.
Why not use another movement type where the turtle jumps? That way there is still only a 2D space regarding the genes.
Where can I find the relating videos you refer to? I would very much like to watch them!
This was dope af. Good job!
Was this video narrated by a voice generating software developed through evolutionary algorithms similar to this method?
Maybe you could select every single gene as a number (or array), made by 3 numbers combined (pen status, rotation and line lenght), treated as a single number, example: 1 bit for pen status, 9 bit without sign for rotation, 6 bit without sign for lenght = total of 2 bytes of data these 3 values might be combined as one number. You can then generate a number of random genes to build your chromosoms, and build your base population. This could be considered as a "basic move". I will follow this path, maybe also adding 2 coordinates for the starting point. an array of these 5 numbers should form my single gene, a chromosom made by M of these genes randomly chosen, a population of N chromosoms could then apply for the fitting function. Depending on the size of each of the 5 parameters you could have a usable number of combinations, as an example, choosing 1 byte for each coordinate, supposing to add the 3 dimensions provided above, your single gene should have a maximum of (2^32 -1) 4294967295 different combinations of values. You can even limit more the number of combinations by limiting rotation and lenght values or decide to use 2 complement to generate negative values. The crossover from two chromosomes in a population, should be performed by swapping the values of these 4 bytes together from one chromosome to another and create new chromosomes. Than you could apply some randomic genetic alteration on single bits of the gene numbers. Does it make sense? Sorry for my poor English. Kind regards.
17:31 wuthering about 4D XD
Benjamin, what did you use to create graphics?
It's usually much easier and faster for the programmer to make graphics by himself rather than searching for a soft to use.
+fritt wastaken It's usually faster to make up your own question and answer it rather than read and answer it, he asked what he used to make create, not where he got them, idiot.
+fritt wastaken Thats like someone asking "did you draw that in MS paint" and you replying I drew it myself lolwut?
Ghost Emblem Well I could've draw it without any soft right? So there's the same.
Purple Ice It's usually faster to make up your own message and start to shittalking rather than understand it? Lol I said nothing about "where he got them"
Gave phone number and email on a youtube video. RIP
Rooket6 People might confuse him with the other 'Bush'...
+Bungis Albondigas Nascar driver Reggie Bush?
+Rooket6 i hope you realise that this is apart of his portfolio... thats how you get a job.