精华内容
下载资源
问答
  • 吴恩达机器学习答案

    2019-04-09 17:34:23
    吴恩达机器学习答案代码,亲测好用,自己试过的!这是基于MATLAB的,包括自己测试的结果也在里面,欢迎大家指正!
  • 吴恩达机器学习实验+答案,已经编译验证过,需要对应报告的话,请私信。
  • 题目+答案,很好用。解决了在线看coursera课程作业下载不了的问题。
  • 吴恩达机器学习coursera题目+答案,matlab版。感觉还可以,可以跟课程一起学习。
  • 吴恩达机器学习第三周quiz小测验.pdf
  • 吴恩达Coursera机器学习课程第二周编程作业 涵盖多个子文件
  • 吴恩达coursera机器学习1-8周代码;自己做的均通过提交测试
  • 本资源是coursera机器学习每周每课时(2--11周)的测验题目,包括每节课都有暂停之后的小练习,都是自己截图下来的,是纯英文版的,部分图片里面我个人用FastStone添加了个人理解解题思路,如有问题可以一起交流。...
  • ========= 关于偏差、方差以及学习曲线为代表的诊断法 ========== (一)模型选择Model selection 在评估假设函数时,我们习惯将整个样本按照6:2:2的比例分割:60%训练集training set、20%交叉验证集cross ...

     =========                关于偏差、方差以及学习曲线为代表的诊断法         ==========

    (一)模型选择Model selection

    在评估假设函数时,我们习惯将整个样本按照6:2:2的比例分割:60%训练集training set、20%交叉验证集cross validation set、20%测试集test set,分别用于拟合假设函数、模型选择和预测。

    三个集合对应的误差如下图所示(注意没有不使用正则化项):

    基于以上划分,我们有模型选择的三个步骤:

    step1.用测试集training set对多个模型(比如直线、二次曲线、三次曲线)进行训练;

    step2.用交叉验证集cross validation set验证step1得到的多个假设函数,选择交叉验证集误差最小的模型;

    step3.用测试集test set对step2选择的最优模型进行预测;

     

     

    以线性回归为例,假设你利用线性回归模型最小化代价函数J(θ)求解得到一个假设函数h(x),如何判断假设函数对样本的拟合结果是好是坏,是不是说所有点都经过(代价函数J最小)一定是最理想的?

    或者这样说,给你下图的样本点,你是选择直线、二次曲线、还是三次曲线......作为假设函数去拟合呢?

     

    以下图为例,你的模型选取其实直接关系到最终的拟合结果

    =======================================

    欠拟合Underfit          ||  高偏差High bias

    正常拟合Just right    ||  偏差和方差均较小

    过拟合Overfit              ||   高方差High variance

    =======================================

    ★★★以上问题只是模型选择过程中需要考虑的一点------多项式次数d,实际上,我们还会去考虑这样两个参数:正则化参数λ、样本量m.

    下面我将从多项式次数d、正则化参数λ、样本量m这三个量与拟合结果之间的关系做一个简单的概括.

     

    (二)偏差、方差、学习曲线Bias、Variance、Learning curve

    1.特征量的度d

    还是之前的例子,用二次曲线拟合,训练集和交叉验证集的误差可能都很小;但是你用一条直线去拟合,不管使用多高级的算法去减小代价函数,偏差仍然是很大的,这时候我们就说:多项式次数d过小,导致高偏差、欠拟合;类似的当用10次曲线去拟合,样本点都能经过,对应的代价函数(误差)为0,但是带入交叉验证集你会发现拟合很差,这时候我们说:多项式次数d过大,导致高方差、过拟合。

    所以,多项式次数d与训练集、交叉验证集误差的关系如下图:

    2.正则化参数λ

    正则化参数我们在第三周有介绍到,正则化参数λ越大,对θ惩罚的越厉害,θ->0,假设函数是一条水平线,欠拟合、高偏差;正则化参数越小,相当于正则化的作用越弱,过拟合、高方差。关系如下图所示:

     

    3.样本量m与学习曲线Learning curve

    学习曲线是样本量与训练集、交叉验证集误差之间的关系,分为高偏差和高方差两种情况(欠拟合和过拟合)。

    ①高偏差(欠拟合):

    根据下图右部分分析有,通过增加样本量两者误差都很大,即m的增加对于算法的改进无益。

    ②高方差(过拟合):

    根据下图右部分分析有,通过增加样本量训练集样本拟合程度很好(过拟合),训练集误差很小,即m的增加对于算法的改进有一些帮助。

    ★★★(三)如何决策

     

    综上所述,你会发现有这样的一个结论,就是:

    ◆训练集误差大、交叉验证集误差也大:欠拟合、高偏差、多项式次数d太小、λ太大;

    ◆训练集误差小、交叉验证集误差却很大:过拟合、高方差、多项式次数d太大、λ太下、样本量太少。

    这就为我们改善机器学习算法提供了依据。

     

     

    解决高偏差:

    尝试获得更多的特征

    尝试增加多项式特征

    尝试减少归一化程度lamda

     

     

    训练集误差小、交叉验证集误差却很大:过拟合、高方差、多项式次数d太大、λ太下、样本量太少。

    这就为我们改善机器学习算法提供了依据。

     

    训练集误差大、交叉验证集误差也大:欠拟合、高偏差、多项式次数d太小、λ太大;

    这个时候有三种方法:

     Try getting additional features 增加更多的特征向量

    Try adding ploynomail features  增加多项式特征

    Try decreasing lamda 减少归一化程度lamda

     

    应该是通过训练集让我们的模型学习得出其参数后,然后对测试集运用该模型 

    假设你用线性回归来预测房价,你的数据集是按照增加房屋的大小来排序的。在将数据集分割成培训、验证和测试集之前,随机地将数据集打乱,这样我们就不会有所有最小的房子进入培训集,所有最大的房子都进入测试集。这是对的

    假设您正在使用多项式特性训练一个逻辑回归分类器,并希望选择使用什么程度多项式(在课堂视频中表示dd)。在对整个培训集中培训分类器之后,您决定使用培训示例的子集作为验证集,这将与从培训集中分离(分离)的验证集一样有效。这不对 不能用自己的训练集来,而是应该 

    一个典型的数据集分割为训练、验证和测试集可能是60%的培训集,20%的验证集和20%的测试集。 

     

    展开全文
  • 吴恩达课程机器学习的第二周代码作业,包含了附加题与基础题。
  •   ...如果我们使用梯度下降作为我们的优化算法,那么梯度检查是很有用的。但是,如果我们使用的是高级优化方法之一(比如fminunc),它几乎没有什么作用。...一个可能的原因是,学习速率太大了。  ...

     

     

     

    如果我们使用梯度下降作为我们的优化算法,那么梯度检查是很有用的。但是,如果我们使用的是高级优化方法之一(比如fminunc),它几乎没有什么作用。

     

    假设我们有一个正确的反向传播的实现,并且使用梯度下降来训练一个神经网络。假设我们把J(Theta)J()作为迭代次数的函数,并且发现它是递增的而不是递减的。一个可能的原因是,学习速率太大了。

     

    展开全文
  • 本资源中,包含吴恩达机器学习逻辑回归练习题及答案,使用octave编写与课程一致,答案已经根据要求填充到相应的函数文件中。
  • 吴恩达机器学习课程笔记

    万次阅读 多人点赞 2019-02-01 00:05:36
    吴恩达机器学习课程笔记

    吴恩达机器学习课程笔记

    机器学习定义

    什么是机器学习?
    机器学习(Machine Learning):是研究计算机怎样模拟或实现人类的学习行为,以获取新的知识或技能,重新组织已有的知识结构使之不断改善自身的性能。一个程序被认为能从经验E中学习,解决任务 T,达到性能度量值P,当且仅当,有了经验E后,经过P评判, 程序在处理T时的性能有所提升。

    监督学习和无监督学习

    监督学习(Supervised Learning):对于数据集中每一个样本都有对应的标签,包括回归(regression)和分类(classification);
    无监督学习(Unsupervised Learning):数据集中没有任何的标签,包括聚类(clustering),著名的一个例子是鸡尾酒晚会。实现公式:[W,s,v] = svd((repmat(sum(x.*x,1),size(x,1),1).*x)*x’);

    单变量线性回归

    模型表示(model representation)

    线性回归模型:
    h θ ( x ) = θ 0 + θ 1 x J ( θ 0 , θ 1 ) = 1 2 m ∑ i = 1 m ( h ( x i ) − y i ) 2 h_\theta(x)=\theta_0+\theta_1x \\ J(\theta_0,\theta_1)=\frac{1}{2m}\sum_{i=1}^m(h(x^i)-y^i)^2 hθ(x)=θ0+θ1xJ(θ0,θ1)=2m1i=1m(h(xi)yi)2给定训练样本 ( x i , y i ) (x^i,y^i) (xi,yi),其中: i = 1 , 2 , . . . , m i=1,2,...,m i=1,2,...,m x x x表示特征, y y y表示输出目标,监督学习算法的工作方式如图所示:
    ALT
    假设函数h(hypothesis):是一个从输入 x x x到输出 y y y的映射, h ( x ) = θ 0 + θ 1 x h(x)=\theta_0+\theta_1x h(x)=θ0+θ1x θ 0 \theta_0 θ0 θ 1 \theta_1 θ1都是模型参数。

    代价函数

    代价函数(cost function) J ( θ ) J(\theta) J(θ),通常使用平方误差函数,如下: J ( θ 0 , θ 1 ) = 1 2 m ∑ i = 1 m ( h ( x i ) − y i ) 2 , m 为 训 练 样 本 的 数 量 。 J(\theta_0,\theta_1)=\frac{1}{2m}\sum_{i=1}^m(h(x^i)-y^i)^2,m为训练样本的数量。 J(θ0,θ1)=2m1i=1m(h(xi)yi)2m训练的目标为最小化代价函数,即 m i n m i z e θ 0 , θ 1 J ( θ 0 , θ 1 ) \underset {\theta_0,\theta_1} {minmize}J(\theta_0,\theta_1) θ0,θ1minmizeJ(θ0,θ1)
    ALT
    代价函数的另外一个图形表示是等高图,如图所示:
    ALT

    梯度下降

    代价函数: J ( θ 0 , θ 1 ) J(\theta_0,\theta_1) J(θ0,θ1),可以推广到 J ( θ 0 , θ 1 , θ 2 , . . . , θ n ) J(\theta_0,\theta_1,\theta_2,...,\theta_n) J(θ0,θ1,θ2,...,θn)
    目标: m i n θ 0 , θ 1 J ( θ 0 , θ 1 ) \underset {\theta_0,\theta_1} {min}J(\theta_0,\theta_1) θ0,θ1minJ(θ0,θ1)
    初始化 θ 0 , θ 1 \theta_0,\theta_1 θ0,θ1,更新公式: θ j = θ j − α ∂ ∂ θ j J ( θ 0 , θ 1 ) \theta_j=\theta_j-\alpha\frac{\partial}{\partial\theta_j}J(\theta_0,\theta_1) θj=θjαθjJ(θ0,θ1) α \alpha α为学习速率(learning rate)。
    ALT
    如果α太小,梯度下降会变得缓慢;如果α太大,梯度下降可能无法收敛甚至发散。

    线性回归中的梯度下降

    ALT
    梯度下降的每一步遍历的所有数据集中的样例,又叫“batch” Gradient Descent Algorithm。

    凸函数(convex function)

    多变量线性回归

    假设函数 h θ ( x ) = θ 0 + θ 1 x 1 + θ 2 x 2 + ⋯ + θ n x n h_\theta(x)=\theta_0+\theta_1x_1+\theta_2x_2+\dots+\theta_nx_n hθ(x)=θ0+θ1x1+θ2x2++θnxn。 定义 x 0 = 1 x_0=1 x0=1
    从而: x = [ x 0 , x 1 , x 2 , … , x n ] T , x ∈ R n + 1 x=[x_0,x_1,x_2,\dots,x_n]^T,x\in\R^{n+1} x=[x0,x1,x2,,xn]T,xRn+1 θ = [ θ 0 , θ 1 , θ 2 , … , θ n ] T , θ ∈ R n + 1 \theta=[\theta_0,\theta_1,\theta_2,\dots,\theta_n]^T,\theta\in\R^{n+1} θ=[θ0,θ1,θ2,,θn]T,θRn+1
    假设函数可记作: h θ ( x ) = θ T x h_\theta(x)=\theta^Tx hθ(x)=θTx
    代价函数 J ( θ ) = 1 2 m ∑ i = 1 m ( h θ ( x ( i ) ) − y ( i ) ) 2 J(\theta)=\frac{1}{2m}\sum_{i=1}^{m}(h_\theta(x^{(i)})-y^{(i)})^2 J(θ)=2m1i=1m(hθ(x(i))y(i))2梯度下降更新公式 θ j : = θ j − α ∂ ∂ θ j J ( θ ) ,   j = 0 , 1 , … , n \theta_j:=\theta_j-\alpha\frac{\partial}{\partial\theta_j}J(\theta),\ j=0,1,\dots,n θj:=θjαθjJ(θ), j=0,1,,n更精确的: θ j : = θ j − α 1 m ∑ i = 1 m ( h θ ( x ( i ) ) − y ( i ) ) x j ( i ) ,   j = 0 , 1 , … , n \theta_j:=\theta_j-\alpha\frac{1}{m}\sum_{i=1}^{m}(h_\theta(x^{(i)})-y^{(i)})x_j^{(i)},\ j=0,1,\dots,n θj:=θjαm1i=1m(hθ(x(i))y(i))xj(i), j=0,1,,n
    可以通过for循环更新 θ \theta θ,也可以采用向量形式更新 θ \theta θ θ = θ − α m X T ( X θ − y ) \theta=\theta-\frac{\alpha}{m}X^T(X\theta-y) θ=θmαXT(Xθy)

    特征缩放(feature scaling)

    目的:保证特征处于相似的尺度上,有利于加快梯度下降算法运行速度,加快收敛到全局最小值
    方式:
    Mean normalization x i = x i − μ σ x_i=\frac{x_i-\mu}{\sigma} xi=σxiμ其中 μ \mu μ为平均值, σ \sigma σ为标准差;
    max-min: x i = x i − m i n m a x − m i n x_i=\frac{x_i-min}{max-min} xi=maxminximin

    学习率(learning rate)

    梯度下降更新公式 θ j : = θ j − α ∂ ∂ θ j J ( θ ) , \theta_j:=\theta_j-\alpha\frac{\partial}{\partial\theta_j}J(\theta), θj:=θjαθjJ(θ),

    • “debugging”:如何确保梯度下降正确运行;
    • 如何正确选择学习率。
    • 如果 α \alpha α太小:收敛慢
    • 如果 α \alpha α太大:每一次迭代过程中 J ( θ ) J(\theta) J(θ)将会不断的越过最小值,无法收敛, J ( θ ) J(\theta) J(θ)如下图所示:
      ALT
    • choose α \alpha α … , 0.001 , 0.003 , 0.01 , 0.03 , 0.1 , 0.3 , 1 , … \dots,0.001,0.003,0.01,0.03,0.1,0.3,1,\dots 0.0010.0030.010.030.10.31
    • 寻找一个合适的较小值和较大值,保证结果和速度的同时选取较大的值,或者稍小的合理值。

    特征和多项式回归

    举例:房价预测问题
    假设有两个特征: x 1 x_1 x1是土地宽度, x 2 x_2 x2是土地纵向深度,可做假设: h θ ( x ) = θ 0 + θ 1 x 1 + θ 2 x 2 h_\theta(x)=\theta_0+\theta_1x_1+\theta_2x_2 hθ(x)=θ0+θ1x1+θ2x2
    可以考虑构造特征底面积 x = x 1 ∗ x 2 x=x_1*x_2 x=x1x2,此时假设函数: h θ ( x ) = θ 0 + θ 1 x h_\theta(x)=\theta_0+\theta_1x hθ(x)=θ0+θ1x
    数据集样本分布如图:
    ALT
    多项式回归(polynomial regression):
    二次模型:
    ALT
    三次模型:
    ALT
    更恰当的模型:
    ALT

    正规方程(normal equation)

    代价函数: J ( θ ) = 1 2 m ∑ i = 1 m ( h θ ( x ( i ) ) − y ( i ) ) 2 J(\theta)=\frac{1}{2m}\sum_{i=1}^{m}(h_\theta(x^{(i)})-y^{(i)})^2 J(θ)=2m1i=1m(hθ(x(i))y(i))2 J ( θ ) J(\theta) J(θ)求偏导并令导数为零可解得: θ = ( X T X ) − 1 X T y \theta=(X^TX)^{-1}X^Ty θ=(XTX)1XTy,推导过程如下:
    x ( i ) = ( x 0 ( i ) x 1 ( i ) ⋮ x n ( i ) ) ∈ R n + 1 , y = ( y 1 y 2 ⋮ y m ) ∈ R m x^{(i)}=\begin{pmatrix}x_0^{(i)}\\x_1^{(i)}\\\vdots\\x_n^{(i)}\\\end{pmatrix}\in\R^{n+1},y=\begin{pmatrix}y_1\\y_2\\\vdots\\y_m\\\end{pmatrix}\in\R^m x(i)=x0(i)x1(i)xn(i)Rn+1y=y1y2ymRm
    X = ( 1 x 1 ( 1 ) ⋯ x j ( 1 ) ⋯ x n ( 1 ) 1 x 1 ( 2 ) ⋯ x j ( 2 ) ⋯ x n ( 2 ) ⋮ ⋮ ⋱ ⋮ ⋱ ⋮ 1 x 1 ( m ) ⋯ x j ( m ) ⋯ x n ( m ) ) = ( ( x ( 1 ) ) T ( x ( 2 ) ) T ⋮ ( x ( m ) ) T ) ∈ R m × ( n + 1 ) X=\begin{pmatrix} 1 & x_1^{(1)} & \cdots & x_j^{(1)} & \cdots & x_n^{(1)} \\ 1 & x_1^{(2)} & \cdots & x_j^{(2)} & \cdots & x_n^{(2)} \\ \vdots & \vdots & \ddots & \vdots & \ddots & \vdots \\ 1 & x_1^{(m)} & \cdots & x_j^{(m)} & \cdots & x_n^{(m)} \\ \end{pmatrix} =\begin{pmatrix} (x^{(1)})^T\\(x^{(2)})^T\\\vdots\\(x^{(m)})^T \end{pmatrix}\in\R^{m×(n+1)} X=111x1(1)x1(2)x1(m)xj(1)xj(2)xj(m)xn(1)xn(2)xn(m)=(x(1))T(x(2))T(x(m))TRm×(n+1) ∂ ∂ θ J ( θ ) = 1 m ∑ i = 1 m ( h θ ( x ( i ) ) − y ( i ) ) x ( i ) = 0 \frac{\partial}{\partial\theta}J(\theta)=\frac{1}{m}\sum_{i=1}^{m}(h_\theta(x^{(i)})-y^{(i)})x^{(i)}=0 θJ(θ)=m1i=1m(hθ(x(i))y(i))x(i)=0,可得 θ = ( X T X ) − 1 X T y \theta = (X^TX)^{-1}X^Ty θ=(XTX)1XTy推导过程如下:
    ALT
    正规方程存在条件:

    • X T X X^TX XTX是可逆矩阵,若不可逆,可计算广义可逆矩阵。
      ALT
      比较:
      梯度下降算法:需要选择学习速率 α \alpha α; 需要许多次迭代;当特征数量n较大时也能够运转正常;
      正规方程: 无需选择参数;无需迭代;需要计算 ( X T X ) − 1 (X^TX)^{-1} (XTX)1;当n较大时计算缓慢

    逻辑回归(logistic regression)

    假设表示

    逻辑回归模型: h θ ( x ) , h_\theta(x), hθ(x)want: 0 ≤ h θ ( x ) ≤ 1 0 \leq h_\theta(x) \leq 1 0hθ(x)1
      h θ ( x )   = g ( θ T x ) \ h_\theta(x)\ =g(\theta^Tx)  hθ(x) =g(θTx),将 θ T x \theta^Tx θTx代入 g ( ⋅ ) g(\cdot) g() h θ ( x ) = 1 1 + e − θ T x h_\theta(x)=\frac{1}{1+e^{-\theta^Tx}} hθ(x)=1+eθTx1其中: g ( z ) = 1 1 + e − z g(z)=\frac{1}{1+e^{-z}} g(z)=1+ez1称为Sigmod函数,也叫作Logistic函数
    ALT
    hope:
    { h θ ( x ) ≥ 0.5 , y = 1 h θ ( x ) &lt; 0.5 , y = 0 \begin{cases} h_\theta(x) \geq 0.5,y=1 \\ h_\theta(x) &lt; 0.5,y=0 \end{cases} {hθ(x)0.5y=1hθ(x)<0.5y=0
    从概率的角度: h θ ( x ) = p { y = 1 ∣ x , θ } h_\theta(x)=p\{y=1|x,\theta\} hθ(x)=p{y=1x,θ}

    决策界限(Decision Boundary)

    predict:y=1 , if  h θ ( x ) ≥ 0.5 \text {predict:y=1},\text {if }h_\theta(x) \geq 0.5 predicty=1if hθ(x)0.5
    predict:y=0 , if  h θ ( x ) &lt; 0.5 \text {predict:y=0},\text {if }h_\theta(x) &lt; 0.5 predicty=0if hθ(x)<0.5
    h θ ( x ) ≥ 0.5 → z ≥ 0 → θ T x ≥ 0 h_\theta(x) \geq 0.5\quad \to\quad z\geq0 \quad \to\quad \theta^Tx\geq0 hθ(x)0.5z0θTx0
    h θ ( x ) &lt; 0.5 → z &lt; 0 → θ T x &lt; 0 h_\theta(x) &lt; 0.5\quad \to\quad z&lt;0 \quad \to\quad \theta^Tx&lt;0 hθ(x)<0.5z<0θTx<0
    定义: θ T x = 0 \theta^Tx=0 θTx=0决策边界

    代价函数(cost function)

    假设表示定义的: h θ ( x ) = p { y = 1 ∣ x , θ } h_\theta(x)=p\{y=1|x,\theta\} hθ(x)=p{y=1x,θ},由极大似然的思想: θ = a r g m a x θ ∏ i = 1 m p { y i = 1 ∣ x , θ } y i p { y i = 0 ∣ x , θ } 1 − y i = a r g m a x θ ∏ i = 1 m p { y i = 1 ∣ x , θ } y i ( 1 − p { y i = 1 ∣ x , θ } ) 1 − y i \begin{array}{} \theta=\underset{\theta}{argmax}\prod_{i=1}^{m}p\{y_i=1|x,\theta\}^{y_i}p\{y_i=0|x,\theta\}^{1-y_i}\\ = \underset{\theta}{argmax}\prod_{i=1}^{m}p\{y_i=1|x,\theta\}^{y_i}(1-p\{y_i=1|x,\theta\})^{1-y_i} \end{array}{} θ=θargmaxi=1mp{yi=1x,θ}yip{yi=0x,θ}1yi=θargmaxi=1mp{yi=1x,θ}yi(1p{yi=1x,θ})1yi Γ = ∏ i = 1 m p { y i = 1 ∣ x , θ } y i ( 1 − p { y i = 1 ∣ x , θ } ) 1 − y i \Gamma=\prod_{i=1}^{m}p\{y_i=1|x,\theta\}^{y_i}(1-p\{y_i=1|x,\theta\})^{1-y_i} Γ=i=1mp{yi=1x,θ}yi(1p{yi=1x,θ})1yi,取对数可得: log ⁡ ( Γ ) = ∑ i = 1 m y i log ⁡ ( h θ ( x ) ) + ( 1 − y i ) ( 1 − log ⁡ ( h θ ( x ) ) ) \log(\Gamma)=\sum_{i=1}^my_i\log(h_\theta(x))+(1-y_i)(1-\log(h_\theta(x))) log(Γ)=i=1myilog(hθ(x))+(1yi)(1log(hθ(x)))所以: θ = a r g m a x θ log ⁡ ( Γ ) = a r g m a x θ ∑ i = 1 m y i log ⁡ ( h θ ( x ) ) + ( 1 − y i ) ( 1 − log ⁡ ( h θ ( x ) ) ) \theta = \underset{\theta}{argmax}\log(\Gamma)\\=\underset{\theta}{argmax}\sum_{i=1}^my_i\log(h_\theta(x))+(1-y_i)(1-\log(h_\theta(x))) θ=θargmaxlog(Γ)=θargmaxi=1myilog(hθ(x))+(1yi)(1log(hθ(x))) c o s t ( h θ ( x ) , y i ) = − y i log ⁡ ( h θ ( x ) ) − ( 1 − y i ) ( 1 − log ⁡ ( h θ ( x ) ) ) cost(h_\theta(x),y_i)=-y_i\log(h_\theta(x))-(1-y_i)(1-\log(h_\theta(x))) cost(hθ(x),yi)=yilog(hθ(x))(1yi)(1log(hθ(x))),所以目标: θ = a r g m a x θ ∑ i = 1 m c o s t ( h θ ( x ) , y i ) \theta= \underset{\theta}{argmax}\sum_{i=1}^mcost(h_\theta(x),y_i) θ=θargmaxi=1mcost(hθ(x),yi)注意:线性回归的 c o s t ( h θ ( x ) , y i ) = ( h θ ( x ) − y i ) 2 cost(h_\theta(x),y_i)=(h_\theta(x)-y_i)^2 cost(hθ(x),yi)=(hθ(x)yi)2。)
    由于 c o s t ( h θ ( x ) , y i ) = − y i log ⁡ ( h θ ( x ) ) − ( 1 − y i ) ( 1 − log ⁡ ( h θ ( x ) ) ) cost(h_\theta(x),y_i)=-y_i\log(h_\theta(x))-(1-y_i)(1-\log(h_\theta(x))) cost(hθ(x),yi)=yilog(hθ(x))(1yi)(1log(hθ(x))),写成: c o s t ( h θ ( x ) , y i ) = { − y i log ⁡ ( h θ ( x ) ) , if  y i = 1 − ( 1 − y i ) ( 1 − log ⁡ ( h θ ( x ) ) ) , if  y i = 0 cost(h_\theta(x),y_i)=\begin{cases} -y_i\log(h_\theta(x)),\quad \quad \quad \quad\quad\text{if $y_i=1$} \\-(1-y_i)(1-\log(h_\theta(x))),\text{if $y_i=0$}\end{cases} cost(hθ(x),yi)={yilog(hθ(x))if yi=1(1yi)(1log(hθ(x)))if yi=0
    ALT
    ALT
    逻辑回归代价函数
    J ( θ ) = 1 m ∑ i = 1 m c o s t ( h θ ( x ( i ) ) , y ( i ) ) = − 1 m ∑ i = 1 m ( y ( i ) log ⁡ ( h θ ( x ( i ) ) ) + ( 1 − y ( i ) ) log ⁡ ( 1 − h θ ( x ( i ) ) ) ) J(\theta)=\frac{1}{m}\sum_{i=1}^{m}cost(h_\theta(x^{(i)}),y^{(i)})\\=-\frac{1}{m}\sum_{i=1}^{m}(y^{(i)}\log(h_\theta(x^{(i)}))+(1-y^{(i)})\log(1-h_\theta(x^{(i)}))) J(θ)=m1i=1mcost(hθ(x(i)),y(i))=m1i=1m(y(i)log(hθ(x(i)))+(1y(i))log(1hθ(x(i))))拟合参数 min ⁡ θ J ( θ ) \underset{\theta}{\min}J(\theta) θminJ(θ)
    梯度下降法
    ∂ ∂ θ j J ( θ ) = 1 m ∑ i = 1 m ( h θ ( x ( i ) ) − y ( i ) ) x j ( i ) \frac{\partial}{\partial\theta_j}J(\theta)=\frac{1}{m}\sum_{i=1}^{m}(h_\theta(x^{(i)})-y^{(i)})x_j^{(i)} θjJ(θ)=m1i=1m(hθ(x(i))y(i))xj(i) θ j : = θ j − α ∂ ∂ θ j J ( θ ) = θ j − α m ∑ i = 1 m ( h θ ( x ( i ) ) − y ( i ) ) x j ( i ) \theta_j:=\theta_j-\alpha\frac{\partial}{\partial\theta_j}J(\theta)=\theta_j-\frac{\alpha}{m}\sum_{i=1}^{m}(h_\theta(x^{(i)})-y^{(i)})x_j^{(i)} θj:=θjαθjJ(θ)=θjmαi=1m(hθ(x(i))y(i))xj(i)高级优化算法

    • 共轭梯度算法
    • BFGS
    • L-BFGS
      优点:无需人工选择参数 α \alpha α;运算速度比梯度下降更快
      缺点:更加复杂

    正则化(regularization)

    欠拟合和过拟合(underfitting and overfitting)

    欠拟合

    ALT
    欠拟合,高偏差:说明没有很好的拟合训练数据
    解决办法:增加特征,如增加多项式

    过拟合

    ALT
    过拟合,高方差:拟合训练数据过于完美, J ( θ ) ≈ 0 J(\theta)\approx0 J(θ)0,导致模型的泛化能力很差,对于新样本不能准确预测;
    解决办法

    • 减少特征个数
      a)人工保留合适的特征
      b)采用模型选择算法
    • 正规化
      a)保留所有特征,减小参数 θ j \theta_j θj的维度

    正则化代价函数

    θ j \theta_j θj加入惩罚项:
    线性回归代价函数 J ( θ ) = 1 2 m [ ∑ i = 1 m ( h θ ( x ( i ) ) − y ( i ) ) 2 + λ ∑ j = 1 m θ j 2 ] J(\theta)=\frac{1}{2m}\left[ \sum_{i=1}^{m}(h_\theta(x^{(i)})-y^{(i)})^2+\lambda\sum_{j=1}^m\theta_j^2\right] J(θ)=2m1[i=1m(hθ(x(i))y(i))2+λj=1mθj2]
    逻辑回归代价函数
    J ( θ ) = − 1 m ∑ i = 1 m ( y ( i ) log ⁡ ( h θ ( x ( i ) ) ) + ( 1 − y ( i ) ) log ⁡ ( 1 − h θ ( x ( i ) ) ) ) + λ 2 m ∑ j = 1 m θ j 2 J(\theta)=-\frac{1}{m}\sum_{i=1}^{m}(y^{(i)}\log(h_\theta(x^{(i)}))+(1-y^{(i)})\log(1-h_\theta(x^{(i)})))+\frac{\lambda}{2m}\sum_{j=1}^{m}\theta_j^2 J(θ)=m1i=1m(y(i)log(hθ(x(i)))+(1y(i))log(1hθ(x(i))))+2mλj=1mθj2拟合参数 min ⁡ θ J ( θ ) \underset{\theta}{\min}J(\theta) θminJ(θ)目标: min ⁡ θ J ( θ ) \underset{\theta}{\min}J(\theta) θminJ(θ)

    线性回归和逻辑回归的正则化

    梯度下降算法:
    repeat:{ θ 0 : = θ 0 − α 1 m ∑ i = 1 m ( h θ ( x ( i ) ) − y ( i ) ) x 0 ( i ) \theta_0:= \theta_0-\alpha\frac{1}{m}\sum_{i=1}^m(h_\theta(x^{(i)})-y^{(i)})x_0^{(i)} θ0:=θ0αm1i=1m(hθ(x(i))y(i))x0(i) θ j : = θ j − α 1 m [ ∑ i = 1 m ( h θ ( x ( i ) ) − y ( i ) ) x 0 ( i ) + λ θ j ] \theta_j:= \theta_j-\alpha\frac{1}{m}\left[\sum_{i=1}^m(h_\theta(x^{(i)})-y^{(i)})x_0^{(i)}+\lambda\theta_j\right] θj:=θjαm1[i=1m(hθ(x(i))y(i))x0(i)+λθj]
    &ThickSpace; \quad\quad\quad\; }
    等价于:
    repeat:{ θ 0 : = θ 0 − α 1 m ∑ i = 1 m ( h θ ( x ( i ) ) − y ( i ) ) x 0 ( i ) \theta_0:= \theta_0-\alpha\frac{1}{m}\sum_{i=1}^m(h_\theta(x^{(i)})-y^{(i)})x_0^{(i)} θ0:=θ0αm1i=1m(hθ(x(i))y(i))x0(i) θ j : = θ j ( 1 − α 1 m ) − α 1 m ∑ i = 1 m ( h θ ( x ( i ) ) − y ( i ) ) x 0 ( i ) \theta_j:= \theta_j(1-\alpha\frac{1}{m})-\alpha\frac{1}{m}\sum_{i=1}^m(h_\theta(x^{(i)})-y^{(i)})x_0^{(i)} θj:=θj(1αm1)αm1i=1m(hθ(x(i))y(i))x0(i)
    &ThickSpace; \quad\quad\quad\; }
    正规方程
    假设: m ≤ n ( e x a m p l e s ≤ f e a t u r e s ) m\leq n(examples\leq features) mn(examplesfeatures)
    θ = ( X T X ) − 1 X T y \theta=(X^TX)^{-1}X^Ty θ=(XTX)1XTyIf λ &gt; 0 \lambda&gt;0 λ>0 θ = ( X T X + λ [ 0 1 1 ⋱ 1 ] ⎵ ( n + 1 ) × ( n + 1 ) ) − 1 X T y \theta=\left(X^TX+\lambda\underbrace{ \begin{bmatrix}0\\ &amp;1\\ &amp;&amp;1\\ &amp;&amp;&amp; \ddots \\&amp;&amp;&amp;&amp;1\end{bmatrix}}_{(n+1)\times(n+1)}\right)^{-1}X^Ty θ=XTX+λ(n+1)×(n+1) 01111XTy只要 λ &gt; 0 \lambda&gt;0 λ>0,那么括号内的矩阵一定不是奇异矩阵,也就是可逆的。

    神经网络学习

    模型表示

    ALT
    上图代表单个的神经元。神经网络即是一组神经元。典型的三层神经网络如下图所示:
    ALT
    详细解释:
    a i ( j ) a^{(j)}_i ai(j):第 j j j层的单元 i i i的激活项。(“activation of unit i in layer j”)
    Θ ( j ) \Theta^{(j)} Θ(j):从第 j j j层( u n i t s units units: s j s_j sj)到第 j + 1 j+1 j+1层( u n i t s units units: s j + 1 s_{j+1} sj+1)的权重矩阵,维数: s j + 1 × ( s j + 1 ) s_{j+1}\times (s_j+1) sj+1×(sj+1)
    a 1 ( 2 ) = g ( Θ 10 ( 1 ) x 0 + Θ 11 ( 1 ) x 1 + Θ 12 ( 1 ) x 2 + Θ 13 ( 1 ) x 3 ) a_1^{(2)}=g(\Theta_{10}^{(1)}x_0+\Theta_{11}^{(1)}x_1+\Theta_{12}^{(1)}x_2+\Theta_{13}^{(1)}x_3) a1(2)=g(Θ10(1)x0+Θ11(1)x1+Θ12(1)x2+Θ13(1)x3) a 2 ( 2 ) = g ( Θ 20 ( 1 ) x 0 + Θ 21 ( 1 ) x 1 + Θ 22 ( 1 ) x 2 + Θ 23 ( 1 ) x 3 ) a_2^{(2)}=g(\Theta_{20}^{(1)}x_0+\Theta_{21}^{(1)}x_1+\Theta_{22}^{(1)}x_2+\Theta_{23}^{(1)}x_3) a2(2)=g(Θ20(1)x0+Θ21(1)x1+Θ22(1)x2+Θ23(1)x3) a 3 ( 2 ) = g ( Θ 30 ( 1 ) x 0 + Θ 31 ( 1 ) x 1 + Θ 32 ( 1 ) x 2 + Θ 33 ( 1 ) x 3 ) a_3^{(2)}=g(\Theta_{30}^{(1)}x_0+\Theta_{31}^{(1)}x_1+\Theta_{32}^{(1)}x_2+\Theta_{33}^{(1)}x_3) a3(2)=g(Θ30(1)x0+Θ31(1)x1+Θ32(1)x2+Θ33(1)x3) h Θ ( x ) = a 1 ( 3 ) = g ( Θ 10 ( 2 ) a 0 ( 2 ) + Θ 11 ( 2 ) a 1 ( 2 ) + Θ 12 ( 2 ) a 2 ( 2 ) + Θ 13 ( 2 ) a 3 ( 2 ) ) h_\Theta(x)=a_1^{(3)}=g(\Theta_{10}^{(2)}a_0^{(2)}+\Theta_{11}^{(2)}a_1^{(2)}+\Theta_{12}^{(2)}a_2 ^{(2)}+\Theta_{13}^{(2)}a_3^{(2)}) hΘ(x)=a1(3)=g(Θ10(2)a0(2)+Θ11(2)a1(2)+Θ12(2)a2(2)+Θ13(2)a3(2))

    神经网络前向传播

    ALT h Θ ( x ) = a ( 3 ) = g ( z ( 3 ) ) = g ( Θ ( 2 ) a ( 2 ) ) = g ( Θ ( 2 ) g ( z ( 2 ) ) ) = g ( Θ ( 2 ) g ( Θ ( 1 ) a ( 1 ) ) ) h_\Theta(x)=a^{(3)}=g(z^{(3)})=g(\Theta^{(2)}a^{(2)})=g(\Theta^{(2)}g(z^{(2)}))=g(\Theta^{(2)}g(\Theta^{(1)}a^{(1)})) hΘ(x)=a(3)=g(z(3))=g(Θ(2)a(2))=g(Θ(2)g(z(2)))=g(Θ(2)g(Θ(1)a(1)))

    代价函数

    逻辑回归代价函数: J ( θ ) = − 1 m ∑ i = 1 m ( y ( i ) log ⁡ ( h θ ( x ( i ) ) ) + ( 1 − y ( i ) ) log ⁡ ( 1 − h θ ( x ( i ) ) ) ) + λ 2 m ∑ j = 1 m θ j 2 J(\theta)=-\frac{1}{m}\sum_{i=1}^{m}(y^{(i)}\log(h_\theta(x^{(i)}))+(1-y^{(i)})\log(1-h_\theta(x^{(i)})))+\frac{\lambda}{2m}\sum_{j=1}^{m}\theta_j^2 J(θ)=m1i=1m(y(i)log(hθ(x(i)))+(1y(i))log(1hθ(x(i))))+2mλj=1mθj2神经网络代价函数 J ( θ ) = − 1 m ∑ i = 1 m ∑ k = 1 K ( y k ( i ) log ⁡ ( h θ ( x ( i ) ) ) k + ( 1 − y k ( i ) ) log ⁡ ( 1 − h θ ( x ( i ) ) ) k ) + λ 2 m ∑ l = 1 L − 1 ∑ j = 1 m ∑ i = 1 m ( θ j i l ) 2 J(\theta)=-\frac{1}{m}\sum_{i=1}^{m}\sum_{k=1}^{K}(y_k^{(i)}\log(h_\theta(x^{(i)}))_k+(1-y_k^{(i)})\log(1-h_\theta(x^{(i)}))_k)+\frac{\lambda}{2m}\sum_{l=1}^{L-1}\sum_{j=1}^{m}\sum_{i=1}^{m}(\theta_{ji}^{l})^2 J(θ)=m1i=1mk=1K(yk(i)log(hθ(x(i)))k+(1yk(i))log(1hθ(x(i)))k)+2mλl=1L1j=1mi=1m(θjil)2优化目标 min ⁡ Θ J ( Θ ) \underset{\Theta}{\min} J(\Theta) ΘminJ(Θ)
    需要计算

    • J ( Θ ) J(\Theta) J(Θ)
    • ∂ ∂ Θ i j ( l ) J ( Θ ) \frac{\partial}{\partial\Theta_{ij}^{(l)}}J(\Theta) Θij(l)J(Θ) Θ i j ( l ) ∈ R \Theta_{ij}^{(l)}\in\R Θij(l)R

    如图:
    ALT
    前向传播
    a ( 1 ) = x z ( 2 ) = Θ ( 1 ) a ( 1 ) a ( 2 ) = g ( z ( 2 ) ) z ( 3 ) = Θ ( 2 ) a ( 2 ) a ( 3 ) = g ( z ( 3 ) z ( 4 ) = Θ ( 3 ) a ( 3 ) a ( 4 ) = g ( z ( 4 ) h Θ ( x ) = a ( 4 ) a^{(1)}=x \\ z^{(2)}=\Theta^{(1)}a^{(1)} \\ a^{(2)}=g(z^{(2)}) \\ z^{(3)}=\Theta^{(2)}a^{(2)} \\ a^{(3)}=g(z^{(3}) \\ z^{(4)}=\Theta^{(3)}a^{(3)} \\ a^{(4)}=g(z^{(4}) \\ h_{\Theta}(x)=a^{(4)} a(1)=xz(2)=Θ(1)a(1)a(2)=g(z(2))z(3)=Θ(2)a(2)a(3)=g(z(3)z(4)=Θ(3)a(3)a(4)=g(z(4)hΘ(x)=a(4)

    反向传播:

    计算: δ j ( l ) \delta_j^{(l)} δj(l)=第 l l l层第 j j j个节点的误差(error);
    对于每一个输出单元: δ j ( 4 ) = a j ( 4 ) − y j \delta_j^{(4)}=a_j^{(4)}-y_j δj(4)=aj(4)yj,写成向量形式为: δ ( 4 ) = a ( 4 ) − y \delta^{(4)}=a^{(4)}-y δ(4)=a(4)y;由输出层逐级往上计算 δ ( l ) 、 δ ( l − 1 ) … δ ( 2 ) \delta^{(l)}、\delta^{(l-1)}\dots \delta^{(2)} δ(l)δ(l1)δ(2)
    δ ( 3 ) = ( Θ ( 3 ) ) T δ ( 4 ) . ∗ g ′ ( z ( 3 ) ) , g ′ ( z ( 3 ) ) = a ( 3 ) . ∗ ( 1 − a ( 3 ) ) δ ( 2 ) = ( Θ ( 2 ) ) T δ ( 3 ) . ∗ g ′ ( z ( 2 ) ) , g ′ ( z ( 2 ) ) = a ( 2 ) . ∗ ( 1 − a ( 2 ) ) \delta^{(3)}=(\Theta^{(3)})^T\delta^{(4)}.*g\prime(z^{(3)}),\qquad g\prime(z^{(3)})=a^{(3)}.*(1-a^{(3)}) \\ \delta^{(2)}=(\Theta^{(2)})^T\delta^{(3)}.*g\prime(z^{(2)}),\qquad g\prime(z^{(2)})=a^{(2)}.*(1-a^{(2)}) δ(3)=(Θ(3))Tδ(4).g(z(3)),g(z(3))=a(3).(1a(3))δ(2)=(Θ(2))Tδ(3).g(z(2)),g(z(2))=a(2).(1a(2)) 可以证明(忽略 λ \lambda λ,即 λ = 0 \lambda=0 λ=0): ∂ ∂ Θ i j ( l ) J ( Θ ) = a j ( l ) δ i ( l + 1 ) \frac{\partial}{\partial\Theta_{ij}^{(l)}}J(\Theta)=a_j^{(l)}\delta_i^{(l+1)} Θij(l)J(Θ)=aj(l)δi(l+1)详细的:
    对于训练集 { ( x ( 1 ) , y ( 1 ) ) , … , ( x ( m ) , y ( m ) ) } \{(x^{(1)},y^{(1)}),\dots,(x^{(m)},y^{(m)})\} {(x(1),y(1)),,(x(m),y(m))}
    初始化 Δ i j l = 0 \Delta_{ij}^l=0 Δijl=0,for all l , i , j l,i,j l,i,j
    ALT
    理解:
    ALT
    换句话说: δ j ( l ) = ∂ ∂ z j ( l ) c o s t ( i ) \delta_j^{(l)}=\frac{\partial}{\partial z_{j}^{(l)}}cost(i) δj(l)=zj(l)cost(i) , f o r ( j ≥ 0 ) for(j\geq0) for(j0)
    where c o s t ( i ) = y ( i ) log ⁡ ( h θ ( x ( i ) ) ) + ( 1 − y ( i ) ) log ⁡ ( 1 − h θ ( x ( i ) ) ) cost(i)=y^{(i)}\log(h_\theta(x^{(i)}))+(1-y^{(i)})\log(1-h_\theta(x^{(i)})) cost(i)=y(i)log(hθ(x(i)))+(1y(i))log(1hθ(x(i)))
    δ \delta δ项是代价函数关于这些中间项的偏导数,衡量影响神经网络的权值,进而影响神经网络的输出的程度。

    展开参数

    ALT
    ALT

    梯度检验

    ALT
    ALT
    ALT

    随机初始化

    ALT

    together

    ALT
    aLT
    ALT

    机器学习细节

    模型选择(model selection)

    可以依据训练误差和测试误差来评估假设 h θ ( x ) h_\theta(x) hθ(x)
    一般来说,我们将数据集划分成训练集(60%)、验证集(20%)和测试集(20%);
    在训练集上我们学习参数 θ \theta θ m i n J ( θ ) minJ(\theta) minJ(θ)
    计算训练误差、验证误差:
    for linear regression
    J t r a i n ( θ ) = 1 2 m t r a i n ∑ i = 1 m t r a i n ( h θ ( x t r a i n ( i ) ) − y t r a i n ( i ) ) 2 J_{train}(\theta)=\frac{1}{2m_{train}} \sum_{i=1}^{m_{train}}(h_\theta(x_{train}^{(i)})-y_{train}^{(i)})^2 Jtrain(θ)=2mtrain1i=1mtrain(hθ(xtrain(i))ytrain(i))2 J c v ( θ ) = 1 2 m c v ∑ i = 1 m c v ( h θ ( x c v ( i ) ) − y c v ( i ) ) 2 J_{cv}(\theta)=\frac{1}{2m_{cv}} \sum_{i=1}^{m_{cv}}(h_\theta(x_{cv}^{(i)})-y_{cv}^{(i)})^2 Jcv(θ)=2mcv1i=1mcv(hθ(xcv(i))ycv(i))2for logistic regression J t r a i n ( θ ) = − 1 m t r a i n ∑ i = 1 m t r a i n ( y t r a i n ( i ) log ⁡ ( h θ ( x t r a i n ( i ) ) ) + ( 1 − y t r a i n ( i ) ) log ⁡ ( 1 − h θ ( x t r a i n ( i ) ) ) ) J_{train}(\theta)=-\frac{1}{m_{train}}\sum_{i=1}^{m_{train}}(y_{train}^{(i)}\log(h_\theta(x_{train}^{(i)}))+(1-y_{train}^{(i)})\log(1-h_\theta(x_{train}^{(i)}))) Jtrain(θ)=mtrain1i=1mtrain(ytrain(i)log(hθ(xtrain(i)))+(1ytrain(i))log(1hθ(xtrain(i)))) J c v ( θ ) = − 1 m c v ∑ i = 1 m c v ( y c v ( i ) log ⁡ ( h θ ( x c v ( i ) ) ) + ( 1 − y c v ( i ) ) log ⁡ ( 1 − h θ ( x c v ( i ) ) ) ) J_{cv}(\theta)=-\frac{1}{m_{cv}}\sum_{i=1}^{m_{cv}}(y_{cv}^{(i)}\log(h_\theta(x_{cv}^{(i)}))+(1-y_{cv}^{(i)})\log(1-h_\theta(x_{cv}^{(i)}))) Jcv(θ)=mcv1i=1mcv(ycv(i)log(hθ(xcv(i)))+(1ycv(i))log(1hθ(xcv(i))))选择 J c v ( θ ) J_{cv}(\theta) Jcv(θ)最小的模型;
    计算测试误差 J t e s t ( θ ) J_{test}(\theta) Jtest(θ)
    对于逻辑回归还可以计算误分类率: e r r o r = { 1 , if  y i = 1 , h θ ( x ) &lt; 0.5   o r   y i = 0 , h θ ( x ) ≥ 0.5 0 , if  y i = 1 , h θ ( x ) ≥ 0.5   o r   y i = 0 , h θ ( x ) &lt; 0.5 error=\begin{cases} 1,\text{if $y_i=1,h_\theta(x)&lt;0.5\ or\ y_i=0,h_\theta(x)\geq0.5$} \\ 0 ,\text{if $y_i=1,h_\theta(x)\geq0.5\ or\ y_i=0,h_\theta(x)&lt;0.5$}\end{cases} error={1if yi=1hθ(x)<0.5 or yi=0hθ(x)0.50if yi=1hθ(x)0.5 or yi=0hθ(x)<0.5

    方差和偏差(variance VS bias)

    如图:
    ALT
    一般来说,欠拟合会产生高偏差;过拟合过产生高方差;
    具体来说,当模型欠拟合时,训练误差和验证误差都会较大;当模型过拟合时,训练误差很小,然而验证误差很大,如下图:
    ALT
    如何处理高方差和高偏差问题呢?
    一般来说,加入合适的正则化项可以有效地避免过拟合(即高方差)
    ALT
    当正则化参数 λ \lambda λ较大时, θ j ≈ 0 \theta_j\approx0 θj0(除 θ 0 \theta_0 θ0外),假设函数趋于直线,因而会造成高偏差的问题,导致欠拟合
    当正则化参数 λ \lambda λ较小时,正则化项不起作用,模型会变得过拟合。如图:
    ALT
    一般的,对于高偏差问题(欠拟合):

    • 增加特征个数
    • 增加多项式特征
    • 降低 λ \lambda λ

    对于高方差问题(过拟合):

    • 增加训练样本
    • 减少特征个数
    • 增加 λ \lambda λ

    对于神经网络来说,参数越少,越有可能欠拟合;参数越多,网络结构越复杂,越有可能过拟合,应该加入正则化项。

    机器学习系统设计

    不对称分类的误差评估(skewed classes)

    查准率和召回率(Precision和Recall)

    y=1 in presence of rare class that we want to detect;
    Precision: 预测为正,实际为正的概率
    P r e c i s i o n = T P T P + F P Precision=\frac{TP}{TP+FP} Precision=TP+FPTP
    Recall: 正例被准确预测的概率,也叫查全率敏感性
    R e c a l l = T P T P + F N Recall=\frac{TP}{TP+FN} Recall=TP+FNTP

    两者平衡

    以逻辑回归为例: 0 ≤ h θ ( x ) ≤ 1 0\leq h_\theta(x) \leq1 0hθ(x)1
    预测y=1,if h θ ( x ) ≥ 0.5 h_\theta(x) \geq 0.5 hθ(x)0.5;预测y=0,if h θ ( x ) &lt; 0.5 h_\theta(x) &lt; 0.5 hθ(x)<0.5

    1. 如果我们想要比较确信为正例时才判定为正例,那么提高阈值,模型会对应高查准率,低召回率;
    2. 如果希望避免假阴性,那么降低阈值,模型会对应低查准率,高召回率

    PR曲线

    在这里插入图片描述

    F1 Score

    F 1 = 2 P R P + R F1=2\frac{PR}{P+R} F1=2P+RPR

    支持向量机

    优化目标

    复习:
    逻辑回归的假设函数: h θ ( x ) = 1 1 + e − θ T x h_\theta(x)=\frac{1}{1+e^{-\theta^Tx}} hθ(x)=1+eθTx1
    if y=1, we want  h θ ( x ) ≈ 1 , θ T x &gt; &gt; 0 \text{if y=1, we want }h_\theta(x)\approx1,\theta^Tx&gt;&gt;0 if y=1, we want hθ(x)1θTx>>0
    if y=0, we want  h θ ( x ) ≈ 0 , θ T x &lt; &lt; 0 \text{if y=0, we want }h_\theta(x)\approx0,\theta^Tx&lt;&lt;0 if y=0, we want hθ(x)0θTx<<0
    ALT
    c o s t ( θ , x ) = − ( y log ⁡ h θ ( x ) + ( 1 − y ) log ⁡ ( 1 − h θ ( x ) ) ) cost(\theta,x)=-(y\log h_\theta(x)+(1-y)\log (1-h_\theta(x))) cost(θ,x)=(yloghθ(x)+(1y)log(1hθ(x)))
    对逻辑回归的代价函数进行修改:
    ALT
    因此,我们可以得到支持向量机的代价函数:
    min ⁡ θ C ∑ i = 1 m [ y ( i ) c o s t 1 ( θ T x ( i ) ) + ( 1 − y ( i ) ) c o s t 0 ( θ T x ( i ) ) ] + 1 2 ∑ i = 1 m θ j 2 \underset{\theta}{\min}C\sum_{i=1}^{m}[y^{(i)}cost_1(\theta^Tx^{(i)})+(1-y^{(i)})cost_0(\theta^Tx^{(i)})]+\frac{1}{2}\sum_{i=1}^{m}\theta_j^2 θminCi=1m[y(i)cost1(θTx(i))+(1y(i))cost0(θTx(i))]+21i=1mθj2
    公式中的 C C C可以看做是 1 λ \frac{1}{\lambda} λ1,说明支持向量机中更加偏重代价;

    间隔最大化

    ALT
    当取一个较大的 C C C值时,当 y ( i ) = 1 y^{(i)}=1 y(i)=1时, θ T x ( i ) ≥ 1 \theta^Tx^{(i)}\geq1 θTx(i)1;当 y ( i ) = 0 y^{(i)}=0 y(i)=0时, θ T x ( i ) ≤ − 1 \theta^Tx^{(i)}\leq-1 θTx(i)1
    因此我们可以得到支持向量机的决策边界(Decision Boundary):
    m i n θ 1 2 ∑ j = 1 n θ j 2 s.t. θ T x ( i ) ≥ 1 , if  y ( i ) = 1 θ T x ( i ) ≤ − 1 , if  y ( i ) = 0 \begin{array}{} \underset {\theta} {min} &amp; \frac{1}{2} \sum_{j=1}^{n}\theta_j^2 \\ \text{s.t.}&amp; \theta^Tx^{(i)}\geq1, \quad \text{if} \ y^{(i)}=1 \\ &amp;\theta^Tx^{(i)}\leq-1, \quad \text{if}\ y^{(i)}=0 \end{array} θmins.t.21j=1nθj2θTx(i)1,if y(i)=1θTx(i)1,if y(i)=0
    ALT
    从数学解释上看间隔问题:
    1 2 ∑ i = 1 n θ j 2 = 1 2 ( θ 1 2 + … θ n 2 ) 2 = 1 2 ∣ ∣ θ ∣ ∣ 2 \frac{1}{2}\sum_{i=1}^{n}\theta_j^2 = \frac{1}{2}(\sqrt{\theta_1^2+\dots\theta_n^2})^2=\frac{1}{2}||\theta||^2 21i=1nθj2=21(θ12+θn2 )2=21θ2
    简化:n=2
    ALT
    所以有: θ T x ( i ) = p ( i ) ∣ ∣ θ ∣ ∣ = θ 1 x 1 ( i ) + θ 2 x 2 ( i ) \theta^Tx^{(i)}=p^{(i)}||\theta||=\theta_1x_1^{(i)}+\theta_2x_2^{(i)} θTx(i)=p(i)θ=θ1x1(i)+θ2x2(i)
    决策问题转换为:
    ALT

    核函数

    ALT
    高斯核函数: f i = similarity ( x , l ( i ) ) = exp ⁡ ( − ∣ ∣ x − l ( i ) ∣ ∣ 2 2 σ 2 ) f_i=\text{similarity}(x,l^{(i)})=\exp(-\frac{||x-l^{(i)}||^2}{2\sigma^2}) fi=similarity(x,l(i))=exp(2σ2xl(i)2)
    如果 x ≈ l ( i ) x\approx l^{(i)} xl(i) f i ≈ exp ⁡ ( − 0 2 2 σ 2 ) ≈ 1 f_i \approx \exp(-\frac{0^2}{2\sigma^2})\approx 1 fiexp(2σ202)1如果 x x x is far from l ( i ) l^{(i)} l(i) f i ≈ exp ⁡ ( − (larger number) 2 2 σ 2 ) ≈ 0 f_i \approx \exp(-\frac{\text{(larger number)}^2}{2\sigma^2})\approx 0 fiexp(2σ2(larger number)2)0
    σ 2 \sigma^2 σ2对核函数的影响
    ALT
    可以看出, σ 2 \sigma^2 σ2越大,变化越缓慢; σ 2 \sigma^2 σ2越大,变化越剧烈。
    如何选择标记 l ( i ) l^{(i)} l(i)呢?
    ALT
    SVM将每一个训练样本 ( x ( i ) , y ( i ) ) (x^{(i)},y^{(i)}) (x(i),y(i)),令标记 l ( i ) = x ( i ) l^{(i)}=x^{(i)} l(i)=x(i),对于每一个输入 x x x,计算 f 1 , f 2 , . . . , f m f_1,f_2,...,f_m f1,f2,...,fm,令 f 0 = 1 f_0=1 f0=1,生成新的特征向量 f ∈ R m + 1 f\in\R^{m+1} fRm+1
    ALT

    SVM参数对性能的影响:

    ALT

    逻辑回归和SVM比较

    1. 如果特征个数n远远大于训练样本个数,建议使用逻辑回归或者线性SVM
    2. 如果特征个数n较小,训练样本个数适当,建议使用高斯核SVM
    3. 如果特征个数小,训练样本非常大,建议增加更多特征或者使用逻辑回归或线性SVM

    无监督学习

    展开全文
  • Suppose m=4 students have taken some class, and the class had a midterm exam and a final exam. You have collected a dataset of their scores on the two exams, which is as follows: ...
    1. Suppose m=4 students have taken some class, and the class had a midterm exam and a final exam. You have collected a dataset of their scores on the two exams, which is as follows:
      题目截图
      此处题目要求的是求通过均值归一化后,标准的特征为多少。

    所以应该先计算平均值,此处是看第一个特征,即(89+72+94+69)/4=81

    根据均值归一化(mean normalization),此处的范围为69~94,
    x=(94-81)/(94-69)=0.52

    在这里插入图片描述
    C,不知道我第一次怎么选错的…
    显然是正规方程法对于大量数据集的处理比较吃力,因为要计算

    在这里插入图片描述
    迭代次数的减少,加快了正确答案的得出。正规方程对计算只与训练集的大小有关,而与至无关,不能阻止梯度下降局部最优(ps:正规方程没有局部最优),第四个答案,除非可以减少特征变量,否则不能解决此问题
    所以选择减少了梯度下降算法的迭代次数,从而减少了速度,C

    展开全文
  • 机器学习 吴恩达 简介 课程地址:吴恩达机器学习 -- 网易云课堂 本笔记为自用笔记,因此只记录了自己觉得重要的部分,所以不建议想要系统学习的人阅读此笔记。 绪论 监督学习 我们给算法一个数据集,其中包含...
  • 测验一:Linear Regression with Multiple Variables 第一题 答案 0.52 分析 使用特征缩放,具体将特征值处以(最大值-最小值)或者范围即可,故5184/(100)^2 = 0.52(保留两位小数) 第二题 答案 C 分析:由于...
  • 第3周--Classification第3周--Hypothesis Representation第3周--Hypothesis Representation
  • 课程视频链接 ... 上周主要讲解了支持向量机SVM的原理包括优化目标、大间隔以及核函数等SVM核心内容,以及SVM的使用。本周主要讲解经典的无监督聚类算法k-...一、无监督学习 1.无监督学习 2.K-Means算法 3.优化...
  • Quiz Question 1 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...
  • 监督学习:见度给出数据集和正确答案,要求机器给出更多的正确答案(实现预测) 数据问题 && 分类问题 单个 or 多个 特征/属性 特征:年龄、肿瘤尺寸; Q:无数个特征又该怎么办? 1.2 无监督学习 将数据...
  • 本次上传的文件是吴恩达老师在coursera上机器学习第一、二、三、四周的课堂练习,包括每节课程里暂停的作业以及每章会有的五个小练习,都是自己在coursera网上遇到是截图下来的,希望与大家一起交流学习
  • 吴恩达的《机器学习》总结

    千次阅读 2018-07-31 15:33:25
    吴恩达的《机器学习》总结 吴恩达的《机器学习》总结 一、有监督学习(Supervised learning) 线性回归 逻辑回归(Logistic regression) 神经网络 支持向量机 二、无监督学习(Unsupervised ...
  • 一、学习曲线 实现回归算法后,需要根据拟合数据的情况进行修改算法,增加训练集的数量、增加训练集特征、或改变lambda的大小。本次使用线性回归对计算出的函数曲线进行尽力拟合。 二、实现学习曲线 导入数据包。 ...
  • 这里记得给X矩阵和θ矩阵增加常数列, 1.4使用fminunc学习参数 如果正确地完成了costFunction,fminunc将收敛于正确的优化参数,并返回cost和θ的最终值。注意,通过使用fminunc,您不必自己编写任何循环,也不必像...
  • 【学习笔记】吴恩达-机器学习公开课 学习笔记Week1 Introduction课程内容1-1 Welcome1-2 What is Machine Learning?机器学习的定义学习算法主要的两种类型1-3 Supervised Learning 课程内容 Week1 主要内容相当于...
  • 吴恩达机器学习第四周quiz小测验.pdf
  • 本资源属于机器学习经典入门,Coursera 吴恩达 机器学习 斯坦福课程视频教程。资源包括全部课程的视频教程...包含视频资源的方方面面,助你在学习吴恩达入门视频一臂之力。现在福利来了,机不可失,祝大家学有进步!
  • coursera吴恩达Andrew Ng机器学习答案
  • 吴恩达机器学习ex5

    2020-05-10 17:30:21
    第一部分 正则化线性回归 实现线性回归,通过水位预测水量,...3)用于评估性能的测试集:Xtest,ytest % Load Training Data fprintf('Loading and Visualizing Data ...\n') % Load from ex5data1: % You will ha

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 6,146
精华内容 2,458
关键字:

机器学习吴恩达测验