Andrew Ng's Coursera Machine Leaning(ML) Notes Week1

Andrew Ng’s Coursera Machine Leaning(ML) Course Notes Week1

Author: Yu-Shih Chen
December 20, 2018 12:50AM

Intro:
本人目前是在加州上大学的大二生,对人工智能和数据科学有浓厚的兴趣所以在上学校的课的同时也喜欢上一些网课。主要目的是希望能够通过在这个平台上分享自己的笔记来达到自己更好的学习/复习效果所以notes可能会有点乱,有些我认为我自己不需要再复习的内容我也不会重复。当然,如果你也在上这门网课,然后刚好看到了我的notes,又刚好觉得我的notes可能对你有点用,那我也会很开心哈哈!有任何问题或建议OR单纯的想交流OR单纯想做朋友的话可以加我的微信:y802088

Week1

这个星期Andrew给我们介绍了这门课的流程等一些基础知识我就不写了,关于linear algebra的科普我也不写了都比较基础。
Andrew给我们introduce了ML里面的第一个学习模型:Linear Regression Model
简单点说的话就是如果给一份数据库,可以画出一条根据提供的数据库“学习”的线如:
Andrew Ng's Coursera Machine Leaning(ML) Notes Week1_第1张图片
像这样可以画出一条线,用来预测未来的一些数据。那这个预测肯定是会有误差的 ,了解这个误差值也非常重要。计算Linear Regression Model的误差用以下公式:

We can measure the accuracy of our hypothesis function by using a cost function. – Andrew Ng
Andrew Ng's Coursera Machine Leaning(ML) Notes Week1_第2张图片

Cost function也就是计算误差的一个公式,这个比较好理解。h(x)其实就是我们初始预测的值然后y就是已经被提供的“答案”, 因为这个时候一般还没有开始学习,所以预测出来的值跟“答案”的误差会很大,毕竟是直接用初始设定的theta预测出的值。后面的idea就是:因为我们要这个J(theta)的最低值,所以我们会利用一些算法去算什么theta能达到最低的cost(误差)进而获取最有效率/准确率的预测。

那要怎么才能获取能够让这个cost function最低化的theta的值呢?大佬天才们想出了一个非常聪明的方法,叫 gradient descent
大概的思想是这样的:
Andrew Ng's Coursera Machine Leaning(ML) Notes Week1_第3张图片
可能会被这张图吓到,但是其实这张多维的表就是表示我们的误差(cost)的一个表。那当然,点越高,“山”越高,就越不好,因为就代表我们的cost越高。我们要寻找的就是能够到 “山底下”或者是整片“山域”的最低点,也就是cost的最低值。也就是 途中红色的箭头指的地方。那用人眼来决定的话,可能会比你一开始选择的值要有进步,但是肯定不会是最有效率的对吧?所以gradient descent的工作就是让电脑自己去找出最好的theta搭配来达到最低的值。

Gradient Descent的公式如下:
Andrew Ng's Coursera Machine Leaning(ML) Notes Week1_第4张图片
Intuition(我是这么理解的):
Andrew Ng's Coursera Machine Leaning(ML) Notes Week1_第5张图片
就是计算误差公式 (cost function)的根据theta的partial derivatives (这是微积分里面的multivariate calculus的知识,如果你能自己derive出这个公式那很好,但如果不行也不碍事)。但是从比较初级的calculus中,我们知道derivative就是计算某个公式的slope对吧?计算出slope之后,如果它是负的,那theta减这个负的值就会变成负负得正,也就是会往右边靠近(增加)。相反,如果slope是正的,那theta减这个正的值,就还是减,所以theta会往左边靠近(降低)。 光看文字可能很难理解,配合图中的graph来理解吧。第一个就是当slope是正的时候,theta就会往左边靠因为在降低。

还有一个没有解释的variable,也就是alpha也叫learning rate。这个alpha会决定我们每次运行gradient descent的时候的强度。但也不是说这个越大越好越快,因为如果alpha太大,我们的误差可能会越来越大!
WHY?
看图!
Andrew Ng's Coursera Machine Leaning(ML) Notes Week1_第6张图片
看到了吗,他会像蜘蛛侠一样弹来弹去,离我们要的最低值越来越远。但是如果alpha的值妥当,当我们得到的最低值也就是slope=0达到的时候,他就会自己停了。因为就会变成 theta - alpha * 0。

Week 1差不多就到这里啦,暂时还没有coding的作业。
Thanks for reading!

你可能感兴趣的:(机器学习,ML,机器学习,Coursera网课,ML)