神经网络(一)

作者: Daily_Note | 来源:发表于2018-11-25 17:00 被阅读160次

    神经网络

    1. 神经网络基础

    2. 浅层神经网络分析

    3. 卷积神经网络

    4. 卷积神经网络MNIST数字图片识别


    1. 神经网络基础

    神经网络:想让计算机模拟大脑处理信息的过程。

    如:有一杯水,手摸一下,收集温度信息,在神经元中进行传递,心中有一个默认值,看是否温度太高,还是太低。

    1. 感知机
      • 最早的基于神经网络的分类问题。
      • 有n个数据,通过权重与各数据之间的计算和,比较激活函数结果,得出输出(和线性回归特别像)。有一个阈值,输出超过阈值要干什么,不超过阈值要做什么。
      • 感知机解决的是分类的问题,线性回归解决回归问题。
      • 应用:很容易解决与,或,非问题。
        • x1,x2两个特征值,w1,w2两个权值。
        • 与:所有输入为1,输出为1,否则为0。w1=1,w2=1,阈值为1.5,只有输入(1,1)的输出值为1。
        • 或:只要有一个为1,输出就为1。
        • 异或问题:相同为0,不同为1,使用一个感知机无法很好的划分。(单个感知机解决不了的问题,可以增加感知机)
        • 逻辑回归:sigmoid,激活函数,进行分类。
    2. 人工神经网络
      1. 神经网路的发展

        • 定义:在机器学习和认知科学领域,人工神经网络(artificial neural network,缩写ANN),简称神经网络(:neural network,缩写NN)或类神经网络,是一种模仿生物神经网络的结构和功能的计算模型,用于对函数进行估计或近似。
        • 种类:
          • 基础神经网络:单层感知器,线性神经网络,BP神经网络,Hopfield神经网络等。
          • 进阶神经网络:玻尔兹曼机,受限玻尔兹曼机,递归神经网络等。
          • 深度神经网络:深度置信网络,卷积神经网络,循环神经网络,LSTM网络等。
        • 杰弗里·埃弗里斯特·辛顿。(英语:Geoffrey Everest Hinton)是一位英国出生的计算机学家和心理学家,以其在神经网络方面的贡献闻名。辛顿是反向传播算法的发明人之一,也是深度学习的积极推动者。
          • 上个世纪七八十代的时候,神经网路的雏形已经出现了,但是不被大多人所接受,主要由于神经网络的分类过程无法解释,觉得没有用,只有Hinton带着它的团队坚持到了现在。
      2. 神经网络

        • 感知机-->神经元-->多个-->神经网络
        • 特点:
          • 输入向量的维度和输入神经元的个数相同
          • 每个连接都有权值
          • 同一层神经元之间没有连接
          • 由输入层,隐层,输出层组成
          • 第N层和N-1层的所有神经元连接,也叫全连接层。
        • 组成:
          • 结构:神经网络中的变量可以是神经元连接的权重
          • 激活函数:大部分神经网络模型具有一个短时间尺度的动力学规则,来定义神经元如何根据其他神经元的活动来改变自己的激励值。
          • 学习规则:学习规则制定了网络中的权值如何随着时间推进而调整。(反向传播算法)

        神经网络用于多分类问题。某一个样本-->得出属于全部类别的每一个概率。(softmax).有多少个类别,输出就是多少个值。

        • 神经网络API
          • tf.nn:提供神经网络相关操作的支持,包括卷积操作(conv)、池化操作(pooling)、归一化、loss、分类操作、embedding、RNN、Evaluation。(能体会到一步一步怎么做的。)
          • tf.layers:主要提供的高层的神经网络,主要和卷积相关的,对tf.nn的进一步封装。
          • tf.contrib:tf.contrib.layers提供能够将计算图中的网络层、正则化、摘要操作、是构建计算图的高级操作,但是tf.contrib包不稳定以及一些实验代码。

    2. 浅层神经网络分析

    1. softmax回归


      softmax.png

    神经元的输出值,经过softmax得出每一个分类的概率值。


    softmax回归解释
    1. 损失计算
    算法 策略 优化
    线性回归 均方误差 梯度下降
    逻辑回归 对数似然损失 梯度下降
    神经网络 交叉熵损失 梯度下降,反向传播算法

    正向传播:输入经过一层层的计算得出输出
    反向传播:从损失计算开始,梯度下降更新权重

    • 交叉熵损失:


      交叉熵.png
      image.png
      • 一个样本就有一个交叉熵损失,求所有样本的损失,然后求平均损失。


        image.png

        如图所示,softmax得出的类别概率为左边的数字,样本的实际类别为右边的数字(使用了one-hot编码),用交叉熵的公式求出损失值,越小说明越准确,若softmax得出的类别概率与实际的一模一样,则交叉熵损失值为0。

    1. API介绍
      1. 全连接-从输入直接到输出
        • tf.matmul(a, b, name=None)+bias
          • return:全连接结果,供交叉损失运算
          • 不需要激活函数(因为是最后的输出)
      2. SoftMax计算、交叉熵
        • tf.nn.softmax_cross_entropy_with_logits(labels=None,logits=None,name=None)
          • 计算logits和labels之间的交叉熵损失熵
          • labels:标签值(真实值)
          • logits:样本加权之后的值
          • return:返回损失值列表
        • 损失值列表平均值计算
          • tf.reduce_mean(input_tensor)
      3. 损失下降API
        • tf.train.GradientDescentOptimizer(learning_rate)
          • learning_rate:学习率
          • minimize(loss):最小化损失
          • return:梯度下降op

    相关文章

      网友评论

        本文标题:神经网络(一)

        本文链接:https://www.haomeiwen.com/subject/nssfqqtx.html