Monte Carlo Tree Search

แชร์
ฝัง
  • เผยแพร่เมื่อ 13 พ.ค. 2024
  • This is a video I made for my class "CS310: Foundations of Artificial Intelligence" at the University of Strathclyde. The video has a brief description of the Monte Carlo Tree Search algorithm and includes a worked example.

ความคิดเห็น • 216

  • @luiz00estilo
    @luiz00estilo 4 ปีที่แล้ว +187

    This is a ridiculously good explanation for MCTS. Keep teaching, you're really good at it

  • @tukuri91
    @tukuri91 6 ปีที่แล้ว +121

    Best explanation for MCTS

  • @omriram6960
    @omriram6960 4 ปีที่แล้ว +36

    I watched this vid like 10 times to make my monte carlo agent. thnx man

  • @vnpikachu4627
    @vnpikachu4627 3 ปีที่แล้ว +54

    The visualization make this algorithm so easy to understand! Thanks for your great work, professor!

  • @TusharPal93
    @TusharPal93 2 ปีที่แล้ว +23

    Honestly, the best explanation for MCTS so far. This helped greatly, thank you ☺

  • @puturavindrawiguna3025
    @puturavindrawiguna3025 ปีที่แล้ว +12

    Oh my god, this video is so great, the explanation is so clear, all with flowchart , pseudocode, visualization. Thank you for providing this wonderful learning material

  • @RickeyBowers
    @RickeyBowers 4 ปีที่แล้ว +1

    After reading about this method, the rollout was confusing. The verbosity of your example completely eliminates that confusion. Thank you.

  • @vaibhavsingh2898
    @vaibhavsingh2898 9 หลายเดือนก่อน +1

    I came here after watching many vids on MCTS and none of the videos were able to make me understand the concept but this video is the best

  • @jiangfenglin4359
    @jiangfenglin4359 3 ปีที่แล้ว

    Your videos are so helpful. Thank you for posting these online!

  • @kitgary
    @kitgary 3 ปีที่แล้ว +2

    This is the best step by step explanation of MTCS! You save my day! Thanks!

  • @MegaHoegaarden
    @MegaHoegaarden 6 ปีที่แล้ว +6

    The best explanation. Thank you!

  • @tommatensalatxd565
    @tommatensalatxd565 2 ปีที่แล้ว +3

    Thank you for your explanation. Your video was the only source where I could understand this algorithm. It really helps writing my seminar work

    • @johnlevine2909
      @johnlevine2909  2 ปีที่แล้ว +3

      You're very welcome! Glad it was of use.

  • @taeyonkim
    @taeyonkim 6 ปีที่แล้ว +3

    Great video. It was well explained and easy to follow. I'd love to see other videos related to deep learning if you have them.

  • @wangshiyao
    @wangshiyao 3 ปีที่แล้ว

    Thank you Prof! The worked example makes the absolute difference!

  • @tljstewart
    @tljstewart 2 ปีที่แล้ว +1

    This is pure gold! Thank you infinitely

  • @angelogross8390
    @angelogross8390 4 ปีที่แล้ว +1

    Great explanation of the algorithm, showing all the elements which are needed to get a basic understanding of MCTS. Thank you.

  • @indieelectroworks
    @indieelectroworks 4 ปีที่แล้ว

    Very clear explanation of the algorithm and the video is also well made! Thank you!

  • @jarayu6494
    @jarayu6494 5 ปีที่แล้ว +4

    What you did is admirable sir, great thanks for the explanation. Saved my day.

  • @andrewminhnguyen9446
    @andrewminhnguyen9446 2 ปีที่แล้ว

    What a great explanation! I've heard other explanations, but this is the condensed one I'll refer to in the future!

  • @monkey_see_monkey_do
    @monkey_see_monkey_do 3 ปีที่แล้ว +5

    Sir, thank you so much for the explanations. Even dumb like me now feels like I will now apply MCTS to my tictactoe game! If teachers like you taught me when I was a kid my life would definitely be different. Just can't thank enough for this lecture!

  • @cheyneravenscroft2945
    @cheyneravenscroft2945 4 ปีที่แล้ว

    Incredibly clear, after just one watch i now understand MCTS

  • @kate-145
    @kate-145 10 หลายเดือนก่อน

    Thank you so much for the motivation this gives me to not give up, its a lot easier to believe in myself after understanding these concepts!

  • @micahwang4091
    @micahwang4091 2 ปีที่แล้ว

    Very clear lecture. Great explanation! Thank you!

  • @sahhaf1234
    @sahhaf1234 3 ปีที่แล้ว

    a monument to clarity. thank you very much.

  • @MrJustinRobertson
    @MrJustinRobertson 2 ปีที่แล้ว

    By far the best explanation I've seen. Thank you.

  • @cmulation5460
    @cmulation5460 3 ปีที่แล้ว

    Thank you so much! I'm working on my FYP and this is the best explanation of MCTS out there!

  • @goddoes8
    @goddoes8 6 ปีที่แล้ว +2

    Thank you for the great lecture.

  • @vaibhavsingh8715
    @vaibhavsingh8715 2 ปีที่แล้ว

    By far, the simplest explanation of MCTS. Thank you so much.

  • @aorusaki
    @aorusaki 4 ปีที่แล้ว

    Very good presentation. Thank you! I really needed clarification on whether to increment visit count BEFORE or AFTER backpropagation. Thanks for this :)

  • @mortenbrodersen8664
    @mortenbrodersen8664 3 ปีที่แล้ว

    Great video. Explaining things clearly is hard. You make it look easy John.

  • @joaquinvanloon7341
    @joaquinvanloon7341 6 ปีที่แล้ว +3

    Great video! Helped me a lot, thanks.

  • @johnr3936
    @johnr3936 2 ปีที่แล้ว

    Truly incredible explanation.

  • @florianhamel17
    @florianhamel17 4 ปีที่แล้ว +6

    Thank you so much, because this is the first source I find that gives a true example.
    So once again, thank you so much. I think I'll now be able to implement it in C for my connect 4 :)

  • @darmilatron
    @darmilatron 6 หลายเดือนก่อน

    Thank you for such a clear explanation of MCTS.

  • @akhilezai
    @akhilezai 3 ปีที่แล้ว +1

    One of the best explanations of MCTS

  • @anthonyapm
    @anthonyapm หลายเดือนก่อน +1

    Beautifully explained

  • @yuanhuang2489
    @yuanhuang2489 6 ปีที่แล้ว +2

    Great lecture and vivid example! Thanks a lot! ^_^

  • @charlesphillips1963
    @charlesphillips1963 3 ปีที่แล้ว

    life saver , great run through

  • @talhatariqyuluqatdis
    @talhatariqyuluqatdis 5 ปีที่แล้ว +1

    Extremely helpful! Thank you.

  • @poshsagar
    @poshsagar 6 ปีที่แล้ว +1

    Really great lecture. Continue the good work :)

  • @ThePositiev3x
    @ThePositiev3x 4 ปีที่แล้ว +7

    At the beginning, your root node's visit number is 0, but you expand it instead of rollout. I know it is the right way but then you should alter your algorithm. At the left board you said "rollout if the ni value is 0"
    You can do this by saying the root node has the visit value 1 from the start.

    • @anthonyzavala7173
      @anthonyzavala7173 10 หลายเดือนก่อน

      Don't you expand and then rollout just like he did, meaning that the visits would be 0.

  • @nikokolas1138
    @nikokolas1138 2 ปีที่แล้ว +1

    Your explanations are much better than the Wikipedia page. Congrats! Thought that MCTS was only applicable to games in which you have an opponent, glad to see it is not the case and will apply it to my pb. Thanks!

  • @durgaharish1993
    @durgaharish1993 7 ปีที่แล้ว +32

    Thanks a lot for the lecture, its was really helpful :)

  • @TheDaAndy
    @TheDaAndy 7 ปีที่แล้ว +3

    Thank you for the video, you explained very well the single steps. That helps me a lot, most of all the expansion step was the one I didn't understand until now.

    • @johnlevine2909
      @johnlevine2909  7 ปีที่แล้ว +5

      You're very welcome! It took me a while to work out how the expansion step works, since the standard explanation offered is a bit unclear on this point.

  • @jayanmistry1768
    @jayanmistry1768 5 ปีที่แล้ว

    Amazing explanation!!

  • @AGCrush
    @AGCrush 3 ปีที่แล้ว

    Great Explanation!! Thank you alot!! Keep the good work going!

  • @ianyang8228
    @ianyang8228 ปีที่แล้ว

    The best explanation I can find.

  • @TheAIEpiphany
    @TheAIEpiphany 3 ปีที่แล้ว +10

    5:25 - It's not the smartest idea to take them in numerical order it will somewhat bias the algo, I think a better policy would be a random uniform one or to put some priors over the actions using some heuristic or better yet an ML model (maybe a policy dnn like in the case of AlphaGo) in case you know some specifics of the problem you're trying to solve with MCTS.
    It's also maybe worth mentioning that the expansion threshold doesn't necessarily have to be 1, it's the hyperparam of MCTS. So maybe you'll have to visit the node 40 times before expanding it.
    Finally in order to pick the best action at the end sometimes you don't want to choose it looking at the average reward of the child states but simply take the visit count - but I guess this is problem specific.
    Loved the walk-through, thank you John! Great pedagogical methods you've got.

    • @IqweoR
      @IqweoR 2 ปีที่แล้ว +1

      Thanks for the insights!

  • @The_Gingiraffe
    @The_Gingiraffe 3 ปีที่แล้ว

    Thank you! Explained it better than my professor ever did

  • @jhhh0619
    @jhhh0619 5 ปีที่แล้ว +1

    Jeez. You are the best!

  • @brendongong7295
    @brendongong7295 หลายเดือนก่อน

    amazing walkthrough, thank you

  • @robertmcvickers5975
    @robertmcvickers5975 3 ปีที่แล้ว +1

    Wow, this is liquid gold. Thanks John.
    Nice to hear from a fellow brit and not MIT OCW! Big up America too tho..

  • @someshpatel7660
    @someshpatel7660 6 ปีที่แล้ว +1

    Bro u rocked, alot respect for u. Thanks

  • @GanymedeCroft
    @GanymedeCroft ปีที่แล้ว

    Thank you for the explanation. It was clear!

  • @sultanahmed5646
    @sultanahmed5646 4 ปีที่แล้ว

    Thanks a lot for sharing this video Sir, It was really very help full.

  • @ahmadsalehiyan5610
    @ahmadsalehiyan5610 10 หลายเดือนก่อน

    Great explanation, thanks

  • @irvingzhang5657
    @irvingzhang5657 6 ปีที่แล้ว +1

    really helpful, thank you!

  • @sc0820
    @sc0820 3 ปีที่แล้ว

    The content is so exciting even the camera shares the feeling.

  • @meetkumarnaik1272
    @meetkumarnaik1272 5 ปีที่แล้ว

    Clean explanation!

  • @alexfalconer-athanasssakos5066
    @alexfalconer-athanasssakos5066 7 ปีที่แล้ว

    Right on time for end of term, great video

    • @johnlevine2909
      @johnlevine2909  7 ปีที่แล้ว

      Thanks! Glad you found it useful.

  • @lesalemome
    @lesalemome 6 ปีที่แล้ว

    Great explanation of MCTS

  • @ivanmateev
    @ivanmateev 2 ปีที่แล้ว

    awesome explanation. thank you

  • @samsonyu5679
    @samsonyu5679 ปีที่แล้ว

    Thank you, this is very helpful 👍

  • @arbutusunedo6866
    @arbutusunedo6866 4 ปีที่แล้ว

    Best possible explanation...

  • @railgunpat3170
    @railgunpat3170 4 ปีที่แล้ว

    Great explanation.

  • @robertjurjevic6580
    @robertjurjevic6580 6 ปีที่แล้ว

    thanks for sharing the lecture 😊

  • @AlessandroOrlandi83
    @AlessandroOrlandi83 3 ปีที่แล้ว

    Thanks the best explanation of MCTS. I wish to understand how it would work with a game with multiple players.

  • @sqliu9489
    @sqliu9489 ปีที่แล้ว

    Super clear explanation!!! 🌟🌟🌟🌟🌟

  •  6 ปีที่แล้ว

    Very nice explanation, thank you

  • @seanwu2343
    @seanwu2343 ปีที่แล้ว

    Perfect video

  • @tolis947
    @tolis947 3 ปีที่แล้ว +1

    First of all, thank you for the excellent lecture and explanation! The algorithm is very clear and understandable from the way it's presented.
    My question is: In the end you mention that what this gives us, is that we should take action a2 over a1. Why can't we take it a step further and also infer that, for example a5 is better than a6 (assuming we have visited them both more times than what is presented in the example). Why do we only use a whole search tree for just one decision, and then scrap it and rebuild it anew, instead of making more sequential decisions using the same tree?

  • @zucoorsmart5977
    @zucoorsmart5977 ปีที่แล้ว

    So clear! Thank you!

  • @malinyamato2291
    @malinyamato2291 2 ปีที่แล้ว

    thank u for helping me in my AI studies... ure great.

  • @tobiasarndt5640
    @tobiasarndt5640 2 ปีที่แล้ว

    fantastic!

  • @stivstivsti
    @stivstivsti 2 ปีที่แล้ว

    Brilliant.

  • @Sakibkhan-lc8jy
    @Sakibkhan-lc8jy 2 ปีที่แล้ว

    Thank you very much.. You are great! ❤️

  • @CSRocks
    @CSRocks 7 ปีที่แล้ว +1

    Very good and easy to follow explanation!

  • @smallwang
    @smallwang 6 ปีที่แล้ว

    Thanks a lot, it's really clear!

  • @sajadshafaf534
    @sajadshafaf534 10 หลายเดือนก่อน

    thank you very much, it helped me a lot!

  • @user-ce4zv9vd1p
    @user-ce4zv9vd1p 3 ปีที่แล้ว

    Great Video!

  • @xXUkanlosXx
    @xXUkanlosXx 3 ปีที่แล้ว

    Thank you very much! My game of othello is fully working now! :)

  • @Galakyllz
    @Galakyllz ปีที่แล้ว

    I really appreciate the algorithm trace.

  • @matthiasegli6846
    @matthiasegli6846 4 ปีที่แล้ว

    really great video!

  • @joshuac9142
    @joshuac9142 6 วันที่ผ่านมา

    Perfect!

  • @Gornak40
    @Gornak40 3 ปีที่แล้ว +1

    Very nice explanation! Thank you!
    I have a question: what should I do if I am in the leaf node and I should extend it, but the state of this node is terminal?

  • @guillaumerousseau9549
    @guillaumerousseau9549 4 ปีที่แล้ว

    Super clear thank you.

  • @LosSebosFR
    @LosSebosFR 3 ชั่วโมงที่ผ่านมา

    Thank you so much ! The explanations are very clear, you make it sound like it's easy! What's with the human calculator by the way ?

  • @zakariataouil2780
    @zakariataouil2780 11 หลายเดือนก่อน

    Straight forward explanation

  • @zoc2
    @zoc2 12 วันที่ผ่านมา

    John levine and josh starmer are carrying me so hard my feet aren't even touching the ground

  • @raciociniologico1378
    @raciociniologico1378 2 ปีที่แล้ว

    Thank you sooooo much!!!!

  • @mochamao5373
    @mochamao5373 4 ปีที่แล้ว

    really helpful, like it

  • @QuantKinderChocolate
    @QuantKinderChocolate 2 ปีที่แล้ว

    Nice lecture!

  • @charleswang9835
    @charleswang9835 ปีที่แล้ว

    Thank you!

  • @marionmeyers9836
    @marionmeyers9836 7 ปีที่แล้ว +7

    Thank you so much for this video, really helped me a lot.
    I just have one question : when expanding, why do you only roll out from one of the children? Wouldn't it give a more accurate score for the parent if we simulate all its children?

    • @johnlevine2909
      @johnlevine2909  7 ปีที่แล้ว +29

      Good question. In general, MCTS is trying to make the best decision it can from the limited number of rollouts that it can make in the time available. Therefore, every time it does a rollout, it updates the whole tree and then uses this updated tree too decide where to sample next - it could be that sampling only a single child will tell us that the node above is a poor choice, and so we will start sampling elsewhere in the tree.

  • @user-sv1qi4rq5q
    @user-sv1qi4rq5q 5 ปีที่แล้ว

    Great video

  • @ercanatam6344
    @ercanatam6344 2 ปีที่แล้ว

    Dear Prof. John, thank you for the amazing video on MCTS. Where ca we find the pseudocode for the MCTS? Which materials do you suggest for this?

  • @pedrosmmc
    @pedrosmmc 5 ปีที่แล้ว +1

    Didn't understand why after backpropagation on S5, S0 became 44 if it was 30 and S2 = 24. I thought we should add S0 = 30 plus S2 = 24 so S0 would be 54!
    By the way, best explanation EVER! Thanks a lot for sharing.

    • @morelfotsing2221
      @morelfotsing2221 5 ปีที่แล้ว

      Pedro Coelho I believe we just backpropagate the value we obtained after the rollout. So if we got 14, we just add that 4 to each of the parents all the way to the root.

  • @sevfx
    @sevfx ปีที่แล้ว

    This will go in my bachelor thesis about alpha go zero :) Thanks so much for the explanation! Do you have some sources for citation on MCTS maybe?

  • @ogito999
    @ogito999 2 ปีที่แล้ว

    Really useful.

  • @gorkemvids4839
    @gorkemvids4839 2 ปีที่แล้ว

    Amazing explanation. Thank you. But i'm not sure how to get terminal value of leaf state. Is it average score you get after you do random actions from this point?