• Coursera公开课笔记: 斯坦福大学机器学习第一课“引言(Introduction)”


    Coursera上于4月23号启动了6门公开课,其中包括斯坦福大学于“机器学习”课程,由机器学习领域的大牛Andrew Ng教授授课:

     https://www.coursera.org/course/ml

    课程刚刚开始,对机器学习感兴趣的同学尽量注册,这样即使没有时间学习,获取相关资料特别是视频比较方便。

    由于工作繁忙的缘故,这批科目里我主要想系统的学习一下“机器学习”课程,所以计划在52opencourse和52nlp上同步我的机器学习课程笔记,一方面做个记录和总结,另一方面方便后来者参考。

    Coursera上机器学习的课程学习过程是这样的:看Andrew Ng教授的授课视频或者看看课程相关的ppt;答系统随机出的题,一般5道题,单选、多选甚至填空,满分5分;编程作业,需用Octave(和Matlab相似的开源编程语言)完成,提交给系统得分,在规定时间内完成,均取最高分,超过规定时间会对得分打折。

    第一周(4月23日-4月29日)的课程包括三课:

    • Introduction(引言)
    • Linear Regression with One Variable(单变量线性回归)
    • (Optional) Linear Algebra Review(线性代数回顾)(对于线性代数熟悉的同学可以选修)
    4月30日是答题(Review Questions)截至时间。
     
    以下是第一课“引言”的PPT课件资料,视频可以在Coursera机器学习课程上观看或下载:
    PPT   PDF
     
    以下是本课程的学习笔记,除了参考机器学习课程本身的内容外,还参考网上其他资料,特别是维基百科来做注解,欢迎学习该课程的同学在“我爱公开课”上进行探讨。

     

     

    一、机器学习概览

    1)机器学习定义:

    机器学习是人工智能的一个分支,目标是赋予机器一种新的能力。机器学习的应用很广泛,例如大规模的数据挖掘(网页点击数据,医疗记录等),无人驾驶飞机、汽车,手写手别,大多数的自然语言处理任务,计算机视觉,推荐系统等。 机器学习有很多定义,广为人知的有如下两条:

    Arthur Samuel (1959): Machine Learning: Field of study that gives computers the ability to learn without being explicitly programmed.

     

    注:Arthur Lee Samuel (1901–1990) 教授是美国人工智能领域的先驱,他设计了一些下棋程序,可以通过不断的下棋来学习,从而达到很高的下棋水平。

     

    Tom Mitchell (1998) : Well-posed Learning Problem: A computer program is said to learn from experience E with respect to some task T and some performance measure P, if its performance on T, as measured by P, improves with experience E.

     

    例子:对于一个垃圾邮件识别的问题,将邮件分类为垃圾邮件或非垃圾邮件是任务T,查看哪些邮件被标记为垃圾邮件哪些被标记为非垃圾邮件是经验E,正确识别的垃圾邮件或非垃圾邮件的数量或比率是评测指标P。

     

    2)机器学习算法的类型

    1、有监督学习(Supervised learning):通过生成一个函数将输入映射为一个合适的输出(通常也称为标记,多数情况下训练集都是有人工专家标注生成的)。例如分类问题,分类器更加输入向量和输出的分类标记模拟了一个函数,对于新的输入向量,得到它的分类结果。

    2、无监督学习(Unsupervised learning):与有监督学习相比,训练集没有人为标注的结果。常见的无监督学习算法有聚类。

    3、半监督学习: 介于监督学习与无监督学习之间。

    4、强化学习(Reinforcement learning): 通过观察来学习如何做出动作,每个动作都会对环境有所影响,而环境的反馈又可以引导该学习算法。

    其他的类型包括推荐系统,Transduction,Learning to learn等。

     

     

    3)有监督学习详解

     

    有监督学习主要会提供一些标注样本,分为两大问题:回归和分类

     

    房屋价格预测-回归(Regression): 预测连续的输出值(价格)

     

    有监督学习举例-房屋价格预测-52opencourse.com

     

     

     

     

     

    乳腺癌(良性,恶性)预测问题-分类(Classification): 预测离散的输出值(0, 1)

     

    乳腺癌预测问题-52opencourse.com

     

     

     

     

    4) 无监督学习详解:

     

    有监督学习和无监督学习的对比,看图更形象:

     

    有监督学习-我爱公开课-52opencourse.com                              无监督学习-我爱公开课-52opencourse.com

     

    例子: Google News, 基因序列分析,社会网络分析,市场切分等...

     

     

     

    特别的例子:鸡尾酒会问题(Cocktail party problem)

     

    “ 鸡尾酒会问题”(cocktail party problem)是在计算机语音识别领域的一个问题,当前语音识别技术已经可以以较高精度识别一个人所讲的话,但是当说话的人数为两人或者多人时,语音识别率就会极大的降低,这一难题被称为鸡尾酒会问题。

     

    鸡尾酒会问题-我爱公开课-52opencouse.com

     

    鸡尾酒会问题算法(一行代码):

     

    [W,s,v] = svd((repmat(sum(x.*x,1),size(x,1),1).*x)*x');

     

     

     

    一些参考资料:

     

    解决方法ICA demo: http://research.ics.tkk.fi/ica/cocktail/cocktail_en.cgi

     

    http://www.vislab.uq.edu.au/education/sc3/2001/johan/johan.pdf

     

    http://www.physorg.com/news75477497.html
    http://en.wikipedia.org/wiki/Cocktail_party_effect

     

    http://www.scientificamerican.com/article.cfm?id=solving-the-cocktail-party-problem

     

     

     

    以下关于"cocktail party problem"的文字引用自该链接:http://xiaozu.renren.com/xiaozu/121443/thread/335879281

     

    stanford机器学习公开课(ml-class.org)第一章unsupervised learning那段视频里解决鸡尾酒会问题(cocktail party problem)就写了一行代码:

     

    [W,s,v] = svd ((repmat(sum(x.*x,1),size(x,1),1).*x)*x');

     

    lz土人感觉是用了PCA的方法。。可是W运行出来丝毫没有unmixing的效果。。。用的是采样频率16kHz的Speech-Speech和Speech-Music两个样例。。

     

    google这条代码有post说这是ICA,我就迷茫了。。。看不出来怎么是ICA了。。折腾一夜了,毫无头绪。。。

     

    顺便求此问题的demo。。各种语言均无妨。。

     

     

    来源:http://52opencourse.com/54/coursera%E5%85%AC%E5%BC%80%E8%AF%BE%E7%AC%94%E8%AE%B0-%E6%96%AF%E5%9D%A6%E7%A6%8F%E5%A4%A7%E5%AD%A6%E6%9C%BA%E5%99%A8%E5%AD%A6%E4%B9%A0%E7%AC%AC%E4%B8%80%E8%AF%BE-%E5%BC%95%E8%A8%80-introduction

     

     

  • 相关阅读:
    Elasticsearch 从入门到学会之五(索引API-索引属性)
    jenkins 如何发布用java -jar来启动的java项目
    k8s从入门到精通-Pod定义详解
    Docker从入门到精通<9>-docker配置文件以及重启策略
    Docker从入门到精通<8>-docker-compose任务编排
    如何选择Containerd和docker
    Docker从入门到精通-企业级私有仓库harbor
    Docker从入门到精通<7>-docker存储驱动选择
    Docker从入门到精通<6>-使用Dockerfile构建镜像
    Docker从入门到精通<5>-数据持久化
  • 原文地址:https://www.cnblogs.com/94julia/p/3092994.html
Copyright © 2020-2023  润新知