Artificial Intelligence Lecture Videos
ocw.mit.edu
ocw.mit.edu
I also liked this quote from Lecture 23.
> A lot of times we ... confuse value with complexity.
> And many of the things that were the simplest in this subject are actually the most powerful.
> So be careful about confusing simplicity with triviality and thinking that something can't be important unless it's complicated and deeply mathematical.
That's true of most things in CS, I think. Maybe life in general. I'm educated in cybernetics, and our most advanced stuff is hardly ever used. Too costly to implement, tune and test, very few areas where it's truly necessary. PID will work well enough for your application 99 times out of 100. Model Predictive Control is very cool, but it's going to cost you a lot. In places that need advanced regulation but where strict guarantees are not needed a properly trained ANN will beat a more analytical approach and require way less education to pull off.
It too, is an incredible class. Here's the schedule & linked papers from last semester: https://courses.csail.mit.edu/6.803/schedule.html
(Disclaimer: Professor Winston is my current advisor)
This class fulfills a communication requirement at MIT, so there are a one-page response/reflections due at each class. These reflections basically just ensure that you have a decent grasp at the main points of the paper, so that you would be ready for a seminar-style discussion in class.
Genesis is pretty interesting. Here's a link to the details: http://groups.csail.mit.edu/genesis/ But in short, it's an attempt to get computers to understand stories — and to discover what is the fundamental difference between the human mind and all other animals (spoiler alert: Winston's group believes it's the ability for humans to take two concepts and merge them into a new concept, indefinitely. AKA: creating "stories"). So the goal of Genesis is story-understanding.
Wish you listed a method of contact. I really enjoy having conversations with more experienced hackers.
I'd had take-home tests before but Prof. Winston's were the first and only 24 hour tests that I've ever had. I remembered that he said that they had tried out the problems on some of the TA's for the class and that it would only take us a few hours to finish. For me at least, it took 24 hours and I still wasn't done.
Prof. Winston's class material was mostly in Lisp, but we also looked at Planner, kind of a DSL for AI. I was very impressed by a program presented by Winston that was capable of performing symbolic integration. Prof. Winston remarked, after we had discussed the program, that really, it wasn't a complicated system, just a simple algorithm with a data base of facts about integrals.
He also had a very funny, perhaps apocryphal, story about Joseph Weizenbaum's program ELIZA, a program that carries on a conversation with its user in the manner of a psychotherapist (like the doctor command of Emacs). Again, it turns out to be a simple program in Lisp with a small database of keywords and responses. Apparently, Weizenbaum had been working on the program on an MIT timesharing system and another professor had seen he was working late so he used the system's chat program to attempt to communicate with Weizenbaum (somewhat like the Unix talk command that lets one user contact another currently logged in user). However, Weizenbaum wasn't actually there he had gone to sleep and had just left his terminal with ELIZA still running and connected to the I/O of the terminal. The professor asked a question like "What are you working on so late?" and ELIZA responded in it's typical fashion: "Is there a reason that it's important to know why I am working so late?". The professor, a bit put off said something like "You were on the computer late and I was just curious." and ELIZA said back "Why do you feel that you are curious?" the conversations continues: Prof: "Why are you acting so strangely?", ELIZA: "Tell me more about your feelings that I am acting so strangely."
Finally, the professor is fed up with the crazy indirect answers and just calls Weizenbaum on the phone directly. At the late hour he is answers sleepily: "Hello" the professor says "Why are you acting so strange tonight?"; Weizenbaum replys "Why is that you are asking me why I am acting so strange?"
I started programming while in high school. At the time 1967, there was no way to do programming at home, there was no internet. I taught myself by reading a 1965 edition of McCracken's A guide to FORTRAN IV programming. The first program I wrote (on paper) was a program to solve linear programming problems using the Simplex algorithm which I had seen a high level description of. I punched up a program to do it on cards using the high school's data entry IBM 026 keypunch machine. I gave the cards to a friend that gave my program to someone over in the school district's administrative building to run on the school districts only computer (I think it was an IBM 1130).
Naturally, my first program didn't work. So it was back to rereading the book on programming and starting out with simpler examples. Turn around time continued to be about 3 days but I viewed programming as a hobby, a bit like being a Ham radio enthusiast. At MIT I continued to view programming as a hobby, but after a while I realized it was worth taking it seriously.
I didn't always do well in my undergraduate classes. I had gone to very bad schools growing up and everything was too easy for me until I got to MIT. I finally learned how to study by the time I got to grad school. Despite this my time there as a student was great. I remember many great professors in addition to Prof. Winston.
Also notable was 6.252 - Structure and Interpretation of Computer Languages. Prof. Dertouzos taught this demanding class. He recommended that I ask a new professor at MIT, Prof. Barbara Liskov (she later went on the be awarded the Turing Award) to be my undergraduate thesis advisor. She changed the way I thought about CS; it was a turning point in my life. I still remember asking her if knowing lambda calculus had any use, lol.
I'm now a senior citizen and next year will have been programming for half a century. I still write code almost every day. By now, I've programmed on every imaginable kind of machine, in every kind of programming language. I've invented important techniques in the field, started a successful publicly traded company, and been very happy with my career choice.
https://ocw.mit.edu/courses/electrical-engineering-and-compu...
Really stands out as one of the best lectures I have had the pleasure of watching.
Edit Note: I'm very new to machine learning as well, but this is what I've gathered so far.
A little OT, but although you could probably train models to figure that out, many (if not most) eCommerce sites should already be tagging their sites with semantic tags for product information, since it assists with indexing for search engines.
Here, for example, is the Schema.org for a product (https://schema.org/Product).
1. Get as much data about each site as possible. Try to find data that you think will separate the non-ecommerce sites from the ecommerce sites. This data should be in a table form- think of an Excel spreadsheet, where each row represents a different site.
2. Label the data as belonging to each type of site. This is going to be tedious and take some time. You can also try hiring people via Mechanical Turk to do this.
3. Use [Weka](http://www.cs.waikato.ac.nz/ml/weka/) or [Vowpal Wabbit](https://github.com/JohnLangford/vowpal_wabbit/wiki) to run some preliminary estimations on the model. Weka and VW are great tools as they come with a lot of the configuration done out of the box, so you won't have to write any code to get started.
Check your results and see how happy you are with them. Weka has a lot of visualization capacities, so you can see how the data that you've collected aligns with the different types of sites.
Now, you can start iterating, which is the key part of any ML project. Consider which aspects of the model you think you can improve on- adding more data, adding more kinds of sites, using a different machine learner.
This will be the hardest step. Feature extraction from html for identifying specific things like products, for any given site, is very hard (in my experience, which I will admit is pretty limited). Would love to be proven wrong though.
I had a lot of success finding duplicate bug reports by comparing the text from the bug reports with reference documents in a variety of topics (e.g. security, networking, C++), and getting a sense of how similar the text is to the reference text. That gives you a score of how relevant each subject is to the document.
You could do something similar here- download the text from 10 ecommerce sites, run some sort of topic extraction algorithm (like LDA) on it and then compare the text from the sites you're trying to classify with the text from the reference sites.
https://ocw.mit.edu/courses/electrical-engineering-and-compu...
I hate to dismiss something as ambitious as this course and just tell people to blindly follow trends, but my honest advice would be to just skim these notes if you're interested and go take a normal machine learning course instead.
If yes, what is missing from these lectures ( related to AI or ML or Deep Learning ) which has been discovered or developed recently and should be learned during the start ?