吴恩达深度学习笔记整理(一)

吴恩达深度学习笔记整理(一)

本文根据吴恩达深度学习课程内容,抽取重要知识点进行整理,目录如下

Course 1 神经网络和深度学习

Week 1 Introduction to deep learning

在这一周的课程中,首先构建了一个预测房子价格的简单神经网络,输入为房子的大小,经过一个单个的神经元,输出为房子的价格。

在这里插入图片描述
根据预测房屋价格的问题,可以继续扩展,房屋的其他属性如:卧室的数量,所在的位置等等都和最后的房屋价格有关
在这里插入图片描述
为什么要使用深度神经网络?
在这里插入图片描述

Week 2 Basics of Neural Network programming

n x n_x nx 或者n:输入向量的维度
x x x:输入数据,维度为 ( n x , 1 ) (n_x,1) (nx,1)
y y y:输出数据
( x ( i ) , y ( i ) ) (x^{(i)}, y^{(i)}) (x(i),y(i)):表示第i组数据
X = [ x ( i ) , x ( 2 ) , . . . , x ( m ) ] X = [x^{(i)},x^{(2)},...,x^{(m)}] X=[x(i),x(2),...,x(m)]:表示所有训练数据集的输入值,放在一个 n x ∗ m n_x * m nxm的矩阵中,m表示样本数目。
Y = [ y ( i ) , y ( 2 ) , . . . , y ( m ) ] Y = [y^{(i)},y^{(2)},...,y^{(m)}] Y=[y(i),y(2),...,y(m)]:对应表示所有训练集的输出值

以最简单的Logistic Regression 为例
y ^ = w T x + b \hat{y} = w^Tx+b y^=wTx+b
其中 w w w为权重,是一个 ( n x , 1 ) (n_x,1) (nx,1)的向量
y ^ = P ( y = 1 ∣ x ) 0 ≤ y ^ ≤ 1 \hat{y} = P(y=1|x) 0\le\hat{y}\le1 y^=P(y=1x)0y^1
w T x + b w^Tx+b wTx+b不一定在[0,1]之间,所以需要激活函数
最终Output: y ^ = σ ( w T x + b ) \hat{y} = \sigma(w^Tx+b) y^=σ(wTx+b)

对于单个样本的损失函数 L ( y ^ , y ) L(\hat{y},y) L(y^,y)
在这里不用平方差来计算,使用对数函数
L ( y ^ , y ) = − y l o g ( y ^ ) − ( 1 − y ) l o g ( 1 − y ^ ) L(\hat{y},y) = -ylog(\hat{y})-(1-y)log(1-\hat{y}) L(y^,y)=ylog(y^)(1y)log(1y^)
对于整个算法代价函数 J ( w , b ) J(w,b) J(w,b)

J ( w , b ) = 1 m ∑ i = 1 m L ( y ( i ) ^ , y ) J(w, b) = \frac{1}{m}\sum_{i=1}^mL(\hat{y^{(i)}},y) J(w,b)=m1i=1mL(y(i)^,y)

应用梯度下降法:
w : = w − α ∂ J ( w , b ) ∂ w w:=w-\alpha\frac{\partial{J(w,b)}}{\partial{w}} w:=wαwJ(w,b)

b : = b = α ∂ J ( w , b ) ∂ b b:=b=\alpha\frac{\partial{J(w,b)}}{\partial{b}} b:=b=αbJ(w,b)

这里在简单介绍一下计算图
举例:
J ( a , b , c ) = 3 ( a + b c ) J(a, b, c) = 3(a+bc) J(a,b,c)=3(a+bc)
u = b c u = bc u=bc , v = a + u v = a+u v=a+u , J = 3 v J = 3v J=3v
黑色为前向传播,红色为反向传播
在这里插入图片描述

Week 3 Shallow neutral networks

以下图所示的神经网络为例, [ m ] [m] [m]表示第m层网络中相关结点的数目
在这里插入图片描述

三个常用的激活函数

  • sigmoid 函数

    a = σ ( z ) = 1 1 + e − z a = \sigma{(z)} = \frac{1}{1+e^{-z}} a=σ(z)=1+ez1

    导数:

    d ( g ( z ) d z = 1 1 + e − z ( 1 − 1 1 + e − z ) = g ( z ) ( 1 − g ( z ) ) \frac{d(g(z)}{dz} = \frac{1}{1+e^{-z}}(1-\frac{1}{1+e^{-z}}) = g(z)(1-g(z)) dzd(g(z)=1+ez1(11+ez1)=g(z)(1g(z))

    g ′ ( z ) = g ( z ) ( 1 − g ( z ) ) = a ( 1 − a ) g'(z) = g(z)(1-g(z)) = a(1-a) g(z)=g(z)(1g(z))=a(1a)

    z z z特别大或者特别小的情况下,导数的梯度会特别小,最后接近0,使梯度下降速度过小

  • tanh函数

    a = t a n h ( z ) = e z − e − z e z + e − z a = tanh(z) = \frac{e^z-e^{-z}}{e^z+e^{-z}} a=tanh(z)=ez+ezezez

    导数:

    d g ( z ) d z = 1 − ( t a n h ( z ) ) 2 \frac{dg(z)}{dz} = 1 - (tanh(z))^2 dzdg(z)=1(tanh(z))2

    值域在-1到1之间,数据均值更接近0而不是0.5

  • Relu函数

    a = m a x ( 0 , z ) a = max(0,z) a=max(0,z)

    导数:

    g ′ ( x ) = { 0 z < 0 1 z > 0 u n d e f i n e d z = 0 g'(x)=\left\{ \begin{array}{cl} 0 & & {z < 0}\\ 1 & & {z > 0}\\ undefined & & {z = 0}\\ \end{array} \right. g(x)=01undefinedz<0z>0z=0

    z是正值的情况下,导数恒等于1,当z是负值的情况下,导数恒等于0

sigmoid 函数:除了是一个二分类问题基本不会用
tanh函数:几乎适合所有的场合
Relu函数:最常用的默认函数,不知道用什么函数就用它

Week 4 Deep neutral networks

输入的特征记作 x x x,但 x x x同样也是0层的激活函数后的结果 x = a [ 0 ] x = a^{[0]} x=a[0]
最后一层激活函数后的结果 a [ l ] a{[l]} a[l],也是这个神经网络所预测的输出结果

下面对矩阵的维数进行讨论:
w w w的维度:(下一层的维数,前一层的维数) w [ l ] : ( n [ l ] , n l − 1 ] ) w^{[l]}:(n^{[l]},n^{l-1]}) w[l]:(n[l],nl1])

b b b的维度:(下一层的维数,1) b [ l ] : ( n [ l ] , 1 ) b^{[l]}:(n^{[l]},1) b[l]:(n[l],1)

z [ l ] , a [ l ] : ( n [ l ] , 1 ) z^{[l]},a^{[l]} : (n^{[l]},1) z[l],a[l]:(n[l],1)

对多个样本向量化后得到 z [ l ] z^{[l]} z[l]的维度:

z [ l ] : ( n [ l ] , m ) z^{[l]} : (n^{[l]},m) z[l]:(n[l],m)

深层的网络隐藏单元数量相对较少,隐藏层数目比较多

下面是神经网络的计算过程:
在这里插入图片描述

一些超参
学习率(Learning Rate): α \alpha α
梯度下降法循环的次数:iterations
隐藏层的数目:L
隐藏层的单元树木: n [ l ] n^{[l]} n[l]

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值