一、神经网络基础
1、感知机
Rosenblatt在1957年,于Cornell航空实验室时所发明的一种人工神经网络
有n个输入数据,通过权重与各数据之间的计算和,比较激活函数结果,得出输出
感知机用来解决分类问题。
还不能称为激活函数,只是简单的阈值比较
应用:很容易解决与、或、非问题。如输入x1 x2为1,w1 w2为1,输出为2,阈值设为1.5,就解决了与问题。
单个感知机解决不了的问题,可以增加感知机。如异或问题,可以用如下简单的方式解决:
模拟神经网络:
http://playground.tensorflow.org/#activation=sigmoid®ularization=L2&batchSize=10&dataset=circle®Dataset=reg-plane&learningRate=0.03®ularizationRate=0&noise=0&networkShape=3&seed=0.84062&showTestData=false&discretize=false&percTrainData=50&x=true&y=true&xTimesY=false&xSquared=false&ySquared=false&cosX=false&sinX=false&cosY=false&sinY=false&collectStats=false&problem=classification&initZero=false&hideText=false&showTestData_hide=true&learningRate_hide=true®ularizationRate_hide=true&percTrainData_hide=true&numHiddenLayers_hide=true&discretize_hide=true&activation_hide=true&problem_hide=true&noise_hide=true®ularization_hide=true&dataset_hide=true&batchSize_hide=true&playButton_hide=false
一个感知机相当于建立了一条直线:
增加一个感知机的结果:
三个感知机的结果:
2、人工神经网络
定义:在机器学习和认知科学领域,人工神经网络(artificial neural network,缩写ANN),简称神经网络(neural network,缩写NN)或类神经网络,是一种模仿生物神经网络的结构和功能的计算模型,用于对函数进行估计或近似。
神经网络的种类:
基础神经网络:单层感知器,线性神经网络,BP神经网络,Hopfield神经网络等
进阶神经网络:玻尔兹曼机,受限玻尔兹曼机,递归神经网络等
深度神经网络:深度置信网络,卷积神经网络,循环神经网络,LSTM网络等
杰弗里·埃弗里斯特·辛顿 (英语:Geoffrey Everest Hinton)(1947年12月6日-)是一位英国出生的计算机学家和心理学家,以其在神经网络方面的贡献闻名。辛顿是反向传播算法的发明人之一,也是深度学习的积极推动者。
感知机---->神经元-----多个----->神经网络
不同的结构解决不同的问题
神经网络的特点:
- 输入向量的维度和输入神经元的个数相同
- 每个连接都有个权值
- 同一层神经元之间没有连接
- 由输入层,隐层,输出层组成
- 第N层与第N-1层的所有神经元连接,也叫全连接
神经网络的组成
- 结构(Architecture):例如,神经网络中的变量可以是神经元连接的权重
- 激励函数(Activity Rule):大部分神经网络模型具有一个短时间尺度的动力学规则,来定义神经元如何根据其他神经元的活动来改变自己的激励值。
- 学习规则(Learning Rule):学习规则指定了网络中的权重如何随着时间推进而调整。(反向传播算法)
3、神经网络API模块
在使用tensorflow时候,tf.nn,tf.layers,tf.contrib模块有很多功能是重复的
tf.nn:提供神经网络相关操作的支持,包括卷积操作(conv),池化操作(pooling),归一化,loss,分类操作,embedding,RNN,Evaluation
tf.layers:主要提供的高层神经网络,主要和卷积相关的,对tf.nn进一步封装
tf.contrib:tf.contrib.layers提供能够将计算图中的网络层 正则化 摘要操作 是构建计算图的高级操作,但是tf.contrib包不稳定有一些实验代码
4、浅层人工神经网络模型
(1)softMax回归
最后得出的是个概率值:
softMax作用:
计算概率值;
使得所有类别的概率值相加都等于1 ;
(2)损失计算API
交叉熵损失
为神经网络结果,