Neural Networks and Deep Learning (Week 3)——Shallow neural networks

(一)Neural Networks Overview——一个隐藏层的神经网络

问题:z[2]和a[2]为什么要这么计算?

(二)Neural Network Representation

输入层:a[0]=x

隐藏层:a[1]-------a1[1],a2[1],a3[1],a4[1],表示的是在第1层的第几个节点

输出层:a[2]----预测值

用上标来明确指出这是哪一层,约定在描述神经网络的层数时不加输入层,所以隐藏层是第一层,输出层是第二层。

(三)Computing a Neural Network's Output

圆圈表示的是:进行两步运算,第一步计算z,第二部计算z的激活函数sigmoid(z)

对于上图中的第一层,即隐藏层而言,进行的是如上图右侧所表示的计算


为避免进行for循环的复杂操作,即需要对上述式子进行向量化的操作,如下图

进而对z[1]进行sigmoid运算,则可以得到对应的a[1] ,即

得到的a[1]是一个4X1的向量,且每个元素的取值范围都是0~1

然后计算第二层:

a[1]维度是 4X1,w[2]是1X4,b是1X1,因此得到的a[2]的维度也是1X1

(四)Vectorizing across multiple examples

如果有多个样本,则需要对上述过程进行多次循环,用a[2](1)两个都是上标,表示的是在第二层神经网络的第一个案例的输出结果。

方法一:使用for 循环,即对上述4个步骤的上标分别加上第几个案例的标识进行循环,即

方法二:使用整个向量

纵向来看是不同的实例,横向是每个实例在每个神经单元的取值之类的

(五)Explanation for Vectorized Implementation

(六)Activation functions

1.tanh function

函数最后得到的值在-1~1之间,更可能使训练的数据中心化,平均值为0,使得下一层的学习更简单。结果一般优于sigmoid函数。

它和sigmoid函数共同存在的缺点就是:当Z值趋向于无穷时,所在的梯度很小几乎接近于0,变化很慢。

2.ReLU

如果不确定用什么激活函数的话,就使用ReLU函数即可

 3.Leaky ReLu

与ReLU函数不同的是,当Z小于0时,斜率不为0,而是有比较小的斜率值

在实际中,一般使用ReLu函数,因为其使学习变慢的斜率趋于0的现象变少了????但它到负数的时候不都直接成为0了么???

第二个问题:ReLu函数如何进行分类,也是当z>0时,分类为1?Z<0时,分类为0吗?感觉并不科学,,,

总结:

Sigmoid函数一般不使用,除非其要解决二分类问题或在输出层上使用;

RelU&Leaky Relu

(七)Why do you need non-linear activation functions

为什么要用一个非线性的激活函数呢?

 使用线性的激活函数,最后结合的是两个线性函数,得到的仍然是线性函数,与使用隐藏层无关。

当解决回归问题时,即最后的结果不是只有0和1两类,输出值是线性组合即可,而之前的隐藏层依旧要使用非线性函数

(八)Derivatives of activation functions

1.sigmoid函数

2.tanh函数

3.Relu函数

(九)Gradient descent for neural networks

这步是单纯的公式呈现喔

(十)Backpropagation

对于有一个隐藏层的2层神经网络来说,即

反向计算:da[2],dz[2],dw[2],db[2],da[1],dz[1],db[1],dw[1]

其中,感觉比较难理解的是dz[1],对z[1]进行求导,首先对a[1]求导,然后a[1]再对z[1]求导,从前可知,对a[1]求导就是w[1],对w[1]中的a[1]求导就是dz[2],因此所得的结果就是w[1]*dz[2]*g'(z[1])

向量化处理多个样本:

(十一)Random Initialization

把初始参数都初始化为0是不可取的,如果初始的w都为0,造成隐藏成的几个节点的计算功能一致,无论迭代多少次,都相当于隐藏层只有一个节点。

因此,需要对w权重矩阵进行随机的赋值,并且乘以一个很小的数值,如0.01

浅层神经网络的随机化之后取值为0.01较好

但对于过于深层的神经网络来说不一定都要是0.01

 

 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
### 回答1: 《Neural Networks and Deep Learning》这本书被许多人评价为是关于深度学习的一本非常好的入门书。它以清晰易懂的方式解释了深度学习的核心概念,并且使用大量的图片和代码来帮助读者理解。如果您对深度学习感兴趣,那么这本书是一个不错的选择。 ### 回答2: 《Neural Networks and Deep Learning》是一本非常出色的书籍。它由Michael Nielsen撰写,提供了关于神经网络和深度学习的详细而清晰的介绍。 这本书以易于理解和深入的方式解释了神经网络和深度学习的基本概念和原理。它从基础知识开始,逐步引导读者了解神经元、多层神经网络、反向传播和激活函数等关键概念。通过直观的解释和简单的数学推导,读者可以很好地理解这些复杂的概念。 书中还包含了许多实例和示例,帮助读者将理论应用到实际问题中。例如,它详细介绍了如何使用神经网络解决手写数字识别的问题,并提供了相关的代码实现。这些实例不仅使得理论更加易于理解,也为读者提供了实际操作的经验和技能。 此外,《Neural Networks and Deep Learning》还提供了大量的引用文献和进一步阅读的建议,帮助读者进一步深入学习和探索相关领域的研究。这为读者进一步拓宽知识领域提供了便利。 总体而言,这本书不仅适合对神经网络和深度学习感兴趣的初学者,也适合那些已经有一定了解但希望进一步加深理解的读者。它以简洁明了的方式传递了复杂的概念,提供了大量的实例和引用文献,是一本极具价值的学习资源。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值