1.3 简单神经网络

神经网络的本质是设定一个网络结构,更新网络内的一些“权重“(参数),使得数据经过这个网络之后,得到我们想要的结果。举个栗子:

28

通过各种各样的指标,全面的描述这个房子,最后判断一下这个房子是否闹鬼????(当然这里是监督学习,我们的训练数据是包含是否闹鬼这个目标标签的)

 

我们把第一个隐藏层的神经元W1拿出来单独看看:

29

这个神经元一共有5个参数,4个w对应4个输入维度,1个b表示整体迁移量,通过一个简单的线性计算,计算出Z1,再通过一个relu函数激活大于0的部分,最后输出A1。5个参数是随机初始化,后续通过反向传播进行更新。

反向传播其实就是通过链式法则,对误差函数进行求导,求出可以使误差函数下降的权重更新。这里大概记忆一下就好,详细的解释可以仔细看看这个专栏,非常直观,值得仔细研究

3Blue1Brown:深度学习 Deep Learning

30

训练神经网络的大概流程如下:

31

通过不断地正向-》反向传播,更新权重,使得目标误差函数越来越小。

 

最后再啰嗦一句,为什么神经网络近几年突然就火了?

主要有三点:

  • 硬件计算能力:GPU,分布式
  • 数据爆炸:GB->TB->PB
  • 算法发明:CNN,RNN..

那么为什么GPU更快呢,因为GPU核多啊,上面我们看到神经网络内最基础的计算仅仅是一些线性计算和简单的激活函数,GPU适合大量的并行计算:

32

 

对于深度神经网络来说,数据越多,模型表现越好,可以说是突破了传统机器学习算法的瓶颈:

33

所以…….下一节我们介绍一下CNN(卷积神经网络)的结构和应用。