当前位置: 首页 > article >正文

吴恩达深度学习——深层神经网络

来自https://www.bilibili.com/video/BV1FT4y1E74V,仅为本人学习所用。

符号约定

在这里插入图片描述
对于该深层网络,有四层,包含三个隐藏层和一个输出层。

隐藏层中,第一层有五个单元、第二层有五个单元,第三层有三个单元。标记 l l l表示层数, l = 4 l=4 l=4。标记 n [ l ] n^{[l]} n[l]表示第几层, n [ 1 ] n^{[1]} n[1]是第一层,有5个节点; n [ 3 ] n^{[3]} n[3]是第三层,有3个节点。 n [ 4 ] n^{[4]} n[4]是输出层,只有一个节点。把输入层也叫 n [ 0 ] n^{[0]} n[0]有三个输入特征, n [ 0 ] = n x = 3 n^{[0]} = n_x=3 n[0]=nx=3 a [ l ] a^{[l]} a[l]表示第 l l l层中的激活函数,表示为 a [ l ] = g [ l ] ( z [ l ] ) a^{[l]}=g^{[l]}(z^{[l]}) a[l]=g[l](z[l])

计算矩阵的维度

在这里插入图片描述
对于该神经网络,有四个隐藏层和一个输出层。如何计算 W \mathbf{W} W b \mathbf{b} b应该开辟多大(维度)?
输入特征是x1,x2,是一个(2,1)的向量。对于第一个隐藏层,从神经网络中看到,输出了(3,1)的向量,由 z [ 1 ] = W [ 1 ] x + b [ 1 ] \mathbf{z}^{[1]}=\mathbf{W}^{[1]}\mathbf{x}+\mathbf{b}^{[1]} z[1]=W[1]x+b[1]代入向量维度,根据矩阵乘法矩阵加法,有(3,1)=(3,2)(2,1)+(3,1)刚好匹配维度。
在这里插入图片描述

层次表达式计算
n [ 1 ] n^{[1]} n[1] z [ 1 ] = W [ 1 ] x + b [ 1 ] \mathbf{z}^{[1]}=\mathbf{W}^{[1]}\mathbf{x}+\mathbf{b}^{[1]} z[1]=W[1]x+b[1] a [ 1 ] = g ( z [ 1 ] ) \mathbf{a}^{[1]}=g(\mathbf{z}^{[1]}) a[1]=g(z[1]) ( 3 , 1 ) = ( 3 , 2 ) ( 2 , 1 ) + ( 3 , 1 ) (3,1)=(3,2)(2,1)+(3,1) (3,1)=(3,2)(2,1)+(3,1)
n [ 2 ] n^{[2]} n[2] z [ 2 ] = W [ 2 ] a [ 1 ] + b [ 2 ] \mathbf{z}^{[2]}=\mathbf{W}^{[2]}\mathbf{a}^{[1]}+\mathbf{b}^{[2]} z[2]=W[2]a[1]+b[2] . . . ... ... ( 5 , 1 ) = ( 5 , 3 ) ( 3 , 1 ) + ( 5 , 1 ) (5,1)=(5,3)(3,1)+(5,1) (5,1)=(5,3)(3,1)+(5,1)
n [ 3 ] n^{[3]} n[3] z [ 3 ] = W [ 3 ] a [ 2 ] + b [ 3 ] \mathbf{z}^{[3]}=\mathbf{W}^{[3]}\mathbf{a}^{[2]}+\mathbf{b}^{[3]} z[3]=W[3]a[2]+b[3] . . . ... ... ( 4 , 1 ) = ( 4 , 5 ) ( 5 , 1 ) + ( 4 , 1 ) (4,1)=(4,5)(5,1)+(4,1) (4,1)=(4,5)(5,1)+(4,1)
n [ 4 ] n^{[4]} n[4] z [ 4 ] = W [ 4 ] a [ 3 ] + b [ 4 ] \mathbf{z}^{[4]}=\mathbf{W}^{[4]}\mathbf{a}^{[3]}+\mathbf{b}^{[4]} z[4]=W[4]a[3]+b[4] . . . ... ... ( 2 , 1 ) = ( 2 , 4 ) ( 4 , 1 ) + ( 2 , 1 ) (2,1)=(2,4)(4,1)+(2,1) (2,1)=(2,4)(4,1)+(2,1)
n [ 5 ] n^{[5]} n[5] z [ 5 ] = W [ 5 ] a [ 4 ] + b [ 5 ] \mathbf{z}^{[5]}=\mathbf{W}^{[5]}\mathbf{a}^{[4]}+\mathbf{b}^{[5]} z[5]=W[5]a[4]+b[5] . . . ... ... ( 1 , 1 ) = ( 1 , 2 ) ( 2 , 1 ) + ( 1 , 1 ) (1,1)=(1,2)(2,1)+(1,1) (1,1)=(1,2)(2,1)+(1,1)

W [ l ] : ( 本层神经元数量 , 上一层神经元数量 ) \mathbf{W}^{[l]}:(本层神经元数量, 上一层神经元数量) W[l]:(本层神经元数量,上一层神经元数量)

为什么使用深层表示

对于一张图片,想建立一个人脸识别系统。当输入一张脸部的照片,隐藏层第一层寻找脸部特征的边缘的方向,然后将边缘层的像素放在一起组成面部的不同部分,最后在将这些放在一起,识别或探测不同的人脸。在这里插入图片描述

搭建神经网络块

在这里插入图片描述

参数和超参数

回顾这些公式 z = w x + b z=wx+b z=wx+b a = σ ( z ) a=\sigma(z) a=σ(z) J = − 1 n ∑ n i = 1 [ y i l o g ( y ^ i ) + ( 1 − y i ) l o g ( 1 − y ^ i ) ] J=−\frac{1}{n}\sum_{n}^{i=1} [y_ilog(\hat{y}_i)+(1−y_i)log(1−\hat{y}_i)] J=n1ni=1[yilog(y^i)+(1yi)log(1y^i)]
有参数 w w w b b b

在编程的时候,也会引入一些其他的参数,比如学习率 α \alpha α,迭代的次数、隐藏层层数、选用什么激活函数的问题…与 w w w b b b不同,这些参数需要自己去设置,被称为超参数,能够控制 w w w b b b。对于这些参数的设置是一个很经验的东西。


http://www.kler.cn/a/517973.html

相关文章:

  • ComfyUI实现老照片修复——AI修复老照片(ComfyUI-ReActor / ReSwapper)解决天坑问题及加速pip下载
  • vim的多文件操作
  • 82,【6】BUUCTF WEB .[CISCN2019 华东南赛区]Double Secret
  • SkyWalking介绍
  • Three城市引擎地图插件Geo-3d
  • 2.1.3 第一个工程,点灯!
  • 关于deepin上运行Qt开发的程序
  • Spring Boot 集成 WebClient 实战教程 实现同步、异步请求处理以及响应式编程、响应式流、响应式Mono
  • 管理方法(15)-- 向华为学习根因分析
  • 小盒科技携手体验家,优化智能教育服务体验,打造在线教育新高度
  • seq2seq以及注意力机制
  • js小游戏---2048(附源代码)
  • 支持大功率输出高速频闪的图像处理用光源控制器
  • 亿坊软件前端命名规范
  • windows在命令行中切换盘符
  • springboot中DTO、VO、Entity相互转换
  • 低代码系统-产品架构案例介绍、得帆云(九)
  • 如何用VSCODE配置C++多文件编译
  • three.js+WebGL踩坑经验合集(2):3D场景被相机裁切后,被裁切的部分依然可以被鼠标碰撞检测得到(射线检测)
  • 豆包MarsCode:小C的类二进制拼图
  • ansible自动化运维实战--yaml的使用和配置(7)
  • http请求获取客户端ip
  • Flink(十一): DataStream API (八) Checkpointing
  • Arduino大师练成手册 -- 读取DS18B20
  • MacOS安装Docker battery-historian
  • 编译安装PaddleClas@openKylin(失败,安装好后报错缺scikit-learn)