The Kernel Trick in Support Vector Machine (SVM)

Ғылым және технология

SVM can only produce linear boundaries between classes by default, which not enough for most machine learning applications. In order to get nonlinear boundaries, you have to pre-apply a nonlinear transformation to the data. The kernel trick allows you to bypass the need for specifying this nonlinear transformation explicitly. Instead, you specify a "kernel" function that directly describes how each points relate to each other. Kernels are much more fun to work with and come with important computational benefits.
---------------
Credit:
🐍 Manim and Python : github.com/3b1b/manim
🐵 Blender3D: www.blender.org/
🗒️ Emacs: www.gnu.org/software/emacs/
This video would not have been possible without the help of Gökçe Dayanıklı.

Пікірлер: 129

  • @nicoleta-vw3ql
    @nicoleta-vw3ql7 ай бұрын

    I listened to my lecturer and I was convinced that not even she understood something of her lecture...You clarified a lot for me only in three minutes...

  • @technosapien330

    @technosapien330

    3 ай бұрын

    More common than you'd like to think, I'm also convinced my lecturers don't understand it either.

  • @Baldvamp
    @BaldvampАй бұрын

    Incredible video, no messing around with long introductions, not patronising and easy to follow. It should be used as a guide for other people making educational videos!

  • @TheKrasTel
    @TheKrasTel2 жыл бұрын

    Your vidoes are absolutely amazing. Please keep making these, eventually the serious view numbers will come!

  • @jeffguo490
    @jeffguo490 Жыл бұрын

    This video is perfectly clear. I learnt SVM in class while I was confused by the lecture, and it is much clearer now.👍

  • @PowerhouseCell
    @PowerhouseCell Жыл бұрын

    Wow! I can't believe I didn't find this channel until now- your videos are amazing! As a creator myself, I understand how much work must go into this, so HUGE props!! Liked and subscribed 💛

  • @peaceandlove5855
    @peaceandlove58552 жыл бұрын

    seriously !!!! simplest explanation of Kernel in SVM ever seen , just wow thank you so so much bro for the hard work you are doing to make such great videos ;*

  • @LH-et7of
    @LH-et7of Жыл бұрын

    The best and most concise tutorial on Kernel tricks and SVM.

  • @tomashorych394
    @tomashorych3942 жыл бұрын

    Thanks a lot! I struggled to understand the difference between conventional dimension lifting and the "trick". Now it's crystal clear! Great explanation.

  • @VisuallyExplained

    @VisuallyExplained

    2 жыл бұрын

    Wonderful!!

  • @judgelaloicmoi
    @judgelaloicmoi2 жыл бұрын

    so amazingly simple and clear explanation, thank you so much !

  • @sunritpal9596
    @sunritpal95962 жыл бұрын

    Absolutely incredible explanation 👏

  • @satyamverma4726
    @satyamverma4726 Жыл бұрын

    Please keep making these contents. They are so intuitive. I don't understand why such channel don't grow on the other hand shitty contents are growing exponentially.

  • @vil9386
    @vil93863 ай бұрын

    understood fully. thank you. giving a code sample is like a bonus. Awesome explanation.

  • @mukul-kr
    @mukul-kr2 жыл бұрын

    just subscribed after watching this video only. Hoping to find more good content as these in your channel

  • @angelo6082
    @angelo60822 күн бұрын

    You saved me for my Data mining exam tomorrow 🙏

  • @think-tank6658
    @think-tank665810 ай бұрын

    I went through class video for 1 hour didnt understand a thing..thank god you thought me in 3 min ..you are a legend bro

  • @amardeepkumar1267
    @amardeepkumar1267 Жыл бұрын

    Great Visuals and explanation. Got it in One go. Thanks

  • @srinayan7839
    @srinayan78392 ай бұрын

    Please don't stop doing videos you are helping a lot of people

  • @lucaspecht9105
    @lucaspecht91052 жыл бұрын

    excellent video, short but informative!

  • @Sameer-jv5vx
    @Sameer-jv5vx Жыл бұрын

    thankyou so much you have nailed it it is crystal clear about kernel after watching your video thanks again

  • @archer9056
    @archer90562 ай бұрын

    Amazing videos by explaining different concepts in simple words. Please have long vides as well..

  • @negarmahmoudi-wt5bg
    @negarmahmoudi-wt5bg19 күн бұрын

    Thank you for this clear explanation.

  • @JI77469
    @JI774698 ай бұрын

    Fantastic video, but I think you should mention at the end why the "kernel trick" isn't practical with lots of data (i.e. why deep learning is used much more than the "kernel trick" in this age of big data): given a kernel, you need to store the entire matrix of data inputs into the kernel. There are ways to mitigate this a bit (for example Random Fourier Features and Nystrom method) but still this is a huge issue that no one has seemed to figure out how to fix. On the other hand, if you have a small amount of complicated data then the kernel trick is very useful! For example a medical researcher might only have access to the horrifically complicated genomic data of patients at their hospital.

  • @5MassaM5
    @5MassaM52 жыл бұрын

    Simply AMAZING! Thanks a lot!!!

  • @0xabaki
    @0xabaki3 ай бұрын

    super smooth explanation. Thanks!

  • @jonahturner2969
    @jonahturner29692 жыл бұрын

    Wow, I am sharing this everywhere bro. Fantastic videos, we will grow together !!

  • @gunduqrkdxhdrkd94
    @gunduqrkdxhdrkd94 Жыл бұрын

    I am korean so i am not good at english, but your teaching is very clear and easy to understand. Thank you teacher!

  • @HeduAI
    @HeduAI Жыл бұрын

    Such an amazing explanation!

  • @0-sumequilibrium421
    @0-sumequilibrium421 Жыл бұрын

    Very good video! Nice visualization! :)

  • @marishakrishna
    @marishakrishna Жыл бұрын

    Great.....Great presentation...This is what I mean when I say use Visuals graphics to explain a concepts

  • @AshishOmGourav
    @AshishOmGourav2 жыл бұрын

    Wow...this is for free. Amazing visuals!

  • @dialgos7574
    @dialgos75745 ай бұрын

    At 2:11 the shown Kernel and Transformation function do not match. The transformation function is missing the element ,1 as its last component and needs a scaling factor of sqrt(2) innfront of first 3 elements

  • @tongwei3527

    @tongwei3527

    3 ай бұрын

    👍

  • @Bibhu_Nanda
    @Bibhu_Nanda2 жыл бұрын

    Keep doing the Good work 👏

  • @batikanboraormanci
    @batikanboraormanci Жыл бұрын

    Wow, very nicely explained

  • @jamesr141
    @jamesr141 Жыл бұрын

    Gonna try the Kernel Trick!

  • @gama3181
    @gama3181 Жыл бұрын

    i love it ! thanks for the explanation

  • @lucasw8032
    @lucasw80325 ай бұрын

    Thank you so much, excellent content.

  • @sophiaxiao5071
    @sophiaxiao507110 ай бұрын

    I really like this video. Thanks!~

  • @user-ej1qf3jz1l
    @user-ej1qf3jz1l Жыл бұрын

    incredible explanation!

  • @lip6792
    @lip6792Ай бұрын

    Super good explanation

  • @letsplay0711
    @letsplay07112 жыл бұрын

    Amazing Man.. 😍 Just Awesome...

  • @cleverclover7
    @cleverclover75 ай бұрын

    fantastic contribution

  • @user-wi7st7ln9p
    @user-wi7st7ln9p Жыл бұрын

    Wow! Great video, thanks :)

  • @faridkhan5498
    @faridkhan5498 Жыл бұрын

    Something that took days to understand was well understood within a few mins. Cannot emphasize enough the importance of visualizations in MATH.

  • @GamerAvi33
    @GamerAvi336 ай бұрын

    Thank you!! Nice video :)

  • @harithm8172
    @harithm81729 ай бұрын

    Amazing explanation

  • @MamourBa-dc3fv
    @MamourBa-dc3fvАй бұрын

    Fantastic video

  • @benaoudamamchaoui8384
    @benaoudamamchaoui8384 Жыл бұрын

    amazing !! subscribed

  • @vaishnavi4354
    @vaishnavi435411 ай бұрын

    that's so powerful to understand

  • @rokibulhasan2005
    @rokibulhasan20059 ай бұрын

    Great Video Sir

  • @rishisingh6111
    @rishisingh6111 Жыл бұрын

    Awesome! Thanks a ton!

  • @JulianHarris
    @JulianHarris5 ай бұрын

    Thanks! How do you know which gamma to use?

  • @Mindreaderli
    @Mindreaderli2 жыл бұрын

    Wonderful clear

  • @Infinium
    @Infinium2 жыл бұрын

    Really great video, thanks for sharing! Out of interest, what do you use to produce your videos?

  • @VisuallyExplained

    @VisuallyExplained

    2 жыл бұрын

    Thank you!! I use Blender3D and manim

  • @DarkZeuss
    @DarkZeuss Жыл бұрын

    Just fantastic explanation, i was wondering how much time takes to make such a high quality video, and what software he is using to do it. ? ? anyone knows ?

  • @hantiop
    @hantiop3 күн бұрын

    Quick question: How do we choose the gamma parameter in the RBF kernel at 3:00? By, say, cross validation?

  • @photogyulai
    @photogyulai2 ай бұрын

    Bravo! Great lecture! How the hell do you do this interactive function animations?

  • @waseemahmed7919
    @waseemahmed7919 Жыл бұрын

    great work

  • @saxonharries9033
    @saxonharries9033 Жыл бұрын

    Fantastic video, thankyou

  • @VisuallyExplained

    @VisuallyExplained

    Жыл бұрын

    Thank you too!

  • @algiffaryriony
    @algiffaryriony2 жыл бұрын

    great video!

  • @fortunebezetshali7468
    @fortunebezetshali74682 жыл бұрын

    really a superbe video ! Thank you.

  • @VisuallyExplained

    @VisuallyExplained

    2 жыл бұрын

    So nice of you :-)

  • @footballistaedit25
    @footballistaedit252 жыл бұрын

    Thanks, Sir. Your explanation is incredibly amazing

  • @VisuallyExplained

    @VisuallyExplained

    2 жыл бұрын

    So nice of you! You are most welcome!

  • @footballistaedit25

    @footballistaedit25

    2 жыл бұрын

    @Visually Explained It helps so much. I'm waiting for the next video

  • @imalive404
    @imalive404 Жыл бұрын

    i have never understood kernel trick in SVM better.

  • @man49231
    @man49231 Жыл бұрын

    awsm video please make a video explaining K-Nearest Neighbors Algorithm also

  • @tlchannel2359
    @tlchannel2359 Жыл бұрын

    i hope u come back , i really like this content , pls

  • @flo7968
    @flo7968 Жыл бұрын

    perfect video

  • @Gibson-xn8xk
    @Gibson-xn8xk Жыл бұрын

    THANK YOU!!!

  • @PortesNew
    @PortesNew2 жыл бұрын

    Excellent

  • @abdulelahaljeffery6234
    @abdulelahaljeffery62342 жыл бұрын

    Hmmmm! Grant Sanderson is getting a serious contender right here

  • @pomegranate8593
    @pomegranate8593 Жыл бұрын

    AWESOME!!

  • @raven5165
    @raven51652 жыл бұрын

    Amazing video! How do you animate your videos?

  • @VisuallyExplained

    @VisuallyExplained

    Жыл бұрын

    Thanks! I use manim and Blender3D

  • @real7876
    @real78762 жыл бұрын

    to the point, concise, easy to understand, and even with code sample thanks!

  • @-________9732
    @-________973225 күн бұрын

    In witch programmulka can doing this

  • @leogacitua1926
    @leogacitua1926 Жыл бұрын

    Great video! How does this differ from kernal ridge regression?

  • @JI77469

    @JI77469

    8 ай бұрын

    kernel ridge regression is just that: regression using the kernel trick. Namely, instead of a hyperplane of best fit, you do the kernel trick to implicitly nonlinearly map the data into a high dimensional (sometimes infinite dimensional) space. But like with SVM, we don't need this map, and just need the kernel matrix at all the data points to practically perform algorithms. "Ridge" just refers to adding an l2 penalty to avoid overfitting. "Lasso" refers to l1 penalty, and I think in practice people even use l1+l2 penalties.

  • @Mutual_Information
    @Mutual_Information2 жыл бұрын

    Holy shit these are good videos!

  • @selvabalan5464
    @selvabalan54643 ай бұрын

    excellent

  • @pacomermela6497
    @pacomermela64972 жыл бұрын

    Thank you

  • @fortherest8490
    @fortherest8490 Жыл бұрын

    Im confused, how to display the hyperplane with polynomial kernel? Help me please?

  • @imanelamnaoir590
    @imanelamnaoir5906 ай бұрын

    Amazing

  • @michele23
    @michele23Ай бұрын

    Can you make a video on unique game conjecture / unique label cover ? That would be very helpful

  • @light_rays
    @light_rays2 жыл бұрын

    wow! that's so cool

  • @TalGalili
    @TalGalili2 жыл бұрын

    I wish I could like this video twice.

  • @ProfBeckmann
    @ProfBeckmann7 ай бұрын

    thanks!

  • @julienblanchon6082
    @julienblanchon60822 жыл бұрын

    What did you use for visualization ?

  • @VisuallyExplained

    @VisuallyExplained

    2 жыл бұрын

    Blender, manim library, and after effect

  • @chaddoomslayer4721
    @chaddoomslayer47212 жыл бұрын

    What kind of software did you use to create such beautiful illustrations?

  • @VisuallyExplained

    @VisuallyExplained

    2 жыл бұрын

    I have added a list to the video description

  • @chaddoomslayer4721

    @chaddoomslayer4721

    2 жыл бұрын

    @@VisuallyExplained appreciated!

  • @fredericnataf7927
    @fredericnataf79272 жыл бұрын

    Crystal clear

  • @poulamibanerjee3040
    @poulamibanerjee3040 Жыл бұрын

    So easy to visualize

  • @rohanjamakhandi5461
    @rohanjamakhandi54617 ай бұрын

    How to I use this when my decision boundary needs to be spiral?

  • @BlueBirdgg
    @BlueBirdgg2 жыл бұрын

    Ty!

  • @CrispySmiths
    @CrispySmiths Жыл бұрын

    What software do you use to make these videos? and why have you stopped making videos!? and why did you start?

  • @lancelotdsouza4705
    @lancelotdsouza47052 жыл бұрын

    Loved your video..can you Mentor me?

  • @fizipcfx
    @fizipcfx2 жыл бұрын

    did you use the Unity to produce this video?

  • @alexradu1921

    @alexradu1921

    2 жыл бұрын

    he said blender

  • @user-wr4yl7tx3w
    @user-wr4yl7tx3w7 ай бұрын

    why did you have "1 + " term in your polynomial kernel?

  • @peskarr
    @peskarr Жыл бұрын

    i dream about this visualisations

  • @cy-ti8ln
    @cy-ti8lnАй бұрын

    As I see, kernel-based regression is a type of symbolic regression

  • @sisialg1
    @sisialg1 Жыл бұрын

    you are amazing, you saved me !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!

  • @VisuallyExplained

    @VisuallyExplained

    Жыл бұрын

    YAYY!

  • @ttiigogo5897
    @ttiigogo5897 Жыл бұрын

    Still don't really understand, but I'm closer, thanks!

  • @benmoyal6107
    @benmoyal610710 ай бұрын

    wow!

  • @owonubijobsunday4764
    @owonubijobsunday4764 Жыл бұрын

    I'd like to subscribe again

  • @frederickaltrock5018
    @frederickaltrock5018 Жыл бұрын

    I really would have liked to know why you claim that we only need to computer inner products. Does it arise from the dual problem? If i remember correctly that problem features such scalar products. And why is that better?

  • @VisuallyExplained

    @VisuallyExplained

    Жыл бұрын

    If you write the dual problem (e.g., page 4 of www.robots.ox.ac.uk/~az/lectures/ml/lect3.pdf) you can see indeed that it only depends on inner products of the training points. There is, however, a more "intuitive" way to see why SVM only cares about the inner products without actually writing the dual problem. If I give you the matrix X = (xi^Txj) of pair-wise inner products of n points, you can recover the coordinates of the n points "up to rotation" by computing the matrix-square root of X for example. In other words, all sets of n points that have the inner product matrix X are obtained by rotating the n points whose coordinates are the columns of sqrtm(X). Now, if you want to separate the n points with a hyperplane, your problem doesn't fundamentally change if all the points are rotated in some arbitrary way (because you can just rotate the separating hyperplane in the same way). So the knowledge of the matrix of inner products X is sufficient for SVM to do its job. As to why that's helpful, let's say have 100 points, and each point has a million features (which can easily happen if you "lift" to the data). That's a 100 million numbers you need to store. However, the matrix of inner products will be 100x100 only, which is a huge saving!

  • @crush3dices

    @crush3dices

    Жыл бұрын

    @@VisuallyExplained this is my other Account. The first one is for work, didn't realize i used that one. Thanks for taking the time to answer :). Interesting, not quite trivial, that the matrix contains all relevant information. I have already read some more sources on it now. Since you seem to understand involved math, maybe u can help me with another Question. The Question is, why exactly we use the kernel trick instead of simply using a usual transformation into another vectorspace and then use usual linear svms. This seems like it would work so there has to be a motivation for the kernel trick. I already read that this has better performance. But even the book "hands on machine learning" only says that it "makes the whole process more efficient" which says practically nothing about the motivation. One thing one can easily notice is that since the dual problem optimizes only for the lagrange multipliers,, we have to calculate the kernel only once before training. This also seems to be the reason why the kernel trick only works for the dual problem. But i was wondering weither this is the whole Motivation or if there is some more magic that i missed here?

  • @VisuallyExplained

    @VisuallyExplained

    Жыл бұрын

    @@crush3dices There are basically two main reasons. The first that you already alluded to, is for performance reasons. It's more efficient to compute k(x,x') than the transformation f(x) if f is very high dimensional (or worse, infinite dimensional). The second reasons is practical: sometimes, it is easier to choose a kernel than a transformation f

  • @crush3dices

    @crush3dices

    Жыл бұрын

    @@VisuallyExplained alright thanks.

  • @mjwschuringa5464
    @mjwschuringa5464 Жыл бұрын

    Why did you stop making these video's?

Келесі