GradIEEEnt half decent: The hidden power of imprecise lines

Поділитися
Вставка
  • Опубліковано 30 вер 2024
  • Before the invention of UA-cam comments, most people could make remarks that were slightly technically incorrect without fear of immediate public rebuke. The one exception was professors, especially if the classroom included an annoying student such as “Tom 7.” The invention of UA-cam was doubly revolutionary: Now anyone can experience being a professor being corrected by an annoying student, but also, corrections can be made years after the fact, and at significant length, as the student cannot be told to “take this offline.” This video is such a lengthy correction and digression, and perhaps itself a fount of mistakes.
    Due to the esoteric detail and prodigious whiteboarding, it is almost a “Tom Academy” video. But since I grew a moustache to film it, it qualifies for the Main Sequence.
    Keywords: Gradient descent, half-precision floating point, linear operations, F=MA, rounding, exotic transfer functions, machine learning, MNIST, CIFAR-10, chess, fractals, Frobenius, cryptography, fluint8, Motorola 6502.
    For SIGBOVIK 2023.
    Paper, impenetrable code, etc.: tom7.org/grad/

КОМЕНТАРІ • 1 тис.

  • @Zebra_M
    @Zebra_M Рік тому +2154

    Sorry to hear your professor strangled you to death, glad you got better

    • @tom7
      @tom7  Рік тому +721

      He's still out there hoarding chaos emeralds

    • @jr637-1
      @jr637-1 Рік тому +64

      Tom7 was secretly the beginning of Dr. Robotnik’s villain arc.

    • @treyquattro
      @treyquattro Рік тому +38

      @@tom7 could be worse: could be chaos NFTs

    • @DamonGarfield
      @DamonGarfield Рік тому +3

      @@tom7 🤣

    • @TtEL
      @TtEL 11 місяців тому

      @@treyquattro😂

  • @HBMmaster
    @HBMmaster Рік тому +1788

    he can't keep getting away with it

    • @PC_YouTube_Channel
      @PC_YouTube_Channel Рік тому +194

      I think I'm supposed to say "hey it's the rhythm haven guy"? But I always think of you as the conlang guy

    • @DemonixTB
      @DemonixTB Рік тому +20

      and yet he does

    • @32th
      @32th Рік тому +74

      @@PC_UA-cam_Channel to me, he's the guy who taught me how floating point numbers work

    • @tom7
      @tom7  Рік тому +369

      who's gonna stop me... FROBENIUS??

    • @ShieldStop
      @ShieldStop Рік тому +50

      ​​@@32th jan misali and pannenkoek are better teachers than any of my professors(and tom7 but we're already here)

  • @smort123
    @smort123 Рік тому +601

    "For all practical purposes it doesn't matter."
    "What about impractical purposes?"
    Thats the spirit i love.

  • @syncrossus
    @syncrossus Рік тому +697

    This is so genius it looped back around to being stupid, then back to smart, then back to stupid.

    • @tom7
      @tom7  Рік тому +453

      I should have done an odd number of loops :(

    • @ssj3gohan456
      @ssj3gohan456 Рік тому +126

      @@tom7 You'll see from an exhaustive search of all possibilities in the design space that there is no situation where it can loop an odd number of times.

    • @ryanm.9363
      @ryanm.9363 Рік тому +27

      ​@@tom7 honestly, this comment and the response to it were the best part of this entire video. Perfect payoff

    • @AiOinc1
      @AiOinc1 Рік тому +2

      I smell sbemail

    • @askod420
      @askod420 Рік тому +4

      Every suckerpinch video is like that. That's why it's so fun

  • @y.og.i
    @y.og.i Рік тому +2052

    the dopamine rush of tom 7 releasing a 55-minute video is unparalleled

    • @user-nj1qc7uc9c
      @user-nj1qc7uc9c Рік тому +85

      the dopamine rush of tom 7 releasing a 55-minute video is serialled

    • @miweneia
      @miweneia Рік тому +14

      its even more unparalled for me cause yesterday I craved some of his vids so I came here and rewatched a few, and he uploaded a brand new one right just after I went to bed!

    • @jumbledfox2098
      @jumbledfox2098 Рік тому +8

      i just got a big goofy grin

    • @NithinJune
      @NithinJune Рік тому +2

      YES

    • @ineverknowdoyou
      @ineverknowdoyou Рік тому +2

      same

  • @willoww285
    @willoww285 Рік тому +254

    The question was: "Okay, thanks professor, so I understand the mathematical point that the transfer function must be linear but when we implement this on a computer we’ll use some approximation of the real numbers like IEEE-754 floating point, which doesn’t have all the mathematical properties that we’re assuming here like distributivity and associativity, so doesn’t this mean that the doesn’t necessarily hold? like you could in principle have a transfer function that was “linear” but nonetheless exhibited irreducible complexity because of rounding error or things like that, or in principle transfer functions based on values outside of the reals, like NaN and Inf? Plus what about -0? Actually are linear operations even differentiable because when you think about it, they all take discrete
    steps so it’s really …"
    (for those of you who don't want to go frame by frame through it, as I have)

    • @ihrbekommtmeinenrichtigennamen
      @ihrbekommtmeinenrichtigennamen Рік тому +36

      Raptor Pro Tip: You can use the comma and dot keys on the keyboard for stepping through videos frame-by-frame.

    • @efkastner
      @efkastner Рік тому +24

      one of the most glaring omissions in the mobile apps :(

  • @Kaiasky
    @Kaiasky Рік тому +1031

    I was just waiting in utter joy for "but we can't decide which instruction to execute, so we'll just do every single one and multiply 255 of them by 0" to drop. My favorite part of shader code is 'why branch when you could multiply by 0' and this is a delightful, horrifying project.
    I'm SHOCKED it can do an entire frame in 10 seconds.

    • @MarieCrossbow
      @MarieCrossbow Рік тому +39

      The "do all of them" reminds me of Stephen Wolfram's Ruliad 😂

    • @satibel
      @satibel Рік тому +77

      tbh if one were to write this in shader it would probably run at over 20 fps.

    • @Ben-do1bf
      @Ben-do1bf Рік тому +127

      My immediate reaction was "8 cores? Why only use 8 cores when you could force a poor GPU to do this for you?"
      The gpu only wants to play Monster Hunter why do we force it to do these tasks?

    • @Kavukamari
      @Kavukamari Рік тому +78

      Suckerpinch proves Math is a hammer for destroying problems indiscriminately

    • @squelchedotter
      @squelchedotter Рік тому +21

      This surprisingly is kind of how CPUs actually work at a hardware level

  • @Wyatt_James
    @Wyatt_James Рік тому +579

    This feels like a victory lap of many prior Tom7 videos. Congrats!
    Now it's time to train an AI model to approximate the NES CPU, no?

    • @bigprovola
      @bigprovola Рік тому +29

      The Tom VII cinematic universe is real 🤯

    • @pafnutiytheartist
      @pafnutiytheartist Рік тому +6

      I'd start with Atari 2600, it has a tiny amount of RAM, should be easier

    • @evanbarnes9984
      @evanbarnes9984 Рік тому +3

      ​@@pafnutiytheartist I can't believe anyone managed to make working games for the 2600, it's such little RAM!

    • @vurpo7080
      @vurpo7080 Рік тому +3

      @@evanbarnes9984 The differencw between then and now is that back then, all your code, graphics, sound and everything was in ROM on the cartridge. RAM would _only_ be used to store the changing state of the game, like player and object positions, score, and such. So if you imagine a game where you just have a player, a few non player characters, maybe an object or two, you might find that it just takes a few bytes to keep track of the state!

    • @kargaroc386
      @kargaroc386 Рік тому +6

      Atari 2600 is tiny, but the code in atari 2600 games is so precisely written that if you sneeze on it it breaks completely.
      The 2600 had CPU-drive graphics. And I don't mean like the ZX80 where games would write to VRAM at their leisure, and then later on the CPU would push those VRAM bits out to the screen - the 2600 doesn't have enough RAM for that.
      No, I mean that, when it came time to draw the screen to the TV, a 2600 game would *use game logic to render a scanline of graphics in real-time as the beam crosses the screen.*
      It would do this for every scanline. It would use most of the CPU's time (leaving the vblank period for higher level game logic, a reversal of the typical arrangement), and if code wasn't tuned perfectly it would completely break. There wasn't enough RAM to do anything else, nothing ever did anything like that ever again, and its one of the craziest ways to render a game ever conceived.
      Meanwhile, anybody who's watched a Vinny corruption stream knows how much you can break an NES game and still have it keep on going.

  • @PC_YouTube_Channel
    @PC_YouTube_Channel Рік тому +245

    When Apr 1 came and went, I went through the five stages of grief over the lack of a Tom7 upload.
    Then the madlad uploads on May 1.

    • @tom7
      @tom7  Рік тому +220

      Happy May Fool's Day!

    • @lifthras11r
      @lifthras11r Рік тому +44

      @@tom7 Mayday! Mayday!

    • @Vaaaaadim
      @Vaaaaadim Рік тому +18

      It's the out of season April Fool's upload.

    • @Dong_Harvey
      @Dong_Harvey Рік тому +1

      That was the Tax joke

  • @ripvanwinkle6940
    @ripvanwinkle6940 Рік тому +131

    I saw someone describe this video as a "Terrifying perversion of computation" and I thought you'd be proud to hear that.

    • @tom7
      @tom7  Рік тому +30

      I’ll take it!

  • @empty5013
    @empty5013 Рік тому +373

    I really love being a bit lost on a new concept for a minute or so, then touching base with a concept I am familiar with, only to see Tom totally abusing and doing evil things to the 5% of the greater whole I understand.
    Really keeps me reassured that despite the calm demeanour and pretty diagrams, even the parts I don't understand are pure evil and crimes against numbers.

    • @tom7
      @tom7  Рік тому +149

      Technically, numbers could sue me in civil court, but it is not a crime.

    • @DuringDark
      @DuringDark Рік тому +16

      misdemeanors against numbers, maybe disorderly conduct?

    • @ts4gv
      @ts4gv Рік тому +7

      @@DuringDark disorderly conducts a good one lol
      i'd also add libel and slander to the the list of charges

    • @JuDGe3690
      @JuDGe3690 3 місяці тому

      ​@@ts4gvAdd intentional infliction of numerical distress to the list.

  • @alexmueller7864
    @alexmueller7864 Рік тому +383

    Tom, you are my hero. I am inspired by your tenacity in pursuing problems simply for the heck of it. Watching your videos makes me want to write math papers about equally ridiculous topics.

    • @tom7
      @tom7  Рік тому +168

      Thanks! You should do it!

  • @adsilcott
    @adsilcott Рік тому +129

    I've had a beef with the way epsilon is used in programming for a while, so I was already laughing when you started complaining about it, then lost it when you revealed that you wrote a whole paper on the topic. The paper was delightful, as usual, and now I have something to send to people who I have petty internet arguments with -- oh sweet vindication!

    • @tom7
      @tom7  Рік тому +54

      That's what I call pedantry teamwork!

  • @isaaclinn2954
    @isaaclinn2954 Рік тому +774

    The hardest I ever worked in college was when my professor told me that something wasn't possible. The pure spite powered me through. It's an amazing force for sure

    • @OscarSommerbo
      @OscarSommerbo Рік тому +148

      Like when my computer teacher insisted that "crashing the stack WILL harm the computer". I wrote a simple asm snippet that locked up the PC but left it unharmed in 10 minutes (It was intro to ASM). That teacher hated me and excused me from the entire module with top marks, muttering "I have nothing to teach this wiseass"

    • @float32
      @float32 Рік тому +3

      Well, was it possible? Or was he right?

    • @smiley_1000
      @smiley_1000 Рік тому +82

      ​@@OscarSommerbo And then everybody clapped

    • @freshtauwaka7958
      @freshtauwaka7958 Рік тому +12

      @@OscarSommerbo what did he even mean by "harm"?

    • @benjaminmiller3620
      @benjaminmiller3620 Рік тому +72

      Haha! Had similar: ASM class. Assignment is to write a simple machine code program to accomplish a task, but he would award an extra mark for programs close enough in size (I forget how many bytes), to his own reference program. I got mine 6 bytes smaller than his.

  • @lysikasaito
    @lysikasaito Рік тому +473

    "The Mandlebrot Set is the Radiohead of Fractals" I did a real spit-take all over my computer and am typing this as the water seeps in. Wish my computer a swell retreat into the afterlife.

    • @tom7
      @tom7  Рік тому +285

      If you don't water the computer, how will it grow?

    • @Jay_Tau
      @Jay_Tau Рік тому +12

      The battery will probably swell!

    • @NoNameAtAll2
      @NoNameAtAll2 Рік тому +4

      what's radiohead?

    • @rehorizon
      @rehorizon Рік тому +40

      @@NoNameAtAll2 nothing much, hbu?

    • @lysikasaito
      @lysikasaito Рік тому +4

      @@tom7 I thought we were trying to avoid unfettered computer growth!

  • @AlphaPhoenixChannel
    @AlphaPhoenixChannel Рік тому +101

    literal spit-take at "maybe we should do this on the computer." - although I started to follow it a bit less at the computer implementation, I enjoyed every second

    • @kyay10
      @kyay10 Рік тому +12

      I wish to see you getting nerd-sniped by this and somehow do floating point maths with analogue waves or something, maybe even build a whole (super basic) computer using the weird differentiator and integrator components.
      As a starting seed, note that you can get ln through integrating 1/x, and through ln you can get abs(x), and through that you can practically make arbitrary circuit.
      Don't know how useful or practical this is, but hey, maybe you end up discovering something video-worthy.
      I have some more ideas btw, mainly stemming from trying to (ab)use Desmos to define Boolean algebra and, hence, to create functions for equality and less than etc so that I'm able to define piecewise functions without any piecewise notation. I'd share a link to that here but UA-cam is fussy about links.

    • @efkastner
      @efkastner Рік тому +4

      @AlphaPhoenixChannel I’m so delighted to see you here. The venn diagram between your content and Tom VII’s is the best of all

    • @hadinossanosam4459
      @hadinossanosam4459 Рік тому +1

      @@kyay10 Side note: you don't need to integrate 1/x (analog integrators sorta suck), a BJT's transfer functions gives you exponentials (and logarithms via negative feedback). That's actually a somewhat standard trick, e.g. to get root-mean-square averages in an analog way. Analog computers were/are a thing, just that noise+imprecision limits the amount of stages you can cascade, and therefore the amount of cool stuff you can practically do
      And getting piecewise linear functions is pretty easy with step(x) = abs(x)/x ;) Used tricks like this to write text as graphs of functions on my calculator in boring math classes, the fun part is getting two lines above each other (interleaved with sign(sin(N * x)) or so)

    • @AlphaPhoenixChannel
      @AlphaPhoenixChannel Рік тому +6

      @@efkastner I feel really smart when I understand the multitude of jokes in a video on this channel =D This one had me in stitches until the last act when I could tell he was over my head. I sent this video to multiple people before I was done watching it. Tom, if there's ever a brilliantly impractical project you need something built IRL for, hit me up - I know I can't compete on the code side ;)

    • @thomascole2933
      @thomascole2933 Рік тому

      @@AlphaPhoenixChannel An AlphaPheonix and tom7 collab video would be the pinnacle of my life. It would all be downhill from there no doubt.

  • @0oh_no
    @0oh_no Рік тому +236

    I haven't understood anything for the past hour but i have never enjoyed something more

    • @tom7
      @tom7  Рік тому +141

      I'm okay with this

    • @SianaGearz
      @SianaGearz Рік тому +58

      I understood almost everything.
      I envy you. I'm in SO MUCH PAIN.

    • @tom7
      @tom7  Рік тому +58

      @@SianaGearz I'm also okay with this

    • @SedoKai
      @SedoKai 11 місяців тому +10

      Tom's videos are awesome because the more you understand them, the more unreasonable they become.
      This is difficult to accomplish in practice, but when done correctly the entertainment value increases exponentially.

    • @hrishikeshaggrawal
      @hrishikeshaggrawal 7 місяців тому

      gahahaha

  • @patroka
    @patroka Рік тому +129

    *Raises hand* Actually, technically, we didn’t murder you in cold blood. Rather, we murdered you in pretty hot blood.

  • @timmydoza
    @timmydoza Рік тому +192

    Fun fact about the newest version of Stockfish (15.1) - it no longer uses pawn values in the evaluation. From the changelog:
    "An evaluation of +1 is now no longer tied to the value of one pawn, but to the likelihood of winning the game. With a +1 evaluation, Stockfish has now a 50% chance of winning the game against an equally strong opponent. This convention scales down evaluations a bit compared to Stockfish 15 and allows for consistent evaluations in the future."

    • @efkastner
      @efkastner Рік тому +33

      Kind of like the gold standard

    • @stdcall
      @stdcall Рік тому +31

      inb4 keynesian pointnomics

    • @tom7
      @tom7  Рік тому +59

      Whoa!

    • @ts4gv
      @ts4gv Рік тому

      @@efkastner haha

  • @coarse_snad
    @coarse_snad Рік тому +97

    I cannot even describe the positive impact these videos provide throughout the years. Every april i am enlightened with suboptimal solutions to problems noone has.

    • @siarez
      @siarez Рік тому +5

      " suboptimal solutions to problems noone has." hahaha

  • @lepi9577
    @lepi9577 Рік тому +242

    Just incredible stuff. Absolutely heretical behavior

    • @tom7
      @tom7  Рік тому +114

      That's why we call it the Association for Computational Heresy!

    • @_fudgepop01
      @_fudgepop01 Рік тому +5

      @@tom7the acronym is equivalent the sound I make when watching these amazing videos and getting my mind blown - ACH!!

  • @heitortremor
    @heitortremor Рік тому +63

    New suckerpiiiiiinch!!!

    • @binaryrainbows
      @binaryrainbows Рік тому +4

      new suckerpinch!!!!!

    • @TheCrewExpendable
      @TheCrewExpendable Рік тому +2

      Just now realizing it’s Suckerpinch and not Suckerpunch.

    • @LeoStaley
      @LeoStaley Рік тому +2

      Let's gooooo!!

    • @ts4gv
      @ts4gv Рік тому +3

      nnneeeewwww suuuccckkerpinnnnchhhh
      in a wrestlemania announcer voice

    • @organicwaste
      @organicwaste Рік тому +3

      (distributing cold ones to the cheering crowd)

  • @gameofpj3286
    @gameofpj3286 Рік тому +59

    The running every instruction on copies of the state and then only keeping the right one is definitely reminiscent of quantum bogo sort :D

  • @YouReyKarr
    @YouReyKarr Рік тому +78

    I love that I feel I understand the individual steps he's taking and the results, but I never understand what the premise of the video actually is. Yet still some of my favourite content on UA-cam

    • @SianaGearz
      @SianaGearz Рік тому +22

      The premise is to make something impractical by abusing the inherent non-linearity of floating point hardware to perform operations that fundamentally shouldn't work.

    • @YouReyKarr
      @YouReyKarr Рік тому +15

      @@SianaGearz It was rhetorical, but thanks

  • @Kaiasky
    @Kaiasky Рік тому +67

    So, one theoretical result of this is that, pretending we're working with reals for a second, you could multiply all of these linear operations out into one single matrix, right. Obviously, multiplying by the matrix does absolutely nothing, but It'd be kinda fun to see what the "NES emulator state transition matrix" ends up looking like.

    • @stanleydodds9
      @stanleydodds9 Рік тому +15

      I would guess that a lot of the operations will turn out to just be the zero function, or just some small constant, because a lot of the time we are trying to eliminate everything except for the error (in order to magnify it and use it). But by doing that with precise linear operations, everything would exactly cancel out. It's hard to know if this would eventually result in the overall matrix being the zero matrix, or just some very degenerate matrix, or maybe I'm completely wrong in assuming this at all.

    • @Kaiasky
      @Kaiasky Рік тому +6

      @@stanleydodds9 Yeah, I'm guessing that the instruction selector manages this, because it's zero-everywhere disregarding floating point error

  • @adora_was_taken
    @adora_was_taken Рік тому +50

    tom7's professor was dr robotnik vii and i think that explains a lot

    • @tom7
      @tom7  Рік тому +37

      Right after he killed me he took my chaos emeralds right out of my backpack :(

    • @snoozbuster
      @snoozbuster Рік тому +17

      "I miss my wife, Tom"

  • @RobertMilesAI
    @RobertMilesAI Рік тому +13

    Because I know you appreciate pedantry (and maybe this was deliberate), the phrase "in cold blood" means the crime was done in a calm/systematic/premeditated way. The murderer was cool and/or chill at the time. Getting so frustrated that you snap and strangle a student is definitely a murder in hot blood, not cold

    • @FelixHdez
      @FelixHdez Рік тому +2

      If I were suckerpinch I'd hide this comment

    • @tom7
      @tom7  Рік тому +16

      It's because my professor was a reptilian

  • @Snort70
    @Snort70 Рік тому +28

    "We want it to be able things that are complicated like XOR or human thought"
    Idk why this made me spit out my water laughing

  • @snoozbuster
    @snoozbuster Рік тому +28

    The floating point errors used here remind me of another April fool's research piece, pannenkoek2012's "How to Crash SM64 using a pendulum". An excellent watch as well!

    • @a1aaaaaaaaaaaaaa-r6t
      @a1aaaaaaaaaaaaaa-r6t Рік тому +6

      Yeah that was a pretty interesting coincidence, I doubt they were aware each other's videos were in production simultaneously.

  • @something-from-elsewhere
    @something-from-elsewhere Рік тому +32

    Love your videos.
    They're just far enough outside my knowledge base I have to stretch my brain to understand what's going on. But when I figure it out it always is delivered with something approximating comedic timing, and I squeal with mischievous delight.

    • @tom7
      @tom7  Рік тому +18

      That's pretty much what I'm going for, so thank you! :)

  • @vitorfray
    @vitorfray Рік тому +216

    Is it normal to feel like a complete illiterate while watching this? That math is out of this world, and yet he explains it like it's trivial stuff!

    • @catmacopter8545
      @catmacopter8545 Рік тому +20

      he took neural nets in college and so on and so forth

    • @soranuareane
      @soranuareane Рік тому +60

      I've been doing computer science for longer than I care to admit. I teach (privately), I write a ton of code, I love zany nonsense, and that's just the tip of the iceberg.
      I, too, had difficulty understanding this (and I teach the damn stuff!)

    • @satibel
      @satibel Рік тому

      it's not regular bullshit, it's advanced bullshit.

    • @Reptonious
      @Reptonious Рік тому +12

      I never know with this channel, as a tech illiterate, if something will be made with me in mind. And worse yet it usually won't be clear until halfway through. Genuine criticism of the format.

    • @samuelthecamel
      @samuelthecamel Рік тому +24

      He probably wanted to explain it more thoroughly but couldn't because the video would be over 2 hours

  • @TheAqissiaq
    @TheAqissiaq Рік тому +39

    I was actually just at an academic conference where a similar problem was discussed! (The paper is Model Checking Linear Dynamical Systems under Floating-point Rounding at TACAS 2023)
    The authors want to verify certain linear programs, but find that with rounding it is undecidable for the same reasons as Tom: They can construct a computer. Their computer is a Turing machine, which I think we can all agree is much simpler than the NES, but it's the same idea.
    They go on to show that restricting the programs to non-negative coefficients makes the problem decidable again, because it forces the behavior to be somehow periodic.

  • @regularsalamander
    @regularsalamander Рік тому +17

    TWO VIDEOS IN THE SAME YEAR?

    • @tom7
      @tom7  Рік тому +5

      I'm not sure! I didn't get much sleep last night!

    • @a1aaaaaaaaaaaaaa-r6t
      @a1aaaaaaaaaaaaaa-r6t Рік тому

      ​@@tom7 Get some rest! You deserve it

  • @AntiVectorTV
    @AntiVectorTV Рік тому +13

    "Cryptography = fractals - drugs"
    I love the way your brain works.

  • @pluieuwu
    @pluieuwu Рік тому +8

    also - if we're running all 256 instructions at once... hmm, can we emulate the 2A03 with a compute shader??? 🤔

  • @WangleLine
    @WangleLine Рік тому +23

    this really descends my gradients

  • @masscreationbroadcasts
    @masscreationbroadcasts 11 місяців тому +12

    40:33 "Wait, did I already write this paper? Damn it!"
    Comedy gold right there.

  • @bassguitarbill
    @bassguitarbill Рік тому +22

    The 3d Mandelbrot set had me ugly laughing, this video is magnificent

    • @lancesmith8298
      @lancesmith8298 3 місяці тому +1

      The true majesty of it didn’t dawn on me until today, when I actually paid attention to the zoom-in. On top of being a cursed artifact to render, it’s also inexplicably made up of beans

  • @evanbarnes9984
    @evanbarnes9984 Рік тому +33

    I actually had no idea how to compare floats or doubles and really needed that for a recent project, so I'm already lost down a rabbit hole having paused the video 8:00 minutes in. (Programming is just a hobby for me). Exactly what I love about your videos!
    Edit: 25 minutes in, and the baffling numbers are awesome as an ex math teacher! The Bafflebrot is great

    • @jamesflames6987
      @jamesflames6987 Рік тому +16

      FOR GOD'S SAKE DO NOT USE THESE TECHNIQUES IF YOU ARE LEARNING PROGRAMMING.

    • @limyongchin1
      @limyongchin1 Рік тому +3

      @@jamesflames6987 I love how there's an actual need for an actual disclaimer

    • @chainingsolid
      @chainingsolid Рік тому +3

      What you do for comparing will depend on your specific problem. Most cases = < > work fine and == has, well gotchas

    • @jamesflames6987
      @jamesflames6987 Рік тому +4

      @@chainingsolid

    • @evanbarnes9984
      @evanbarnes9984 Рік тому

      ​​@@jamesflames6987 don't worry, I was already fully aware of the problems of floating point math in programming, and had solved that previous problem by going down a really convoluted path with integer math. I'm not doing stuff with money or anything super critical though, I'm slowly trying to make my own paragliding flight instrument, which means figuring out sensor fusion with a 9-axis IMU, GPS, barometer, thermometer, and eventually a Pitot tube for airspeed. Because I want to learn how it all works, I'm trying to do it all from scratch, writing my own Kalman filters or whichever type I go with, for example. There will be regions of this project where making somewhat fuzzy comparisons of floating point numbers will be useful and sufficiently accurate. That's an excellent warning for people who aren't aware of the pitfalls of float math, though!

  • @Celastrous
    @Celastrous Рік тому +8

    "The Mandelbrot set is the Radiohead of fractals"
    I.. uh... Ok, sure.

  • @Ben-do1bf
    @Ben-do1bf Рік тому +41

    I had the realization yesterday "Wait, April 1st and SIGBOVIK passed without a new tom7 video", and checked the channel to confirm my fears, so I guess I willed this into existence you're welcome.

    • @NoNameAtAll2
      @NoNameAtAll2 Рік тому +2

      what's sigbovik?

    • @screwaccountnames
      @screwaccountnames Рік тому +8

      @@NoNameAtAll2It‘s a non-serious mathematical conference, happening every April 1st.

    • @kaitlyn__L
      @kaitlyn__L Рік тому +3

      @@screwaccountnames well, it’s serious maths, just used in silly ways ;)

    • @Ben-do1bf
      @Ben-do1bf Рік тому +3

      @@kaitlyn__L Oh plenty of people find ways to write whole papers on things that are purely non-serious. It makes finding the ones with serious math for pointless reasons that much more worth it.

    • @kaitlyn__L
      @kaitlyn__L Рік тому +2

      @@Ben-do1bf exactly! :D

  • @keiyakins
    @keiyakins Рік тому +30

    that gag of mimicking the Practical Engineering intro got a genuine laugh outa me

    • @1224chrisng
      @1224chrisng Рік тому +5

      too much concrete and acrylic, not enough hello fresh, 3/5 stars

  • @yoyoyonono
    @yoyoyonono Рік тому +28

    Always looking forward to the yearly sigbovik video. I'm honored to be published alongside you in this year's conference.

    • @efkastner
      @efkastner Рік тому +1

      wow congrats! what was yours?

    • @yoyoyonono
      @yoyoyonono Рік тому +3

      @@efkastner VOACaloid, the first paper in track M

    • @efkastner
      @efkastner Рік тому +1

      @@yoyoyonono haha well the Abstract has me hooked, can’t wait to read it later :)

    • @yoyoyonono
      @yoyoyonono Рік тому

      @@efkastner thank you!!

    • @tom7
      @tom7  Рік тому +6

      Thank you for not trying to predict the future!

  • @snowleopard9749
    @snowleopard9749 Рік тому +6

    I admire your persistence to replicate important results, but worse.

  • @AngryArmadillo
    @AngryArmadillo Рік тому +17

    Enjoyed seeing you present at SIGBOVIK this year. You come up with the craziest stuff :)

    • @tom7
      @tom7  Рік тому +6

      I'm glad! That was a very last-minute presentation!

  • @khatharrmalkavian3306
    @khatharrmalkavian3306 Рік тому +8

    So that's what happened to Tom 6...

    • @1224chrisng
      @1224chrisng Рік тому +1

      He was afraid of Tom 7, because Tom 7 ate Tom 9

    • @ivanjermakov
      @ivanjermakov Рік тому

      @@1224chrisng what happened to TomCat?

  • @NithinJune
    @NithinJune 5 місяців тому +3

    our yearly suckerpunch video should be coming up soon

  • @saf271828
    @saf271828 Рік тому +2

    I'm sure you've heard this a billion times already, but the 6502 is not a Motorola part. It's a MOS Technology (not to be confused with MOSTek) product, which later became Commodore Electronics (yes, of Commodore 64 fame). Motorola's 8-bit parts were in the 6800 range (e.g., 6800, 6802, 6809, 68HC11, etc).

  • @wrong1029
    @wrong1029 Рік тому +17

    the AI art really adds to the comedic effect, love it

    • @Fynmorphover
      @Fynmorphover Рік тому +2

      I would have thought it would have been controversial by some people

    • @timmccormack3930
      @timmccormack3930 Рік тому +4

      Agreed. This is the first time I've seen AI art used well. This is what it's *for*.

    • @EggBastion
      @EggBastion Рік тому +4

      28:16 HACERR / ACCESS GRANTED
      37:12 plain crash / ACCESS GLARDED
      46:39 hands holding hands

  • @janberentsen9890
    @janberentsen9890 Рік тому +3

    You know that saying "If you can't dazzle someone with your brilliance, baffle them with your bullshit"?
    This is both.

  • @Dther99
    @Dther99 Рік тому +16

    I'm a struggling CompSci student. I post these videos to my group chat of friends. My friends are largely artists and labourers, who are the *opposite* of this video's target demographic. I don't know why I do it. Maybe I just want them to be as confused as I am.

    • @kaitlyn__L
      @kaitlyn__L Рік тому +4

      The real trick is finding artists who also love computer science

    • @Dther99
      @Dther99 Рік тому +14

      @@kaitlyn__L Unfortunately, artist-programmers tend to go insane, or worse, become game developers.
      source: me

    • @krallja
      @krallja Рік тому +2

      @@Dther99 “go insane, or become game developers, but I repeat myself.”

  • @TankorSmash
    @TankorSmash Рік тому +9

    Oh man, the procrastination tax comment really speaks to my soul man. Super interesting video!

  • @alengm
    @alengm Рік тому +4

    "He's like howtobasic but smarter" - a friend when I showed him one of your videos

  • @phrygianphreak4428
    @phrygianphreak4428 Рік тому +5

    This video reminded me of something learned, but have since forgotten, during my time in the CS dept:
    Never stop listening when the PhD is talking. If you do, even for a minute, you will be completely lost.

  • @devjock
    @devjock Рік тому +54

    The only person that can make both computer scientists and computer science teachers reee into high supersonic range. They only harmonise when Tom's not in the room.

  • @duncathan_salt
    @duncathan_salt Рік тому +6

    mr. 7, one day i am going to create a computer as ridiculous as one of yours. you're a true inspiration, and in fact your printable C project encountered many of the same problems as my planned project will. one day i hope i can show you

    • @tom7
      @tom7  Рік тому +6

      Happy to hear I could inspire you! The world needs more crazy computers. Consider sending it to SIGBOVIK when you're ready :)

  • @GergoErdi-xy3qw
    @GergoErdi-xy3qw Рік тому +5

    45:56 except the 6502 was by MOS, not Motorla! Bwahhahahah!
    DEFEATED!

    • @tom7
      @tom7  Рік тому +3

      Damn! I knew that! Congratulations :)

  • @lunafoxfire
    @lunafoxfire Рік тому +6

    Oh god I haven't watched the video yet but I can only imagine the roller coaster I'm about to embark on based on the title alone...

    • @lunafoxfire
      @lunafoxfire Рік тому +4

      40:11 omg I literally yelled "noooooo!" in the most pained voice at this part lmao. Pretty sure I scared my cat.

  • @LegacyCrono
    @LegacyCrono Рік тому +3

    Professors HATE him!! Man exploits bad computer arithmetic to produce regular computer arithmetic WITH THIS ONE WEIRD TRICK!!!

  • @giruppy
    @giruppy Рік тому +2

    neural networks are bringing us hurtling towards a fruitopia

  • @KlausKlass
    @KlausKlass Рік тому +4

    LOL I'm a student at CMU right now and my prospective research actually involves neural nets, floating point numbers, and breaking up the computation into linear subproblems and cryptography. There's a good chance I'll reference your SIGBOVIK paper if they'll allow it...

    • @tom7
      @tom7  Рік тому +4

      How could they not allow it!? It's the world's most prestigious venue!

  • @jlco
    @jlco Рік тому +9

    I _aspire_ to understand even half of this video. I can only assume that this man's name is where the word "tomfoolery" comes from.

  • @OrangeC7
    @OrangeC7 Рік тому +5

    Someday, you're going to say "This is ill-advised, but nobody is stopping me," and you're going to crash the simulation. I can feel it

  • @Templarfreak
    @Templarfreak Рік тому +5

    there's a _lot_ of good qoutes in this one. here are some of my favorite:
    "and if i scroll all the way to the bottom, i can see that my results are in fact the worst results of all time. aw well that's not _too_ bad."
    "my professor was wrong, you in fact CAN do this as long as you dont need it to be good or fast."
    "and basically it's the same as before but more careful about intermediate computations so that it doesnt touch infinity by accident."

  • @AntiVectorTV
    @AntiVectorTV Рік тому +7

    I was impressed when you managed to turn these algorithms (heuristics?) into a silly way to play bad chess _again,_ and I was doubly impressed by how they actually managed to outperform most of the ones you made for that video!

  • @silverymoonthing
    @silverymoonthing Рік тому +4

    the phrase "I like to work at the intersection of theory and impractice and practice and entertainment" is my new life slogan, thank you

  • @andriypredmyrskyy7791
    @andriypredmyrskyy7791 Рік тому +4

    I can't believe there's YET ANOTHER entry in the extended chess AI cinematic universe!

  • @skylerlehmkuhl135
    @skylerlehmkuhl135 Рік тому +4

    Making complex machines out of slight differences in behavior is very reminiscent of how computers themselves work, with small differences between electron propagation in various silicon impurities being combined in complex ways to produce integrated circuits.

  • @DemonixTB
    @DemonixTB Рік тому +10

    I've read the paper as soon as you published it and I could not wait for you to upload the video, it feels like a culmination of so many other projects and it's such a perfect tom7 video.

    • @tom7
      @tom7  Рік тому +5

      Great! There should be many crazy computers in the world. :) Send it to SIGBOVIK!

  • @clashblaster
    @clashblaster Рік тому +6

    "the Mandelbrot set is the Radiohead of fractals" wiser words have never been spoken

    • @RobertMilesAI
      @RobertMilesAI Рік тому

      I like that absolutely no elaboration or justification of that statement was given or in fact needed

  • @rayflyers
    @rayflyers Рік тому +4

    RIP, Tom 7. ...20 years ago, apparently. 😢

  • @55jeb
    @55jeb Рік тому +37

    Christmas has come early this year. Tom7 videos are the best on UA-cam: theatrics and fun concepts!

  • @jukmifggugghposer
    @jukmifggugghposer Рік тому +7

    The pure joy I felt when you pulled up that chess matchup chart...

  • @Gunbudder
    @Gunbudder Рік тому +4

    i'll never forget the months i spent understanding a radial basis function network (which was described as a neural network). i'm still not sure what i was looking at, and i ended up replacing the entire system with... linear functions hahahaha

  • @JamesGroom
    @JamesGroom Рік тому +4

    Can you share the undocumented instruction testrom?

    • @tom7
      @tom7  Рік тому +6

      Yes, it's in the "cart" subdirectory of the source code linked in the description.

  • @ekki1993
    @ekki1993 Рік тому +2

    This reminded me of the MoVfuscator. There's a fairly obscure video about it and it's 100% your type of approach into going from theory to impractice. You may already know about it but if you don't, you should check it out.

  • @Aryan-Singh_
    @Aryan-Singh_ Рік тому +4

    the computer science degree was worth it just to understand this video

  • @kika433
    @kika433 Рік тому +2

    I can't believe tom got murdered just to make this video (very sad)

    • @tom7
      @tom7  Рік тому +4

      I had to shoot that scene last

  • @eragonawesome
    @eragonawesome 9 місяців тому +4

    "Yes it won't work, but we can just do it!"
    Brilliance

  • @maiyannah
    @maiyannah Рік тому +2

    I thought your were trying to avoid h-fonts, but I realize now you just prefer the superior h-ints.

  • @MrJord137
    @MrJord137 8 місяців тому +3

    Desperately awaiting the next Tom7 video

  • @nathanb011
    @nathanb011 Рік тому +4

    This is horrifying. Thanks.

  • @grepgrok8735
    @grepgrok8735 Рік тому +6

    I am extremely pleased that I can now say that anything can technically be approximated by technically linear functions. I wonder if you could get around the read/write side effects by using different chips that avoid them.

  • @SakiandCo
    @SakiandCo Рік тому +2

    Nice one tom, its going to take me a couple of passes to understand what the hell you're on about but i enjoyed the shapes, colours and sounds on the first pass

  • @zpingusu
    @zpingusu Рік тому +7

    Wait, did you grow a mustache just for that opening?

    • @Kaiasky
      @Kaiasky Рік тому +4

      "Due to the esoteric detail and prodigious whiteboarding, it is almost a “Tom Academy” video. But since I grew a moustache to film it, it qualifies for the Main Sequence."
      apparently so

    • @tom7
      @tom7  Рік тому +4

      Basically! I shaved it for the opening; that's for sure!

  • @cabbagepotato2421
    @cabbagepotato2421 Рік тому +2

    Drinking game: you drink every time Tom says something like "this isn't optimal", or "that's not actually how it should be done", or "this is a bad idea"

  • @VaterOrlaag
    @VaterOrlaag Рік тому +3

    Technically correct is the best kind of correct!

  • @Verrisin
    @Verrisin Рік тому +2

    This man will escape the matrix one day ...
    "Given the microscopic rounding errors in quantum mechanics, I have found a way to ..."

    • @3lH4ck3rC0mf0r7
      @3lH4ck3rC0mf0r7 2 місяці тому +1

      "I caught a sandbox escape in real life."

  • @sorenwestrey4925
    @sorenwestrey4925 Рік тому +7

    Loved seeing this presented at SIGBOVIK this year!

  • @corolla94
    @corolla94 Рік тому +2

    i was rooting so much for downshift2 but realistically someone would've used it if it was good lmao

  • @EebstertheGreat
    @EebstertheGreat Рік тому +5

    By the way, the best method for finding an extremely high evaluation for a good chess engine is to have it examine a position with a huge material advantage and a forced mate in several moves, but give it so little time that it can't search far enough to find the mate. Like, maybe the mate is in 12 with an unintuitive key move, but the winning side is also up a queen and a rook or something. Some engines will give like +300 for such positions if they are stopped before they find the mate. The reason is that it evaluates the position at every node, so minimax will return a position that might even be a mate in 1, but since it stopped early, it hasn't realized that yet. But it will run the eval function, which is trained on a zillion positions, and knows with extremely high confidence that it is a winning position, because it literally has a mating pattern in plain view. Note that for most implementations, this only works if the best position it checks has 6 or more pieces on the board, since 3-5 man tablebases are usually built in.

    • @tom7
      @tom7  Рік тому +4

      Agreed, although the exercise I gave is to do so without significant limit on the search depth / time! My attempt is all about making sure there are no shallow mates (takes a lot of moves to get the queen out, and there are many ways to do it... it might even be possible for black to hold this indefinitely) but a huge material advantage.

    • @EebstertheGreat
      @EebstertheGreat Рік тому

      @@tom7 But like, what even is significant maaaan?

  • @trevise684
    @trevise684 Рік тому +2

    you need a teleprompter, im sure you watch him technology connections has a great video about diy ones

  • @CKomni
    @CKomni Рік тому +27

    If I had professors like you in 2009, I might have actually been excited about computer science at a crucial time in my life. Instead I got a professor stuck in 1973 and a class full of the worst examples for self actualization and independence in what should have been the hot spot for the tech boom. I lost like 5 years to people like your professor

    • @mikedrop4421
      @mikedrop4421 Рік тому

      His passion for Pascal didn't do it for ya huh?

  • @liv5645
    @liv5645 Рік тому +2

    No line in a youtube video has ever affected me like "This is the world's most boring Nintendo game ... You can't win it or even play it. It exists only to destroy your mind." in that style of delivery. I am in tears

  • @jobjitdip6161
    @jobjitdip6161 Рік тому +4

    Don't let anyone strangle you ever again, please! You need to be protected at all costs!

  • @radomane
    @radomane Рік тому +1

    I had no idea where this was going, the I saw IEEE-754 and was reminded of the around 20 times I’ve watched the video about the Quake fast inverse square root and realized how confusing this was going to be.

  • @SeanCMonahan
    @SeanCMonahan Рік тому +3

    For performance reasons, I experimented using half-precison floats for the bulk of a linear regression I wrote in OpenCL. I'm excited to see where this video goes! Hopefully downhill towards the global minimum, possibly escaping any local minima through imprecision abuse.

  • @SKULDROPR
    @SKULDROPR Рік тому +2

    I'm two minutes in and I'm like ohhh boy, I can see where he is going with this. I'll be he's going to use the imperfections of IEEE float as a non-linearity....if I'm right, what a mad lad you are sir.

  • @adamwulf
    @adamwulf Рік тому +6

    Lovely work! And enjoyed the practical engineering shoutout

    • @krallja
      @krallja Рік тому

      Practical Engineering has gone significantly downhill over the years.
      …In terms of number of googly eyes applied to demonstration models.
      Tom7 should have used more googly eyes too, for that matter.

  • @sageinit
    @sageinit Рік тому +2

    You'll wanna look into the plastic number. It KEEPS FUCKING UP IEEE FP math which is why people keep missing it. Even with double floats. It's a floating point approximation nightmare. And the worst part is that NAIVELY, simple numerical math with it SEEMS correct.

    • @sageinit
      @sageinit Рік тому +3

      Also, 5:05 HAH, I BLOODY KNEW you'd go for "well aksthually it's affine"