神经网络常见概念总结

激活函数:将神经网络上一层的输入,经过神经网络层的非线性变换转换后,通过激活函数,得到输出。常见的激活函数包括:sigmoid, tanh, relu等。https://blog.csdn.net/u013250416/article/details/80991831

为什么要引入非线性激活函数

如果不使用非线性激活函数,激活函数本质上相当于f(x)=ax+b。在这种情况下,神经网络每一层的输出都是上层输入的线性函数。此时,不管神经网络有多少层,输出与输入都是线性关系,与没有隐层是一样的。也就相当于最原始的感知机,连最基本的异或问题都无法解决,更别说其他更复杂的非线性问题。

损失函数:度量神经网络的输出的预测值,与实际值之间的差距的一种方式。常见的损失函数包括:最小二乘损失函数、交叉熵损失函数、回归中使用的smooth L1损失函数等。

优化函数:也就是如何把损失值从神经网络的最外层传递到最前面。如最基础的梯度下降算法,随机梯度下降算法,批量梯度下降算法,带动量的梯度下降算法,Adagrad,Adadelta,Adam等:https://blog.csdn.net/u013250416/article/details/81090059

梯度下降法:反向求导,调整w和b权重值,使得损失函数

手写数字mnist数据集分类代码示例:

# coding: utf-8

# In[2]:

import tensorflow as tf
from tensorflow.examples.tutorials.mnist import input_data

# In[3]:

#载入数据集
mnist = input_data.read_data_sets("MNIST_data",one_hot=True)

#每个批次的大小
batch_size = 100  # 一次性将100张图片放入这个神经网络中训练(以矩阵的形式放入)
#计算一共有多少个批次
n_batch = mnist.train.num_examples // batch_size

#定义两个placeholder
x = tf.placeholder(tf.float32,[None,784]) # 按批次传入值,那么none就会变成100
y = tf.placeholder(tf.float32,[None,10]) # y是标签

#创建一个简单的神经网络(只有输入和输出层,没有隐藏层)。784个输入和10个输出神经元
W = tf.Variable(tf.zeros([784,10]))
b = tf.Variable(tf.zeros([10]))
prediction = tf.nn.softmax(tf.matmul(x,W)+b)

#二次代价函数
loss = tf.reduce_mean(tf.square(y-prediction))
#使用梯度下降法
train_step = tf.train.GradientDescentOptimizer(0.2).minimize(loss)

#初始化变量
init = tf.global_variables_initializer()

#结果存放在一个布尔型列表中
correct_prediction = tf.equal(tf.argmax(y,1),tf.argmax(prediction,1))#(equal函数的作用是比较其内的2个参数,相同返回true,不同返回false)argmax返回一维张量中最大的值所在的位置
#求准确率
accuracy = tf.reduce_mean(tf.cast(correct_prediction,tf.float32))#cast函数的作用是类型转换,把布尔型转换为32位浮点型(true变为1.0,false变为0.0)

with tf.Session() as sess:
    sess.run(init)
    for epoch in range(21):#执行完一次这个for循环,相当于把训练集的图片计算了二十一次
        for batch in range(n_batch):#执行完一次这个for循环,相当于把训练集的图片计算了一次
            batch_xs,batch_ys =  mnist.train.next_batch(batch_size)#获得每个批次的100张图片,图片数据存在xs里,标签存在ys里
            sess.run(train_step,feed_dict={x:batch_xs,y:batch_ys})#获得一个批次的数据进行一次训练,再获得下一个批次的数据再训练······

        acc = sess.run(accuracy,feed_dict={x:mnist.test.images,y:mnist.test.labels})#feed传进去的是测试集的图片以及对应标签
        print("Iter " + str(epoch) + ",Testing Accuracy " + str(acc))#每训练一次,打印准确率

# In[ ]:

原文地址:https://www.cnblogs.com/zhaoyanhaoBlog/p/10077244.html

时间: 12-06

神经网络常见概念总结的相关文章

c++中常见概念、关键字等的区别

(1).重载,覆盖和隐藏的区别: 重载主要是函数的重载,函数名相同,返回类型相同,但是函数形参不同,被调用时,根据函数形参决定调用原函数还是重载函数. 覆盖主要用在继承多态中,函数前加virtual关键字,子类继承了父类的某个虚函数,利用父指针调用时,子类的虚函数将父类的虚函数覆盖. 隐藏是指派生类的函数把基类的函数隐藏起来了.有两种情况:a.派生类与基类的函数名相同,返回类型相同,但是形参不同,则不论函数前面是否有virtual,基类的函数都被隐藏.b.派生类与基类的函数完全相同,但是基类没有

神经网络基本概念

感知器(perceptron) 可以这么理解感知器,它是一个接受若干个二进制输入,并产生一个二进制输出的逻辑单元.例如假设输入向量$x$:$x = \begin{pmatrix}x_1\\x_2\\ \vdots \\ x_n\end{pmatrix}$,给出权重向量$w$,那么输出$y$可以这样定义: $y=\left\{\begin{matrix}1, \text{ if }w^Tx > C\\ 0, \text{ if }w^Tx \leq C\end{matrix}\right.$ 其中

jgroups 常见概念

组播(Multicast)传输:在发送者和每一接收者之间实现点对多点网络连接. 单播(Unicast)传输:在发送者和每一接收者之间实现点对点网络连接. 广播(Broadcast)传输:是指在IP子网内广播数据包,所有在子网内部的主机都将收到这些数据包. 永久组播组(224.0.0.0-224.0.0.255):组播组地址中,有一部分由官方分配的,称为永久组播组.224.0.0.0-224.0.0.255为预留的组播地址(永久组地址),地址224.0.0.0保留不做分配,其它地址供路由协议使用.

深度神经网络可视化工具集锦

深度神经网络可视化工具集锦 雷锋网按:原文作者zhwhong,载于作者的个人博客,雷锋网(公众号:雷锋网)经授权发布.  TensorBoard:TensorFlow集成可视化工具 GitHub官方项目:https://github.com/tensorflow/tensorflow/tree/master/tensorflow/tensorboard TensorBoard 涉及到的运算,通常是在训练庞大的深度神经网络中出现的复杂而又难以理解的运算. 为了更方便 TensorFlow 程序的理

(转) 干货 | 图解LSTM神经网络架构及其11种变体(附论文)

干货 | 图解LSTM神经网络架构及其11种变体(附论文) 2016-10-02 机器之心 选自FastML 作者:Zygmunt Z. 机器之心编译  参与:老红.李亚洲 就像雨季后非洲大草原许多野生溪流分化成的湖泊和水洼,深度学习已经分化成了各种不同的专门架构. 并且,每个架构都会有一个图解,这里将详细介绍它们. 神经网络在概念上很简单,并且它们十分动人.在层级上,有着一堆同质化的元素和统一的单位,并且它们之间还存在在一系列的加权连接.这就是神经网络的所有,至少从理论上来说是这样.然而,时间

人工神经网络简介

本文主要对人工神经网络基础进行了描述,主要包括人工神经网络的概念.发展.特点.结构.模型. 本文是个科普文,来自网络资料的整理. 一.             人工神经网络的概念 人工神经网络(Artificial Neural Network,ANN)简称神经网络(NN),是基于生物学中神经网络的基本原理,在理解和抽象了人脑结构和外界刺激响应机制后,以网络拓扑知识为理论基础,模拟人脑的神经系统对复杂信息的处理机制的一种数学模型.该模型以并行分布的处理能力.高容错性.智能化和自学习等能力为特征,

机器学习知识体系 - 神经网络(基础)

转载:http://www.jianshu.com/p/a3b89d79f325 引言本系列是本人第一次在简书写东西,想将手头上正在学的神经网络归纳整理,尽量详细地介绍神经网络的结构.计算公式与C语言实现.文中内容基本参考消化了计算机的潜意识的博文,文中图片基本来自他的博文和Ng老师的课件,所用的符号和上下标与Ng老师的一致,在此感谢. 神经网络结构 说到神经网络,对神经网络有概念的人第一个冒出来的肯定是下面这幅图,这是最基本的3层神经网络,图中圆圈标识神经元,有输入层.1层隐藏层.输出层.输入

基于BP神经网络的简单字符识别算法自小结(C语言版)

本文均属自己阅读源码的点滴总结,转账请注明出处谢谢. 欢迎和大家交流.qq:1037701636 email:[email protected] 写在前面的闲话: 自我感觉自己应该不是一个很擅长学习算法的人,过去的一个月时间里因为需要去接触了BP神经网络.在此之前一直都认为算法界的神经网络.蚁群算法.鲁棒控制什么的都是特别高大上的东西,自己也就听听好了,未曾去触碰与了解过.这次和BP神经网络的邂逅,让我初步掌握到,理解透彻算法的基本原理与公式,转为计算机所能识别的代码流,这应该就是所谓的数学和计

卷积神经网络之原理详解

本文来源1:http://blog.csdn.net/zouxy09/article/details/9993371 本文来源2:http://blog.csdn.net/qiaofangjie/article/details/16826849 卷积神经网络是人工神经网络的一种,已成为当前语音分析和图像识别领域的研究热点.它的权值共享网络结构使之更类似于生物神经网络,降低了网络模型的复杂度,减少了权值的数量.该优点在网络的输入是多维图像时表现的更为明显,使图像可以直接作为网络的输入,避免了传统识

Deep Learning模型之:CNN卷积神经网络(一)深度解析CNN

http://m.blog.csdn.net/blog/wu010555688/24487301 本文整理了网上几位大牛的博客,详细地讲解了CNN的基础结构与核心思想,欢迎交流. [1]Deep learning简介 [2]Deep Learning训练过程 [3]Deep Learning模型之:CNN卷积神经网络推导和实现 [4]Deep Learning模型之:CNN的反向求导及练习 [5]Deep Learning模型之:CNN卷积神经网络(一)深度解析CNN [6]Deep Learn