机器学习:神经网络

2020-05-15  本文已影响0人  星光下的胖子

一、什么是神经网络

人工神经网络简称“神经网络”,是一种应用类似于大脑神经突触联接的结构、用于进行信息处理的数学模型。简单来说,是一种数学模型,其借鉴了生物神经网络的工作原理,并用于做信息处理。

神经元

神经网络的基本结构是神经元,如下图所示:

神经元

其中,x_1x_2x_3代表输入,中间部分为神经元,最后的h_{w,b}(x)是神经元的输出。整个过程可理解为:输入--->处理--->输出。

神经网络

多个神经元可组成一个神经网络,神经网络的结构分为:输入层、隐藏层、输出层。

神经网络

上图是一个简单的神经网络,Layer1是输入层,Layer4是输出层,Layer2+Layer3为隐藏层。除了输入层以外,每一层的输入都是上一层的输出。

神经网络数学原理
神经元

在神经网络模型中,w就是我们要训练的模型参数。x是输入数据,y是我们期望的目标值(实际值),h是输出结果。|y-h|为误差,为方便计算,定义损失函数loss=(y-h)^2

模型训练大致流程:


二、常见的几种神经网络

1、多层感知机MLP(Multilayer Perceptron)

全连接神经网络(Full Connection,FC)的准则:除输入层之外的每个节点都和上一层的所有节点连接。

多层感知机

上图是一个多层感知机(MLP),我们说MLP就是全连接神经网络,因为MLP中层与层之间就是全连接的。第N层的每个神经元都和第N-1层的所有神经元相连,第N-1层神经元的输出就是第N层神经元的输入。

2、卷积神经网络CNN(Convolutional Neural Networks)
CNN

卷积神经网络的层级结构:

卷积神经网络主要用于图像处理,但也可用于其他类型的输入,如音频。CNN 的典型用例是对图像进行识别分类,如手写数字的识别分类。

3、循环神经网络RNN(Recurrent Neural Network)
RNN

RNN循环神经网络是根据“人的认知是基于过往的经验和记忆”这一观点提出的。它与DNN、CNN的不同在于:它不仅考虑当前时刻的输入,而且赋予了网络对先前的内容的一种‘记忆’功能。

在循环神经网络中,隐藏层节点之间是互相连接的,并且每个神经元内部会保存它先前的值。当前(t=2)的输出,不仅依赖于当前(t=2)的输入,还依赖于先前(t=1)的输出。

只要是考虑时间先后顺序的问题,都可以用RNN来解决。RNN的常用领域:

4、生成式对抗网络GAN(Generative Adversarial Networks)
GAN

生成式对抗网络包含两个模块:

GAN的基本原理不难理解,我们以图片生成为例进行说明:

在训练过程中,生成网络G的目标是尽量生成真实的图片去欺骗判别网络D。而D的目标是尽量把G生成的图片和真实的图片分辨出来。这样,G和D构成了一个动态的“博弈过程”。
最后博弈的结果是什么?在最理想的状态下,G可以生成“以假乱真”的图片G(z)。对于D来说,它难以判定G生成的图片究竟是不是真实的,因此D(G(z)) = 0.5。
这样我们的目的就达成了:我们得到了一个生成式的模型G,它可以用来生成图片。

GAN常用于图像生成和数据增强。

5、自编码机AE(AutoEncoder)
AE

AE的模型结构形似一个沙漏计时器,两边的输入层、输出层较大,中间的隐藏层较小。以中间层为轴,前半部分用于编码(特征提取、压缩),称为编码器;后半部分用于解码,称为解码器。

自编码机的主要用途:去噪、降维、特征学习、信息补全等。

上一篇下一篇

猜你喜欢

热点阅读