向毕业妥协系列之深度学习笔记:神经网络深度学习(一)

news2025/7/18 5:47:50

目录

一.神经网络杂记

二.计算图(反向传播求导几个实例)

1.普通式子反向传播求导

2.逻辑回归中的梯度下降

3.m个样本的梯度下降

三.向量化


深度学习系列的文章也可以结合下面的笔记来看:

深度学习笔记-目录

一.神经网络杂记

这个系列的学习和机器学习系列的课程有很多重复的部分,尤其是神经网络的一些基础知识,以及什么回归等知识,所以很多东西如果我机器学习的文章当中有的话,我就略过了或者简单提一嘴。(可能有很多不同的内容,但是大部分已经在机器学习学过了,故而将本节取名为杂记)

可以看一下我的机器学习系列的入门文章(开头前缀是:“向毕业妥协系列之机器学习笔记”):

https://blog.csdn.net/weixin_44593822/category_12091831.html?spm=1001.2014.3001.5482

卷积神经网络我们还会学习很多不同类型的神经网络,比如CNN(适用于图像数据),RNN(循环神经网络,非常适合处理一维序列数据)

结构化数据和非结构化数据的直观理解:

为什么神经网络会兴起?看到下面的机器学习和神经网络的随着数据量的提升,他们性能上的变化就可以知道深度学习更加适合现在这个大数据时代。

下面是一个二元分类,简单提一嘴吧,想起了大三的时候学的CNN,当时也是这个例子,一张图片的每一个像素有红绿蓝三原色组成,即三个矩阵,三个矩阵的叠加,然后图片作为一个输入数据,展开成一个张量,比如一个64*64的图片,它的特征有64*64*3个特征。

符号定义 :

逻辑回归:

蓝色部分的符号是本门课用的符号,红色部分的符号可能在其他的资料中用这个,但是Andrew还是那句话:Don't worry about it

 

 损失函数和成本函数:

损失函数定义的是单个训练样本的预测与真实值的差值损失,而成本函数是对于总体样本的的预测与真实值的差值损失

 梯度下降:

略,老生常谈了都。

二.计算图(反向传播求导几个实例)

1.普通式子反向传播求导

可以说,一个神经网络的计算,都是按照前向或反向传播过程组织的。首先我们计算出一个新的网络的输出(前向过程),紧接着进行一个反向传输操作。后者我们用来计算出对应的梯度或导数。计算图解释了为什么我们用这种方式组织这些计算过程。

下图是一个式子的计算过程,我们的思维是从左到右一步一步最后得到结果,但是我们接下来讲解的如何求偏导,求解偏导的过程与这个方向是相反的,即从右到左。

反向传播求导过程:

先回忆一下高数中对于导数的理解,当然我快一年没学了,记不太清了,但是你要求J关于v的导数,是不是得看看J的增量和v的增量的关系,咱们看到下式J=3v,所以v从11变成11.001时,J变成了33.003,所J的增量是0.003,v的增量是0.001,所以导数是dJ/dv=0.003/0.001=3,这就完成了第一步反向传播。

 然后我们再来看看a的变化对于J有什么影响,即求dJ/da

 上图可以看到我们让a从5变到5.001,那么v就会从11变到11.001,继而J就会从33变到33.003,所以继续用J的变化量去除a的变化量,得到dJ/da=3,用v的变化量去除a的变化量就能得到

dv/da=1,然后咱们根据公式可以看到,a的变化可以引起v的变化,v的变化可以引起J的变化,所以当求J对a的导时,可以应用链式法则,即dJ/da=(dJ/dv)*(dv/da)=3*1=3,所以反向传播求dJ/da就是第一步反向传播是求dJ/dv=3,第二步求dv/da=1,然后第二跳到a的时候把这两步的导数乘起来得到咱们想求的导数即可。

另外咱们写代码的时候通常把自己最终要求得的那个导数(dJ/da)记为dvar,dJ/dv记为dv,dJ/da记为da。

用上面的方法来计算一下dJ/du(代码里记作du),有了上面的经验,下图可以看懂

同样的道理我们也可以计算出dJ/db和dJ/dc

2.逻辑回归中的梯度下降

a是yhat

3.m个样本的梯度下降

通过上节的推导咱们已经可以知道如何求对于单个训练样本损失函数的导,现在我们来看看对于成本函数求导。假设我们的例子中只有两个特征,如下用for循环对个示例依次遍历,最终得到dJ/dw_1,dJ/dw_2,dJ/db

三.向量化

也是机器学习中学过的概念,即尽量避免for循环,用矩阵运算什么的(numpy)。

可以看我机器学习的系列文章,也可以参考本篇文章开头给的深度学习笔记链接。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/17538.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

不知道word压缩文件怎么弄?简单三步轻松实现

如果你是学生,那么你的作业、论文应该都是以word文档格式上交的吧? 如果你是打工人,应该也经常需要编辑一些文档,例如通知、工作安排等等,给上司或其他同事查阅。 那么久而久之积累下来,word文件就会占据电…

TIA博途_通过PEEK指令在TP900触摸屏上实现监控所有IO地址的具体方法示例

TIA博途_通过PEEK指令在TP900触摸屏上实现监控所有IO地址的具体方法示例 如下图所示,首先,新建一个项目,添加一个DB块,这里以DB276为例进行说明,在该DB块中添加如图所示变量, 如下图所示,添加一个FB,用于读取IO点的值,具体程序可参考下图, 如下图所示,在OB1中调…

使用马尔可夫链构建文本生成器

本文中将介绍一个流行的机器学习项目——文本生成器,你将了解如何构建文本生成器,并了解如何实现马尔可夫链以实现更快的预测模型。 文本生成器简介 文本生成在各个行业都很受欢迎,特别是在移动、应用和数据科学领域。甚至新闻界也使用文本生…

PyTorch中的matmul函数详解

PyTorch中的两个张量的乘法可以分为两种: 两个张量对应的元素相乘(element-wise),在PyTorch中可以通过torch.mul函数(或者∗*∗运算符)实现 两个张量矩阵相乘(Matrix product)&…

Day07--生命周期的概念与分类

文字概述: 1.啥子是生命周期呢? ***********************************************************************************************************************************************************************************************************…

[附源码]Python计算机毕业设计毕业生就业信息管理系统

项目运行 环境配置: Pychram社区版 python3.7.7 Mysql5.7 HBuilderXlist pipNavicat11Djangonodejs。 项目技术: django python Vue 等等组成,B/S模式 pychram管理等等。 环境需要 1.运行环境:最好是python3.7.7,…

EasyExcel对大数据量表格操作导入导出

前言 最近有个项目里面中有大量的Excel文档导入导出需求,数据量最多的文档有上百万条数据,之前的导入导出都是用apache的POI,于是这次也决定使用POI,结果导入一个四十多万的文档就GG了,内存溢出... 于是找到EasyExce…

上采样,下采样,卷积,反卷积,池化,反池化,双线性插值【基本概念分析】

上采样,下采样,卷积,反卷积,池化,反池化,双线性插值【基本概念分析】】一、上采样1.概念2.原理二、下采样1.概念2.原理三、卷积与反卷积四、池化五、反池化六、双线性插值1.意义2.作用3.单线性插值4.双线性插值的公式5.双线性插值的例子一、上采样 1.概念 上采样(…

前端页面全新的写法(第七课)Vue中的组件

VueCli框架的实操内容(第七课)Vue中的组件 组件是可复用的 Vue 实例, 把一些公共的模块抽取出来,然后写成单独的的工具组件或者页面,在需要的页面中就直接引入即可那么我们可以将其抽出为一个组件进行复用。例如 页面头部、侧边、内容区,尾部…

电脑里重要文件用什么备份,电脑如何备份主要数据

保护好数据安全是很重要的,能够给我们减少很多麻烦或者说是损失,所以,我们是有必要通过一些手段来保护好重要数据的。电脑里重要文件用什么备份?提前对数据进行备份无疑是最好的方法之一。 一、如何备份数据? 我们可以…

数据结构-排序算法总结

排序算法总结插入排序直接插入排序(稳定)希尔排序交换排序冒泡排序(稳定)快速排序选择排序简单选择排序堆排序归并排序(稳定)基数排序(稳定)多路归并排序(外排序&#xf…

Stream之flatMap用法

记录一下flatMap的用法 个人理解是将流中的流合并 Data AllArgsConstructor NoArgsConstructor public class WhiteIp {//idprivate Integer id;//域名private String domain;//ip,多个用;分隔private String ipaddress;public static void main(String[] args) {WhiteIp w1 …

Android未捕获异常监控原理

背景 本文仅探讨java层的未捕获异常的监控为什么我们自己的异常捕获总是比 Bugly 收到的信息少? Android未捕获异常的监控与收集 Java层未捕获异常监控的基本实现 先看看Java层未捕获异常监控的运行过程: public class MyUncaughtExceptionHandler …

企业虚拟网络管理

随着企业规模的扩大,其网络的规模和复杂性也会成比例地扩展。企业级组织和中小型企业需要大规模网络来满足不断增长的业务需求。然而,大规模网络需要大量的物理组件、定期维护和配置,所有这些都是有代价的。因此,为了规避这些额外…

Spring Boot面试题

什么是 Spring Boot? Spring Boot 是 Spring 开源组织下的子项目,其设计目的是专注于Spring应用的开发,开发人员可以把更多的精力放在业务代码上,而无需过多关注XML的配置,从而简化Spring应用开发,提高开发…

牛客小白月赛61-E

传送门 题意 给你一个长度为n的序列,它有n!个排列方法 问在这n!个排列方法中 逆序对的总数是多少 首先要知道 逆序对数n!/2*(不相等的数字对儿数) 不相等的数组对儿数cn2c_{n}^{2}cn2​-Zcnum[a[i]2c_{n…

前端如何写进度条(上传或者下载文件的时候)

1.需求 在日常开发中,我们经常会遇到上传或者下载文件的需求,以下载为例: 如果后台文件是现成的,浏览器就会在底部出现下载的过程,如果点击下载后,有些业务是需要去打包,然后再下载文件的话&a…

【C++语法难点】 深拷贝和浅拷贝是什么,拷贝构造,拷贝赋值

文章目录1.开始:构造函数1.2 在栈区和堆区创建对象1.3 缺省构造函数1.4 类型转换构造函数1.5 拷贝构造函数1.6 缺省拷贝构造函数(浅拷贝)1.7 深拷贝构造函数 (深拷贝)1.8 拷贝赋值1.开始:构造函数 语法形式 class 类名{类名(形参…

UE5笔记【三】UE5材质Materials

材质:可以将材质看作是StaticMesh上面的绘画。这副绘画Paint是由图层组成的,这些图层形成了所谓的物理基础渲染(Physically Based Rendering OR PBR)。这些PBR的特殊之处在于:几乎可以让我们模拟显示世界中的任何材质。…

「Redis数据结构」QuickList

「Redis数据结构」QuickList 文章目录「Redis数据结构」QuickList一、前言二、概述三、结构四、小结一、前言 在前面一章,我们已经学习了ZipList压缩列表,ZipList虽然节省内存,但也引发了不少问题。 问题1:ZipList虽然节省内存&am…