热门标签 | HotTags
当前位置:  开发笔记 > 编程语言 > 正文

深入解析斯坦福大学机器学习课程第二部分的学习心得与笔记

在本文中,我们将深入探讨斯坦福大学机器学习课程第二部分的核心内容与学习体会。文章不仅涵盖了正则化(Regularization)等关键概念,还结合实际案例分析了这些理论在实践中的应用,帮助读者更好地理解和掌握机器学习的高级技巧。此外,我们还将分享一些学习过程中遇到的挑战及解决方案,为后续学习者提供参考。


本系列其他部分:





斯坦福机器学习教程学习笔记之1


斯坦福机器学习教程学习笔记之2


斯坦福机器学习教程学习笔记之3


斯坦福机器学习教程学习笔记之4



第七章 正则化(Regularization)

1.过拟合的问题

正则化(regularization)的技术,它可以改善或者减少过度拟合问题。

过拟合解决办法:(1)减少特征数量,人工选择或使用一些模型选择算法,例如PCA;(2)正则化,保留所有特征,但是减少参数的大小(magnitude)

2.代价函数

假如我们有非常多的特征,我们并不知道其中哪些特征我们要惩罚,我们将对所有的特征进行惩罚,并且让代价函数最优化的软件来选择这些惩罚的程度。这样的结果是得到了一个较为简单的能防止过拟合问题的假设:

其中λ又称为正则化参数(Regularization Parameter)。 注:根据惯例,我们不对θ0 进行惩罚。经过正则化处理的模型与原模型的可能对比如下图所示:

如果选择的正则化参数λ过大,则会把所有的参数都最小化了,导致模型变成 hθ(x)=θ0,也就是上图中红色直线所示的情况,造成欠拟合。

3.正则化线性回归(RegularizedLinear Regression)

正则化线性回归的代价函数为:

梯度下降算法:

可以看出,正则化线性回归的梯度下降算法的变化在于,每次都在原有算法更新规则的基础上令θ值减少了一个额外的值。

正规方程:

4.正则化逻辑回归(RegularizedLogistic Regression)

注意:

1.虽然正则化的逻辑回归中的梯度下降和正则化的线性回归中的表达式看起来一样,但由于两者的h(x)不同所以还是有很大差别。

2.θ0不参与其中的任何一个正则化。


第八章 神经网络:表述(Neural Networks: Representation)

1.非线性假设(Non-linearHypotheses)

2.神经元和大脑(Neurons andthe Brain)

3.模型表示1 (ModelRepresentation I)

每一个a都是由上一层所有的x和每一个x所对应的决定的。(我们把这样从左到右的算法称为前向传播算法( FORWARD PROPAGATION ))。

4.模型表示2(ModelRepresentation II)

我们可以把a0,a1,a2,a3看成更为高级的特征值,也就是x0,x1,x2,x3的进化体,并且它们是由x与决定的,因为是梯度下降的,所以a是变化的,并且变得越来越厉害,所以这些更高级的特征值远比仅仅将x次方厉害,也能更好的预测新数据。

5.举例和直观理解1(Examples andIntuitions I)

6.举例和直观理解2(Examples andIntuitions II)

7.多类分类(MulticlassClassification)


第九章 神经网络的学习

1.代价函数

假设神经网络的训练样本有m个,每个包含一组输入x和一组输出信号y,L表示神经网络层数,Sl表示每层的neuron个数(SL表示输出层神经元个数),SL 代表最后一层中处理单元的个数。

将神经网络的分类定义为两种情况:二类分类和多类分类,

二类分类:SL=1, y=0 or 1表示哪一类;

K类分类:SL=K,yi = 1表示分到第i类;(K>2)


代价函数为:

2.反向传播算法(BackpropagationAlgorithm)

重要的是清楚地知道上面式子中上下标的含义:

l 代表目前所计算的是第几层

j 代表目前计算层中的激活单元的下标,也将是下一层的第j个输入变量的下标。

i 代表下一层中误差单元的下标,是受到权重矩阵中第i行影响的下一层中的误差单元的下标。

3.反向传播算法的直观理解

4.展开参数

5.梯度检验(GradientChecking)

6.随机初始化(RandomInitialization)

到目前为止我们都是初始所有参数为0,这样的

初始方法对于逻辑回归来说是可行的,但是对于神经网络来说是不可行的。如果我们令所有的初始参数都为0,这将意味着我们第二层的所有激活单元都会有相同的值。同理,如果我们初始所有的参数都为一个非0的数,结果也是一样的。我们通常初始参数为正负ε之间的随机值。

7.综合起来

小结一下使用神经网络时的步骤:

网络结构:第一件要做的事是选择网络结构,即决定选择多少层以及决定每层分别有多少个单元。第一层的单元数即我们训练集的特征数量。最后一层的单元数是我们训练集的结果的类的数量。如果隐藏层数大于1,确保每个隐藏层的单元个数相同,通常情况下隐藏层单元的个数越多越好。我们真正要决定的是隐藏层的层数和每个中间层的单元数。

训练神经网络:

1. 参数的随机初始化

2. 利用正向传播方法计算所有的hθ(x)

3. 编写计算代价函数J的代码

4. 利用反向传播方法计算所有偏导数

5. 利用数值检验方法检验这些偏导数

6. 使用优化算法来最小化代价函数


推荐阅读
  • 【转】强大的矩阵奇异值分解(SVD)及其应用
    在工程实践中,经常要对大矩阵进行计算,除了使用分布式处理方法以外,就是通过理论方法,对矩阵降维。一下文章,我在 ... [详细]
  • 自然语言处理(NLP)——LDA模型:对电商购物评论进行情感分析
    目录一、2020数学建模美赛C题简介需求评价内容提供数据二、解题思路三、LDA简介四、代码实现1.数据预处理1.1剔除无用信息1.1.1剔除掉不需要的列1.1.2找出无效评论并剔除 ... [详细]
  • H5技术实现经典游戏《贪吃蛇》
    本文将分享一个使用HTML5技术实现的经典小游戏——《贪吃蛇》。通过H5技术,我们将探讨如何构建这款游戏的两种主要玩法:积分闯关和无尽模式。 ... [详细]
  • 机器学习实践:逻辑回归与过拟合控制
    本文深入探讨了逻辑回归在机器学习中的应用,并详细解释了如何通过正则化等方法来有效避免模型的过拟合问题。 ... [详细]
  • AI炼金术:KNN分类器的构建与应用
    本文介绍了如何使用Python及其相关库(如NumPy、scikit-learn和matplotlib)构建KNN分类器模型。通过详细的数据准备、模型训练及新样本预测的过程,展示KNN算法的实际操作步骤。 ... [详细]
  • 机器学习(ML)三之多层感知机
    深度学习主要关注多层模型,现在以多层感知机(multilayerperceptron,MLP)为例,介绍多层神经网络的概念。隐藏层多层感知机在单层神经网络的基础上引入了一到多个隐藏 ... [详细]
  • 本文详细探讨了Spring框架中遇到的NoSuchBeanDefinitionException异常,具体涉及com.thinkplatform.dao.UserLogDao Bean未定义的问题,并提供了相应的解决方案。 ... [详细]
  • 本打算教一步步实现koa-router,因为要解释的太多了,所以先简化成mini版本,从实现部分功能到阅读源码,希望能让你好理解一些。希望你之前有读过koa源码,没有的话,给你链接 ... [详细]
  • 岭回归及其应用
    本文介绍了岭回归的基本原理,并通过Python中的sklearn库实现了岭回归模型。岭回归通过在代价函数中加入L2正则项,有效解决了多重共线性问题。 ... [详细]
  • 本文介绍了Go语言中正则表达式的基本使用方法,并提供了一些实用的示例代码。 ... [详细]
  • 深入解析WebP图片格式及其应用
    随着互联网技术的发展,无论是PC端还是移动端,图片数据流量占据了很大比重。尤其在高分辨率屏幕普及的背景下,如何在保证图片质量的同时减少文件大小,成为了亟待解决的问题。本文将详细介绍Google推出的WebP图片格式,探讨其在实际项目中的应用及优化策略。 ... [详细]
  • java解析json转Map前段时间在做json报文处理的时候,写了一个针对不同格式json转map的处理工具方法,总结记录如下:1、单节点单层级、单节点多层级json转mapim ... [详细]
  • PHP 5.5.31 和 PHP 5.6.17 安全更新发布
    PHP 5.5.31 和 PHP 5.6.17 已正式发布,主要包含多个安全修复。强烈建议所有用户尽快升级至最新版本以确保系统安全。 ... [详细]
  • python模块之正则
    re模块可以读懂你写的正则表达式根据你写的表达式去执行任务用re去操作正则正则表达式使用一些规则来检测一些字符串是否符合个人要求,从一段字符串中找到符合要求的内容。在 ... [详细]
  • 在Linux系统中,find和grep是两个常用的命令,用于文件和文本的查找。本文将详细介绍这两个命令的区别及其常见用法。 ... [详细]
author-avatar
杜甜甜Athena15
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有