初识神经网络---My way of AI18

感知机

说到神经网络之前我们先说一下感知机,它其实是一种伪神经元。
有n个数据,通过权重与各种数据之间的计算和比较**函数结果,得出输出,它的主要目的是解决分类问题。

但是如何现在是有一个感知机解决不了的我们就引入了多个感知机,这其实也就是我们常说的svm算法。

我们登陆playground.tensorflow.org网站去模拟一下单个以及多个感知机的分类效果。

1.一个神经元进行二分类
初识神经网络---My way of AI18

可以明显的看出分类结果毫不准确,就是因为一条线不可能分开。

2.两个神经元
初识神经网络---My way of AI18

3.三个神经元
初识神经网络---My way of AI18

可以看出来三个神经元得出的结果已经是非常准确了。所以可以看得出来,所谓的感知机其实就是神经网络(神经元)。

神经网络

神经网络的一些过程无法解释(其实今天10.28才在csdn上看到新闻,国外有一些科学家把深度学习比作是炼金术,hhhh),我讨厌将深度学习称为AI

多个神经元(感知机)组成神经网络。不同的结构解决不同的问题,不只是分类,回归及其他问题。

特点

  1. 输入向量维度与输入神经元个数相同
  2. 每个连接都有权值
  3. 同一层神经元之间没有连接
  4. 由输入层,隐层和输出层组成
  5. 第N层和第N-1层的所有神经元连接,叫做全连接

组成

  1. 结构:神经网络中的权重,神经元等
  2. **函数
  3. 学习规则:学习规则规定了网络中的权重如何随着时间推进而调整(反向传播算法)

神经网络。解决多分类,得出某一个样本属于全部样本的概率,所有有多少个类别就有多少个类别概率的输出。

神经网络的模块选择:
tf.nn:提供神经网络的基本操作
tf.layers:主要是对tf.nn的进一步封装
tf.contrib:将tf.layers进一步封装,目前处于试验阶段还不稳定

学习中采用tf.nn模块体会神经网络的流程

浅层的人工神经网络模型

SoftMax回归

Si=ei/(e1+e2+…+ej)求出的是一个概率值,其中i代表的是第i个类别求出的值,j代表一共j个列别。这样就可以求出各个类别的概率。且从公式可以看出来所有类别的概率值相加等于1。
初识神经网络---My way of AI18

神经网络用交叉熵函数衡量损失
其实就是信息熵,一个样本就有一个交叉熵损失,y\i代表是真实值,yi代表预测概率
初识神经网络---My way of AI18

优化:反向传播算法(就是梯度下降)

因为神经网络有反响传播的概念,我们把数据的输入叫做正向传播,我们把更新权重叫做反向传播。可以参考李金洪的《深度学习之tensorflow入门与实战》。

API

softmax

初识神经网络---My way of AI18

损失值列表平均值计算

初识神经网络---My way of AI18

反向传播算法API

初识神经网络---My way of AI18

author: [email protected] 欢迎交流