我是靠谱客的博主 笨笨哑铃,最近开发中收集的这篇文章主要介绍Tensorflow01-神经网络简介,觉得挺不错的,现在分享给大家,希望可以做个参考。

概述

生物神经网络的工作原理就是神经元之间的冲动传播。机器学习借助了这个概念,采用类比的手法提出了人工神经网络。

神经网络相当于一个函数生成器,常常用于解决模式分类的问题。

示例

比如我们有这样一些训练数据


那么可以设计这样一个简单的神经网络


假设Y1为A类,Y2为B类

此时有两个测试数据P1(-1,1)、P2(1,-1),根据神经网络模型可以得到P1:Y1=-3,Y2=3;P2:Y1=3,Y2=-3。我们约定哪个输出值大就属于哪一类那么P1为B,P2为A。


结构

人工神经网络本质上是一种有向图,节点就类比为神经元(的细胞核?),有向弧就类比为神经元之间的连接(突触?)。特殊的是这种有向图是分层的,层与层之间有连接,同一层的节点之间不连接。典型的人工神经网络结构分为三层,最开始的一层称为输入层,最后一层称为输出层,中间(可能多层->深度学习)的称为隐藏层。节点之间的连接具有权重,后一节点的值可以根据输入值和它们对应的权重得到。

隐藏层数较多的神经网络称为深度神经网络。



激活函数

在神经网络中,激活函数的作用是能够给神经网络加入一些非线性因素,使得神经网络可以更好地解决较为复杂的问题。

在简单的情况下,线性函数即可划分,比如在我们之前的例子中,激活函数相当于f(x)=x,即输出的就是上一层输入的线性函数,那么无论神经网络有多少层,输出都是输入的线性组合,这样的神经网络表达能力很差。


但在复杂的情况下需要引入非线性的因素


在人工神经网络中,规定神经元函数只能对输入变量线性组合后的结果进行一次非线性变换:y=f(w0+w1x1+w2x2+...)

这样既保证了神经网络的灵活性,又使得神经元函数不会太复杂。

关于激活函数会在后面具体介绍。

训练

如何得到一个人工神经网络?需要我们根据已有数据进行训练,输入的权重即是模型的参数,就是我们需要训练得到的。

有监督的训练就是将一组已有结果的数据输入,根据神经网络的输出和正确结果相比较不断优化参数,最后使得输出与正确结果之间的差距尽可能小。

无监督的训练只有输入数据,需要预测输出是否准确,预测的原则是同一类训练数据应当相互靠近,不同类的数据相互远离。

发展

神经网络的概念很早就提出,但是近些年才有较大的发展,是因为计算能力和数据量的限制。训练一个多层的神经网络需要很强的计算能力,而且训练的数据量越大,训练出来的模型准确度越好。


参考链接:

http://www.cnblogs.com/rgvb178/p/6055213.html

http://www.louisdorard.com/blog/when-machine-learning-fails

http://www.magizbox.com/training/machinelearning/site/model_classification/

https://www.youtube.com/watch?v=RSRkp8VAavQ&list=PLXO45tsB95cKI5AIlf5TxxFPzb-0zeVZ8&index=2

http://blog.csdn.net/qrlhl/article/details/60883604

《数学之美(第二版)》

最后

以上就是笨笨哑铃为你收集整理的Tensorflow01-神经网络简介的全部内容,希望文章能够帮你解决Tensorflow01-神经网络简介所遇到的程序开发问题。

如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。

本图文内容来源于网友提供,作为学习参考使用,或来自网络收集整理,版权属于原作者所有。
点赞(31)

评论列表共有 0 条评论

立即
投稿
返回
顶部