Coursera | Andrew Ng (01-week4)—深层神经网络

在吴恩达深度学习视频以及大树先生的博客提炼笔记基础上添加个人理解,原大树先生博客可查看该链接地址大树先生的博客- ZJ

Coursera 课程 |deeplearning.ai |网易云课堂

CSDNhttp://blog.csdn.net/junjun_zhao/article/details/79228850


4.1 Deep Neural Network (深层神经网络 )

神经网络层数表示:只算 隐含层 和 输出层,不算 输入层。

符号约定:

这里写图片描述

L = 4 (# layers)

n[l] n [ l ] = # units in layer l l

hidden layer : n[1]=5,n[2]=5,n[3]=3 隐含层

output layer : n[4]=n[L]=1 n [ 4 ] = n [ L ] = 1 输出层

input layer: n[0]=nx=3 n [ 0 ] = n x = 3 输入层

a[l] a [ l ] =activations in layer l l 激活函数层

a[l]=g[l](Z[l])

W[l]= W [ l ] = weights for Z[l] Z [ l ]

b[l] b [ l ] is used to compute z[l] z [ l ]

x=a[0] x = a [ 0 ] 输入特征 x x 也是第 0 层 激活函数

y^=a[L] 预测输出也是激活函数第 l l


4.2 Forward and Backward Propagation (前向和反向传播)

构成深度神经网络的基本模块:每一层都有前向传播的步骤,以及一个相对的反向传播步骤。

前向传播 Forward Propogation for layer l:

Input:a[l1] I n p u t : a [ l − 1 ] // a 符号代表激活函数层 ,当 l l = 1 时,则 a[0] 为特征 x x

Output:a[l],cache(z[l]),w[l],z[l]

对比看:( z=wTx+b z = w T x + b )

z[l]=w[l]a[l1]+b[l] z [ l ] = w [ l ] a [ l − 1 ] + b [ l ]

对比看:( a=σz a = σ ( z )

a[l]=g[l](z[l]) a [ l ] = g [ l ] ( z [ l ] )

Vectorized 将以上向量化:

Z[l]=W[l]A[l1]+b[l] Z [ l ] = W [ l ] A [ l − 1 ] + b [ l ]

A[l]=g[l](Z[l]) A [ l ] = g [ l ] ( Z [ l ] )

a[0] a [ 0 ] :是对于一个训练样本的输入特征。

A[0] A [ 0 ] :是针对一整个训练集的话输入特征。

反向传播(Backward propagation)

Inputda[l] I n p u t : d a [ l ]

Outputda[l1]dW[l]db[l] O u t p u t : d a [ l − 1 ] , d W [ l ] , d b [ l ]

  • 公式:

    dz[l]=da[l]g[l](z[l])dW[l]=dz[l]a[l1]db[l]=dz[l]da[l1]=W[l]Tdz[l] d z [ l ] = d a [ l ] ∗ g [ l ] ′ ( z [ l ] ) d W [ l ] = d z [ l ] ⋅ a [ l − 1 ] d b [ l ] = d z [ l ] d a [ l − 1 ] = W [ l ] T ⋅ d z [ l ]

da[l1]dz[l] d a [ l − 1 ] 代 入 d z [ l ] ,有:

dz[l]=W[l+1]Tdz[l+1]g[l](z[l]) d z [ l ] = W [ l + 1 ] T ⋅ d z [ l + 1 ] ∗ g [ l ] ′ ( z [ l ] )

  • 向量化:

dZ[l]=dA[l]g[l](Z[l])dW[l]=1mdZ[l]A[l1]db[l]=1mnp.sum(dZ[l],axis=1,keepdims=True)dA[l1]=W[l]TdZ[l] d Z [ l ] = d A [ l ] ∗ g [ l ] ′ ( Z [ l ] ) d W [ l ] = 1 m d Z [ l ] ⋅ A [ l − 1 ] d b [ l ] = 1 m n p . s u m ( d Z [ l ] , a x i s = 1 , k e e p d i m s = T r u e ) d A [ l − 1 ] = W [ l ] T ⋅ d Z [ l ]

上面这部分可以结合 Coursera | Andrew Ng (01-week-3-3.9)—神经网络的梯度下降法 以及 Coursera | Andrew Ng (01-week-3-3.10)—直观理解反向传播 回忆一下 中间省略的求导过程。

大致提一下:

a=σ(z)=11+ez a = σ ( z ) = 1 1 + e − z

σ(z)=a(1a) σ ( z ) ′ = a ( 1 − a )

又因为 da=ya+(1y)1a d a = − y a + ( 1 − y ) 1 − a

dz=dLdadadz=dag(z) d z = d L d a ⋅ d a d z = d a ⋅ g ( z ) ′

剩下的再根据上面两个链接去推导就可以了。

反向传播辅助理解:已知输入 da[l] d a [ l ] , 最终要求得的是 da[l1] d a [ l − 1 ] ,但是中间需要先求出 dz[l] d z [ l ] ,然后才可以得出 dw[l] d w [ l ] , db[l] d b [ l ] ,最终求得 da[l1] d a [ l − 1 ]


4.3 Forward propagation in a deep neural network 深层网络中的前向传播

x=a[0] x = a [ 0 ]

z[1]=w[1]a[0]+b[1]a[1]=g[1](z[1])z[2]=w[2]a[1]+b[2]a[2]=g[2](z[2])...z[4]=w[4]a[3]+b[4]a[4]=g[4](z[4])=y^ z [ 1 ] = w [ 1 ] a [ 0 ] + b [ 1 ] a [ 1 ] = g [ 1 ] ( z [ 1 ] ) z [ 2 ] = w [ 2 ] a [ 1 ] + b [ 2 ] a [ 2 ] = g [ 2 ] ( z [ 2 ] ) . . . z [ 4 ] = w [ 4 ] a [ 3 ] + b [ 4 ] a [ 4 ] = g [ 4 ] ( z [ 4 ] ) = y ^

基本规律:

z[l]=w[l]a[l1]+b[l]a[l]=g[l](z[l]) z [ l ] = w [ l ] a [ l − 1 ] + b [ l ] a [ l ] = g [ l ] ( z [ l ] )

向量化:

X=A[0] X = A [ 0 ]

Z[1]=W[1]A[0]+b[1]A[1]=g[1](Z[1])Z[2]=W[2]A[1]+b[2]A[2]=g[2](Z[2])...Z[4]=W[4]A[3]+b[4]A[4]=g[4](Z[4])=Y^ Z [ 1 ] = W [ 1 ] A [ 0 ] + b [ 1 ] A [ 1 ] = g [ 1 ] ( Z [ 1 ] ) Z [ 2 ] = W [ 2 ] A [ 1 ] + b [ 2 ] A [ 2 ] = g [ 2 ] ( Z [ 2 ] ) . . . Z [ 4 ] = W [ 4 ] A [ 3 ] + b [ 4 ] A [ 4 ] = g [ 4 ] ( Z [ 4 ] ) = Y ^

基本规律:

Z[l]=W[l]A[l1]+b[l]A[l]=g[l](Z[l]) Z [ l ] = W [ l ] A [ l − 1 ] + b [ l ] A [ l ] = g [ l ] ( Z [ l ] )

这里写图片描述


4.4 Getting your matrix dimensions right (核对矩阵的维数)

这里写图片描述

z[1]=w[1]X+b[1](3,1)(3,2)(2,1)(n[1],1)(n[1],n[0])(n[0],1) z [ 1 ] = w [ 1 ] ⋅ X + b [ 1 ] ( 3 , 1 ) ← ( 3 , 2 ) ∗ ( 2 , 1 ) ( n [ 1 ] , 1 ) ← ( n [ 1 ] , n [ 0 ] ) ( n [ 0 ] , 1 )

这里写图片描述

w[1]:(n[1],n[0])w[2]:(5,3),(n[2],n[1])z[2]=w[2]a[1]+b[2](5,1)(5,3)(3,1) w [ 1 ] : ( n [ 1 ] , n [ 0 ] ) w [ 2 ] : ( 5 , 3 ) , ( n [ 2 ] , n [ 1 ] ) z [ 2 ] = w [ 2 ] ⋅ a [ 1 ] + b [ 2 ] ( 5 , 1 ) ← ( 5 , 3 ) ( 3 , 1 )

w[3]:(4,5)w[4]:(2,4)w[5]:(1,2) w [ 3 ] : ( 4 , 5 ) w [ 4 ] : ( 2 , 4 ) w [ 5 ] : ( 1 , 2 )

Summary:

w[l]:(n[l],n[l1]) w [ l ] : ( n [ l ] , n [ l − 1 ] )

b[1]:(3,1)(n[1],1)b[2]:(5,1)(n[2],1) b [ 1 ] : ( 3 , 1 ) ( n [ 1 ] , 1 ) b [ 2 ] : ( 5 , 1 ) ( n [ 2 ] , 1 )

b[l]:(n[l],1) b [ l ] : ( n [ l ] , 1 )

dw[l]:(n[l],n[l1])db[l]:(n[l],1) d w [ l ] : ( n [ l ] , n [ l − 1 ] ) d b [ l ] : ( n [ l ] , 1 )

z[l]=g[l](a[l]) z [ l ] = g [ l ] ( a [ l ] ) z z a 的维度应该相等

这里写图片描述

z[1]=w[1]x+b[1](n[1],1)(n[1],n[0])(n[0],1)(n[1],1) z [ 1 ] = w [ 1 ] ⋅ x + b [ 1 ] ( n [ 1 ] , 1 ) ← ( n [ 1 ] , n [ 0 ] ) ( n [ 0 ] , 1 ) ( n [ 1 ] , 1 )

向量化:

Z[1]=W[1]X+b[1](n[1],m)(n[1],n[0])(n[0],m)(n[1],1) Z [ 1 ] = W [ 1 ] ⋅ X + b [ 1 ] ( n [ 1 ] , m ) ← ( n [ 1 ] , n [ 0 ] ) ( n [ 0 ] , m ) ( n [ 1 ] , 1 )

其中 b[1]:(n[1],1) b [ 1 ] : ( n [ 1 ] , 1 ) 经 Python broadcasting → (n[1],m) ( n [ 1 ] , m )

centerz[l],a[l]:(n[l],1)Vectoried:Z[l],A[l]:(n[l],m)l=0A[0]=X=(n[0],m)dZ,dA:(n[l],m) c e n t e r z [ l ] , a [ l ] : ( n [ l ] , 1 ) V e c t o r i e d : Z [ l ] , A [ l ] : ( n [ l ] , m ) l = 0 A [ 0 ] = X = ( n [ 0 ] , m ) d Z , d A : ( n [ l ] , m )


4.5 Why deep representations? 为什么使用深层表示

为什么使用深层表示

人脸识别和语音识别:

这里写图片描述

对于人脸识别,神经网络的第一层从原始图片中提取人脸的轮廓和边缘,每个神经元学习到不同边缘的信息;网络的第二层将第一层学得的边缘信息组合起来,形成人脸的一些局部的特征,例如眼睛、嘴巴等;后面的几层逐步将上一层的特征组合起来,形成人脸的模样。随着神经网络层数的增加,特征也从原来的边缘逐步扩展为人脸的整体,由整体到局部,由简单到复杂。层数越多,那么模型学习的效果也就越精确。

对于语音识别,第一层神经网络可以学习到语言发音的一些音调,后面更深层次的网络可以检测到基本的音素,再到单词信息,逐渐加深可以学到短语、句子。

所以从上面的两个例子可以看出随着神经网络的深度加深,模型能学习到更加复杂的问题,功能也更加强大。

电路逻辑计算:

这里写图片描述

假定计算异或逻辑输出:

y=x1x2x3xn y = x 1 ⊕ x 2 ⊕ x 3 ⊕ ⋯ ⊕ x n

对于该运算,若果使用深度神经网络,每层将前一层的相邻的两单元进行异或,最后到一个输出,此时整个网络的层数为一个树形的形状,网络的深度为 O(log2(n)) O ( l o g 2 ( n ) ) ,共使用的神经元的个数为:

1+2++2log2(n)1=112log2(n)12=2log2(n)1=n1 1 + 2 + ⋅ + 2 log 2 ⁡ ( n ) − 1 = 1 ⋅ 1 − 2 log 2 ⁡ ( n ) 1 − 2 = 2 log 2 ⁡ ( n ) − 1 = n − 1

即输入个数为 n,输出个数为 n-1。

但是如果不适用深层网络,仅仅使用单隐层的网络(如右图所示),需要的神经元个数为 2n1 2 n − 1 个 。同样的问题,但是深层网络要比浅层网络所需要的神经元个数要少得多。


4.6 Building blocks of deep neural networks 搭建深层神经网络块

这里写图片描述

w[l]:=w[l]αdw[l]b[l]:=b[l]αdb[l] w [ l ] := w [ l ] − α ⋅ d w [ l ] b [ l ] := b [ l ] − α ⋅ d b [ l ]


4.7 Parameters vs Hyperparameters (参数 VS 超参数)

参数:

参数即是我们在过程中想要模型学习到的信息, W[l]b[l] W [ l ] , b [ l ]

超参数:

超参数即为控制参数的输出值的一些网络信息,也就是超参数的改变会导致最终得到的参数 W[l]b[l] W [ l ] , b [ l ] 的改变。

举例:

学习速率: α α

迭代次数:N

隐藏层的层数: L L

每一层的神经元个数:n[1]n[2],

激活函数 g(z) g ( z ) 的选择

这里写图片描述

参考文献:

[1]. 大树先生.吴恩达Coursera深度学习课程 DeepLearning.ai 提炼笔记(1-4)– 浅层神经网络


PS: 欢迎扫码关注公众号:「SelfImprovementLab」!专注「深度学习」,「机器学习」,「人工智能」。以及 「早起」,「阅读」,「运动」,「英语 」「其他」不定期建群 打卡互助活动。

### 回答1: Coursera-ml-andrewng-notes-master.zip是一个包含Andrew Ng的机器学习课程笔记和代码的压缩包。这门课程是由斯坦福大学提供的计算机科学和人工智能实验室(CSAIL)的教授Andrew Ng教授开设的,旨在通过深入浅出的方式介绍机器学习的基础概念,包括监督学习、无监督学习、逻辑回归、神经网络等等。 这个压缩包中的笔记和代码可以帮助机器学习初学者更好地理解和应用所学的知识。笔记中包含了课程中涉及到的各种公式、算法和概念的详细解释,同时也包括了编程作业的指导和解答。而代码部分包含了课程中使用的MATLAB代码,以及Python代码的实现。 这个压缩包对机器学习爱好者和学生来说是一个非常有用的资源,能够让他们深入了解机器学习的基础,并掌握如何运用这些知识去解决实际问题。此外,这个压缩包还可以作为教师和讲师的教学资源,帮助他们更好地传授机器学习的知识和技能。 ### 回答2: coursera-ml-andrewng-notes-master.zip 是一个 Coursera Machine Learning 课程的笔记和教材的压缩包,由学生或者讲师编写。这个压缩包中包括了 Andrew Ng 教授在 Coursera 上发布的 Machine Learning 课程的全部讲义、练习题和答案等相关学习材料。 Machine Learning 课程是一个介绍机器学习的课程,它包括了许多重要的机器学习算法和理论,例如线性回归、神经网络、决策树、支持向量机等。这个课程的目标是让学生了解机器学习的方法,学习如何使用机器学习来解决实际问题,并最终构建自己的机器学习系统。 这个压缩包中包含的所有学习材料都是免费的,每个人都可以从 Coursera 的网站上免费获取。通过学习这个课程,你将学习到机器学习的基础知识和核心算法,掌握机器学习的实际应用技巧,以及学会如何处理不同种类的数据和问题。 总之,coursera-ml-andrewng-notes-master.zip 是一个非常有用的学习资源,它可以帮助人们更好地学习、理解和掌握机器学习的知识和技能。无论你是机器学习初学者还是资深的机器学习专家,它都将是一个重要的参考工具。 ### 回答3: coursera-ml-andrewng-notes-master.zip是一份具有高价值的文件,其中包含了Andrew NgCoursera上开授的机器学习课程的笔记。这份课程笔记可以帮助学习者更好地理解掌握机器学习技术和方法,提高在机器学习领域的实践能力。通过这份文件,学习者可以学习到机器学习的算法、原理和应用,其中包括线性回归、逻辑回归、神经网络、支持向量机、聚类、降维等多个内容。同时,这份笔记还提供了很多代码实现和模板,学习者可以通过这些实例来理解、运用和进一步深入研究机器学习技术。 总的来说,coursera-ml-andrewng-notes-master.zip对于想要深入学习和掌握机器学习技术和方法的学习者来说是一份不可多得的资料,对于企业中从事机器学习相关工作的从业人员来说也是进行技能提升或者知识更新的重要资料。因此,对于机器学习领域的学习者和从业人员来说,学习并掌握coursera-ml-andrewng-notes-master.zip所提供的知识和技能是非常有价值的。
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值