初识神经网络---My way of AI18
感知机
说到神经网络之前我们先说一下感知机,它其实是一种伪神经元。
有n个数据,通过权重与各种数据之间的计算和比较**函数结果,得出输出,它的主要目的是解决分类问题。
但是如何现在是有一个感知机解决不了的我们就引入了多个感知机,这其实也就是我们常说的svm算法。
我们登陆playground.tensorflow.org网站去模拟一下单个以及多个感知机的分类效果。
1.一个神经元进行二分类
可以明显的看出分类结果毫不准确,就是因为一条线不可能分开。
2.两个神经元
3.三个神经元
可以看出来三个神经元得出的结果已经是非常准确了。所以可以看得出来,所谓的感知机其实就是神经网络(神经元)。
神经网络
神经网络的一些过程无法解释(其实今天10.28才在csdn上看到新闻,国外有一些科学家把深度学习比作是炼金术,hhhh),我讨厌将深度学习称为AI。
多个神经元(感知机)组成神经网络。不同的结构解决不同的问题,不只是分类,回归及其他问题。
特点
- 输入向量维度与输入神经元个数相同
- 每个连接都有权值
- 同一层神经元之间没有连接
- 由输入层,隐层和输出层组成
- 第N层和第N-1层的所有神经元连接,叫做全连接
组成
- 结构:神经网络中的权重,神经元等
- **函数
- 学习规则:学习规则规定了网络中的权重如何随着时间推进而调整(反向传播算法)
神经网络。解决多分类,得出某一个样本属于全部样本的概率,所有有多少个类别就有多少个类别概率的输出。
神经网络的模块选择:
tf.nn:提供神经网络的基本操作
tf.layers:主要是对tf.nn的进一步封装
tf.contrib:将tf.layers进一步封装,目前处于试验阶段还不稳定
学习中采用tf.nn模块体会神经网络的流程
浅层的人工神经网络模型
SoftMax回归
Si=ei/(e1+e2+…+ej)求出的是一个概率值,其中i代表的是第i个类别求出的值,j代表一共j个列别。这样就可以求出各个类别的概率。且从公式可以看出来所有类别的概率值相加等于1。
神经网络用交叉熵函数衡量损失
其实就是信息熵,一个样本就有一个交叉熵损失,y\i代表是真实值,yi代表预测概率
优化:反向传播算法(就是梯度下降)
因为神经网络有反响传播的概念,我们把数据的输入叫做正向传播,我们把更新权重叫做反向传播。可以参考李金洪的《深度学习之tensorflow入门与实战》。
API
softmax
损失值列表平均值计算
反向传播算法API
author: [email protected] 欢迎交流