【学习记录】《DeepLearning.ai》第三课:浅层神经网络(Shallow neural networks)

在线体验各类最新模型,更有模型 免费Token 额度领取!
立即体验
简介: 浅层神经网络,2021/9/4

第三课:浅层神经网络(Shallow neural networks)

3.1 神经网络概述

PASS


3.2 神经网络的表示

神经网络图

如上图,从左到右依次为输入层隐藏层、只有一个节点的层为输出层,负责输出预测值。

神经网络1

一般称上图网络为两层神经网络,一般不把输入层看做一个标准层,因此该网络有一个隐藏层和输出层。

在隐藏层有两个参数$W$​和$b$​,通常表示为$W^{[1]},b^{[1]}$​,$W$​为$4*3$​矩阵,$b$​为$4*1$​矩阵,$4$​来自于有四个节点或者隐藏层单元,$3$​表示有三个特征输入。同理我们得到输出层参数$W^{[2]},b^{[2]}$​,他们分别是$1*4$​和$1*1$​​维度矩阵​。


3.3 计算一个神经网络的输出

一个神经网络输出

如上图,对于一个训练样本,根据给出一个单独的输入特征向量,根据上限四个公式,进而计算出一个简单神经网络的输出。


3.4 多样本向量化

$a^{[2](i)}$对于上面的网络表示的是第$i$​个训练样本的第二层输出值。

若要实现所有样本,可以使用循环方法来对上面式子进行循环,要注意所有样本要加上$(i)$,比如$z^{[1](i)}$,其他也一样,加上上标$(i)$​​​​,如下图.

image

然而通常使用向量化方法:

image

上图中的$X,Z^{[1]},A^{[1]}$​​矩阵水平方向上代表了不同的训练样本,从竖直方向上代表了不同的隐藏单元(不同的输入特征),将训练样本横向堆叠成一个矩阵X。

向量化方法如下:

$$ Z^{[1]}=W^{[1]}X+b^{[1]}\\ A^{[1]}=\sigma(Z^{[1]})\\ Z^{[2]}=W^{[2]}A^{[1]}+b^{[2]}\\ A^{[2]}=\sigma(Z^{[2]}) $$


3.5 向量化实现的解释

总结:将列向量横向堆叠成矩阵通过公式计算后,得到成列堆叠的输出。

image

在此之前一直使用$sigmoid$函数,本节课内容有助于理解向量化实现,下节课介绍不同种类的激活函数。


3.6 激活函数(Activation functions)

双曲正切函数(tanh函数):

$$ a=tanh(z)=\frac{e^z-e^{-z}}{e^z+e^{-z}} $$

如图该函数的值域是$[-1,1]$​​

不同层的激活函数可以不同,通常tanh函数效果比sigmoid函数要好,因此我们可以在隐藏层用tanh函数,但是输出层我们希望其输出值$\widehat{y}$在[0,1]之间,因此在输出层使用sigmoid函数比较好。

image

上图3为线性修正单元(Relu),$a=max(0,z)$

总结:

1.对于sigmoid函数:用在二分类的输出层,几乎不用;

2.最常用的是ReLU函数


为何需要非线性激活函数

如果使用线性激活函数,则神经网络只是把输入线性组合再输出,这样的话隐藏层就没啥用了。。。

可以使用线性激活函数的地方:输出层(但这玩意也不常用!!!)


3.8 激活函数的导数(Derivatives of activation functions)

(1) sigmoid函数

image

$$ g(z)=\frac{1}{1+e^{-z}} $$

其导数:

$$ \frac{d}{dz}g(z)=g(z)(1-g(z)) $$

当z=10或z=-10,导数约为0,

当z=0,根据图可以得到导数约为1/4.

通常在神经网络中:

$$ a=g(z);\\ g(z)'=\frac{d}{dz}g(z)=a(1-a) $$

以下几个表示方法同理,下面省略。

(2)Tanh 函数

image

其导数为:

$$ \frac{d}{dz}g(z)=1-(g(z))^2 $$

当z=10或z=-10,其导数约为0,

当z=0,导数为1。

(3)ReLU(线性修正函数)

image

$$ g(z)=max(0,z)\\ g(z)^{'} = \left\{\begin{array}{rcl} 0 & \mbox{if}&z<0\\ 1 &\mbox{if}&z>0\\ undefined & \mbox{if} & z=0 \end{array}\right. $$

通常在z=0时候给定其导数为1,0。但是z=0的情况非常少。

(4)Leaky ReLU(泄露线性修正函数)

$$ g(z)=max(0.01z,z)\\ g(z)^{'} = \left\{\begin{array}{rcl} 0.01 & \mbox{if}&z<0\\ 1 &\mbox{if}&z>0\\ undefined & \mbox{if} & z=0 \end{array}\right. $$

注:

通常在z=0的时候给定其导数为1,0.01,同上z=0的情况很少。


3.9 神经网络的梯度下降

1.正向传播(四个式子):

$$ Z^{[1]}=W^{[1]}X+b^{[1]}\\ A^{[1]}=g^{[1]}(Z^{[1]})\\ Z^{[2]}=W^{[2]}A^{[1]}+b^{[2]}\\ A^{[2]}=g^{[2]}(Z^{[2]}) $$

2.反向传播(六个式子):

image

这些公式都是针对所有样本进行向量化,其中$Y$是$1*m$矩阵

$np.sum$​中$axis=1$​表示水平相加求和,$keepdims$​是防止Python输出类似$(n,)$​​,确保输出类似于$(n,1)$​​​维矩阵。还用一种输出方式,调用$reshape$。


3.10 (选修)直观理解反向传播

PASS


3.11 随机初始化(Random+Initialization)

如果随机初始化权重或者参数都为0,梯度下降将不会起作用。

image

通常做如下初始化:

$$ W^{[1]}=np.random.randn(2,2)*0.01\\ b^{[1]}=np.zeros((2,1))\\ W^{[2]}=np.random.randn(2,2)*0.01\\ b^{[2]}=0 $$

关于参数0.01的解释:

通常对于$Z^{[1]}=W^{[1]}X+b^{[1]},a^{[1]}=g^{[1]}(Z^{[1]})$​​,如果使用激活函数为tanh或者sigmoid函数,如果数值波动很大,则初始值会停在tanh/sigmoid函数图像平坦的地方,此时梯度很小,下降就会很慢,学习也就很慢,因此通常初始值都选择较小的值。

而对于浅层神经网络,也就是只用一层隐藏层的神经网络,设置为0.01可以使用。对于较深的神经网络,需要设置其他常数,这个在下一课出现。


相关文章
|
10月前
|
人工智能 云栖大会 调度
「2025云栖大会」“简单易用的智能云网络,加速客户AI创新”专场分论坛诚邀莅临
”简单易用的智能云网络,加速客户AI创新“专场分论坛将于9月24日13:30-17:00在云栖小镇D1-5号馆举办,本场技术分论坛将发布多项云网络创新成果,深度揭秘支撑AI时代的超低时延、自适应调度与跨域协同核心技术。同时来自领先企业的技术先锋将首次公开其在模型训练、企业出海等高复杂场景中的突破性实践,展现如何通过下一代云网络实现算力效率跃升与成本重构,定义AI时代网络新范式。
317 4
|
11月前
|
人工智能 安全 网络安全
2025攻防演习回顾,AI赋能下的网络安全新格局
网络安全实战攻防演习历经9年发展,已成为检验安全体系、洞察威胁趋势的重要手段。攻击呈现实战化、体系化特征,APT、0day、勒索攻击等手段升级,AI、大数据等新技术带来新风险。攻击入口多元化、工具智能化、API成重点目标,“AI+人工”协同攻击加剧威胁。面对挑战,企业需构建纵深防御体系,从被动防御转向主动对抗。瑞数信息通过动态安全技术与AI融合,实现0day防护、漏扫干扰、勒索应急等能力,打造WAAP超融合平台,助力关键基础设施构建智能、协同、前瞻的主动防御体系。
845 1
|
10月前
|
存储 人工智能 搜索推荐
一种专为AI代理设计的内存层,能够在交互过程中记忆、学习和进化
Mem0 是专为 AI 代理设计的内存层,支持记忆、学习与进化。提供多种记忆类型,可快速集成,适用于开源与托管场景,助力 AI 代理高效交互与成长。
886 123
一种专为AI代理设计的内存层,能够在交互过程中记忆、学习和进化
|
10月前
|
机器学习/深度学习 人工智能 自然语言处理
迁移学习:让小数据也能驱动AI大模型
迁移学习:让小数据也能驱动AI大模型
494 99
|
10月前
|
人工智能 运维 安全
从被动防御到主动免疫进化!迈格网络 “天机” AI 安全防护平台,助推全端防护性能提升
迈格网络推出“天机”新版本,以AI自学习、全端防护、主动安全三大核心能力,重构网络安全防线。融合AI引擎与DeepSeek-R1模型,实现威胁预测、零日防御、自动化响应,覆盖Web、APP、小程序全场景,助力企业从被动防御迈向主动免疫,护航数字化转型。
从被动防御到主动免疫进化!迈格网络 “天机” AI 安全防护平台,助推全端防护性能提升
|
9月前
|
人工智能 JavaScript 前端开发
GenSX (不一样的AI应用框架)架构学习指南
GenSX 是一个基于 TypeScript 的函数式 AI 工作流框架,以“函数组合替代图编排”为核心理念。它通过纯函数组件、自动追踪与断点恢复等特性,让开发者用自然代码构建可追溯、易测试的 LLM 应用。支持多模型集成与插件化扩展,兼具灵活性与工程化优势。
740 6
|
10月前
|
人工智能 运维 安全
AI来了,网络安全运维还能靠“人海战术”吗?
AI来了,网络安全运维还能靠“人海战术”吗?
419 28
|
10月前
|
机器学习/深度学习 资源调度 算法框架/工具
AI-ANNE: 将神经网络迁移到微控制器的深度探索——论文阅读
AI-ANNE框架探索将深度学习模型迁移至微控制器的可行路径,基于MicroPython在Raspberry Pi Pico上实现神经网络核心组件,支持本地化推理,推动TinyML在边缘设备中的应用。
563 10
|
10月前
|
JavaScript Java 大数据
基于python的网络课程在线学习交流系统
本研究聚焦网络课程在线学习交流系统,从社会、技术、教育三方面探讨其发展背景与意义。系统借助Java、Spring Boot、MySQL、Vue等技术实现,融合云计算、大数据与人工智能,推动教育公平与教学模式创新,具有重要理论价值与实践意义。
|
10月前
|
人工智能 安全 网络安全
从不确定性到确定性,“动态安全+AI”成网络安全破题密码
2025年国家网络安全宣传周以“网络安全为人民,靠人民”为主题,聚焦AI安全、个人信息保护等热点。随着AI技术滥用加剧,智能化攻击频发,瑞数信息推出“动态安全+AI”防护体系,构建“三层防护+两大闭环”,实现风险前置识别与全链路防控,助力企业应对新型网络威胁,筑牢数字时代安全防线。(238字)
607 1

热门文章

最新文章