商业新闻

商业新闻
首页 > 新闻资讯 > 商业新闻 > 正文内容

包含网络推广基础知识的词条

时间:2023-11-29 信途科技商业新闻

神经网络(也称人工神经网络,ANN)算法是80年代机器学习界非常流行的算法,不过在90年代中途衰落。现在,携着“深度学习”之势,神经网络重装归来,重新成为最强大的机器学习算法之一。

人工神经网络(Artificial Neural Network,缩写ANN),是一种模仿生物神经网络的结构和功能的数学模型或计算模型。神经网络由大量的人工神经元联结进行计算。其来源于生物,故吴老先先讲述了生物神经网络的基础知识,从而进行引入。

神经细胞通过轴突将信号传递给其他的神经细胞,通过树突向各个方向接受信号。

神经细胞利用电-化学过程交换信号。输入信号来自另一些神经细胞。这些神经细胞的轴突末梢(也就是终端)和本神经细胞的树突相遇形成突触(synapse),信号就从树突上的突触进入本细胞。

信号在大脑中实际怎样传输是一个相当复杂的过程,但就我们而言,重要的是把它看成和现代的计算机一样,利用一系列的0和1来进行操作。就是说,大脑的神经细胞也只有两种状态:兴奋(fire)和不兴奋(即抑制)。

神经细胞利用一种我们还不知道的方法,把所有从树突突触上进来的信号进行相加,如果全部信号的总和超过某个阀值,就会激发神经细胞进入兴奋(fire)状态,这时就会有一个电信号通过轴突发送出去给其他神经细胞。如果信号总和没有达到阀值,神经细胞就不会兴奋起来。这样的解释有点过分简单化,但已能满足我们的目的。

由于人脑具有一下几个特点:

1.能实现无监督的学习

大脑能够自己进行学习,而不需要导师的监督教导。如果一个神经细胞在一段时间内受到高频率的刺激,则它和输入信号的神经细胞之间的连接强度就会按某种过程改变,使得该神经细胞下一次受到激励时更容易兴奋。

2.对损伤有冗余性(tolerance)

大脑即使有很大一部分受到了损伤, 它仍然能够执行复杂的工作。

3.处理信息的效率极高

神经细胞之间电-化学信号的传递,与一台数字计算机中CPU的数据传输相比,速度是非常慢的,但因神经细胞采用了并行的工作方式,使得大脑能够同时处理大量的数据。例如,大脑视觉皮层在处理通过我们的视网膜输入的一幅图象信号时,大约只要100ms的时间就能完成,眼睛并发执行。

4.善于归纳推广

大脑和数字计算机不同,它极擅长的事情之一就是模式识别,并能根据已熟悉信息进行归纳推广(generlize)。例如,我们能够阅读他人所写的手稿上的文字,即使我们以前从来没见过他所写的东西。

5.它是有意识的

如下图所示,它表示的是一个人工神经细胞。其中:

输入(Input);权重(Weight):左边五个灰色圆底字母w代表浮点数;激励函数(Activation Function):大圆,所有经过权重调整后的输入加起来,形成单个的激励值;输出(Output):神经细胞的输出。

进入人工神经细胞的每一个input(输入)都与一个权重w相联系,正是这些权重将决定神经网络的整体活跃性。假设权重为-1和1之间的一个随机数,权重可正可负(激发和抑制作用)。当输入信号进入神经细胞时,它们的值将与它们对应的权重相乘,作为图中大圆的输入。如果激励值超过某个阀值(假设阀值为1.0),就会产生一个值为1的信号输出;如果激励值小于阀值1.0,则输出一个0。这是人工神经细胞激励函数的一种最简单的类型。涉及的数学知识如下图所示:

如果最后计算的结果激励值大于阈值1.0,则神经细胞就输出1;如果激励值小于阈值则输出0。这和一个生物神经细胞的兴奋状态或抑制状态是等价的。下面图是通过神经网络实现逻辑表达式与运算:(参考NG斯坦福机器学习讲义)

可以看到x1和x2变量作为神经网络的输入,当它们取不同的0或1值时,其结果通过sigmod函数计算的值是不同的。它模拟了整个AND运算。

该图中神经网络共有三层 ( 注输入层不是神经细胞,神经细胞只有两层 ):

输入层中的每个输入都馈送到了隐藏层,作为该层每一个神经细胞的输入;然后,从隐藏层的每个神经细胞的输出都连到了它下一层(即输出层)的每一个神经细胞。

注意:

1.图中仅仅画了一个隐藏层,作为前馈网络,一般地可以有任意多个隐藏层。但在对付你将处理的大多数问题时一层通常是足够的。

2.事实上,有一些问题甚至根本不需要任何隐藏单元,你只要把那些输入直接连结到输出神经细胞就行了。

3.每一层实际都可以有任何数目的神经细胞,这完全取决于要解决的问题的复杂性。但神经细胞数目愈多,网络的工作速度也就愈低,网络的规模总是要求保持尽可能的小。

神经网络体系创建成功后,它必须接受训练来认出数字4,方法:

1.先把神经网络的所有权重初始化为任意值;

2.再给他一系列输入代表面板不同配置的输入,对每种输入配置,检查它的输出是什么,并调整相应权重;

3.如果我们送给网络的输入模式不是4,则我们知道网络应该输出一个0。因此每个非4字符时,网络权重应进行调整,使得它的输出趋向于0;当代表4的模式输送给网络时,则应把权重调整到使其输出趋向于1;

4.我们可以进一步识别0到9的所有数字或字母,其本质是手写识别的工作原理。

5.最后,网络不单能认识已经训练的笔迹,还显示了它有显著的归纳和推广能力。

正是这种归纳推广能力,使得神经网络已经成为能够用于无数应用的一种无价的工具,从人脸识别、医学诊断,直到跑马赛的预测,另外还有电脑游戏中的bot(作为游戏角色的机器人)的导航,或者硬件的robot(真正的机器人)的导航。

上图会演示神经网络在图像识别领域的一个著名应用,这个程序叫做LeNet,是一个基于多个隐层构建的神经网络。通过LeNet可以识别多种手写数字,并且达到很高的识别精度与拥有较好的鲁棒性。LeNet的发明人是机器学习的大牛Yann LeCun(目前google)。

右下方的方形中显示的是输入计算机的图像,方形上方的红色字样“answer”后面显示的是计算机的输出。左边的三条竖直的图像列显示的是神经网络中三个隐藏层的输出,可以看出,随着层次的不断深入,越深的层次处理的细节越低,例如层3基本处理的都已经是线的细节了。

这种类型的训练称作有监督的学习(supervised learnig),用来训练的数据称为训练集(training set)。调整权重可以采用许多不同的方法。对本类问题最常用的方法就是反向传播(backpropagation,简称backprop或BP)方法,即BP神经网络。

你自己可以去学习另外的一种训练方式,即根本不需要任何导师来监督的训练,或称无监督学习(unsupervised learnig)。下图是神经网络的简单回顾与总结:

最后给大家看一个利用神经网络对图片进行分类的例子:过程就不详细论述了,图片很清晰,对人、汽车、摩托车、卡车进行图片识别,而具体的隐藏层函数需要大家去深入研究,我自己研究得也很浅显,抱歉~

下面简单讲解"莫烦大神 "网易云课程的一个示例。假设存在千万张图片,现在需要通过神经网络识别出某一张图片是狗还是猫,如下图所示共包括输入层、隐藏层(3层)和输出层。

计算机通过训练或强化学习判断猫,将获取的特征转换为数学的形式。首先得到一堆数字,通过判断处理得到另一堆数据,最终判断其是狗还是猫。比如第一次正确识别的只有10%,下面那只猫被识别成了狗,它会将识别错误的信息(与真实答案的差别)反向传递回神经网络,并修改神经元权重,为下次更好地识别。

每一个神经元都有一个激励函数,被激励的神经元传递的信息最有价值,它也决定最后的输出结果,经过海量数据的训练,最终神经网络将可以用于识别猫或狗。

参考资料包括NG教授的课程讲义和CSDN一位很厉害的女博主Rachel-Zhang:

Stanford机器学习---第五讲. 神经网络的学习 Neural Networks learning

二. theano安装及入门

1.基础知识

Theano在深度学习框架中是祖师级的存在。它的开发始于2007,早期开发者包括传奇人物Yoshua Bengio和Ian Goodfellow。Theano基于Python,是一个擅长处理多维数组的库(这方面它类似于 NumPy)。当与其他深度学习库结合起来,它十分适合数据探索。它为执行深度学习中大规模神经网络算法的运算所设计。其实,它可以被更好地理解为一个数学表达式的编译器:用符号式语言定义你想要的结果,该框架会对你的程序进行编译,来高效运行于GPU或CPU。

它与后来出现的Tensorflow功能十分相似(或者应该说,Tensorflow 类似 Theano ),因而两者常常被放在一起比较。它们本身都偏底层,同样的,Theano 像是一个研究平台多过是一个深度学习库。你需要从底层开始做许多工作,来创建你需要的模型。比方说,Theano 没有神经网络的分级。

下面开始讲解Theano的安装过程,主要调用 "pip install theano" 安装,如下图所示:

安装成功之后,下面给出基础性的代码。这也是学习莫烦大神的云课程笔记,希望对您有所帮助。

2.存量变量使用

首先导入相关包,然后定义存量x和y,再进行相加计算。由于theano需要用到cpu或gpu,所以其function定义比较特殊,核心代码为f = function([x,y],z)。

#coding:utf-8import numpy as npimport theano.tensor as Tfrom theano import function #存量相加x = T.dscalar('x')y = T.dscalar('y')z = x + y #输入[x,y]列表 输出结果zf = function([x,y],z) #调用函数 print(f(2,3)) #to pretty-print the function##查看z函数原型,输出(x+y)from theano import ppprint(pp(z))

输出结果如下所示:

5.0(x + y)

3.矩阵变量使用

定义两个矩阵x和y,均为3行4列,其中x通过np.arange(12).reshape((3,4))代码定义,为0-11数字;y通过10*np.ones((3,4))代码定义,全部为10。

#coding:utf-8import numpy as npimport theano.tensor as Tfrom theano import function #定义矩阵 matrixx = T.dmatrix('x')y = T.dmatrix('y')z = x + y #矩阵的加法f = function([x,y],z) #3行4列矩阵 y全部为10 x从0-11print(u"输入矩阵")print(np.arange(12).reshape((3,4)))print(10*np.ones((3,4)))print(u"输出结果")print(f(np.arange(12).reshape((3,4)), 10*np.ones((3,4)) ))

计算结果如下图所示:

如果需要实现乘法,则使用z = T.dot(x,y) 代码实现。

三. theano函数

theano运用CPU、GPU加速和并行计算,会自己定义function,下面详细讲解其函数功能。

1.激励函数

神经网络中的神经元中都有激励函数(activation function),这里我们定义逻辑回归的激励函数。

然后对一个2*2的矩阵进行计算,代码如下:

#coding:utf-8import numpy as npimport theano.tensor as Timport theanofrom theano import function #1.激励函数#activation function examplex = T.dmatrix('x')#计算概率 logistic or soft steps = 1/(1+T.exp(-x)) #np.exp() 这里用的theano中的T.exp()#输入x 输出slogistic =theano.function([x],s)#两行两列矩阵print(logistic([[0,1],[2,3]]))#wikipedia: Activation function#输入0 输出s=1/(1+e0次方)=0.5输出结果如下所示,比如当数值为0时,其结果为s=1/(1+e的0次方)=0.5。[[0.5 0.73105858] [0.88079708 0.95257413]]

2.返回多个值

输入为a和b变量,输出为差值、差值绝对值、差值平法和。核心代码如下:

f = theano.function([a,b],[diff,abs_diff,diff_squared])#coding:utf-8import numpy as npimport theano.tensor as Timport theanofrom theano import function #2.返回多个值或结果#multiply outputs for a functiona,b = T.dmatrices('a','b')#定义两个的差的绝对值和平方diff = a - babs_diff = abs(diff) #差值绝对值diff_squared = diff*2 f = theano.function([a,b],[diff,abs_diff,diff_squared]) #[1,1,1,1] [0,1,2,3]x1,x2,x3 = f(np.ones((2,2)), np.arange(4).reshape((2,2)))print(x1)print(x2)print(x3)

输出结果如下所示:

[[ 1. 0.] [-1. -2.]][[1. 0.] [1. 2.]][[ 2. 0.] [-2. -4.]]

3.函数赋初值

#coding:utf-8import numpy as npimport theano.tensor as Timport theanofrom theano import function #3.如何运用function名字更加方便#name for a function#定义存量x,y,w = T.dscalars('x','y','w')z = (x+y)*w#定义默认值和名字f = theano.function([x,theano.In(y,value=1), theano.In(w, value=2, name='weight')], z)print(f(23,2))#(23+2)*2=50print(f(23,2,weight=4))#(23+2)*4=100

输出结果如下所示:

50.0100.0

————————————————

感谢大家的支持和喜欢,小编会每天分享更多Python学习的干货知识给大家,所以大家别忘了关注小编哦。

更多Python爬虫、数据分析、办公自动化、全栈开发、人工智能学习资料可以私信@林夕编程关键字【资料】领取

版权声明:本文为CSDN博主「Eastmount」的原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接及本声明。

原文链接:https://blog.csdn.net/Eastmount/article/details/80363106

扫描二维码推送至手机访问。

版权声明:本文由信途科技转载于网络,如有侵权联系站长删除。

转载请注明出处https://www.xintukeji.cn/xintu/9889.html

相关文章

关于学会百度seo优化助力网络营销的信息

SEO我个人认为前景应该是涉及网络营销方面的基础中的基础,细节决定成败,我理解成从事各类互联网工作的内功电商需要SEO这地球人都知道,微信也出现了数据索引,现。SEO优化如何助力网络营销征战市场,搜索...

网络推广营销实战的简单介绍

助力公司软文推广整合网络营销渠道,(实战经验)分享怎么做好企业新闻营销众所周知软文推广是一种有效而且持久的网络营销推广方式,一般以网站发文以及APP曝光为表现形式,一般来说对于热点词,可以利用百度新闻...

郑州网络推广zzjskj(郑州网络推广哪家专业)

功能实现:目标灼烧层数,剩余时间;点燃层数,点燃来源;燃烧层数,当前暴击值。字符串!WA:2!TZ1BWnXrwECusyZKqc4KWfG8NjkbwlW2yjJzjzXjRKTmwzn2(Knq...

EDM推广全称(edm广告简称)

EDM推广全称(edm广告简称)

edm的意思 1、EDM营销(Email Direct Marketing)也叫:Email营销、电子邮件营销。是指企业向目标客户发送EDM邮件,建立同目标顾客的沟通渠道,向其直接传达相关信息,用来促...

卫生巾网络营销效果评估报告的简单介绍

苏菲的卫生巾的品牌销售模式是结合了族群销售和和网络销售这两种销售模式在集团强大的营销渠道和终端配合下,无论是大中型超市还是仓储市场,无论是。本资讯是关于如何营销卫生巾,卫生巾要怎么推广,如何进行卫生巾...

临沂网络推广的简单介绍

9日,罗庄区傅庄街道于庄村微型盆景种植基地的展厅大棚内,摆放了10000余株精巧别致、造型各异的微型盆景,园艺工人们正在紧张地进行修剪、装盆,随后,这批或挺拔、或飘逸的盆景就将由山东来日可期农业发展...

现在,非常期待与您的又一次邂逅

我们努力让每一次邂逅总能超越期待

  • 效果付费
    效果付费

    先出效果再付费

  • 极速交付
    极速交付

    响应速度快,有效节省客户时间

  • 1对1服务
    1对1服务

    专属客服对接咨询

  • 持续更新
    持续更新

    不断升级维护,更好服务用户