As someone who also hand-coded a neural network implementation, forward and back prop as well as an RNN in C, yea "raw numpy" is a joke.
Something I've always hated about people that say "why do I have to write a backprop when TF does it for me?"
Here's why: you go to a company, they want you to incorporate machine learning into their c++ engine. Have fun using numpy, you said you knew machine learning right? implement backprop for me, you can do that right?
I had the same outlook, however it is for a game I am currently in development.
And for those who are reading this, and are interested in game AI with interest in making true machine learning integrated into their characters, I gope this will help keep you inspired.
So, like you, I had grandeous ideas and vision about adaptive, machine learning approach to controlling my character in a platform-based fighting game. They would learn from previous mistakes and improve themselves, to create a truly interactive AI, one that can challenge the player beyond just memorizing his pre-programmed state machine patterns or giving him inhuman reaction times. Then I ran into the same issues, the game must run at 60 fps, and constant learning cannot be done, so i've implemented a basic AI, but i know every way it will act, nothing is amazing.
Until one day I went back and looked at my AI approach, I realize I could still use machine learning, but perhaps use a smaller neural network, and a different learning algorithm. So, after implementing a combination of reenforcement learning and evolutionary learning. I let them train for a day. Then something amazing happened, and it 's what i imagine a parent feels when their kids learns to do something: it saved itself. Initially, starting out the AI would just spam buttons and usually end up jumping off the platform and killing itself, or stray away from the edge and just not touching the control stick, but this time, he got knocked off and he saved himself.
It was an amazing feeling, I never taught it to do that, but I gave it the ability to learn to do that, and that was extremely liberating.
So i encourage people to not give up on the ML AI for videogames, I know deep mind recently teamed up with blizzard to make a StarCraft2 AI, and that looks awesome.
I made the argument that nearly every single one of this guy's videos are not the least bit helpful in actually learning how machine learning works, and gets viewed based on click-baity title and click-bait thumbnails (attractive girls a lot of the time). Which i will stand by. Every one of them is "how to write an AI that ___" when its importing tensorflow, setting 2-3 hyper parameters then letting it run.
jesus man the constant switching of inflection due to jump cuts and shitty jokes was irritating. This is the stuff I always hate about your videos, and in general any "how to code an AI that does ___ with only < 10 lines of python". No you're giving me an extremely generic framework, and some vague direction that i can read off the linked page (the 9 lines), not how to actually write all these things, those are like afterthoughts in the video, more work goes into the click-baity titles and thumbnails then actual substantive information.
Humans are not magically creative as much as they'd like to be.
If i ask you to think of a random number, you don't just pull it out of thin air, It can be based on tens to hundres of things:
-Should i do a relaly low or high number?
-People always use round numbers that end in 0 or 5, maybe i shouldn't do that, or should i to make it seem truer
-what other large "random" numbers have a heard?
-i remember seeing a number recently, maybe try a modification of that
-you used {x} as a random number last time, go similar to that?
All this adds up in that under a second thought you have when i asked you to think of a random number. the literal same thing goes into all creative works, the output is a function of the input.
Something I've always hated about people that say "why do I have to write a backprop when TF does it for me?"
Here's why: you go to a company, they want you to incorporate machine learning into their c++ engine. Have fun using numpy, you said you knew machine learning right? implement backprop for me, you can do that right?