Tumgik
#deeplearning graduateschool finals fuckyesthatsoveromfg
justanotherme23 · 4 years
Text
My Deep Learning Final
It’s 6:00 on a Sunday in quarantine and the Tinder matches have stopped responding. I’m lonely and bored; it’s time to share with the world the single greatest comedic achievement in my life. My Deep Learning final. It’s a long story, but I hope that someone besides me finds it as fucking funny as I do. I’m not the greatest writer, but we’ll give it a go!
I signed up for a class called Deep Learning. To make things simple, it’s an image processing class for crazy smart graduate students (i.e. not me). We write computer programs that identify the locations of objects in a picture. With our programs you could feasibly split porn vids into individual images and count how many unique penises are present in a video. You could even identify how close people’s mouths were to the penises to determine how many blowjobs there are! But that’s just one application
Once upon a semester’s eve, I realized I was failing and the only assignment left was the final project. I needed to get a 90 or above to pass. It was actually a really cool project. The teacher had created a video game comparable to Rocket League but with hockey instead of soccer, and minus the flying and crashing. Games were 2 players against 2 players, whoever scores the most goals in a two minute time limit wins. Students could work in teams, but I do school remotely and so worked by myself. Here’s a short clip of the environment.
youtube
The students’ job is to make a team of computer players (one team each) that could drive the puck into the goal such that each player receives the video stream of the game as well as information describing the position of the player being controlled at each timestep. A player makes 1 decision that each step, or frame, of the game is played. We can tell a player to accelerate, break, steer, and do some other things. Then, this action is sent back to the game program to calculate the next step.
TL;DR it’s the same idea as if you were to control the car with a console controller, just represented as numbers and steps.
Tumblr media
This is where things get ~hairy~
Players were going to be graded based upon their performances AGAINST OTHER STUDENTS’ PLAYERS. This scared the shit out of me. Even worse, each player’s program could only run for 1 tenth of a second on a CPU.
That.
Is.
Bonkers.
Deep learning programs require a cubic hecton of processing power to do anything meaningful. The whole entire semester we had been making large programs on expensive computers to accomplish tasks similar to the final. These programs require GPU’s, generally used for playing the latest and greatest Call of Duty or mining Bitcoin – they can get quite expensive and sometimes hard to come by.
Tumblr media
Asking a CPU to run the same program is like giving a SpaceX rocket to a 5 year old. It’s going to take them a long ass time to figure out which knobs to turn to start the thing up while they neglect safety requirements for literally anything else running around it at the time the program launches. A program that takes days on a GPU takes years on a CPU.
The time limit meant our programs had to be less than a tenth the size of what we had been learning on throughout the semester. This was reportedly a result of the Teacher not being able to find an applicable computer for the final?? Rules are rules, and I knew there would be a huge drop in the performance of the program.
I nevertheless gave this final project all of my free time for a solid week. One morning I sat down with a full box of cereal in front of the computer. When I next stood up to go to bed, the box was empty. Yet this was all I had to show for my effort at the end of the week. The black dot running around the screen is the program’s prediction for the location of the puck.
youtube
That sucks! The player couldn’t tell how to steer to hit the puck until it was very very close. It just kind of shuffled back and forth across the arena knowing what general direction to head in. I was depressed.
A few days before the final, the TA announced they would be holding a practice tournament. We could pit our players against each other before the due date to see how to make improvements. Here are the results. I was 3rd to last, doomed to fail the class.
Tumblr media
BUT THEN. Something clicked.
My results were horrible, yes; so were almost everyone else’s. Since the vast majority of goals were scored against only 3 players (myself included), the second placed player was MORE LIKELY TO NOT SCORE IN ANY GIVEN MATCH. That’s fantastic news.
Then I noticed something else while playing with position logic. The players and the puck always start from the same positions! Instead of abiding by the ideals of the class to use deep learning – as it obviously wasn’t working for all except one team – I decided to use an … alternative solution.
Let’s say you’ve started living in a new city and need to get to the nearest Starbucks. You look it up on the look-up phone and find the route from your home to the Starbucks. Then you remember the route. You use the route every morning to get coffee before work. You have memorized to take a right; go 2 steps forward; take a right; one step forward; left; then you’ve arrived. The only problem with this memorization scheme is what happens when you start one block off of where you live. Following the exact same steps leads you to the middle of fucking nowhere. So I made an assumption based on the fact that each player starts from the same position. ~The players can memorize their routes from a given starting position to the goal~.
Tumblr media
This piece says if the player were to arrive at the exact listed position, perform a recorded set of actions.
Tumblr media
A route to a player is simply a list of action that they take to get from point A to point B. The actions you see above are a stored list that describe exactly that. How to get from the starting position to the puck and from the puck to the goal.
There’s one other important assumption. The other players must not interfere. It was clear after seeing the preliminary results that everyone was stuck with their little players piddling around searching for the puck. So provided the goals were scored fast enough, I could assume the enemy players remained about in the spots they started! Here’s the resulting route. This route is valid both right after the game starts and right after a goal is scored, at which point the positions of everything reset.
youtube
Now, I had no idea if this would work. If anything at all about my assumption was wrong, if the puck was slightly of place, if the other players don’t stay in the same spot, the plan would fail. It was midnight, an hour before the deadline, and this was the best solution I could come up with. But the next morning THIS HAPPENED
Tumblr media
Not only did I get enough points to score some goals but I FAR AND AWAY BEAT EVERY SINGLE OTHER PLAYER IN THE TOURNAMENT. I completely undermined the intention of this final project with a solution that is technically an exploitation of the environment. It’s a fucking ridiculous solution that would not have worked if ANYTHING in the startup of the game had changed. Even rotating a player by the smallest amount would have completely ruined the plan but it WORKED FUCK YEAH!! NONE of the smart ass people in this class with all their effort could beat the most ridiculous gameplan imaginable! People commented on the post asking for how I won and I didn’t say anything out of fear I would be disqualified. I’ve not been able to tell anyone.
To whomever reads this, you are the only one who knows about the total extent of the ridiculousness of the situation. How many hours I spent trying to do the right thing. How I figured out the requirements were impossible. How this graduate level class – filled with geniuses who aren’t me – was unable to compete with this one simple trick to score goals fast. It is so far my greatest accomplishment in life and thinking of it will never not make me laugh. Thank you for listening 😊I hope you enjoyed it too!
0 notes