引言

这段时间花了不少精力在了解人工神经网络(ANN),对其设计思想和基本算法有了一定的了解,把相关知识整理如下,一方面梳理思路,增强理解,另一方面也希望对想了解ANN的人有点帮助。

1 时代大背景

首先,我们了解以下人工神经网络的发展历史。

1943年,神经科学家和控制论专家Warren McCulloch和逻辑学家Walter Pitts基于数学和阈值逻辑算法创造了一种神经网络计算模型;
1957年,心理学家Frank Rosenblatt创造了模式识别算法感知机,用简单的加减算法实现了两层的计算机学习网络;
1974年,Paul Werbos在博士论文中提出了用误差反向传导来训练人工神经网络有效解决了异或回路问题,使得训练多层神经网络称为可能;
1985年,Rumelhart和McClelland提出了BP网络误差反向传播学习算法;
1998年,以Yann Lecun为首的研究人员实现了一个七层的卷积神经网络LeNet-5识别手写数字;
2006年,以Geoffrey Hinton为代表的加拿大高等研究院附属机构的研究人员开始将人工神经网络/联结主义重新包装为深度学习并进行推广;
2009-2012年,瑞士人工智能实验室IDSIA发展了递归神经网络和深前馈神经网络;
2012年,Geoffrey Hinton组的研究人员在ImageNet2012上夺冠,他们的图像分类效果远远超过了第二名,深度学习热潮由此开始一直持续到现在;

备注:ImageNet 是一个计算机视觉系统识别项目, 是目前世界上图像识别最大的数据库。

由此可知,对神经网络的研究是由来已久,50年代就有了感知机模型,是一种两层神经网络,90年代开始出现卷积神经网络,但是直到最近,随着互联网和大数据时代的到来,深度学习及神经网络的研究和应用得到广泛的关注,越来越多的公司企业在投入这项事业。

数据爆炸

我们正身处数据爆炸的时代漩涡。互联网公司每天的业务日志、系统日志都是PB级的。医院里的病例数据,每天的交通数据,运营商里的通信数据,智能手机用户的位置数据,甚至城市里无处不在的监控数据。

但是,数据并不等于信息!

没有整理、清洗、分析处理、展示的数据,是没有价值的,是无用的。因此,如何将数据转化为信息,进而转化为知识,成为我们这个时代最迫切的需求之一。

在数据中获取信息的技术便是数据挖掘——Data Mining!

越来越多的公司,从不同的维度,不同的切入点,进行数据挖掘技术的研究,推进了不同技术的发展。SPSS、SAS是比较传统的数据挖掘工具,主要是从传统统计学领域进行数据的整理和分析。Pentaho是个很好用的开源BI框架,能方便构建自己的商业决策系统。还有OLAP,OLTP技术。在存储领域,分布式、并行处理数据库,在近些年也如火如荼的发展,为大数据存储和计算提供底层保障。还有数据仓库技术。

而机器学习,则是从计算机模拟人类行为的角度,去推进数据挖掘技术的发展。机器学习是一门多领域交叉学科,涉及概率论、统计学、逼近论、凸分析、算法复杂度理论等多门学科。除了数据挖掘,还应用于计算机视觉、自然语言处理、生物特征识别、搜索引擎、医学诊断、检测信用卡欺诈、证券市场分析、DNA序列测序、语音和手写识别、战略游戏和机器人运用等。

机器学习算法

机器学习的算法,主要可分为以下三类:

信息论:计算数据中属性的信息量,以信息增量作为决策依据;决策树算法为代表,如ID3,IBLE算法;(信息量是概率倒数的对数)
集合论:聚类分析,相似度,距离算法;
仿生物技术:把生物体的运转过程转换成数学模型,再用数学模型去解决现实世界的非生物问题,如神经网络、遗传算法!

总结

这就我们所处的时代背景——数据爆炸,怎么样去从数据里获得信息呢?就需要进行数据挖掘!数据挖掘的需求催生了不同领域的技术进步,如统计工具,决策系统,数据存储,机器学习算法等!

而神经网络则是机器学习领域的重要算法之一。

2 人工神经网络

人工神经网络(Artificial Neural Networks)是一种模仿生物神经网络行为特征,进行分布式并行信息处理的算法数学模型。这种网络依靠系统的复杂程度,通过调整内部大量节点(神经元)之间相互连接的权重,从而达到处理信息的目的。

生物,或者说人类,真的是被设计的无比精妙,有时候,会怀疑进化论的真实性,人类太复杂了,从猴子变成人,只用了几百万年?真的不可思议。

神经元结构

一个神经元可以通过轴突作用于成千上万的神经元,也可以通过树突从成千上万的神经元接受信息。

上级神经元的轴突在有电信号传导时释放出化学递质,作用于下一级神经元的树突,树突受到递质作用后产生出电信号,从而实现了神经元间的信息传递。

化学递质可以使下一级神经元兴奋或抑制。

人工神经网络的重要概念:

1 权值矩阵:相当于神经网络的记忆!在训练的过程中,动态调整和适应。

如巴普洛夫狗与铃声的实验,神经记忆是可以训练的。我们都应该有过这样的经历,某段时间心情不好,失恋了,一周或者一个月的时间,一直在听某几首歌。过了很久,或许几年后,当再听到那首歌的时候,竟能唤醒自己当时的记忆和感受。

神经网络,是非线性的,“因”与“果”非直接相关。猫可爱,所以爱猫,这是直接因果;但爱屋及乌,因为爱一个姑娘,也爱上了她的猫,就是间接相关了。神经网络非常善于处理这样隐晦的关系。

《扁鹊见蔡桓公》中“君之疾在腠理,汤熨之所及也;在肌肤,针石之所及也;在肠胃,火齐之所及也;在骨髓,司命之所属,无奈何也。今在骨髓,臣是以无请也”

扁鹊的大脑里有一套面向医理的神经网络,他可以预见生死!现代医学,基本上是直来直去,拍个片,头痛医头脚痛医脚。问题是,不是所有的病都有症有状。

可以这么说,每个老中医都是自带一套神经网络在行医,很玄乎,但是能治病,当然也容易浑水摸鱼。

人工神经网络,真的就是很玄乎,能改变你认知世界和处理问题的方式!

2 激励函数:

-- 非线性:
-- 可微性:能使用梯度下降法求极值!
-- 单调性:凸函数,严格凸函数最多有一个最小值!
-- f(x) x
-- 输出范围:输出值控制在有限区间,

激励函数很重要,无论是对建立神经网络的模型,还是理解神经网络。首先要了解,它有以下几个影响:
1 如何能更好的求解目标函数的极值!——高等数学中求解函数极值的知识!可微,单调!
2 如何提升训练效率,让梯度的优化方法更稳定;
3 权值的初始值,不影响训练结果!

BP神经网络的结构

BP神经网络,利用输出后的误差来估计输出层的直接前导层的误差,在用这个误差估计更前一层的误差,最终获得所有各层的误差估计。

与感知机不同,这是一个多层(>=3)的全连接(FC:Fully-Connected)网络。所谓的全连接,是指所有神经元节点,都与其上一层或下一层的所有节点都有连接!

BP算法的详细推导过程,可参考:http://www.sohu.com/a/148526237_697750

目标函数,又称为损失函数,用于衡量权值矩阵的误差。当目标函数取极小值时,对应的权值矩阵最为理想,因此通过梯度下降法求多元目标函数极小值。

得到重要结论:每个权重的梯度都等于与其相连的前一层节点的输出乘以与其相连的后一层的反向传播的输出。

求得权重的梯度后,就可以对权重矩阵进行修正,然后进行下一次的训练!

TensorFlow 演示BP神经网络 :http://playground.tensorflow.org/

通过该演示,可以直观的感受到神经网络的魔力了!

概念
1 epoch:所有数据样本完整的训练一次;
2 batch:一次训练使用的样本数,batch_size * times = epoch_size,batch_size 会影响到模型的优化程度和速度,正确选择batch_size 让程序在内存效率和内存容量之间达到最佳平衡。
3 learning rate:学习率,梯度乘以学习率就是权值的修正值,学习率太小的话会训练的慢,太大的或就不平滑;

注意观察权值的变化,也就是连接线的粗细变化。很有意思,改变训练模型,会发现不同的输入元素的重要性也发生了变化。

很像中医,不同的医生开了不同的方子,却可以治同样的病。随着神经网络研究的深入,或许未来某一天,人类可以发明一个机器神医。人出生后,会通过穿戴设备或芯片,收集所有的状态信息,温度、血液中各成分浓度、情绪、饮食等等等等。以这样一个全量信息,去训练机器医生,怎么样?

听人家说,老中医带徒弟,跟医学院完全不同,就是手把手教,来了个孕妇,自己号完脉,再教徒弟号,记住了啊,这就是喜脉。

卷积与傅里叶变换

理解卷积之前,需要搞明白几个概念: 时域,频域,傅里叶变换,卷积定理。

大学时,学习工程数学、泛函分析、数字信息,学的糊里糊涂,只为了应付考试,也不知道有什么用,这段时间学习ANN,才感觉到数学基础不够用了。

频域:横坐标频率,纵坐标振幅!!!!
时域:横坐标时间,纵坐标投影!!!!
傅里叶变换:时域与频域变换,将原来难以处理的时域信号转换成了易于分析的频域信号(信号的频谱),可以利用一些工具对这些频域信号进行处理、加工.最后还可以利用傅立叶反变换将这些频域信号转换成时域信号.
卷积定理:函数卷积的傅里叶变换是函数傅里叶变换的乘积,也就是说,在一个域中的卷积相当于另一个域中的乘积,例如时域中的卷积就对应与频域中的乘积!

想有更多了解请参考: http://daily.zhihu.com/story/3935067

时域和频域是一个很有意思的概念,时域是线性的,随着时间这条线波动,而频域是静态。比如音乐,我们听到的声音是线性的,我们可以理解和感受音乐,而乐谱是静态的,它描述了音乐的一切,从开始到结束。

去年有部电影叫《降临》,里面的外星人就是非线性思维,他们能预测未来,仿佛可以看到生命的频谱。女主角在研究外星人的语言时,也渐渐获得了这种能力。在她们看来,生命不再是一次探索,不再简简单单为了荣华富贵,而是像一首音乐,一首歌,明知道乐谱中描述了一切,还是安静的欣赏,而不是去改变。

女主角,明知道女儿出生后会夭折,也仍然选择按照预见的命运走完一生。不同的思维方式,决定了不同的行为方式!

卷积,也有一种魔力,就是可以让我们在时域中做卷积运算,来达到变换频域的效果。

卷积核与图像滤波

我们所看到的图像,均为空间域内的表现形式,我们无法辨识出图像的频域形式。要进行频域内的滤波器处理,首先就需要进行傅里叶变换,然后直接进行滤波处理,最后再用反傅里叶变换倒回到空间域内。

图像是一个二维的离散信号,对图像卷积,就是求卷积核作用在图像后得到的图像对于卷积核的累加响应!

图像处理的详细解释 :http://blog.csdn.net/zhoufan900428/article/details/17194289

人看到一张图像,能瞬间获取图像的信息,但是计算机却不能,计算机看到的图像是一个由像素点组成的数字矩阵!如何从巨量的像素矩阵数据中提取信息呢?怎样让计算机理解图像的内容,识别图像呢?

对图像进行卷积,就是为了提取图像特征!

先看看卷积的效果吧:

对两个人像进行卷积:

卷积神经网络的结构示意图:

经典的神经网络模型:

Lenet,1986年
Alexnet,2012年
GoogleNet,2014年
VGG,2014年
Deep Residual Learning,2015年

机器学习开源框架:

Caffe
Microsoft Cognitive Toolkit
MXNet
Scikit-learn
Spark Mllib
TensorFlow
Theano
Keras
DeepLearning4j

3 Keras 介绍与实例:

Keras是一个高层神经网络库,Keras由纯Python编写而成并基Tensorflow或Theano;

人工神经网络概念梳理与实例演示相关推荐

  1. 人工神经网络概念及组成,人工神经网络基本结构

    1.简述人工神经网络的结构形式 神经网络有多种分类方式,例如,按网络性能可分为连续型与离散型网络,确定型与随机型网络:按网络拓扑结构可分为前向神经网络与反馈神经网络.本章土要简介前向神经网络.反馈神经 ...

  2. 人工神经网络原理及应用,深度神经网络应用实例

    神经网络请教! <人工神经网络原理及仿真实例>高隽编著,机械工程出版社. 我感觉挺好的. 关键看你用什么来实现神经网络,是matlab.vc还是vhdl. 现任安徽省第九届政协委员, 安徽 ...

  3. 人工神经网络 神经网络区别_人工神经网络概述

    人工神经网络 神经网络区别 Artificial neural networks (ANN) in machine learning (artificial intelligence) are com ...

  4. 人工神经网络发展历史及算法应用综述

    作者:柯悦 简 介: 人工神经网络概念自提起以来,它的发展经历了起起落落,而如今人工神经网络也与各个领域相结合,实现它的价值.人工神经网络主要用来处理分类与回归的问题.决定神经网络发展的三个基本要素主 ...

  5. 【人工智能】话说人工智能与人工神经网络的历程

    人工智能与机器学习 人工智能是计算机科学的一个分支,它企图了解智能的实质,并生产出一种新的能以人类智能相似的方式做出反应的智能机器,该领域的研究包括机器人.语言识别.图像识别.自然语言处理和专家系统等 ...

  6. 《精通并发与Netty》学习笔记(13 - 解决TCP粘包拆包(一)概念及实例演示)

    一.粘包/拆包概念 TCP是一个"流"协议,所谓流,就是没有界限的一长串二进制数据.TCP作为传输层协议并不不了解上层业务数据的具体含义,它会根据TCP缓冲区的实际情况进行数据包的 ...

  7. 人工神经网络的应用实例,人工神经网络简单例题

    什么是神经网络,举例说明神经网络的应用 我想这可能是你想要的神经网络吧! 什么是神经网络:人工神经网络(Artificial Neural Networks,简写为ANNs)也简称为神经网络(NNs) ...

  8. 人工神经网络的硬件实现,人工神经网络基本概念

    人工神经网络的论文 神经网络的是我的毕业论文的一部分4.人工神经网络人的思维有逻辑性和直观性两种不同的基本方式. 逻辑性的思维是指根据逻辑规则进行推理的过程:它先将信息化成概念,并用符号表示,然后,根 ...

  9. 人工智能 人工神经网络,人工神经网络应用实例

    人工智能应用在哪些方面呢?能举几个典型的例子吗? 人工智能应用的领域非常广泛,随着人工智能的不断发展,这些都会一一实现.1.智能制造领域. 标准化工业制造中信息感知,自主控制,系统协调,个性化定制,检 ...

  10. 人工神经网络评价法案例_人工神经网络应用实例

    1 / 5 人工神经网络在蕨类植物生长中的应用 摘要 :人工神经网络 (ARTIFICIAL NEURAL NETWORK ,简称 ANN) 是目前国际上一门发展迅速的 前沿交叉学科. 为了模拟大脑的 ...

最新文章

  1. 数据挖掘的一些经典算法
  2. python使用numpy的np.float_power函数计算numpy数组中每个数值的指定幂次(例如平方、立方)、np.power函数默认返回整数格式、np.float_power函数返回浮点数
  3. jQuery 原理的模拟代码 -4 重要的扩展函数 extend
  4. String 的普通构造函数、拷贝构造函数、析构函数、赋值函数
  5. 【python进阶】_正则表达式
  6. VTK:PolyData之ExtractSelectionOriginalId
  7. 洛谷 - P2762 太空飞行计划问题(最大权闭合图+路径打印)
  8. 如何在WES 7的开发工具ICE里面添加OEM客户信息
  9. 阿里云高效基因序列检索助力新冠肺炎病毒序列快速分析
  10. 漫谈新零售:疫情对新零售的十大影响
  11. pymongo 的使用实例(超细)
  12. Android编译默认英语,Android 编译系统 (一)
  13. Python3数据结构总结(列表list,元组tuple,集合set,字典dict,堆栈stack,队列queue和遍历技巧)
  14. IDG研究显示,混合云是数字化转型的“强大助推器”
  15. 马化腾惊现Leetcode每天刷题?为啥大佬都这么努力!
  16. python span()函数_Python正则表达式六种函数实例讲解
  17. 使用ajax提交form表单,包括ajax文件上传 转http://www.cnblogs.com/zhuxiaojie/p/4783939.html...
  18. 黑马案例学成在线网页的实现
  19. 华为称鸿蒙系统支持第三方手机,“开源开放毫无保留”,欢迎厂商使用
  20. 【python毕业设计源码】汽车销售系统

热门文章

  1. 月租最便宜的手机卡_给大家推荐几张0月租,打电话还便宜的手机卡
  2. 汽车传感器:自动驾驶“第一步”
  3. linux命令之文件和目录操作
  4. Python构建投资模型(1)——从天天基金网爬数
  5. 【汇编】intel core cpu中常用的寄存器
  6. 20145322何志威《网络对抗技术》Exp6 信息搜集技术
  7. 澳洲穷人的生活什么样?
  8. 通信原理-确定信号分析
  9. 连接腾讯云云服务器的mysql
  10. 8项引导技能在Scrum中的应用