零基础入门神经网络:从原理、主要类型到行业应用

简介:
本文来自AI新媒体量子位(QbitAI)

最近,神经网络这个词特别火,吸引不少眼球。但是神经网络是个啥?有啥用?

这篇文章和大家唠唠,啥是神经网络,对于初学者来说主要有哪些挑战,以及介绍几种经典的神经网络类型,和相关行业应用。

640?wx_fmt=jpeg&wxfrom=5&wx_lazy=1

神经网络的工作原理

基本上,神经网络是由一层一层的不同的计算单位连接起来的。我们把计算单位称为神经元,这些网络可以把数据处理分类,就是我们要的输出。

每个神经元把最初的输入值乘以一定的权重,并加上其他输入到这个神经元里的值(并结合其他信息值),最后算出一个总和,再经过神经元的偏差调整,最后用激励函数把输出值标准化。

640?wx_fmt=png&wxfrom=5&wx_lazy=1

迭代的学习过程

神经网络有个很关键的特征,它的学习过程是迭代的。也就是说,在学习期间,处理数据的过程会不断重复,而且为了准确预测输入值的分类,每次都会调整和输入数据有关的权重。

神经网络的优点,在于他们对很乱的数据的容忍度很高,同时也有很强的分类能力,连未训练的数据也能区分出来。

而最受欢迎的神经网络算法,是反向传播算法。

为了解决某个特定问题,神经网络要得到足够的训练。在训练最开始的时候,初始权重是随机定的。

如果在输出层得不到期望的输出值,则取输出与期望的误差的平方和作为目标函数,转入反向传播,逐层求出目标函数对各神经元权值的偏导数,构成目标函数对权值向量的梯量,作为修改权值的依据,网络的学习在权值修改过程中完成。误差达到所期望值时,网络学习结束。

神经网络通过隐藏层里的权重和函数,一次处理训练集里的一组数据,然后把输出值和实际结果作对比。然后把误差返回给整个网络系统,针对要解决的问题来调权重。再输入下一组数据,看偏差值有没有变小。

这个过程要不断地反复调整权重。所以在训练的过程中,同一组数据会被处理很多次,直到每一层的权重都被精细地调校过。

这个过程有多困难呢?

对于神经网络的初学者来说,其中的一个挑战是要理解每一层有什么用。我们知道,在训练过后,每一层都会抽取出来输入值的高阶或更高阶的特征,直到最后一层决定输入的特征所指的是什么。那这个过程是怎么完成的?

与其指定神经网络最后放大的特征,还不如让神经网络自己得出来。

由于神经网络的每一层的处理,是不同维度的抽象特征。所以强化哪一层,会对最后的值的特征的复杂性有不同的影响。而在我们选了其中一个层后,就可以看到神经网络最后增强了什么的特征。

流行的神经网络类型及其应用

接下来,我们会了解一下自动编码器,卷积神经网络和循环神经网络。

自动编码器

根据之前的经验,随机初始化的结果并不好。所以为了获得更好的初始权重,我们可以考虑用无监督学习算法来预训练每个层。

类似的例子,可以参考被无监督算法训练的Deep Belief Networks。 最近,有一些新的研究尝试在这个领域寻找突破,比如,使用概率自动编码器的变分方法。

不过实际上,它们很少被用到。 最近,对于更深的神经网络来说,已经可以进行批量地标准化。通过残差学习,我们能从头开始训练任意深度神经网络了。在适当的维度和稀疏性的约束下,自动编码器可以学习到,比PCA或其他基本技术更有趣的数据投影。

我们来看看两个有趣的自动编码器的实际应用:

医学图像的降噪

通过卷积层,自动编码器实现高效降噪。

640?wx_fmt=png&wxfrom=5&wx_lazy=1

 降噪自动编码器,就是设定为忽略某些输入的

在随机干扰过程中,通过随机地将一些输入数据设为零,让降噪自动编码器自己判断哪些是丢失(损坏)的值,从而预测出哪些是丢失模式的子集。

数据可视化

用主成分分析(PCA),和t分布随机相邻嵌入(t-SNE)等方法,可以实现降维。 在训练神经网络的时候,结合以上方法,能提高模型的预测精度。而且,多层神经网络的预测精度很大程度上依赖于神经网络结构,预处理的数据,以及该神经网络要解决的问题类型。

卷积神经网络

卷积神经网络,这个名字是来源于“卷积”运算符。 它的主要目的,在于从输入的图像中提取特征。而特征的提取,是通过使用输入数据里3×3的区域学习到的。这样,卷积网络就能够保留像素之间的空间关系。

卷积神经网络在以下领域取得了成功:

人脸识别

级联卷积神经网络,可以快速高效地识别人脸。 检测器先用低分辨率评估输入图像,把非面部区域快速排除掉,再以更高的分辨率,仔细处理并精确检测更复杂的区域。

640?wx_fmt=png&wxfrom=5&wx_lazy=1

为了加速检测并提高边框质量,还在级联中引入了校准网络。

640?wx_fmt=png&wxfrom=5&wx_lazy=1

自动驾驶

卷积神经网络传统上用于图像分析和目标识别。

在自动驾驶的项目中,空间纵深的估算能力特别重要。没有它,就无法确保乘客和其他车辆的安全。NVIDIA的自动驾驶汽车等项目,就已经开始使用CNN了。

CNN非常灵活,可以通过多层的参数来处理输入,其中还包括深度信念网络(DBN)。

640?wx_fmt=png&wxfrom=5&wx_lazy=1

另外,还有个好玩的用法, 可以在游戏模拟器中,用CNN来开车并预测转弯的角度 。

循环神经网络

循环神经网络可以生成序列。每次处理单组的真实数据序列之后,就预测接下来会发生什么。那这种模型是怎么一步一步搭起来的呢?

假设,预测的结果是存在概率分布的话,那么可以反复取各种输入值,产生新的序列。输入值的来源可以是已经训练过的网络的输出值,取得越分散越好。换句话说,让神经网络把自己生成的结果,当作真实世界里产生的数据值,用作输入,就像一个人在做梦一样。梦里那些虚幻不存在的场景,也能成为我们记忆中感知的一部分。

640?wx_fmt=png&wxfrom=5&wx_lazy=1

预测

神经网络经过训练后,给定一个输入值,就能得到在预期内的输出值。

如果我们有个神经网络,能够完美地拟合一系列已知的值,那么这个网络也能预测未来的值。

现在,预测股价的模型用得最6。

不同领域里神经网络的应用

在真实的商业环境里,神经网络已经应用很广泛了,比如销售量预测,用户调查,数据有效性,和风险调控。

市场

目标市场与市场细分有关,根据用户不同的消费行为,我们能把市场划分得很细。

按地域分布,经济能力、购买习惯、对产品的态度等维度分类,是神经网络最拿手的事。无监督学习可以自动把有相似属性的用户分类到一起。

零售行业

神经网络用来预测超市的销售量特别有优势,因为它能多维度考虑问题。比如一个产品可能有多大的市场需求量,一个消费者的收入,人口分布,产品价格等方面。

一旦两个商品,在某段时间内他们的销售量存在间接的联系,像一个用户买完打印机之后,很大可能会在3到4个月的时候需要补充新墨盒,那么零售商可以从顾客的购买数据来有效地推产品,避免顾客流失到竞争对手那。

金融行业

神经网络已经成功解决了多个金融类的问题,比如衍生类的保值型理财产品,未来价值的预测,外汇汇率的预测,以及股票市场的表现。以前,是数据技术驱动着软件的发展;现在,神经网络驱动着大家做出更优的理财选择。

医药行业

高效的人体生理系统建模、快速检测疾病这些方面的工作,需要大量神经网络来支持。大家都很看好未来神经网络在医疗领域大规模的应用。

结论

也许,用神经网络解决实际问题的同时,未来神经网络还能当艺术家创作的工具,混合出新的视觉效果。说不定我们还可以从中发现创意的规律。

总的来说,神经网络让计算机更像人,get到越来越多的技能,可以帮我们做更多的事儿。

原文链接:
http://t.cn/RYqmhBG

本文作者:Root
原文发布时间:2017-11-26
相关文章
|
27天前
|
机器学习/深度学习 存储 算法
神经网络分类算法原理详解
神经网络分类算法原理详解
50 0
|
19天前
|
运维 Kubernetes Cloud Native
探索Kubernetes的大二层网络:原理、优势与挑战🚀
在云原生领域,Kubernetes (K8s) 已经成为容器编排的事实标准☁️📦。为了支撑其灵活的服务发现和负载均衡🔍🔄,K8s采用了大二层网络的设计理念🕸️。本文将深入探讨大二层网络的工作原理、带来的好处✨,以及面临的挑战和解决方案❗🛠️。
探索Kubernetes的大二层网络:原理、优势与挑战🚀
|
2天前
|
移动开发 Java Android开发
构建高效Android应用:采用Kotlin协程优化网络请求
【4月更文挑战第24天】 在移动开发领域,尤其是对于Android平台而言,网络请求是一个不可或缺的功能。然而,随着用户对应用响应速度和稳定性要求的不断提高,传统的异步处理方式如回调地狱和RxJava已逐渐显示出局限性。本文将探讨如何利用Kotlin协程来简化异步代码,提升网络请求的效率和可读性。我们将深入分析协程的原理,并通过一个实际案例展示如何在Android应用中集成和优化网络请求。
|
7天前
|
安全 数据建模 网络安全
深入理解SSL数字证书:定义、工作原理与网络安全的重要性
本文阐述了SSL数字证书在网络安全中的关键作用,定义了其作为验证服务器身份的数字凭证,基于PKI体系保障数据传输安全。文章介绍了三种类型的证书,包括DV、OV和EV,适用于不同安全需求的网站。获取和安装证书涉及向证书颁发机构申请并部署到服务器。在网络安全挑战下,正确使用和管理SSL证书对于保护用户数据和提升信任度至关重要。
|
8天前
|
存储 监控 安全
网络安全与信息安全:防范漏洞、应用加密、提升意识
【4月更文挑战第18天】 在数字化时代,网络安全与信息安全保障已成为维护国家安全、企业利益和个人隐私的关键。本文深入探讨网络安全的多面性,包括识别和防御网络漏洞、应用加密技术保护数据以及提升全民网络安全意识的重要性。通过对这些关键领域的分析,文章旨在为读者提供实用的策略和建议,以增强其网络环境的安全防护能力。
10 0
|
9天前
|
数据采集 机器学习/深度学习 数据挖掘
网络数据处理中的NumPy应用实战
【4月更文挑战第17天】本文介绍了NumPy在网络数据处理中的应用,包括数据预处理、流量分析和模式识别。通过使用NumPy进行数据清洗、格式化和聚合,以及处理时间序列数据和计算统计指标,可以有效进行流量分析和异常检测。此外,NumPy还支持相关性分析、周期性检测和聚类分析,助力模式识别。作为强大的科学计算库,NumPy在处理日益增长的网络数据中发挥着不可或缺的作用。
|
14天前
|
安全 网络协议 网络安全
网络原理(5)--HTTPS是如何进行加密的
网络原理(5)--HTTPS是如何进行加密的
11 0
|
14天前
|
存储 JSON 前端开发
网络原理(4)HTTP协议(下)
网络原理(4)HTTP协议
25 0
|
16天前
|
安全 网络协议 物联网
计算机网络基础教程:类型
【4月更文挑战第5天】
25 2
 计算机网络基础教程:类型
|
17天前
|
传感器 监控 安全