-- 非线性:
-- 可微性:能使用梯度下降法求极值!
-- 单调性:凸函数,严格凸函数最多有一个最小值!
-- 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;
引言这段时间花了不少精力在了解人工神经网络(ANN),对其设计思想和基本算法有了一定的了解,把相关知识整理如下,一方面梳理思路,增强理解,另一方面也希望对想了解ANN的人有点帮助。1 时代大背景首先,我们了解以下人工神经网络的发展历史。1943年,神经科学家和控制论专家Warren McCulloch和逻辑学家Walter Pitts基于数学和阈值逻辑算法创造了一种神经网络计算模型;1957年,心
定义:BP是一种多层前馈神经网络,主要特点信号向前传递,误差反向传播。在传递过程中,输入信号从输入层经隐含层,直至输出层。每一层神经元的状态只影响下一层神经元的状态。如果输出层未达到期望输出,则根据预测误差调整权值和阈值,使网络输出不断逼近预测输出。
1 网络初始化:确定输入、隐含、输出层神经元个数