网易公开课,第5课 notes,http://cs229.stanford.edu/notes/cs229-notes2.pdf 学习算法有两种,一种是前面一直看到的,直接对p(y|x; θ)进行建模,比如前面说的线性回归或逻辑回归,这种称为判别学习算法(discriminative learning algorithms) 另外一种思路,就是这里要谈的,称为生成学习算法(generative learning algorithms),区别在于不会直接对p(y|x; θ)进行建模,而是对p(x|…
网易公开课,第16课 notes,12 前面的supervised learning,对于一个指定的x可以明确告诉你,正确的y是什么 但某些sequential decision making问题,比如下棋或直升机自动驾驶 无法确切知道,下一步怎么样是正确的,因为这是一个连续和序列化的决策,比如直到最终直升机crash或下棋输了,你才知道之前的选择是不好的,但中间那么多步决策,到底是哪部分出了问题,可见这是个比较复杂的问题 强化学习,基本思路就是,既然不知道怎样是正确的,那就随便try,然后根据…
网易公开课,第11课 notes,http://cs229.stanford.edu/notes/cs229-notes6.pdf   和之前看到的batch learning算法不一样,batch learning一定是先用训练集进行训练,然后才进行预测 但是online learning,不必要一定有训练的过程,可以一边预测的同时一边训练 这个其实很现实,系统上线前也许很难收集到数据,并且数据也许也是在不断变化的 下面就用perceptron algorithm作为例子看看如何实现onlin…
网易公开课,第14, 15课 notes,10 之前谈到的factor analysis,用EM算法找到潜在的因子变量,以达到降维的目的 这里介绍的是另外一种降维的方法,Principal Components Analysis (PCA), 比Factor Analysis更为直接,计算也简单些 参考,A Tutorial on Principal Component Analysis, Jonathon Shlens   主成分分析基于, 在现实中,对于高维的数据,其中有很多维都是扰动噪音,…
网易公开课,第9,10课 notes,http://cs229.stanford.edu/notes/cs229-notes4.pdf 这章要讨论的问题是,如何去评价和选择学习算法   Bias/variance tradeoff 还是用这组图,学习算法追求的是generalization error(对未知数据的预测误差),而不是training error(只是对训练集) 最左边,underfit,我们说这种学习算法有较大的bias Informally, we define the bia…
网易公开课,第6,7,8课 notes,http://cs229.stanford.edu/notes/cs229-notes3.pdf SVM-支持向量机算法概述, 这篇讲的挺好,可以参考   先继续前面对线性分类器的讨论, 通过机器学习算法找到的线性分类的线,不是唯一的,对于一个训练集一般都会有很多线可以把两类分开,这里的问题是我们需要找到best的那条线 首先需要定义Margin, 直观上来讲,best的那条线,应该是在可以正确分类的前提下,离所有的样本点越远越好,why? 因为越靠近分类…
网易公开课,第10,11课 notes,http://cs229.stanford.edu/notes/cs229-notes5.pdf   Model Selection 首先需要解决的问题是,模型选择问题,如何来平衡bais和variance来自动选择模型?比如对于多项式分类,如何决定阶数k,对于locally weighted regression如何决定窗口大小,对于SVM如何决定参数C For instance, we might be using a polynomial regre…
网易公开课,第13,14课 notes,9 本质上因子分析是一种降维算法 参考,http://www.douban.com/note/225942377/,浅谈主成分分析和因子分析 把大量的原始变量,浓缩成少数几个因子变量 原始变量,代表浅层的表面现象,所以一定是很多和繁杂的 而因子变量,是代表深层的本质,因,是无法直接观察到的 所以因子分析,就是拨开现象发现本质的过程...很牛逼的感觉 举个例子,观察一个学生,你可以统计到很多原始变量, 代数,几何,语文,英语各科的成绩,每天作业时间,每天笔记…
网易公开课,监督学习应用.梯度下降 notes,http://cs229.stanford.edu/notes/cs229-notes1.pdf 线性回归(Linear Regression) 先看个例子,比如,想用面积和卧室个数来预测房屋的价格 训练集如下 首先,我们假设为线性模型,那么hypotheses定义为 , 其中x1,x2表示面积和#bedrooms两个feature 那么对于线性模型,更为通用的写法为 其中把θ和X看成向量,并且x0=1,就可以表示成最后那种,两个向量相乘的形式 那…
网易公开课,第3,4课 notes,http://cs229.stanford.edu/notes/cs229-notes1.pdf 前面讨论了线性回归问题, 符合高斯分布,使用最小二乘来作为损失函数 下面继续讨论分类问题,分类问题和回归问题不同在于Y的取值是离散的 我们先讨论最简单的binary classification,即Y的取值只有0和1 分类问题一般不会使用回归模型,因为回归模型是输出是连续的,而分类问题需要的输出是离散的 但是一定要用也不是不可以,比如这里继续使用线性回归模型,但是…
网易公开课,第15课 notes,11 参考, PCA本质是旋转找到新的基(basis),即坐标轴,并且新的基的维数大大降低 ICA也是找到新的基,但是目的是完全不一样的,而且ICA是不会降维的 对于ICA,最经典的问题,"鸡尾酒会"问题 在鸡尾酒会,上很多人同时在说话,还有背景音乐,如果我们放若干个话筒进行声音采集 是否可以从采集到的数据中,分离出每个人独立的声音 假设有n个不同的人,m个时间采集点,一般会用和人数一样多的话筒,也是n个 is an n-dimensional vec…
网易公开课,第12,13课 notes,7a, 7b,8 从这章开始,介绍无监督的算法 对于无监督,当然首先想到k means, 最典型也最简单,有需要直接看7a的讲义   Mixtures of Gaussians 如果要理解Mixtures of Gaussians,那先回去复习一下Gaussians Discriminant Analysis,高斯判别分析 首先高斯判别分析是生成算法, 所以不会直接拟合p(y|x), 而是拟合p(x|y)p(y), 即p(x,y) p(y)符合伯努力分布,…
网易公开课,第5,6课 notes,http://cs229.stanford.edu/notes/cs229-notes2.pdf 前面讨论了高斯判别分析,是一种生成学习算法,其中x是连续值 这里要介绍第二种生成学习算法,Naive Bayes算法,其中x是离散值的向量 这种算法常用于文本分类,比如分类垃圾邮件 首先,如何表示一个文本,即x? 以上面这种向量来表示,字典中的词是否在该文本中出现 其中每个词,可以看作是一个特征,对于特征的选取,可以过滤到stop word,或只选取出现多次的值.…
网易公开课,第4课 notes,http://cs229.stanford.edu/notes/cs229-notes1.pdf 前面介绍一个线性回归问题,符合高斯分布 一个分类问题,logstic回归,符合伯努利分布 也发现他们有些相似的地方,其实这些方法都是一个更广泛的模型族的特例,这个模型族称为,广义线性模型(Generalized Linear Models,GLMs) The exponential family 为了介绍GLMs,先需要介绍指数族分布(exponential fami…
在分类问题中我们如果: 他们都是广义线性模型中的一个样例,在理解广义线性模型之前须要先理解指数分布族. 指数分布族(The Exponential Family) 假设一个分布能够用例如以下公式表达,那么这个分布就属于指数分布族: 公式中y是随机变量:h(x)称为基础度量值(base measure): η称为分布的自然參数(natural parameter),也称为标准參数(canonical parameter): T(y)称为充分统计量,通常T(y)=y: a(η)称为对数切割函数(lo…
本文主要解说局部加权(线性)回归.在解说局部加权线性回归之前,先解说两个概念:欠拟合.过拟合.由此引出局部加权线性回归算法. 欠拟合.过拟合 例如以下图中三个拟合模型.第一个是一个线性模型.对训练数据拟合不够好,损失函数取值较大.如图中第二个模型,假设我们在线性模型上加一个新特征 x%5E%7B2%7D" alt="" style="border:0px">项,拟合结果就会好一些. 图中第三个是一个包括5阶多项式的模型,对训练数据差点儿完美拟合. 模…
线性回归中提到最小二乘损失函数及其相关知识.对于这一部分知识不清楚的同学能够參考上一篇文章<线性回归.梯度下降>. 本篇文章主要解说使用最小二乘法法构建损失函数和最小化损失函数的方法. 最小二乘法构建损失函数 最小二乘法也一种优化方法,用于求得目标函数的最优值.简单的说就是:让我们的预測值与真实值总的拟合误差(即总残差)达到最小. 在线性回归中使用最小二乘法构建了损失函数: 上一篇文章<线性回归.梯度下降>中提到求解使损失函数J(θ)取最小的θ值有两种方法:梯度下降(gradien…
我的机器学习系列从现在开始将会结合Andrew Ng老师与sklearn的api是实际应用相结合来写了. 吴恩达(1976-,英文名:Andrew Ng),华裔美国人,是斯坦福大学计算机科学系和电子工程系副教授,人工智能实验室主任.吴恩达是人工智能和机器学习领域国际上最权威的学者之一.吴恩达也是在线教育平台Coursera的联合创始人(with Daphne Koller). 2014年5月16日,吴恩达加入百度,担任百度公司首席科学家,负责百度研究院的领导工作,尤其是Baidu Brain计划…
这一章可能是Andrew Ng讲得最不清楚的一章,为什么这么说呢?这一章主要讲后向传播(Backpropagration, BP)算法,Ng花了一大半的时间在讲如何计算误差项$\delta$,如何计算$\Delta$的矩阵,以及如何用Matlab去实现后向传播,然而最关键的问题——为什么要这么计算?前面计算的这些量到底代表着什么,Ng基本没有讲解,也没有给出数学的推导的例子.所以这次内容我不打算照着公开课的内容去写,在查阅了许多资料后,我想先从一个简单的神经网络的梯度推导入手,理解后向传播算法的…
K-Means算法 非监督式学习对一组无标签的数据试图发现其内在的结构,主要用途包括: 市场划分(Market Segmentation) 社交网络分析(Social Network Analysis) 管理计算机集群(Organize Computer Clusters) 天文学数据分析(Astronomical Data Analysis) K-Means算法属于非监督式学习的一种,算法的输入是:训练数据集$\{x^{(1)},x^{(2)},\ldots, x^{(m)}\}$(其中$x^…
动机(Motivation) 对于非线性分类问题,如果用多元线性回归进行分类,需要构造许多高次项,导致特征特多学习参数过多,从而复杂度太高. 神经网络(Neural Network) 一个简单的神经网络如下图所示,每一个圆圈表示一个神经元,每个神经元接收上一层神经元的输出作为其输入,同时其输出信号到下一层,其中每一层的第一个神经元称为bias unit,它是额外加入的其值为1,通常用+1表示,下图用虚线画出. 符号说明: $a_i^{(j)}$表示第j层网络的第i个神经元,例如下图$a_1^{(…
Logistic 回归 通常是二元分类器(也可以用于多元分类),例如以下的分类问题 Email: spam / not spam Tumor: Malignant / benign 假设 (Hypothesis):$$h_\theta(x) = g(\theta^Tx)$$ $$g(z) = \frac{1}{1+e^{-z}}$$ 其中g(z)称为sigmoid函数,其函数图象如下图所示,可以看出预测值$y$的取值范围是(0, 1),这样对于 $h_\theta(x) \geq 0.5$, 模…
背景:跟上一讲一样,识别手写数字,给一组数据集ex4data1.mat,,每个样例都为灰度化为20*20像素,也就是每个样例的维度为400,加载这组数据后,我们会有5000*400的矩阵X(5000个样例),5000*1的矩阵y(表示每个样例所代表的数据).现在让你拟合出一个模型,使得这个模型能很好的预测其它手写的数字. (注意:我们用10代表0(矩阵y也是这样),因为Octave的矩阵没有0行) 一:神经网络( Neural Networks) 神经网络脚本ex4.m: %% Machine…
作业文件: machine-learning-ex4 1. 神经网络 在之前的练习中,我们已经实现了神经网络的前反馈传播算法,并且使用这个算法通过作业给的参数值预测了手写体数字.这个练习中,我们将实现反响传播算法来学习神经网络的参数. 1.1 可视化数据 这一节的代码将会加载数据,并且以二维的格式展现出来.运行代码会将训练集加载到变量X与y中. load('ex4data1.mat'); m = size(X, 1); % Randomly select 100 data points to d…
简介 最近在参加一个利用机器学习来解决安全问题的算法比赛,但是对机器学习的算法一直不了解,所以先了解一下机器学习相关的算法. Andrew Ng就是前段时间从百度离职的吴恩达.关于吴恩达是谁,相信程序员/媛都知道. Andrew Ng的机器学习的公开课其实就是当年吴恩达还在斯坦福大学时在coursera上面开设的一门机器学习的入门的公开课,课程地址链接为Andrew Ng机器学习公开课 Andrew Ng机器学习公开课的评价,可以参考知乎上面的问题如何评价 Coursera 的机器学习 (And…
Advice for applying machine learning 本周主要学习如何提升算法效率,以及如何判断学习算法在什么时候表现的很糟糕和如何debug我们的学习算法.为了让学习算法表现更好,我们还会学习如何解决处理偏态数据(skewed data). 以下内容部分参考我爱公开课-Advice for applying machine learning 一.内容概要 Evaluating a learning algorithm Deciding what to try next(决定…
Andrew Ng机器学习课程笔记(五)之 应用机器学习的建议 版权声明:本文为博主原创文章,转载请指明转载地址 http://www.cnblogs.com/fydeblog/p/7368472.html 前言 学习了Andrew Ng课程,开始写了一些笔记,现在写完第5章了,先把这5章的内容放在博客中,后面的内容会陆续更新! 这篇博客主要记录了Andrew Ng课程第五章应用机器学习的建议,主要介绍了在测试新数据出现较大误差该怎么处理,这期间讲到了数据集的分类,偏差,方差,学习曲线等概念,帮…
title: Andrew Ng机器学习课程笔记--week1(机器学习介绍及线性回归) tags: 机器学习, 学习笔记 grammar_cjkRuby: true --- 之前看过一遍,但是总是模模糊糊的感觉,也刚入门,虽然现在也是入门,但是对于一些概念已经有了比较深的认识(相对于最开始学习机器学习的时候).所以为了打好基础,决定再次学习一下Andrew Ng的课程,并记录笔记以供以后复习参考. 1. 内容概要 Introduction 什么是机器学习 监督学习 非监督学习 Linear R…
笔记总结,各章节主要内容已总结在标题之中 Andrew Ng机器学习课程笔记–week1(机器学习简介&线性回归模型) Andrew Ng机器学习课程笔记--week2(多元线性回归&正规公式) Andrew Ng机器学习课程笔记--week3(逻辑回归&正则化参数) Andrew Ng机器学习课程笔记--week4(神经网络) Andrew Ng机器学习课程笔记--week5(上)(神经网络损失函数&反向传播算法) Andrew Ng机器学习课程笔记--week5(下)(…
Andrew Ng机器学习课程笔记(六)之 机器学习系统的设计 版权声明:本文为博主原创文章,转载请指明转载地址 http://www.cnblogs.com/fydeblog/p/7392408.html 前言 这篇博客主要记录了Andrew Ng课程第6章机器学习系统的设计,Andrew用他的丰富经验讲述了如何有效.耗时少地实现一个机器学习系统,内容包括误差分析,误差度量,查准率和查全率等等 I 首先要做什么 以一个垃圾邮件分类器算法为例,为了解决这样一个问题,我们首先要做的决定是如何选择并…