吴恩达机器学习课程笔记-Ⅰ

1.1 Welcome


随着互联网数据不断累积,硬件不断升级迭代,在这个信息爆炸的时代,机器学习已被应用在各行各业中,可谓无处不在。
一些常见的机器学习的应用,例如:

  • 手写识别
  • 垃圾邮件分类
  • 搜索引擎
  • 图像处理

使用到机器学习的一些案例:

  • 数据挖掘
    • 网页点击流数据分析
  • 人工无法处理的工作(量大)
    • 手写识别
    • 计算机视觉
  • 个人定制
    • 推荐系统
  • 研究大脑

1.2 什么是机器学习(What is Machine Learning)


1.two definitions of machine learning

  • Arthur Samuel (1959). Machine Learning: Field of study that gives computers the ability to learn without being explicitly programmed.
    这个定义有点不正式但提出的时间最早,来自于一个懂得计算机编程的下棋菜鸟。他编写了一个程序,但没有显式地编程每一步该怎么走,而是让计算机自己和自己对弈,并不断地计算布局的好坏,来判断什么情况下获胜的概率高,从而积累经验,好似学习,最后,这个计算机程序成为了一个比他自己还厉害的棋手。

  • 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.

    Tom Mitchell 的定义更为现代和正式。一个程序应该通过学习一些经验E来完成一些任务T从而达到P的水准;即有了经验E后,经过P的评判,程序在处理T时的性能有所提升。

  • 在过滤垃圾邮件这个例子中,电子邮件系统会根据用户对电子邮件的标记(是/不是垃圾邮件)不断学习,从而提升过滤垃圾邮件的准确率,定义中的三个字母分别代表:

    • T(Task): 过滤垃圾邮件任务。
    • P(Performance): 电子邮件系统过滤垃圾邮件的准确率。
    • E(Experience): 用户对电子邮件的标记

2.机器学习算法

  • 两种主要算法
    • 监督学习(supervised learning):系统需要人工引导来获取经验从而完成任务

    • 无监督学习(unsupervised learning):系统能够自主学习来完成任务

    • 区别:是否需要人工参与数据结果的标注。

  • 其它
    • 半监督学习: 介于监督学习于无监督学习之间
    • 推荐算法: 没错,就是那些个买完某商品后还推荐同款的某购物网站所用的算法。
    • 强化学习: 通过观察来学习如何做出动作,每个动作都会对环境有所影响,而环境的反馈又可以引导该学习算法。
    • 迁移学习

1.3 监督学习(supervised learning)


监督学习,即为教计算机如何去完成预测任务(有反馈),预先给一定数据量的输入和对应的结果即训练集,建模拟合,最后让计算机预测未知数据的结果。
监督学习一般有两种:

  • 回归问题(Regression)
    回归问题即为预测一系列的连续值
    在房屋价格预测的例子中,给出了一系列的房屋面基数据,根据这些数据来预测任意面积的房屋价格。给出照片-年龄数据集,预测给定照片的年龄。
    在这里插入图片描述
  • 分类问题(Classification)
    分类问题即为预测一系列的离散值
    即根据数据预测被预测对象属于哪个分类。
    视频中举了癌症肿瘤这个例子,针对诊断结果,分别分类为良性或恶性。还例如垃圾邮件分类问题,也同样属于监督学习中的分类问题。
    在这里插入图片描述
    其与回归问题的区别:分类问题的结果中可以说只有0或1,而不是一个具体的数

视频中提到支持向量机这个算法,旨在解决当特征量很大的时候(特征即如癌症例子中的肿块大小,颜色,气味等各种特征),计算机内存一定会不够用的情况。支持向量机能让计算机处理无限多个特征

1.4 无监督学习(unsupervised learning)


相对于监督学习,训练集不会有人为标注的结果(无反馈),我们不会给出结果或无法得知训练集的结果是什么样,而是单纯由计算机通过无监督学习算法自行分析,从而“得出结果”。计算机可能会把特定的数据集归为几个不同的簇,故叫做聚类算法。
即 给定一堆数据 我们并未告诉系统某某数据具有某某属性 其在系统看来都是一样的 而是让系统去自行分析 然后将不同的数据分类;换而言之 举例:我们给与系统一堆写满文字的白纸,系统认为这些只是白纸,而我们想要系统自行分析并分类 那些是言情小说 哪些是悬疑小说 哪些是 科幻小说 或是分类 哪些是甲骨文 哪些是隶书 哪些是小篆

无监督学习一般分为两种

  • 聚类(Clustering)
    • 新闻聚合
    • DNA 个体聚类
    • 天文数据分析
    • 市场细分
    • 社交网络分析
  • 非聚类(Non-clustering)
    • 鸡尾酒问题

新闻聚合
在例如谷歌新闻这样的网站中,每天后台都会收集成千上万的新闻,然后将这些新闻分组成一个个的新闻专题,这样一个又一个聚类,就是应用了无监督学习的结果。
DNA个体聚类
给定一组个体的DNA序列 查看某些特定基因的显现程度 从而将不同的个体归属于不同的类
天文数据分析
庞大的客户群 客户属于哪些行业?
市场细分
庞大的客户群 客户属于哪些行业?
社交网络分析
我发送邮件的对象,使用facebook聊天的对象,哪些是泛泛之交?哪些又是好朋友?
鸡尾酒问题
在这里插入图片描述

在鸡尾酒会上,大家说话声音彼此重叠,几乎很难分辨出面前的人说了什么。我们很难对于这个问题进行数据标注,而这里的通过机器学习的无监督学习算法,就可以将说话者的声音同背景音乐分离出来。

神奇的一行代码: [W,s,v] = svd((repmat(sum(x.*x,1),size(x,1),1).*x)*x');

编程语言建议
在机器学习刚开始时,推荐使用 Octave 类的工程计算编程软件,因为在 C++ 或 Java 等编程语言中,编写对应的代码需要用到复杂的库以及要写大量的冗余代码,比较耗费时间,建议可以在学习过后再考虑使用其他语言来构建系统。 另外,在做原型搭建的时候也应该先考虑使用类似于 Octave 这种便于计算的编程软件,当其已经可以工作后,才将模型移植到其他的高级编程语言中。

注:Octave 与 MATLAB 语法相近,由于 MATLAB 为商业软件,课程中使用开源且免费的 Octave。
机器学习领域发展迅速,现在也可使用 Tensorflow 等开源机器学习框架编写机器学习代码,这些框架十分友好,易于编写及应用。


本帖来源
有兴趣者可查看。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值