吴恩达深度学习-L1 神经网络和深度学习总结

作业地址:吴恩达《深度学习》作业线上版 - 知乎 (zhihu.com)

写的很好的笔记:吴恩达《深度学习》笔记汇总 - 知乎 (zhihu.com)        我的「吴恩达深度学习笔记」汇总帖(附 18 个代码实战项目) - 知乎 (zhihu.com)

此处只记录需要注意的点,若想看原笔记请移步。

1.1 深度学习入门

我们只需要管理神经网络的输入和输出,而不用指定中间的特征,也不用理解它们究竟有没有实际意义。

1.2 简单的神经网络——逻辑回归

所有输入数据的集合构成一个矩阵(其中每个输入样本用列向量的形式表示,这是为了方便计算机的计算):

需要注意X矩阵的行表示特征数量nx,列表示m个样本。

Y矩阵表示m个样本,每个样本标签为0或1。

注意区别误差函数和损失函数,误差函数是定义在每个样本上的,而损失函数是定义在整个样本上的。

向量化计算前向和反向传播中,1/m怎么来的?

1.3 “浅度”神经网络

这段代码有一点需要注意:

db2=np.sum(dZ2, axis=1, keepdims=True)
db1=np.sum(dZ1, axis=1, keepdims=True)

这个keepdims=True 是必不可少的。使用np.sum, np.mean这种会导致维度变少的计算时,如果加了keepdims=True ,会让变少的那一个维度保持长度1。比如一个[4, 3]的矩阵,我们对第二维做求和,理论上得到的是一个[4]的向量。但如果用了keepdims=True,就会得到一个[4, 1]的矩阵。

保持向量的维度,可以让某些广播运算正确进行。比如我要用[4, 3]的矩阵减去[4]的矩阵就会报错,而减去[4, 1]的矩阵就不会报错。

1.4 深层神经网络

注意:输入层并不计入层数,但可以用第“0”层称呼输入层

我们要记住,全体样本是把每个样本以列向量的形式横向堆叠起来,堆成了一个矩阵。我们心中对X, Y的矩阵形状要有数。

为什么在前向传播中要缓存?

记不住公式没关系,编程的时候对着翻译就行。

超参数则包括:

  • 学习率 \alpha
  • 训练迭代次数
  • 网络层数 L

我们直接从超参数的作用来给超参数下定义。超参数的取值会决定参数 W,b 的取值,它们往往只参与训练,而不参与最后的推理计算。可以说,除了网络中要学习的参数外,网络中剩下的可以变动的数值,都是超参数。

一个简单区别超参数的方法是:超参数一般是我们手动调的。我们常说“调参”,说的是超参数。

self.W: List[np.ndarray] = []    //表示W是一个矩阵

两个新的numpy API

第一个API是

np.savez(filename, a_name=a, b_name=b, ...)

它可以把ndarray类型的数据a, b, ...以键值对的形式记录进一个.npz文件中,其中键值对的键是数据的名称,值是数据的值。

第二个API是np.load(filename)。它可以从.npz里读取出一个词典。词典中存储的键值对就是我们刚刚保存的键值对。

比如,我们可以用如下方法存取W, b 两个ndarray :

W = np.zeros((1, 1))
b = np.zeros((1, 1))
np.savez('a.npz', W=W, b=b)
params = np.load('a.npz')
assert W == params['W']
assert b == params['b']

学会了这两个API的用法后,我们来看看该怎么存取神经网络的参数:

def save(self, filename: str):save_dict = {}for i in range(len(self.W)):save_dict['W' + str(i)] = self.W[i]for i in range(len(self.b)):save_dict['b' + str(i)] = self.b[i]np.savez(filename, **save_dict)def load(self, filename: str):params = np.load(filename)for i in range(len(self.W)):self.W[i] = params['W' + str(i)]for i in range(len(self.b)):self.b[i] = params['b' + str(i)]

和刚刚介绍的用法一样,这里我们要给神经网络中每一个参数取一个独一无二的名字,再把所有名字和值合并成键值对。保存和读取,就是对键值对的写和读。

这里我使用了**save_dict这种传参方式。在Python中,func(**dict)的作用是把一个词典的值当作函数的键值对参数。比如我要写func(a=a, b=b) ,我可以定义一个词典d={'a':a, 'b':b} ,再用func(**d) 把词典传入函数的键值对参数。

总结

吴恩达《深度学习专项》第一阶段总结与第二阶段预览 - 知乎 (zhihu.com)

自我感觉达到文章里Level3的水平了,对于计算中的某些细节还有些不清楚,比如导数的计算,\frac{1}{m}怎么来的,反向传播的过程中的cache存储等。

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

如若内容造成侵权/违法违规/事实不符,请联系编程知识网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

顺序表(下)

1.扩容的实现(在使用这些函数时包含其头文件) 2.初始化(给定一个初始值) 3.销毁 (也就是将空间释放,并将指针赋为空指针) 4.插入 1.头插 2.尾插 3.任意位置插入 5.删除 1.头删 2.尾删 3.任意…

池化层1x1的作用!

池化层11的尺寸虽然很小,但在卷积神经网络中仍然具有降维的作用。尽管它不会改变特征图的空间尺寸,但通过减少特征图的通道数,池化层11可以实现降维的效果。这有助于减少计算量和参数数量,提高模型的效率和性能。 11的池化层具体…

mysql 2-16

安全等于<> 最大最小LEAST,GREATEST BETWEEN AND 条件一是下限 IN LIKE关键字 转移字符 逻辑运算符 位运算符 排序数据 升序降序&#xff0c;默认升序 二级排序 8.0新特性 小拓展 多表查询 多表查询 别名 多表查询的分类 非等值连接 自连接 内连接与外连接 sql92实现外连…

c高级day4作业

终端输入一个字符&#xff0c;判断是大写字母小写字母还是数字字符。 #!/bin/bash read -p "input字符--->" a case $a in[[:upper:]])echo 大写字母$a;;[[:lower:]])echo 小写字母$a;;[0-9])echo 数字字符$a;;*)echo "error" esac终端输入年月&#x…

防御保护--内容安全过滤

目录 文件过滤 内容过滤技术 邮件过滤技术 应用行为控制技术 DNS过滤 URL过滤 防火墙 ---- 四层会话追踪技术 入侵防御 ---- 应用层深度检测技术 深度包检测深度流检测 随着以上俩种的成熟与完善&#xff0c;提出了所谓的内容安全过滤 当然上网行为确实需要治理&…

CCF编程能力等级认证GESP—C++8级—20231209

CCF编程能力等级认证GESP—C8级—20231209 单选题&#xff08;每题 2 分&#xff0c;共 30 分&#xff09;判断题&#xff08;每题 2 分&#xff0c;共 20 分&#xff09;编程题 (每题 25 分&#xff0c;共 50 分)奖品分配大量的工作沟通 答案及解析单选题判断题编程题1编程题2…

Linux系统——拓展LVM逻辑卷分区与磁盘配额

一、LVM逻辑卷分区 1.检测并确认新硬盘 1.1fdisk 查看或管理硬盘分区 fdisk -l&#xff08;小写的L&#xff09; &#xff08;硬盘设备&#xff09; 或 fdisk 硬盘设备 1.2实际操作 1.2.1fdisk查询结果详解 Device&#xff1a;分区的设备文件名称Boot&#xff1a;是否…

【刷题】牛客— NC21 链表内指定区间反转

链表内指定区间反转 题目描述思路一&#xff08;暴力破解版&#xff09;思路二&#xff08;技巧反转版&#xff09;思路三&#xff08;递归魔法版&#xff09;Thanks♪(&#xff65;ω&#xff65;)&#xff89;谢谢阅读&#xff01;&#xff01;&#xff01;下一篇文章见&…

typescrip接口 interface详解,以及ts实现多态

ts 接口 当一个对象类型被多次使用时,一般会使用接口(interface)来描述对象的类型,达到复用的目的 示例如下 当一个对象类型被多次使用时,可以看到,很明显代码有大量的冗余 let personTom: { name: string, age?: number, sayHi(name: string): void } {name: Tom,sayHi(n…

阿里云ECS香港服务器性能强大、cn2高速网络租用价格表

阿里云香港服务器中国香港数据中心网络线路类型BGP多线精品&#xff0c;中国电信CN2高速网络高质量、大规格BGP带宽&#xff0c;运营商精品公网直连中国内地&#xff0c;时延更低&#xff0c;优化海外回中国内地流量的公网线路&#xff0c;可以提高国际业务访问质量。阿里云服务…

ClickHouse--12-可视化工具操作

提示&#xff1a;文章写完后&#xff0c;目录可以自动生成&#xff0c;如何生成可参考右边的帮助文档 文章目录 可视化工具操作1 tabixhttp://ui.tabix.io/ 2 DBeaverhttps://dbeaver.io/download/ 可视化工具操作 1 tabix tabix 支持通过浏览器直接连接 ClickHouse&#xff…

网页端、APP端页面国际化-多语言翻译与半自动比对程序

网站和APP国际化翻译过程中&#xff0c;对多语言配置文件的翻译与比对模板&#xff0c;记录工作经验。 最佳的模式是&#xff1a;前期尽量做好全部菜单按钮多语言TS配置文件&#xff0c;网页端、APP端和管理端使用同一个配置文件&#xff0c;比如buttons.ts,menus.ts&#xff…