跟着吴恩达学机器学习(Machine Learning) on Coursera 第一天

观看了吴恩达教授讲解的supervised and unsupervised learning学习视频,了解了这两种算法的运用场景,分别是supervised learning 和 unsupervised learning。

supervised learning(有监督的学习)

针对于people can know what the ouput should look like,也就是给机器喂的都是有正确答案的数据(right answers given),分为regression(回归预测)和classfication(分类)这两大类任务。

unsupervised learning(无监督的学习)

则是在人类没有给正确答案的情况下让机器自己去探索,从数据中识别出结构和挖掘出有规律的信息(derive structure or pattern from data),也是分为两类,clustering 和 no-clustering,前者是一个聚类问题,在google news上运用了该算法,从而可以将同一个主题的不同新闻形成一个group;后者举的一个栗子是cocktail party problem,其实就是把人的声音从嘈杂的背景音乐当中分割出来,从人声中把背景音乐分割也是ok的,其实就是把交叠在一起的多个声源中每单个声音分割出来的一个过程。

下午看Coursera视频看到困就睡了40分钟,后面继续看了几个,发现都是学习过的,不过也有一些新的收获,再次学习了最最简单的linear regression相关内容,其实就是输入用supervised learning algorithm解决的回归预测问题,而线性回归问题就是最最简单的了,也就是找到一条直线拟合输入和输出。

这里涉及到三个函数,第一个是hypothesis,也就是可以根据输入预测输出的函数,简称H;第二个是检验H表现好坏的函数cost function,它其实就是预测输出和实际输出差的平方和再除2m(m为数据的数量),也可以称作square error funtion;第三个是objective function,其实就是我们的目标方程,也就是使得cost function可以为最小值时的那个方程,或者说方程的参数,因为方程的样式已经定下来了,就是一个线性的方程。

模型的输入可以称为input variables or input features;模型的输出则为target variables or output variables。最后就是finding appropriate parameters for object function的过程,也就是如何才能找到那组可以让cost function的值最小的参数呢?那就是需要用到导数相关的知识,gradient descend啦!今天也就看了几个视频和一些文字材料,虽然都是之前跟着李宏毅(我超级喜欢的一个老师)学习过的内容,可是还是有新的收获,吴恩达老师全程英文也至少练习了听力......但还是为李宏毅老师的教学视频疯狂打call!讲解非常幽默生动、活泼有趣!就是我在听数学公式讲解的时候总是犯困,今天一贯如此?。

GUN Octave在mac上的安装

昨天用为mac量身定做的homebrew包管理器下载好了Andrew Ng推荐使用的Octave(Matlab也被推荐了),原来用homebrew安装包用的是brew指令而不是homebrew。安装指令就是下面这两条,对macOS用户非常友好了有没有!

brew update

brew install octave 

Anyway,安装好了之后终端直接敲 octave 指令就可以将它运行起来啦,我看了一下GUN Octave官网(https://www.gnu.org/software/octave/)对它的介绍:Scientific Programming Language,专门用于科学计算编程的语言,并有以下三个特点:

1、Powerful mathematics-oriented syntax with built-in plotting and visualization tools

强大的内建画图和可视化工具的面向数学的语法

2、Free software, runs on GNU/Linux, macOS, BSD, and Windows

这点很重要,免费!并且在各种操作系统平台上都可以运行

3、Drop-in compatible with many Matlab scripts

Drop-in不知道该咋翻译,向下?反正大概意思就是兼容很多Matlab脚本

官方给的文档(https://octave.org/doc/interpreter/)我没有细看,内容还是很多的,证明是真的很强大很有料哈哈,不过用几行代码就把个图画出来确实真的非常方便!比学习Python再去画图啥的效率确实要高一些。慢慢学习熟练运用吧!

对了,Andrew老师推荐学生们使用Matlab和Octave而不是Python, R等来进行编程实践的原因是:

吴老师在教授ML课程的时候尝试过很多不用的语言,最后发现学生用Matlab/Octave上手练习的学习速度更快,所以整个课程的设计就是基于Matlab/Octave,后面也提到了R,评价R还是有点太高级了,课程只想专注于展示ML相关算法到底是如何实现的,但是R已经把它们都实现了,这样不利于ML算法的深入学习和探究。

所以,如果没有用过Matlab或Octave的话,选择其一作为实践的工具就好啦!我选择Octave的原因是我太不认识它了,想给自己一个认识新朋友的机会哈哈。

  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值