神经元网络入门------- feedforward Neural Networks

https://www.learnopencv.com/understanding-feedforward-neural-networks/

1.神经元网络理解

In this article, we will learn about feedforward Neural Networks, also known as Deep feedforward Networks or Multi-layer Perceptrons. They form the basis of many important Neural Networks being used in the recent times, such as Convolutional Neural Networks ( used extensively in computer vision applications ), Recurrent Neural Networks ( widely used in Natural language understanding and sequence learning) and so on.

资料汇总:
神经网络入门资料1
神经网络入门资料2
神经网络入门资料3
free txt of deep learning
neural network and deep learning

神经元网络结构图
图上的神经元网络并不包含feedback connections or loops。神经元网络(这里是feedforward Neural Networks)的主要组成:
1.输入层
2.隐藏层
3.输出层

1.1.什么是神经元Neuron

人工神经元是神经元网络的基础单元。
人工神经元示意图
神经元的作用:
1.计算所有输入的加权和(每一个神经元的输入都有权重)
2.利用激励函数将加权和进行标准化

1.2.激励函数Activation Functions

激励函数的作用:
1.一个神经元输出的决策体decision making body
2.对神经元的输出进行标准化防止经过多层的神经元后,由于联级效应cascading effect造成输出过大

使用最为广泛的三种激励函数:
1.Sigmoid
将输入映射到0~1
sigmoid
2.Tanh
与sigmoid相似,但是他将输出映射到 -1~1
Tanh
3.ReLU
ReLU
There are other functions like the Unit Step function, leaky ReLU, Noisy ReLU, Exponential LU etc which have their own merits and demerits.

1.3.输入层Input Layer

神经元网络的第一层,给整个网络供输入数据或者特征。

1.4.输出层Output Layer

This is the layer which gives out the predictions. The activation function to be used in this layer is different for different problems. For a binary classification problem, we want the output to be either 0 or 1. Thus, a sigmoid activation function is used. For a Multiclass classification problem, a Softmax ( think of it as a generalization of sigmoid to multiple classes ) is used. For a regression problem, where the output is not a predefined category, we can simply use a linear unit.

1.5.隐藏层Hidden Layer

在隐藏层前馈网络会应用一系列的函数来处理输入,通过multiple的隐藏层,可以实现使用较为简单函数的联级cascading effect来实现更复杂的计算(如:要求一个数的7次方,可以使用这数略微简单的平方和立方,计算出7次方)。此外,隐藏层的类型也被用来,区分神经网络的类型,如:CNNs卷积网络、RNNs等。

神经网络的深度:隐藏层的数量
隐藏层数量的确定:没有正确的答案,总体上说越深的网络可以学习越复杂的功能

1.6.神经元网络怎么学习

将训练数据输入神经网络,对比网络的输出与真实数据的误差。根据误差调整神经元输入的权重,使得误差下降。

具体实现:反向传播算法(Backpropagation )、随机梯度下降SGD( Stochastic Gradient Descent )

学习速率learning rate:决定权重每次变化的变化量的参数

注:反向传播算法 梯度下降

2.为什么要用隐藏层

前面所说,隐藏层可以借助联级效应利用较简单的函数实现更复杂的功能。
这里推荐一个Google的web app,playground.tensorflow.org 通过这个平台可以实时创建简单的feedforward 神经网络,还可以可视化的交互。下面将利用这个平台来进行实验,来说明隐藏层的作用。在这里插入图片描述

2.1.无隐藏层

利用上述平台创建一个无隐藏层的神经元网络None Hidden Layer,分别对线性可分和线性不可分等四个数据集进行实验。
linear boundary
circular decision boundary在这里插入图片描述
在这里插入图片描述在这里插入图片描述
结论:
1.利用单个神经元只能学习linear decision boundary
2.可以利用特征转换(如:特征值的平方或特征的乘积)来实现可视化

2.2.添加隐藏层

增加一个隐藏层,重复上面的实验。
添加一个隐藏层
在这里插入图片描述

3.正则化Regularization

当数据集集中掺入噪音时,网络也会学习这些噪音引起的非线性并拟合这些噪音。这里noise in dataset,借助上述平台在数据集中加入了一些噪音数据进行实验。
在这里插入图片描述
从实验的结果可以看出,为了降低误差,the decision boundary 正在容纳这些噪音(作为噪音点本来是不应该参与网络的学习的)网络的抗噪性很差,这种现象就是过拟合


-------在这个实验中如果将鼠标悬浮在连接connection上会显示出权重weight。此时有些权重会变得很大,此时使用正则化来给权重整形(对权重的取值制定一些限制规则)。在这里Link采用L2 regularization对网络进行配置。
在这里插入图片描述After including L2 regularization, the decision boundary learned by the network is smoother and similar to the case when there was no noise. The effect of regularization can also be seen from the loss curves and the value of the weights.





function of test loss and train loss

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值