热门标签 | HotTags
当前位置:  开发笔记 > 后端 > 正文

吴恩达深度学习笔记(一)——神经网络简介

相关博客:吴恩达机器学习笔记(四)——BP神经网络(里面出现的内容,下面将不再重复)主要内容:一.单个样本向量化二.多个样本向量化三.激活函数及其导数四.随

 

相关博客:

吴恩达机器学习笔记(四) —— BP神经网络

(里面出现的内容,下面将不再重复)

 

主要内容:

一.单个样本向量化

二.多个样本向量化

三.激活函数及其导数

四.随机初始化

五.深层神经网络的前向与反向传播

六.参数和超参数

 

 

一.单个样本向量化

如下神经网络,对于第一层的神经元,每个神经元的输出,即a的计算如下:

但是这种每个神经元的输出都单独计算的方式显得很繁琐,至少在写代码的时候就很容易出错。为了简化表示和提高效率,需要将其向量化,即把每一层的神经元看成是一个整体(一组向量):

 

 

二.多个样本向量化

上面介绍了单个样本的向量化,如果有m个样本,那么可以使用一个for循环解决:

(中括号里面的是第几层,小括号里面的是第几个样本)

但是,能不能把这m个样本在进一步向量化呢?能,规则就是把样本以列的形式叠在一起形成一个输入矩阵X(以往我们习惯了样本以行的形式堆叠,但在神经网络中以列堆叠更加方便):

这样,就能去掉代码中的for循环了:

其中:

 

 

三.激活函数及其导数

1.sigmoid函数(没人用,因为|z|较大的时候,曲线的斜率非常小,梯度下降收敛变得非常慢。)

2.tanh函数(效果比sigmoid好,因为均值为0,带有去中心化的功能。但似乎还是没什么人用):

3.Relu函数(最多人用,但在z<0时不也斜率为0,梯度下降“降”不了吗?课程上说有方法可以使得z基本上大于0):

4.leaky Relu函数:

 

 

四.随机初始化

在以往的机器学习算法中,我们习惯把参数都初始化为0,但是这种做法不能应用于神经网络,因为这会使神经网络失效。为何失效?请看下文分解:

可知参数w代表着当前神经元或者说当前输入在下一层神经元所占的比重。对于第一层的两个神经元,如果我们把他们的参数w都设置为0,那么他们不管在前向传播还是在反向传播的过程中,干的事情、得到的结果都是一模一样的(根据对称性),所以神经网络就退化成一条“神经元链”了,一层中“多个神经元”就没有意义了。因此,需要随机初始化w,使得两个神经元“干的事情”不同。 

 

 

五.深层神经网络的前向与反向传播

对于以下深层神经网络:

在前向传播的第l层,我们的工作是:输入a[l-1],输出a[l],同时将z[l]缓存起来,因为在反向传播的时候还要重新利用。如下:

在反向传播的第l层,我们的工作是:

所以,BP神经网络的训练过程可以归结为以下流程:

 

 

六.参数和超参数

参数:如线性回归中的w和b,这类通过训练数据得出取值的参数就直接称为参数,特点是无需人为设定,算法已经解决了它们的取值。

超参数:如梯度下降的学习率α、正则项前面的参数C等等,这类无法通过算法去确定值,只能通过交叉检验取最优值或者直接根据人们经验而设定的参数,称为超参数。

 


推荐阅读
  • 机器学习核心概念与技术
    本文系统梳理了机器学习的关键知识点,涵盖模型评估、正则化、线性模型、支持向量机、决策树及集成学习等内容,并深入探讨了各算法的原理和应用场景。 ... [详细]
  • 机器学习中的相似度度量与模型优化
    本文探讨了机器学习中常见的相似度度量方法,包括余弦相似度、欧氏距离和马氏距离,并详细介绍了如何通过选择合适的模型复杂度和正则化来提高模型的泛化能力。此外,文章还涵盖了模型评估的各种方法和指标,以及不同分类器的工作原理和应用场景。 ... [详细]
  • 毕业设计:基于机器学习与深度学习的垃圾邮件(短信)分类算法实现
    本文详细介绍了如何使用机器学习和深度学习技术对垃圾邮件和短信进行分类。内容涵盖从数据集介绍、预处理、特征提取到模型训练与评估的完整流程,并提供了具体的代码示例和实验结果。 ... [详细]
  • Coursera ML 机器学习
    2019独角兽企业重金招聘Python工程师标准线性回归算法计算过程CostFunction梯度下降算法多变量回归![选择特征](https:static.oschina.n ... [详细]
  • 2017年人工智能领域的十大里程碑事件回顾
    随着2018年的临近,我们一同回顾过去一年中人工智能领域的重要进展。这一年,无论是政策层面的支持,还是技术上的突破,都显示了人工智能发展的迅猛势头。以下是精选的2017年人工智能领域最具影响力的事件。 ... [详细]
  • 资源推荐 | TensorFlow官方中文教程助力英语非母语者学习
    来源:机器之心。本文详细介绍了TensorFlow官方提供的中文版教程和指南,帮助开发者更好地理解和应用这一强大的开源机器学习平台。 ... [详细]
  • 本文详细介绍了Java编程语言中的核心概念和常见面试问题,包括集合类、数据结构、线程处理、Java虚拟机(JVM)、HTTP协议以及Git操作等方面的内容。通过深入分析每个主题,帮助读者更好地理解Java的关键特性和最佳实践。 ... [详细]
  • 探索电路与系统的起源与发展
    本文回顾了电路与系统的发展历程,从电的早期发现到现代电子器件的应用。文章不仅涵盖了基础理论和关键发明,还探讨了这一学科对计算机、人工智能及物联网等领域的深远影响。 ... [详细]
  • 尽管深度学习带来了广泛的应用前景,其训练通常需要强大的计算资源。然而,并非所有开发者都能负担得起高性能服务器或专用硬件。本文探讨了如何在有限的硬件条件下(如ARM CPU)高效运行深度神经网络,特别是通过选择合适的工具和框架来加速模型推理。 ... [详细]
  • 机器学习公开课备忘录(三)机器学习算法的应用与大数据集
    机器学习公开课备忘录(三)机器学习算法的应用与大数据集对应机器学习公开课第六周和第10周机器学习算法模型的选择与评价1、对于一个data,可以将data划分为trainingset、t ... [详细]
  • 基于2-channelnetwork的图片相似度判别一、相关理论本篇博文主要讲解2015年CVPR的一篇关于图像相似度计算的文章:《LearningtoCompar ... [详细]
  • 在Ubuntu 16.04中使用Anaconda安装TensorFlow
    本文详细介绍了如何在Ubuntu 16.04系统上通过Anaconda环境管理工具安装TensorFlow。首先,需要下载并安装Anaconda,然后配置环境变量以确保系统能够识别Anaconda命令。接着,创建一个特定的Python环境用于安装TensorFlow,并通过指定的镜像源加速安装过程。最后,通过一个简单的线性回归示例验证TensorFlow的安装是否成功。 ... [详细]
  • 图像分类算法的优化策略与实践
    本文探讨了《Bag of Tricks for Image Classification with Convolutional Neural Networks》论文中的多项技术,旨在通过具体实例和实验验证,提高卷积神经网络在图像分类任务中的性能。文章详细介绍了从模型训练加速、网络结构调整到训练参数优化等多个方面的改进方法。 ... [详细]
  • 卷积神经网络(CNN)基础理论与架构解析
    本文介绍了卷积神经网络(CNN)的基本概念、常见结构及其各层的功能。重点讨论了LeNet-5、AlexNet、ZFNet、VGGNet和ResNet等经典模型,并详细解释了输入层、卷积层、激活层、池化层和全连接层的工作原理及优化方法。 ... [详细]
  • 随着5G、云计算、人工智能、大数据等新技术的广泛应用,人们的生活生产方式发生了深刻变化。从人际互联到万物互联,数据存储与处理需求激增,推动了数据与算力设施的发展。 ... [详细]
author-avatar
Liberty_Ai2502871477
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有