AI Zone Admin Forum Add your forum

NEWS: Chatbots.org survey on 3000 US and UK consumers shows it is time for chatbot integration in customer service!read more..

Free Stanford Courses on Machine Learning and NLP
 
 

I hope everyone here is aware of the free learning opportunities out there, like http://khanacademy.org (for math and science) and Stanford Engineering Everywhere (SEE) http://see.stanford.edu/see/courses.aspx for technology topics.

Machine Learning
A group of 4 of us from my local Phoenix Arizona Java User’s Group (phxjug) are taking the free self-study Machine learning course offered by Stanford. Is anyone interested in joining us?

Most of the time the SEE courses are completely self-directed, but Machine Learning appears to have a bit of organization to it. There is a sign-up and start date (10/10). Here is the home:
http://www.ml-class.org/course/class/index

So far, only the first round of videos is available. According to those who have taken the full course at Stanford, this free version is missing several topics, but it still has a lot of good stuff.

You don’t need to be in GMT-7, to join our group. In fact, I do most of my coursework during the middle of the night, so participants from around the world are welcome. I’m working on setting up a sharepoint site so we have a virtual meeting space, but it’s not set up yet. We’re just getting organized.

I should also mention that this is not a Java course. So far, no programming language has been mentioned, but the instructor does use Octave. We hit the ground running with linear regression, so put your math hat on.


NLP Course
SEE also offers a Natural Language Processing course (!!!). I will organized a study group for this once we’re done with Machine Learning. Where machine learning has videos and interactive Q&A, the NLP course has 18 transcribed lectures with no videos (due to copyright issues), so get your screen readers ready. It does have a full set of quizes and homework, and a final project that all look really interesting! (I imagine it will take a few months for us to work through the machine learning course, so if you’re ready to go with NLP now, don’t wait for me!)

 

 

 
  [ # 1 ]

Nice. I will surely check them out!!!

Thanks alot.

 

 
  [ # 2 ]

I’ve already enrolled, along with the other two free courses being offered, as well. Here are the URL’s, for those interested:

http://www.ai-class.com/ - Introduction to Artificial Intelligence

http://www.db-class.org/ - Introduction to Databases

Enrollment has already begun for the Machine Learning and Database classes, and begins soon for the AI class. Oh boy, oh boy! More irons for the proverbial fire! smile

 

 
  [ # 3 ]

Oh, BTW Brien, according to this post at the course’s website, it seems that the course is likely to be using Octave and Matlab, though I’ve read nothing official yet. Just to be on the safe side, I’ve downloaded both, and have been doing some basic exploring. smile

 

 
  [ # 4 ]

Two small remarks:

* Enrollment has been available for the AI class for quite a while now (it was available before the machine learning and db introduction classes)
* Octave is a free and open source clone of matlab - there shouldn’t be any reason to download both. (Downloading matlab most likely would be illegal, unless you go with the 30 day evaluation version).

 

 
  [ # 5 ]

I have also signed up for the three courses.

 

 
  [ # 6 ]

On the machine learning class: I went through some of the videos that are publicly available, and I have to say the instructor is very thorough with each concept. Generally this is good, however I’m a little worried that it required several videos just to explain what is essentially variance (the function J). Brien, can you or anyone else who’s taking the class give me a sense of what level the homework is at? What type of work are they asking of you? How does it compare with the little questions given during the presentation?

 

 
  [ # 7 ]

I’m in too.  Octave is not really optional - Ng makes a strong pitch for it during one of the introductory lectures and the assignments will be automatically graded but they need to be submitted in Octave.

 

 
  [ # 8 ]

Subscribing to the “eat your own dog food” philosophy, I currently have a study group with my bot, using it to take notes on the Khan Academy lectures recommended by http://www.ai-class.com/resources. For example (transcript edited for brevity and clarity):

> what is the formula for finding the angle between vectors?
the formula for the angle between vectors is (a * b) = ||a|| ||b|| cos theta [...]

So now say I want to find the angle between the vectors [1 1] and [1 0].

> what is the vector dot product?
“In mathematics, the dot product is an algebraic operation that takes two equal-length sequences of numbers (usually coordinate vectors) and returns a single number obtained by multiplying corresponding entries and then summing those products.” - http://en.wikipedia.org/wiki/Dot_product

> .wa {1,1} * {1,0}
(1, 1) . (1, 0);1

So a * b (or a . b) = 1.

> .wa what is the length of vector {1,1}
length->vector (1, 1);sqrt(2) ~~ 1.41421 [...]

> .wa what is the length of vector {1,0}?
length->vector (1, 0);1 [...]

So now I know that 1 = sqrt(2) * 1 * cos Theta
so 1 / sqrt(2) = cos Theta
so Theta = arccos(1/sqrt(2))

> arccos(1/sqrt(2))
arccos(1/sqrt(2))?  0.785398163

> arccos(1/sqrt(2)) in degrees
arccos(1/sqrt(2)) in degrees?  45 degrees

Now to check using the Wolfram Alpha agent:

> .wa VectorAngle[{1,1}, {1,0}]
VectorAngle[{1, 1}, {1, 0}];pi/4~~0.785398

> .wa VectorAngle[{1,1}, {1,0}] in degrees
convert VectorAngle[{1, 1}, {1, 0}] to degrees;45° [...]

Actually I’m working out bugs so the actual interaction included a lot of repetition, and some trial and error before getting the responses above. But perhaps you get the idea of where I’m headed: trying to use the bot as a study partner :)

 

 
  [ # 9 ]

Are you trying to replicate Wolfram Alpha? smile

What is the length of vector (1,2,3)

 

 
  [ # 10 ]

Wolfram Alpha is one agent in a multi-agent system.

Here is an explanation of how the system worked in the dialog from my last post above:

The first question (“what is the formula for finding the angle between vectors?”) was answered by the logic agent. It had the highest score, so the controller selected it. I had previously told the bot the formula, as I was watching a Khan lesson, as an alternative to taking notes on paper.

The second question (“what is the vector dot product?”) was answered by the Wikipedia agent.

The next three questions (preceded by “.wa”) were sent to the Wolfram Alpha agent. (The waagent sends a request out to Wolfram Alpha and attempts to parse the results into a string; I’m using the Phenny wa module, wrapped in my own agent program.) Ideally the wa agent would give itself the highest score for these answers, so the controller would choose them, without explicitly including the “.wa” trigger; but sometimes due to randomization another agent (such as a random MegaHAL response :) might come up with the highest score. In this dialog I wanted to make sure I got the Wolfram Alpha response, so I included the trigger. Ultimately I want to do away with the need for any triggers…

The next couple questions (“arccos(1/sqrt(2))...”) was handled by the google calculator agent. (No trigger was necessary in this case.)

Then I returned to the Wolfram Alpha agent to check my work, using the explicit trigger “.wa” again. My Wolfram Alpha agent is a little different from the others right now, because it sometimes returns responses after the controller’s waiting period has ended. Using an explicit trigger tells the controller to wait for the WA agent to respond. (At least I think that’s how I currently have it set up, i’ve been trying different methods).

So I used four agents (logic, wiki, wa, calc) in this example dialog. Because of randomization, I can also get responses from the In Soviet Russia agent or others which can inject some humor into the study session :)

 

 
  [ # 11 ]
Robert Mitchell - Oct 7, 2011:

The next couple questions (“arccos(1/sqrt(2))...”) was handled

s/was/were

 

 
  [ # 12 ]
Brien Malone - Oct 2, 2011:

A group of 4 of us from my local Phoenix Arizona Java User’s Group (phxjug) are taking the free self-study Machine learning course offered by Stanford. Is anyone interested in joining us?

Thanks for this posting Brien! Although I’d love to join, it’s bit far away from me, living currently in Europe grin. Phoenix is a great place however. I’ve been there last year, in July. It was very hot during that period (still loved it actually), but I assume the winter is a perfect period for courses.grin

Anyway, your suggestion brought me to an idea for Chatbots.org, where we could cluster on location: ‘people in your neigborhood have just suggested…..’. That would facilitate calls like this, wouldn’t it?

Thanks for inspiring me!

 

 
  [ # 13 ]

I thought I would revisit this thread…..  Any comments by anyone that took this course?

I thought it was very good.  I’m wondering how I can use this technology in my bot’s design.. I’m sure I can find a use for this stuff somehow…anyone else have comments?

 

 
  [ # 14 ]

For all my enthusiasm at the beginning, I was unable to complete any of the offered courses. It seems that desire and circumstance didn’t sufficiently meet. I’m hoping to be able to “attend” these courses at some future time, but I’ll have to see. :(

 

 
  [ # 15 ]

I thought they were good too, each rounding out my knowledge in different areas. I did end up completing all 3 courses, although a blizzard and 5 days of power outages put a dent in my ability to complete the assignments on time.

Database course - if was a general overview of databases (I am not a big relational database guy). The XML processing discussions gave me some new ideas about transforming AIML files into something that might be usable in other forms. With HTML5 including a Sqlite database, there may be some interesting opportunities for complex client storage models.

AI course - heavy focus on using probability in AI. Good general AI overview. Peter Norvig is Director of Research at Google Inc. I found it interesting how he transformed many AI problems into search problems. I did not realize how much Bayes rule is integrated into the Google philosophy. I guess that is what happens when you have a billion word corpus and unlimited processing power at your fingertips. Sebastian Thrun is a Research Professor of Computer Science at Stanford and his team won the Darpa grand challenge (driverless cars). The real world robotic examples were fascinating. I may try some word sense disambiguation using techniques from the class and see if I can add a probability engine to my JAIL framework.

Machine Learning - good class focused on training machines on how to do things people find easy. Professor Andrew Ng has a great style, and is one of the authors on the paper cited in Erwin’s thread:
http://www.chatbots.org/research/news/the_unintended_captcha_hack_algorithm_of_google/
He has used the techniques in the class to recognize numbers in natural images and taught remote control helicopters to fly themselves. This class makes you learn Matlab/Octave (sort of throws you in the deep end and I struggled with this early in the class). By the end of the class I was very comfortable with Octave and will continue to use it at least for prototyping machine vision/image processing and large scale machine learning problems.

At the start, it sort of felt like I was trying to learn 3 foreign languages at the same time. I got tripped up mostly with syntax (correct SQL/XML queries, probability math, Octave vectorization/commands). But, each of the instructors were able to describe the concepts in such a way that they were understandable (the ability to replay the video allows you to go over the concepts more than once and I ended up taking a lot of notes). This form of instruction was very helpful and in the future, more high quality content will be available to everyone interested in learning about a subject. Other universities are offering open source classes, and Khan Academy has hours of content available to learn (mostly math related).
http://web.mit.edu/newsoffice/2011/mitx-education-initiative-1219.html
This might be the primary way our great-grandkids are educated.


The videos of some of the classes are up on Youtube and there are some interesting links from the chat boards of the classes. One thing I did not do (but should have) is participate in the class forums. I am taking the upcoming NLP course. Anyone with me?

 

 1 2 3 > 
1 of 3
 
  login or register to react