最近看coursera的machine learning公开课,感想很多。最大的感受有二,一是我意识到了自己前期浪费了太多时间,以至于有些迷茫,现在明白了很多。二是machine learning确实神奇,andrew也是一个非常棒的老师,AI更是一个神奇的领域,越来越感兴趣了。
话不多说,其实已经跟了3 weeks 的课程了,总体感觉不是很难,作业也不是很多,反而重新温习了很多东西,比如calculus和linear algebra,越发感觉到了math和computer science之间的关系妙不可言。现在来写写前三周课的大体内容把。
首先,machine learning分两种学习方式,一是supervised learning,二是unsupervised learning。supervised learning主要有regression和classification二种分析形式。regression主要是一些连续值的预测,后者则是离散值的预测。
regression:线性回归最为普遍,线性回归首先要做的是找到做cost function,达到最小值是当然是最好的学习结果。扩展到多个变量时,自然就扩展到了多维。一般取最小值都会用gradient descent,即同时使参数theta变化,以找出当前下降最快的斜率。当训练数据大小差别很大时,一般使用feature scaling来是使学习更方便。当然还有最简单的方法normal equation,就直接找到是斜率等于0的点。
classification: logistic regression(历史原因把classification还是称为regression),这里使用的cost function和regression的是不一样的,为了使预测更加准确,一般都会使用
的函数更好地匹配离散数据,同时也使cost function是convex的,,能使用gradient descent找到最小值。因为logistic regression的feature很多,所以一般用regularization来避免overfitting,即减小theta参数对函数的作用。