博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
深度学习笔记(二)神经网络快速介绍
阅读量:4551 次
发布时间:2019-06-08

本文共 2674 字,大约阅读时间需要 8 分钟。

原文:

人工神经网络(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  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

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

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

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

Two examples of feedforward networks are given below:

  1. 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].

  2. 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:

 

转载于:https://www.cnblogs.com/xuanyuyt/p/6486750.html

你可能感兴趣的文章
iOS开发之画图板(贝塞尔曲线)
查看>>
4嵌入式作业io
查看>>
IntelliJ Idea编译报错:javacTask: 源发行版 1.7 需要目标发行版 1.7
查看>>
Cognos中新建SQLserver数据源的步骤
查看>>
HttpClient连接超时及读取超时
查看>>
SQL优化方法
查看>>
SEO必须掌握的高级搜索指令
查看>>
生产者消费者模型
查看>>
ORACLE 字符串超长问题解决方案
查看>>
使用ZooKeeper协调多台Web Server的定时任务处理(方案1)
查看>>
20171116 每周例行报告
查看>>
[C#] SHA1校验函数用法
查看>>
linux 下 VMware 提示Unable to change virtual machine power state:
查看>>
洛谷P1585 魔法阵
查看>>
线程 题待做
查看>>
PL/SQL可以连oracle,但是jdbc连不上 【转】
查看>>
使用 highlight.js 在网页中高亮显示java 代码 【原】
查看>>
Android应用 程序框架设计方法
查看>>
基于Nginx环境下5种http转https的设置方法
查看>>
windows创建服务
查看>>