您的位置:首页 > 理论基础 > 计算机网络

深度学习笔记(二)神经网络快速介绍

2016-10-31 22:41 567 查看
原文:A Quick Introduction to Neural Networks

人工神经网络(ANN)的灵感来自于人脑生物神经网络处理信息的方式。人工神经网络在很多机器学习研究和行业里都取得了很好的成绩(在那个时候来说),包括语音识别、计算机视觉、文字处理方面。本文将尝试理解一种特殊的人工神经网络,称为多层感知器(Multi Layer Perceptron)。

A Single Neuron

神经元是神经网络的基础单元,常称之为节点(node)或单元(unit)。如图1:它接收来自其他节点(一般会添加一个额外偏置项1)计算一个输出。每个输入都有一个关联的权重($w$),每个权重可以简单理解为对应的输入在所有输入中占有的权重。函数 $f$ 作用在 所有节点上的加权求和上 获得最终输出。



Figure 1: a single neuron

上面的简单网络结合数值型输入 $X1$ 、$X2$ 和对应的权重 $w1$ 、$w2$ 以及一个额外的输入 1 和权重 $b$(称之为偏置 Bias)。

这里的函数 $f$ 是非线性的称之为激活函数(Activation Function)。激活函数的目的是为了在输出上引入非线性,这是很重要的,因为实际中大多数数据是非线性的,我们想要神经元学习这些非线性表示。

每个激活函数(或非线性函数)运用一个固定的数学运算作用于一个数值上[2]。这里列出了几个你可能在实践中会遇到的激活函数:

Sigmoid: takes a real-valued input and squashes it to range between 0 and 1

              σ(x) = 1 / (1 + exp(−x))

tanh: takes a real-valued input and squashes it to the range [-1, 1]

              tanh(x) = 2σ(2x) − 1

ReLU: ReLU stands for Rectified Linear Unit. It takes a real-valued input and thresholds it at zero (replaces negative values with zero)

               f(x) = max(0, x)

下图[2]展示了上面三个激活函数的图像:



              Figure 2: different activation functions

Importance of Bias: The main function of Bias is to provide every node with a trainable constant value (in addition to the normal inputs that the node receives). See this link to learn more about the role of bias in a neuron.

Feedforward Neural Network

前馈神经网络是人工神经网络最简单的一个类型了[3]。 每一层(layers)包含多个神经元(节点),相连层节点进行全连接。每个连接都对应一个权重。

如图3是一个前馈神经网络实例:



Figure 3: an example of feedforward neural network

上面这个简单的前馈神经网络包含三种类型的节点:

Input Nodes – 输入节点是整个网络的输入层的节点。

Hidden Nodes – 隐含层节点介于输入和输出之间,它们执行从输入到输出之间的信息计算和传输。在前馈网络中只会有一个输入层和一个输入层,但却可以有零个或多个隐含层。

Output Nodes – 输出节点是整个网络输出层的节点。

在前馈神经网络中,信息只往一个方向传输--向前,从输入层节点经过隐含层节点到输出层节点。网络中没有循环或回路[3](这个特性不同于递归神经网络,递归神经网络中节点间存在回路)。

Two examples of feedforward networks are given below:

Single Layer Perceptron – This is the simplest feedforward neural network [4]and does not contain any hidden layer. You can learn more about Single Layer Perceptrons in [4], [5], [6], [7].

Multi Layer Perceptron – A Multi Layer Perceptron has one or more hidden layers. We will only discuss Multi Layer Perceptrons below since they are more useful than Single Layer Perceptons for practical applications today.

Multi Layer Perceptron

一个多层感知器( Multi Layer Perceptron, MLP)包含一个输入层一个输出层,一个或多个隐含层。一个不包含隐含层的单层感知器只能学习一个线性函数,一个多层感知器还可以学习非线性函数。

图4是一个有一个隐含层的多层感知器。值得注意的是,图中每个连接都对应一个权重,图中只显示了三个权重。

Input Layer: 输入层有三个节点。偏置节点值为1,其他两个输入(数值型)结点记为$X1$、$X2$。如上所述,输入层没有任何计算在内,即输入层输出等于输入层输入。

Hidden Layer:隐含层同样包含三个节点,同样偏置节点值为1。除偏置节点外的两个结点输出依赖于输入层的输出(1,$X1$,$X2$)和对应的权重。图4显示了隐含层节点计算过程。记住$f$ 是一种激活函数。这些隐含层输出最终喂给输出层节点计算输出。



Figure 4: a multi layer perceptron having one hidden layer

Output Layer:
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: