机器学习cs229 - CSDN
精华内容
参与话题
  • 斯坦福大学cs229机器学习所有课程原始讲义合集,包括基础知识,线性代数等复习知识,还有problem set.
  • 机器学习CS229

    2020-07-01 02:12:33
    最近在学机器学习,用的是cs229,打算边学习边翻译,加深理解。 CS229-notes监督式学习(supervised learning problems)Part I线性回归(Linear Regression) 监督式学习(supervised learning problems) 让我们以...

    最近在学机器学习,用的是cs229,打算边学习边翻译,加深理解。

    监督式学习(supervised learning problems)

    让我们以一些监督式学习问题的例子来开始吧。假设我们有一个数据集,给出了俄勒冈州波特兰市47栋房屋的居住面积和价格:
    在这里插入图片描述
    我们可以绘制出如下的数据:
    在这里插入图片描述
    有了这样的一组数据,我们如何才能利用这些数据预测出波特兰市其它房屋的价格,就像输入一个以房屋面积为自变量的函数获得价格的输出一样。

    先确立一些接下来会用到的标记。x(i)用来表示输入的变量(在这个例子中x(i)就是房子的面积),也可以叫做输入的特征值。y(i)用来表示输出或者是我们尽力去预测的目标变量(在这个例子中这个目标变量是价格)。一对(x(i),y(i))叫做训练样本,m组训练样本{(x(i),y(i));i = 1, . . . , m}叫做训练集。需要注意的是,上标“(i)”在这个标记中只是单纯的数据集的索引,并不是幂次。我们用X表示输入值域,用Y表示输出的值域。在这个例子中,X=Y=R

    对于监督式学习的问题,进一步地说,我们的目标是给定一个训练集,能够训练出一个函数h:XY,这个函数可以比较好地预测出y的值。按照过去的说法,函数h被称为假设,这个过程可以用下面这种图表示:

    在这里插入图片描述
    当我们预测的目标变量是连续的,就像我们这个例子中的价格。我们称这类学习问题是一个回归问题。当y只能取少量的离散的值时(例如,给出房屋的面积,判断这住房是居民房还是公寓,等等),我们称这类学习问题是分类问题。

    Part I 线性回归(Linear Regression)

    为了使这个房屋的例子更有趣一些,让我们再添加一些数据集,假设我们还知道每个房屋起居室的数量:
    在这里插入图片描述
    这里的x是一个R2空间中的二维向量。例如,x1(i)是训练集中第 i 个房子的面积,x2(i)是起居室数量。(一般来说,当设计一个学习问题的时候,它需要你去决定选取哪些特征值,如果你去收集波特兰市的房屋数据的话,你可以选择收集其它的特征值,比如,是否拥有壁炉,卫生间的数量等等。我们将会在之后谈到特征值的选取,目前先让我们使用这些给定的数据。)

    为了实现监督学习,我们必须确定如何在计算机上表示函数/假设 h 。作为一开始的尝试,我们把y近似地看作是关于x的线性函数:
    在这里插入图片描述

    Part II 分类和逻辑回归(Classification and logistic regression)

    Part III 广义线性模型(Generalized Linear Models)

    Part IV 生成学习算法(Generative Learning algorithms)

    目前为止,我们主要讨论的是基于y受到x限制的p(y|x;θ)模型的学习算法。例如,在逻辑回归中构造的p(y|x;θ)是hθ(x)=g(θTx),其中的 g 是sigmoid函数就是一种范围的限制。在这一部分里,我们将会讨论一种不同的学习算法。

    考虑一个这样的分类问题:我们需要利用一些动物的模型学习区分大象(y=1)和狗(y=0)。给定一个数据集和算法,例如逻辑回归或者感知器算法(基本的),去寻找一条决策边界直线区分大象和狗。然后用这个去区分一个新的动物,看它落在大象的一边还是狗的一边,以此给出预测。

    这里给出另一种区分方法。首先,观察大象,我们可以建立一个关于大象特征的模型。之后,观察狗,我们可以建立另一个关于狗特征的模型。最后,把新的动物的特征和大象模型以及狗的模型比较,看看它和我们从数据集里得出的大象的模型更像还是和狗的模型更像。

    有一类算法是想要直接学习得出p(y|x)(例如逻辑回归),还有一类算法想要通过输入空间χ\chi到{0,1}的映射直接学习得出特征分布(例如感知器算法),这两类算法统称为判别学习算法(discriminative learning algorithms)。在此,我们将会用讨论另一种算法来构造p(x|y)(以及p(y))。这种算法叫做生成学习算法(generative learning algorithms)。例如,如果 y 表示一个例子是狗(0)或是大象(1),那p(x|y=0)表示狗的特征,p(x|y=1)表示大象的特征。

    在构造完p(y)(类先验)和p(x|y)之后,我们的算法可以用贝叶斯规则得到y关于x的后验分布:
    在这里插入图片描述
    这里,分母是给定的p(x) = p(x|y=1)p(y=1) + p(x|y=0)p(y=0)(你应该能够用概率论证明这是正确的),因此这也可以表示成我们已知数量的p(x|y)和p(y)。其实,如果计算p(y|x)做预测,那么我们就不需要计算分母了,因为:
    在这里插入图片描述

    高斯判别分析(Gaussian discriminant analysis)

    我们将要学习的第一个生成学习算法是高斯判别分析(GDA)。在这个模型里,根据多元正态分布,我们假设p(x|y)是分布式的。在讨论GDA模型之前,让我们先简短地了解一下多元正态分布的性质。

    多元正态分布(The multivariate normal distribution)

    n维多元正态分布也称为多元高斯分布,可以参数化表示:一个均值向量μR2\mu\in\R^2和一个协方差矩阵ΣRnn\Sigma\in\R^{n*n},其中Σ0\Sigma\ge0是对称正半定义的(symmetric and positive semi-definite)。也可以写成“N(μ,Σ)\Nu(\mu,\Sigma)”,它的概率密度如下:

    p(x;μ,Σ)=1(2π)n/2Σ1/2exp(12(xμ)TΣ1(xμ))p(x;\mu,\Sigma)= \cfrac{1}{(2\pi)^{n/2} |\Sigma|^{1/2}} exp\bigg( -\cfrac{1}{2}(x-\mu)^T \Sigma^{-1}(x-\mu) \bigg)

    在上面的等式中,“Σ|\Sigma|”表示矩阵“Σ\Sigma”的行列式。

    对于一个随机变量XX满足N(μ,Σ)N(\mu,\Sigma)分布,它的均值(并不以外的)可以由μ\mu表示:
    E[X]=xp(x;μ,Σ)dx=μ E[X]=\int xp(x;\mu,\Sigma)dx=\mu

    向量值随机变量ZZ的协方差定义为Cov(Z)=E[(ZE[Z])(ZE[Z])T]Cov(Z)=E[(Z-E[Z])(Z-E[Z])^T]。这概括了实值随机变量的概念。协方差同样可以被定义为Cov(Z)=E[ZZT](E[Z])(E[Z])TCov(Z)=E[ZZ^T]-(E[Z])(E[Z])^T。(你可以自己证明这两个定义是等价的)。如果XN(μ,Σ)X\backsim N(\mu,\Sigma),那么
    Cov(X)=Σ. Cov(X)=\Sigma.
    这里是一些高斯分布密度的样例图:
    在这里插入图片描述
    最左边的图片表示一个均值为零(2x1的零向量)和协方差矩阵Σ=I\Sigma=I(2x2单位矩阵)的高斯分布。一个均值为零,协方差是单位矩阵的高斯分布也叫做正态分布。中间这幅图表示一个均值为零,Σ=0.6I\Sigma=0.6I的高斯分布。最右边这幅图表示一个均值为零,Σ=2I\Sigma=2I的高斯分布。我们可以看到随着Σ\Sigma的变大,高斯分布变得越来越“扩散”,同时变得越来越小,这个分布越来越“扁”。

    让我们看更多的例子:
    在这里插入图片描述
    上面这些图表示的高斯分布为零,协方差矩阵如下:

    Σ=[1001]\Sigma=\begin{bmatrix} 1 & 0 \\ 0 & 1 \end{bmatrix}Σ=[10.50.51]\Sigma=\begin{bmatrix} 1 & 0.5 \\ 0.5 & 1 \end{bmatrix}Σ=[10.80.81]\Sigma=\begin{bmatrix} 1 & 0.8 \\ 0.8 & 1 \end{bmatrix}.

    左边这幅图看上去很像正态分布,我们可以看到随着Σ\Sigma斜对角线值的增加,密度分布向45o方向压缩(给定x1=x2)。通过观看这三幅图的等高线,我们可以更清楚的观察到这一点:
    在这里插入图片描述
    下面是改变最后一组例子的Σ\Sigma生成的等高线图像:
    在这里插入图片描述
    上面的图使用的Σ\Sigma如下,

    Σ=[10.50.51]\Sigma=\begin{bmatrix} 1 & -0.5 \\ -0.5 & 1 \end{bmatrix}Σ=[10.80.81]\Sigma=\begin{bmatrix} 1 & -0.8 \\ -0.8 & 1 \end{bmatrix}Σ=[30.80.81]\Sigma=\begin{bmatrix} 3 & 0.8 \\ 0.8 & 1 \end{bmatrix}.

    通过最左边和中间这幅图,我们可以看到,减小协方差矩阵斜对角线的值,这个密度分布图像再次变“扁”,不过是朝相反方向。最后,随着参数的改变,等高线普遍情况下会变成椭圆(最右边这幅图就是一个例子)。

    最后一组例子,固定Σ=I\Sigma=I,通过改变μ\mu,我们也可以移动密度分布附件的均值。
    在这里插入图片描述
    上面的图是用Σ=I\Sigma=I生成的,使用的μ\mu如下:
    μ=[10]\mu=\begin{bmatrix} 1 \\ 0 \end{bmatrix}; μ=[0.50]\mu=\begin{bmatrix} -0.5 \\ 0 \end{bmatrix}; μ=[11.5]\mu=\begin{bmatrix} -1 \\ -1.5 \end{bmatrix}.

    高斯判别分析模型(The Gaussian Discriminant Analysis model)

    当我们有一个输入的特征值 xx 是连续随机变量的分类问题时,我们可以使用高斯判别分析(GDA)模型,这个模型p(xy)p(x|y)使用多元正态分布。模型如下:
    yBernoulli(ϕ)xy=0N(μ) y\backsim Bernoulli(\phi) x|y=0\backsim N(\mu)
    xy=0N(μ0,Σ) x|y=0\backsim N(\mu_0,\Sigma)
    xy=1N(μ1,Σ) x|y=1\backsim N(\mu_1,\Sigma)

    展开全文
  • cs229】斯坦福机器学习笔记(一)

    千次阅读 2017-01-10 11:50:43
     说到机器学习,很多人推荐的学习资料就是斯坦福Andrew Ng的cs229,有相关的视频和讲义。不过好的资料 !好入门的资料,Andrew Ng在coursera有另外一个机器学习课程,更适合入门。课程有video,review questions和...

    前言

      说到机器学习,很多人推荐的学习资料就是斯坦福Andrew Ng的cs229,有相关的视频讲义。不过好的资料 !好入门的资料,Andrew Ng在coursera有另外一个机器学习课程,更适合入门。课程有video,review questions和programing exercises。最重要的就是里面的programing exercises,得理解透才完成得来的,毕竟不是简单点点鼠标的选择题。不过coursera的课程屏蔽很一些比较难的内容,如果觉得课程不够过瘾,可以再看看cs229的。这篇笔记主要是参照cs229的课程,但也会穿插coursera的一些内容。
    接触完机器学习,会发现有两门课很重要,一个是概率统计,另外一个是线性代数。因为机器学习使用的数据,可以看成概率统计里的样本,而机器学习建模之后,你会发现剩下的就是线性代数求解问题。
    至于学习资料,周志华最新的《机器学习》西瓜书已经出了,肯定是首选!以前的话我推荐《机器学习实战》,能解决你对机器学习怎么落地的困惑。李航的《统计学习方法》可以当提纲参考。cs229除了lecture notes,还有session notes(简直是雪中送炭,夏天送风扇,lecture notes里那些让你觉得有必要再深入了解的点这里可以找到),和problem sets,如果仔细读,资料也够多了。

    1. 线性回归 linear regression
      通过现实生活中的例子,可以帮助理解和体会线性回归。比如某日,某屌丝同事说买了房子,那一般大家关心的就是房子在哪,哪个小区,多少钱一平方这些信息,因为我们知道,这些信息是"关键信息”(机器学习里的黑话叫“feature”)。那假设现在要你来评估一套二手房的价格(或者更直接点,你就是一个卖房子的黑中介,嘿嘿),如果你对房价一无所知(比如说房子是在非洲),那你肯定估算不准,最好就能提供同小区其他房子的报价;没有的话,旁边小区也行;再没有的话,所在区的房子均价也行;还是没有的话,所在城市房子均价也行(在北京有套房和在余杭有套房能一样么),因为你知道,这些信息是有“参考价值”的。其次,估算的时候我们肯定希望提供的信息能尽量详细,因为我们知道房子的朝向,装修好坏,位置(靠近马路还是小区中心)是会影响房子价格的。
        其实我们人脑在估算的过程,就类似一个“机器学习”的过程。
    a)首先我们需要“训练数据”,也就是相关的房价数据,当然,数据太少肯定不行,要尽量丰富。有了这些数据,人脑可以“学习”出房价的一个大体情况。因为我们知道同一小区的同一户型,一般价格是差不多的(特征相近,目标值-房价也是相近的,不然就没法预测了);房价我们一般按平方算,平方数和房价有“近似”线性的关系。
    b)而“训练数据”里面要有啥信息?只给你房子照片肯定不行,肯定是要小区地点,房子大小等等这些关键“特征”
    c)一般我们人肉估算的时候,比较随意,也就估个大概,不会算到小数点后几位;而估算的时候,我们会参照现有数据,不会让估算跟“训练数据”差得离谱(也就是下面要讲的让损失函数尽量小),不然还要“训练数据”干嘛。 计算机擅长处理数值计算,把房价估算问题完全可以用数学方法来做。把这里的“人肉估算”数学形式化,也就是“线性回归”。

    1.我们定义线性回归函数(linear regression)为:
     然后用h(x) 来预测y

    最简单的例子,一个特征x是size,y是Price,把训练数据画在图上,如下图。(举最简单的例子只是帮助理解,当特征只有一维的时候,画出来是一条直线,多维的时候就是超平面了)

    这里有一个问题,如果真实模型不是线性的怎么办?所以套用线性回归的时候是需要预判的,不然训练出来的效果肯定不行。这里不必过于深究,后面也会介绍怎么通过预处理数据处理非线性的情况。

    2.目标就是画一条直线尽量靠近这些点,用数学语言来描述就是cost function尽量小。

    为什么是平方和? 直接相减取一下绝对值不行么, | h(x)-y |  ? (后面的Probabilistic interpretation会解释,这样求出来的是likelihood最大。另外一个问题, | h(x)-y |大的时候 ( h(x)-y )^2 不也是一样增大,看上去好像也一样?! 除了后者是凸函数,好求解,所以就用平方和? 不是的,单独一个样本纵向比较确实一样,但别漏了式子前面还有一个求和符号,这两者的差异体现在样本横向比较的时候,比如现在有两组差值,每组两个样本,第一组绝对值差是1,3,第二组是2,2,绝对值差求和是一样,4=4, 算平方差就不一样了,10 > 8。其实,x^2求导是2x,这里的意思就是惩罚随偏差值线性增大,最终的效果从图上看就是尽可能让直线靠近所有点)

    3.然后就是怎么求解了。如果h(x)=y那就是初中时候的多元一次方程组了,现在不是,所以要用高端一点的方法。以前初中、高中课本也有提到怎么求解回归方程,都是按计算器,难怪我一点印象都没有,囧。。还以为失忆了
    notes 1里面介绍3种方法
    1.gradient descent (梯度下降)
    a.batch gradient descent
    b.stochastic gradient descent (上面的变形)
    2.the normal equations
    3.Newton method(Fisher scoring)

    1.gradient descent algorithm

    α is called the learning rate
    .

    只有一个训练数据的例子:

    这个式子直观上也很好理解,假设xj是正数,y比预测值h(x)大的话,我们要加大θ,所以α前面是+号(当xj是负数同理)

    举一个数据的例子只是帮助我们理解,实际中是会有多个数据的,你会体会到矩阵的便利性的。
    上面的式子在具体更新的时候有小的不同
    方法 a.batch gradient descent
    注意,要同时进行更新。因为更新θ(j+1)的时候要用hθ(x),这里的hθ(x)用的还是老的θ1 到 θj。



    直观上看,等高线代表cost function的值,横纵坐标是θ1 θ2两个参数,梯度下降就是每次一小步沿着垂直等高线的方向往等高线低(图的中心)的地方走。显然步子不能太大,不然容易扯着蛋(跨一大步之后反而到了更高的点)

    方法 b.stochastic gradient descent (also incremental gradient descent) 
    这两种方法看公式可能不好理解,看后面的代码实现就容易区分。

    2.the normal equations。

    初学者可以先跳过推导过程(不是鼓励不看。),直接先记住结论。(在线性代数的复习课件cs229-linalg会说明,这个式子其实是把y投影到X)

    3.牛顿法

    Another algorithm for maximizing ℓ(θ)
    Returning to logistic regression with g(z) being the sigmoid function, lets now talk about a different algorithm for minimizing -ℓ(θ)。
    牛顿法求函数0点,即 f (Θ) = 0


    这样迭代就行,f′(θ)是斜率,从图上看,就是“用三角形去拟合曲线,找0点”

    因为我们是要求导数等于0,把上面的式子替换一下f(θ) = ℓ′(θ)
    θ是多维的,有

    where
    When Newton’s method is applied to maximize the logistic regression log likelihood function ℓ(θ), the resulting method is also called Fisher scoring. 

    coursera的课件提到其他方法,估计初学者没空深究,了解一下有这些东西就好。


       2. 逻辑回归logistic regression

    现在如果有一个0和1的2分类问题的,套进去线性回归去解,如下图

    离群点会对结果影响很大,比如上图(我们以h(x)>0.5时预测y=1,一个离群点让直线大旋转,一下子把不少点误分类了)(coursera的课程只提到这个原因,但貌似不止),而且还有一个问题,Intuitively, it also doesn’t make sense for h(x) to take values larger than 1 or smaller than 0 when we know that y ∈ {0, 1}. (那h(x)在[0,1]又代表什么呢?呵呵)
    换成这个曲线就好多了,这个函数是sigmoid function
    g(z) 值域 (0,1)

    把线性回归套进去g(z)就是


    为什么是sigmoid函数?换个形状类似的函数不行么?这个后面一样有概率解释的。注意,这个函数输出值代表“y为1的概率”,再回过头看看,前面y用1和0来表示正反也是有讲究的(讲svn的时候又换成+1,-1),直观上看sigmoid越接近1表示1的概率大,接近0表示0的概率大,还有一个好处就是下面算likelihood的时候用式子好表示。

    建模好,还缺一个cost function,是不是跟linear regression一样求平方差就行?
    呵呵,不是,coursera课程给出的原因是套入sigmoid后,这个函数不是凸函数,不好求解了。但其实h(x) -y 算出来是一个概率,多个训练数据的概率相加是没意义的,得相乘。p(x,y) = p(x)* p(y)。

    先讲一个useful property
    推导公式时可以用,习题也会用到的


    把两个概率公式合到一起
    => 
    likelihood of the parameters:
    log likelihood:
     
    一个训练数据的时候(代入前面的结论)
    注意,前面linear regression,我们求cost function的最小值,所以是减号
    对于logistic regression,我们要求的是likelihood最大(附录提到,是等价的),所以要换成加号。这样θ最终的迭代式子才跟前面linear regression一样,这是巧合么?隐隐约约感觉这其中有一腿。



      3. machine learning in practice


      我总觉得计算机科学动手实践很重要,纸上谈兵不接地气。coursera有programing exercise,必须完成下。octave用起来挺爽的。这里记录一下关键点。

    1.coursera的cost function多除了一个m

    其实起到一个归一化的作用,让迭代步长α与训练样本数无关(你可以当作α=α'/m)

    2.batch gradient descent和stochastic gradient descent的差别

    batch gradient descent
    [python] view plain copy
     在CODE上查看代码片派生到我的代码片
    1. for iter = 1:num_iters  
    2.  A = ( X * theta - y )';  
    3.  theta = theta - 1/m * alpha * ( A * X )';  
    4. end  
    stochastic gradient descent
    [python] view plain copy
     在CODE上查看代码片派生到我的代码片
    1. for iter = 1:num_iters  
    2.  A = ( X * theta - y )';  
    3.  for j = 1:m  
    4.    theta = theta - alpha * ( A(1, j) * X(j, :) )';      
    5.  end  
    6. end  

    用ex1_multi.m改改,生成两个cost下降图,可以发现stochastic gradient descent挺犀利的。。


    3.feature scaling的作用是啥?

    (具体模型具体分析,这里只针对LR模型,不要把结论随意推广)coursera提到的作用是加速收敛,那会影响结果么?直觉上,把一个feature扩大10倍,那算cost function的时候岂不是很占便宜,算出来的权重会偏向这个feature么?
    对这种问题,数学家会理论证明,工程师做实验验证,我习惯粗略证明,然后实验验证自己对不对。
    (下面都是粗略的想法,不是严谨证明!!)假设每个样本的feature j 乘以10,那算出来的θj除以10不就结果跟原来一样了?我猜不会影响。看一下我们迭代时候的式子

    xj变大,h(x) 也变大,粗略迭代步长要扩大10倍(那就起到抑制θ的作用)但最终的θ要变为1/10,想想略蛋疼,比如现在100每次减少1,减99次后变为1,现在每次要减少10,却要让最终的结果到0.1,得改α才行啊,看来feature scaling能起到归一化α的作用。
    把ex1.m改一下,做做实验。会发现缩放一个feature后,收敛很困难啊,我只乘以2,原来的代码就输出NaN了。。我把alpha平方一下 alpha^2。

    可以发现等高线变密集了,椭圆形变得很扁,所以步长不能很大,收敛很困难,一直在一个类似直线的椭圆跳来跳去慢慢挪。至于结果会不会变,用normal equation来验证,因为梯度下降有困难。改下ex1_muliti.m
    [python] view plain copy
     在CODE上查看代码片派生到我的代码片
    1. X2 = X;  
    2. X2(:,2) = X2(:, 2)* 2;  
    3. theta2 = pinv(X2' * X2) * X2' * y;  
    4. theta2  
    5. theta  

    theta2(2)就是神奇地变1/2了。。
    [plain] view plain copy
     在CODE上查看代码片派生到我的代码片
    1. theta2 =  
    2.   8.9598e+004  
    3.   6.9605e+001  
    4.   -8.7380e+003  
    5. theta =  
    6.   8.9598e+004  
    7.   1.3921e+002  
    8.   -8.7380e+003  

    前面是linear regression,对logistic regression可以改ex2.m也验证下
    [python] view plain copy
     在CODE上查看代码片派生到我的代码片
    1. X2(:,2)= X2(:,2)*2;  
    2. [theta2, cost] = fminunc(@(t)(costFunction(t, X2, y)), initial_theta, options);  
    3. theta2  
    [plain] view plain copy
     在CODE上查看代码片派生到我的代码片
    1. theta:  
    2.  -25.161272  
    3.  0.206233  
    4.  0.201470  
    5. theta2 =  
    6.   -25.16127  
    7.     0.10312  
    8.     0.20147  


      附录 : cost function的概率解释


    我们知道h(x)和真实的y是有偏差的,设偏差是ε

    假设ε是iid(独立同分布)的,符合高斯分布(通常高斯分布是合理的,具体不解释),联想到高斯分布的式子,有平方就不奇怪了。

     
    得到
    likelihood function:



    求解技巧,转成 log likelihood ℓ(θ):



    To summarize: Under the previous probabilistic assumptions on the data,
    least-squares regression corresponds to finding the maximum likelihood estimate of θ.

    To summarize: Under the previous probabilistic assumptions on the data,
    least-squares regression corresponds to finding the maximum likelihood estimate of θ.
    展开全文
  • 机器学习理论 无监督学习 增强学习 机器学习:使计算机模拟或实现人类的学习行为,以获取新的知识或技能。并重新组织已有的知识结构使之不断改善自身的性能。 监督学习(supervised learning) 问题引入 根据...

    目录

    监督学习(supervised learning)

    机器学习理论

    无监督学习

    增强学习


    机器学习:使计算机模拟或实现人类的学习行为,以获取新的知识或技能。并重新组织已有的知识结构使之不断改善自身的性能。

    监督学习(supervised learning)

    问题引入

    根据给定的一组采集数据,预测房价。

     我们可以看到,问题只有单个输入变量,即单个特征。因变量为价格,可以取任意值,即连续。因此我们可以利用线性回归将给定数据拟合成一条曲线(直线或抛物线等),来解决该回归问题。然后我们就可以在这条曲线上去预测其他已知面积房屋的价格了。

     

    对于另一类问题,例如根据医院的肿瘤诊断数据,预测肿瘤性质。

    易知,因变量肿瘤性质不是恶性就是良性,即离散。对于这种分类问题,我们可以使用逻辑回归来处理。

    上例仍然只有单个输入变量。但多数情况下,需要考虑多个输入变量和特征,如下例:

    输入变量包括患者年龄和肿瘤大小,输出变量为肿瘤性质。

     

    机器学习理论

    探究为什么机器学习算法是有效的。

     

    无监督学习

    利用聚类算法,将无标签的数据进行分类。

     

    无监督学习还可以用来解决有趣的鸡尾酒问题,在混合在一起的声音中对某一个声音进行提取。除此之外,文本处理、理解功能分级和机械数据等也可以使用这类无监督学习算法来解决。

     

    增强学习

    增强学习可以使电脑自主学习,其关键概念在于回报函数(惩罚函数)。计算机在一段时间内做出一系列决策,每次决策后通过回报函数来判断该决策是好是坏,然后改善自己的决策模型。

     

     

    展开全文
  • 机器学习cs229

    2020-07-30 23:31:48
    视频教程 20集全集课程 包含源代码压缩包 Machine learning cs229
  • Stanford CS229 网易公开课:http://open.163.com/special/opencourse/machinelearning.html 公开课的资料和自己的算法代码实现:https://github.com/Sierkinhane/CS229-ML-Implements (近一个星期开始实现,...

      Stanford CS229 网易公开课:http://open.163.com/special/opencourse/machinelearning.html

        公开课的资料和自己的算法代码实现:https://github.com/Sierkinhane/CS229-ML-Implements

      (近一个星期开始实现,所以     有些还没有完成,如果大家喜欢可以给个star!)

        如果觉得资料有点旧,可以在这里下载最新的课程资料:

        Stanford CS229 2018秋季课程资料:http://cs229.stanford.edu/syllabus.html(下载PDF notes)

    添加了生成对抗网络的pytorch实现(参考GAN in actions的keras实现)

    学习stanford cs229 manchine learning课程已经有三个月左右,虽然说网友们说这门课相比于Coursera(吴恩达老师的网课机构)中的机器学习有更多的数学要求和公式的推导,本着想总体了解机器学习的念头,开始了机器学习的自学过程。

        这门课程年代确实有点久远,但是我认为作为自己了解、深入机器学习领域的启蒙课还是很好的。并且本课程的资料非常         好,它并不是向PPT教学资料那样,只罗列知识点,而是包含老师对该算法的引入和解释。(资料是全英文的)我推荐大家使用全英的课程资料,因为现在不管是书籍,还是论文,原汁原味的还是英文版,所以最好让自己用英文去理解这些知识,更有助于后阶段的深入。课程涉及较多的数学知识(导数,统计学,线性代数,凸优化,似然,HMM等等),这些数学知识也有对应的复习资料(由当时的助教们完成),所以我觉这门课程还是很全面,并且是很值得学习的!

                                                                                (课程资料PDF)

                                                                                (数学知识回顾PDF)

        

     

     

    我觉学习机器学习、深度学习很重要的一点是对该领域总体概念要清晰,学习机器学习很有必要做一个思维导图,你会清楚知道机器学习算法分为哪些种类,例如监督算法,无监督算法,强化学习,对抗生成学习,而其中又包含什么算法,算法使用什么思想,什么优化函数,如何进行参数更新,最好的应用场景在哪,局限性在哪。如果你做好一个思维导图,那么这些会很清晰。(我大概按照课程知识思路做了一个思维导图希望能够帮助大家)

     

    最近在进行第三遍的算法复习和数学知识复习,并且最近课程安排不是很满,就利用一些空余时间用python实现的了前几章的回归和分类算法(linear regression, normal equation, locally weighted regression, logitic regression, newton method softmax regression.... )等等算法,还有剩下的正在复习,有时间就会实现。(每个例子都用matplotlib进行结果可视化

                                                                                        Linear regression

                                                                                      Locally linear regression

                                                                                      Logistic regression

                                                                    Softmax regression(generalized linear model)

                                                                         高斯判别式(Gaussian Discriminant Analysis)

     

    展开全文
  • 说到机器学习总绕不过几个鼎鼎大名的人物,他们都创造了不少的机器学习资料,斯坦福吴恩达Andrew Ng的公开课CS229;Google李飞飞的CS231、周志华的、李航的《统计学习方法》、林轩田的《机器学习基石》、Peter ...
  • ​斯坦福大学有很多关于人工智能领域的著名公开课,包括CS229N机器学习、CS231N机器视觉、CS224N自然语言处理。 国外的一个牛人学习了CS229并整理了极简的速查表,非常方便学习回顾,下面是速查表的详情。 一、监督...
  • 先贴代码,有空再根据讲义,逐条讲解%% Machine Learning Online Class - Exercise 1: Linear Regression% Instructions % ------------ % % This file contains code that helps you get started on the ...
  • 欢迎使用Markdown编辑器写博客强调内容 本Markdown编辑器使用StackEdit修改而来,用它写博客,将会带来全新的体验哦: Markdown和扩展Markdown简洁的语法 代码块高亮 图片链接和图片上传 ...斜体 Ctrl...
  • 接上次笔记 机器学习 cs229学习笔记2 (k-means,EM & Mixture of Gaussians) 如何确定EM算法converge呢? 当然是比较前后两次迭代的似然函数的大小,如果相差极小,则可以证明算法已经converge了 假设一次迭代...
  • ==================================...上周生病再加上课余的一些琐事,这边的进度就慢下来了,本篇笔记基于 斯坦福大学公开课cs229 的 lecture16,lecture 17 =====================================================
  • 机器学习 cs229学习笔记1

    千次阅读 2012-11-11 21:05:33
    (all is based on the stanford open course cs229.Lecture 11.) regularization(正规化)防止过拟合:保留所有的参数 贝叶斯学习方法:增加先验概率,常用为高斯分布N(0,λ),使算法更倾向于选择更小的参数 ...
  • Learning CS229 菜鸡自学CS229当中,主要是看notes和做assignments 欢迎拍砖github链接
  • cs229d 斯坦福大学机器学习课程个人笔记完整版。希望对大家有帮助
  • 为何概述(翻译)CS229这个系列

    千次阅读 2017-07-02 17:39:26
    为何概述(翻译)CS229这个系列 发现现在看书的话很容易找不出关键点,就算找到了也容易忘,而且英文书如果忘了我估计也懒得再去看了,所以就将其进行翻译。  当然了,我也知道网上CS229的相关翻译很多,至于为何...
  • (all is based on stanford's opencourse cs229 lecture 12) 首先介绍的是聚类算法中最简单的K-Means算法 /////////////////////////////////////////////////////////////////////////////////////////////////...
  • ============================================================================= EM FOR FACTOR ANALYSIS =========================================================================...通过cs229学习笔记3 (EM a
  • Andrew NG机器学习课程网易公开课 斯坦福大学公开课 :机器学习课程 机器学习课程教学官网:http://cs229.stanford.edu/syllabus.html Coursera最新版:https://www.coursera.org/learn/machine-learning/ ...
  • 斯坦福大学机器学习公开课CS229中文笔记

    千次下载 热门讨论 2020-07-29 14:20:31
    本资源是2008年Andrew Ng斯坦福机器学习公开课ML中文笔记的pdf版。 原作者blog地址:http://blog.csdn.net/stdcoutzyx。资源中包含1-15的课程内容。 感谢原作者的贡献。
1 2 3 4 5 ... 20
收藏数 41,564
精华内容 16,625
热门标签
关键字:

机器学习cs229