#对coursera上Andrew Ng老师开的机器学习课程的笔记和心得;

#注:此笔记是我自己认为本节课里比较重要、难理解或容易忘记的内容并做了些补充,并非是课堂详细笔记和要点;

#标记为<补充>的是我自己加的内容而非课堂内容,参考文献列于文末。博主能力有限,若有错误,恳请指正;

#---------------------------------------------------------------------------------#

这一周的内容是机器学习介绍和梯度下降法。作为入门NG的这个课已足够,想较深入理解的话强烈建议去听coursera上台湾大学机器学习的内容。

#---------------------------------------------------------------------------------#

什么是机器学习?

Tom Mitchell给出的定义: 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.

换句话说,我们想让机器在某些方面有所提高(如商品推荐的准确率),就“喂”给机器一些数据(用户资料、网购记录等等),然后让机器从这些数据中学习,达到某个准确率提高的目的。

#---------------------------------------------------------------------------------#

机器学习按照数据标记分可分为四类:监督式学习,无监督学习,半监督学习和增强学习;

supervised learning(监督式): Application in which the training data comprises examples of the input vectors, along with their correspongding target vectors are known.

关键词: "right answer" given(有标签), classification, regression;

unsupervised learning(无监督): The training data consists of a set of input vectors X without any corresponding target values.

关键词: 无标签,clusering, density estimation, visualization;

Semi-supervised learning(半监督): is a class of machine learning techniques that make use of both labeled and unlabeled data for training - typically a small amount of labeled data with a large amount of unlabeled data.

关键词: 部分有标签;

reinforcement learning(增强学习): a teacher only says to classifier whether it is right when suggesting a category for a pattern. The teacher does not tell what the correct category is.就是说一个评价仅仅给出某种判断是对还是错,而没有给出错在哪里。

《补充》根据输入输出变量的不同类型,对预测任务给予不同的名称,

输入输出变量均为连续->回归问题,输出变量为有限个离散变量->分类问题,输入输出变量均为变量序列->标注问题;

#---------------------------------------------------------------------------------# 

<补充>机器学习三要素-模型(model)、策略(strategy)、算法(algorithm);

模型就是所要学习条件概率分布或决策函数,模型的假设空间包含所有可能的条件概率分布或者决策函数。我们常见的一些方法,像隐马模型(HMM)、SVM模型、决策树模型等等都归于此类;

策略是指按照什么样的准则来学习或者挑选模型,常用到经验风险最小化或者结构风险最小化,像课上讲的J(Θ)、损失函数属于此类;

这里的算法是指学习模型的具体计算方法,即用什么样的方法来求得最优解,机器学习问题归结为最优化问题,像课上讲的梯度下降法,其他如牛顿法、拟牛顿法属于此类;

#---------------------------------------------------------------------------------#

cost function,J(theta)的几张图非常有助于理解,单参数的bell-shape,双参数的3D-plot和等高线plot;

 ,, 

学习速率α的大小很重要,小了导致梯度下降变慢,大了导致不收敛。所以要解决局部最优问题,改变α可能不是一个好办法,还是选多个初始位点来的安全;

#---------------------------------------------------------------------------------#

batch gradient descent 求解思路:

(1)将J(theta)对theta求偏导,得到每个theta对应的的梯度

(2)每次移动的时候考虑所有的实验点,按每个参数theta的梯度负方向,来更新每个theta

#---------------------------------------------------------------------------------#

stochastic gradient descent求解思路:

扫描每个点的时候就决定了参数的按照该点的梯度进行参数调整,每次参数调整只考虑当前一个试验点。

#---------------------------------------------------------------------------------#

《补充》标准梯度下降和随机梯度下降的关键区别:

1,标准梯度下降在权值更新前对所有样例汇总误差,而随机梯度下降的权值是通过考察每个训练实例来更新的;

2,标准梯度下降中,权值更新每一步对多个样例求和,需要更多计算,另外其使用的是真正的梯度,故每一次权值更新经常使用比随机梯度下降大的步长;

3,两者都不能保证找到全局最优解,随机梯度下降有时能够避免陷入局部极小值,因为它使用不同的梯度来引导搜索;

梯度下降法一般适用于计算过程的前期迭代或作为间插步骤,当接近极小点时,用梯度下降法不利于达到迭代的终止;

#---------------------------------------------------------------------------------#

参考文献:

统计学习方法》,李航著;

《machine learning》, by Tom Mitchell;

couresra课程: standford machine learning, by Andrew Ng;

couresra课程:台湾大学機器學習基石,by 林軒田;

coursera机器学习笔记-机器学习概论,梯度下降法的更多相关文章

  1. Coursera在线学习---第一节.梯度下降法与正规方程法求解模型参数比较

    一.梯度下降法 优点:即使特征变量的维度n很大,该方法依然很有效 缺点:1)需要选择学习速率α 2)需要多次迭代 二.正规方程法(Normal Equation) 该方法可以一次性求解参数Θ 优点:1 ...

  2. coursera机器学习笔记-建议,系统设计

    #对coursera上Andrew Ng老师开的机器学习课程的笔记和心得: #注:此笔记是我自己认为本节课里比较重要.难理解或容易忘记的内容并做了些补充,并非是课堂详细笔记和要点: #标记为<补 ...

  3. coursera机器学习笔记-多元线性回归,normal equation

    #对coursera上Andrew Ng老师开的机器学习课程的笔记和心得: #注:此笔记是我自己认为本节课里比较重要.难理解或容易忘记的内容并做了些补充,并非是课堂详细笔记和要点: #标记为<补 ...

  4. [机器学习] ML重要概念:梯度(Gradient)与梯度下降法(Gradient Descent)

    引言 机器学习栏目记录我在学习Machine Learning过程的一些心得笔记,涵盖线性回归.逻辑回归.Softmax回归.神经网络和SVM等等,主要学习资料来自网上的免费课程和一些经典书籍,免费课 ...

  5. [机器学习] Coursera ML笔记 - 逻辑回归(Logistic Regression)

    引言 机器学习栏目记录我在学习Machine Learning过程的一些心得笔记,涵盖线性回归.逻辑回归.Softmax回归.神经网络和SVM等等.主要学习资料来自Standford Andrew N ...

  6. 机器学习基础——梯度下降法(Gradient Descent)

    机器学习基础--梯度下降法(Gradient Descent) 看了coursea的机器学习课,知道了梯度下降法.一开始只是对其做了下简单的了解.随着内容的深入,发现梯度下降法在很多算法中都用的到,除 ...

  7. Coursera台大机器学习基础课程学习笔记1 -- 机器学习定义及PLA算法

    最近在跟台大的这个课程,觉得不错,想把学习笔记发出来跟大家分享下,有错误希望大家指正. 一机器学习是什么? 感觉和 Tom M. Mitchell的定义几乎一致, A computer program ...

  8. Coursera 机器学习笔记(八)

    主要为第十周内容:大规模机器学习.案例.总结 (一)随机梯度下降法 如果有一个大规模的训练集,普通的批量梯度下降法需要计算整个训练集的误差的平方和,如果学习方法需要迭代20次,这已经是非常大的计算代价 ...

  9. Coursera 机器学习笔记(七)

    主要为第九周内容:异常检测.推荐系统 (一)异常检测(DENSITY ESTIMATION) 核密度估计(kernel density estimation)是在概率论中用来估计未知的密度函数,属于非 ...

随机推荐

  1. 导入项目时Loading descriptor ...

    最近导入了一个项目,始终在Loading descriptor ...,很长时间都没有结束. 这是Eclipse在从java.sun.com的服务器上下载配置文件,下载速度过慢导致的,其实配置文件不是 ...

  2. swipe.js 2.0 轻量级框架实现mobile web 左右滑动

    属性总结笔记如下: <style> .swipe { overflow: hidden; //隐藏溢出 清楚浮动 visibility: hidden; //规定元素不可见 (可以设置,当 ...

  3. js的动态加载、缓存、更新以及复用(四)

    本来想一气呵成,把加载的过程都写了,但是卡着呢,所以只好在分成两份了. 1.页面里使用<script>来加载 boot.js . 2.然后在boot.js里面动态加载 bootLoad.j ...

  4. C#如何定制Excel界面并实现与数据库交互

    Excel是微软办公套装软件的一个重要的组成部分,它可以进行各种数据的处理.统计分析和辅助决策操作,广泛地应用于管理.统计财经.金融等众多领域.(另外,Excel还是伦敦一所会展中心的名称)..NET ...

  5. jQuery Panorama Viewer – 360度全景展示插件

    jQuery Panorama Viewer 这款插件可以帮助你在网站中嵌入全景图片.要做到这一点,首先只需要在页面中引入最新的 jQuery 库,以及 jquery.panorama_viewer. ...

  6. URL-统一资源定位器

    URL - Uniform Resource Locator URL 可以由单词组成,比如 “w3school.com.cn”,或者是因特网协议(IP)地址:192.168.1.253.大多数人在网上 ...

  7. Python 操作 MySQL 之 pysql 与 ORM(转载)

    本文针对 Python 操作 MySQL 主要使用的两种方式讲解: 原生模块 pymsql ORM框架 SQLAchemy 本章内容: pymsql 执行 sql 增\删\改\查 语句 pymsql ...

  8. 如何在Infraworks中创建多树种组成的森林

    在Infraworks 2014中,你可以有shp文件导入生成树木和森林,也可以直接在模型中规划一片区域作为森林.美中不足的就是,这些充其量叫树林不能叫森林,因为他们的样式都是一个树种,而真正的森林肯 ...

  9. Java虚拟机JVM学习06 自定义类加载器 父委托机制和命名空间的再讨论

    Java虚拟机JVM学习06 自定义类加载器 父委托机制和命名空间的再讨论 创建用户自定义的类加载器 要创建用户自定义的类加载器,只需要扩展java.lang.ClassLoader类,然后覆盖它的f ...

  10. Android HTTP实例 使用GET方法和POST方法发送请求

    Android HTTP实例 使用GET方法和POST方法发送请求 Web程序:使用GET和POST方法发送请求 首先利用MyEclispe+Tomcat写好一个Web程序,实现的功能就是提交用户信息 ...