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

神经元网络入门

  • 1.神经元网络理解
    • 1.1.什么是神经元Neuron
    • 1.2.激励函数Activation Functions
    • 1.3.输入层Input Layer
    • 1.4.输出层Output Layer
    • 1.5.隐藏层Hidden Layer
    • 1.6.神经元网络怎么学习
  • 2.为什么要用隐藏层
    • 2.1.无隐藏层
    • 2.2.添加隐藏层
  • 3.正则化Regularization

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

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

1.1.什么是神经元Neuron

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

1.2.激励函数Activation Functions

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

使用最为广泛的三种激励函数:
1.Sigmoid
将输入映射到0~1
神经元网络入门------- feedforward Neural Networks_第3张图片
2.Tanh
与sigmoid相似,但是他将输出映射到 -1~1
神经元网络入门------- feedforward Neural Networks_第4张图片
3.ReLU
神经元网络入门------- feedforward Neural Networks_第5张图片
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 神经网络,还可以可视化的交互。下面将利用这个平台来进行实验,来说明隐藏层的作用。神经元网络入门------- feedforward Neural Networks_第6张图片

2.1.无隐藏层

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

2.2.添加隐藏层

增加一个隐藏层,重复上面的实验。
添加一个隐藏层
神经元网络入门------- feedforward Neural Networks_第12张图片

3.正则化Regularization

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


-------在这个实验中如果将鼠标悬浮在连接connection上会显示出权重weight。此时有些权重会变得很大,此时使用正则化来给权重整形(对权重的取值制定一些限制规则)。在这里Link采用L2 regularization对网络进行配置。
神经元网络入门------- feedforward Neural Networks_第14张图片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

你可能感兴趣的:(机器学习,deep,learning,neural,network,入门)