一、神经网络基础
1、什么是神经网络
人工神经网络(Artificial Neural Network,简写为ANN)。也简称为神经网络(NN)
是一种模仿生物神经网络(动物的中枢神经系统,特别是大脑)结构和功能的计算模型
经典的神经网络结构包含三个层次的神经网络。分别为输入层、输出层以及隐藏层
其中每层的圆圈代表一个神经元,隐藏层和输出层的神经元有输入的数据计算后输出,输入层的神经元只是输入
2、神经网络的特点
(1)每个连接都有个权值
(2)同一层神经元之间没有连接
(3)最后的输出结果对应的层也称之为全连接层
神经网络是深度学习的重要算法,在图像(如图像的分类、检测)和自然语言处理(如文本分类、聊天等)有很多应用
3、为什么设计这样的结构呢
首先从一个最基础的结构说起—神经元。以前也称之为感知机。神经元就是要模拟人的神经元结构
一个神经元通常具有多个树突,主要用来接受传入信息。而轴突只有一条,轴突尾端有许多轴突末梢可以给其他多个神经元传递信息。轴突末梢跟其他神经元的树突产生连接,从而传递信号。这个连接的位置在生物学上叫“突触”
4、感知机
PLA:Perceptron Learning Algorithm
感知机就是模拟这样的大脑神经网络处理数据的过程。感知机模型如下:
感知机是一种基础的分类模型,类似于逻辑回归,不同的是,感知机的激活函数用的是sign,而逻辑回归用的sigmoid。感知机也具有连接的权重和偏置
输入层有x1 x2 x3 x4四个特征,相当于树突收集信息,每个树突都带有权重,加权,加权之后结果再经过偏置,一系列的处理,再经过激活函数func,最后输出
u=加权(权重*特征值)+偏置
u映射到sign(u)函数当中,如果u大于0,就给正1,如果u小于等于0,就给负1
sign函数:
5、感知机可以解决的问题 — 简单的或、与问题
或问题:
x1 x2
0 0 => 0
0 1 => 1
1 0 => 0
1 1 => 1
与问题:
x1 x2
0 0 => 0
0 1 => 0
1 0 => 0
1 1 => 1
相当于用w1x1 + w2x2,看和阈值b之间的关系
二、playground使用
1、网址https://playground.tensorflow.org/
2、playground演示
目标:区分红点和蓝点
FEATURES:是特征
HIDDEN LAYER:是隐藏层
neurons:是神经元
(1)特征只按照直线分割,2个神经元,没有激活函数
计算不出
(2)特征只按照直线分割,加了两层,各4个神经元,设置激活函数
基本可以计算出
(3)特征按照十字分割,2个神经元,没有激活函数
可以计算出来
可以看出特征取的准确,很快可以计算出来。特征取的不是那么完整,可以通过增加神经元和激活函数计算出来
三、神经网络原理
1、神经网络的主要用途在于分类,那么整个神经网络分类的原理是怎么样的?
围绕损失、优化这两块内容
2、神经网络输出结果如何分类?
神经网络解决多分类问题最常用的方法是设置n个输出节点,其中n为类别的个数
任意事件发生的概率都在0和1之间,且总有某一个事件发生(概率的和为1)。如果将分类问题中“一个样例属于某一个类别”看成一个概率事件,那么训练数据的正确答案就符合一个概率分布。如何将神经网络前向传播得到的结果也变成概率分布呢?softmax回归就是一个非常常用的方法