#对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. 第 24 章 CSS3 变形效果[下]

    学习要点: 1.3D 变形简介 2.transform-style 3.perspective 4.3D 变形属性 主讲教师:李炎恢 本章主要探讨 HTML5 中 CSS3 的变形效果,主要接着上节课 ...

  2. Hibernate(一)__简介

    一. hibernate是什么 (一)hibernate 是一个orm框架,orm (object relation mapping) 对象关系映射框架 o object -> 业务层(只对对象 ...

  3. Planetary.js:帮助你构建超炫的互动球体效果

    Planetary.js 是一个 JavaScript 库,用于构建互动球体效果.它使用 D3 和 TopoJSON 解析和渲染地理数据.Planetary.js 采用了基于插件的架构,即使是默认的功 ...

  4. Tourist.js – 简单灵活的操作指南和导航插件

    Tourist.js 是一个基于 Backbone 和 jQuery 开发的轻量库,帮助你在应用程序创建简单易用的操作指南和导航功能.相比网站,它更适合用于复杂的,单页网站类型的应用程序.Touris ...

  5. swift学习笔记之-方法部分

    //方法部分 import UIKit //方法(Methods) /*方法是与某些特定类型相关联的函数,类.结构体.枚举都可以定义实例方法 实例方法(Instance Methods): 1.属于某 ...

  6. HTML滚动字幕代码参数详解及Js间隔滚动代码

    html文字滚动代码 <marquee style="WIDTH: 388px; HEIGHT: 200px" scrollamount="2" dire ...

  7. 一个python线程池的源码解析

    python为了方便人们编程高度封装了很多东西,比如进程里的进程池,大大方便了人们编程的效率,但是默认却没有线程池,本人前段时间整理出一个线程池,并进行了简单的解析和注释,本人水平有限,如有错误希望高 ...

  8. Sublime Text3 支持Less

    1.安装Sublime 插件 (1)安装LESS插件:因为Sublime不支持Less语法高亮,所以,先安装这个插件,方法: ctrl+shift+p>install Package>输入 ...

  9. URL 路径长度限制(错误:指定的文件或文件夹名称太长)

    本节讨论 URL 的构成.SharePoint 2010 构建 URL 的方式.URL 的编码和加长以及作为其他 URL 中的参数传递的方式. SharePoint URL 的构成 SharePoin ...

  10. Atitit jOrgChart的使用  组织架构图css html

    Atitit jOrgChart的使用  组织架构图css html 1. 项目要做组织架构图,要把它做成自上而下的树形结构,于是决定1 2. Html导入 以来的css js1 2.1. 数据来源 ...