博舍

神经网络的计算过程 人工智能bp神经网络计算题答案

神经网络的计算过程

Hello,大家好,我是Tony

欢迎大家访问我的个人主页:Tony’sBlog,让我们一起站在巨人的肩膀之上!

神经网络的计算过程对应课程中9.1-9.8

神经网络的计算过程

对于二元分类问题(逻辑回归),系统输出的结果是1或0

对于多元分类问题,神经网络输出的结果是多维向量:[1000],[0100],[0010],[0001]left[egin{array}{c}{1}\{0}\{0}\{0}end{array} ight],left[egin{array}{l}{0}\{1}\{0}\{0}end{array} ight],quadleft[egin{array}{l}{0}\{0}\{1}\{0}end{array} ight],quadleft[egin{array}{l}{0}\{0}\{0}\{1}end{array} ight]⎣⎢⎢⎡​1000​⎦⎥⎥⎤​,⎣⎢⎢⎡​0100​⎦⎥⎥⎤​,⎣⎢⎢⎡​0010​⎦⎥⎥⎤​,⎣⎢⎢⎡​0001​⎦⎥⎥⎤​因此可以类比逻辑回归的代价函数来写出神经网络的代价函数:

一、一些要点1.逻辑回归的代价函数(加正则化):

J(θ)=−1m[∑i=1my(i)log⁡hθ(x(i))+(1−y(i))log⁡(1−hθ(x(i)))]+λ2m∑j=1nθj2J( heta)=-frac{1}{m}left[sum_{i=1}^{m}y^{(i)}logh_{ heta}left(x^{(i)} ight)+left(1-y^{(i)} ight)logleft(1-h_{ heta}left(x^{(i)} ight) ight) ight]+frac{lambda}{2m}sum_{j=1}^{n} heta_{j}^{2}J(θ)=−m1​[i=1∑m​y(i)loghθ​(x(i))+(1−y(i))log(1−hθ​(x(i)))]+2mλ​j=1∑n​θj2​

对于逻辑回归、代价函数、代价函数正则化可以查看这篇博客:逻辑回归模型及代价函数正则化

对于机器学习中为什么要正则化可以查看这篇博客:机器学习中对过拟合的正则化策略

2、神经网络的代价函数

J(Θ)=−1m[∑i=1m∑k=1Kyk(i)log⁡(hΘ(x(i)))k+(1−yk(i))log⁡(1−(hΘ(x(i)))k)]+λ2m∑l=1L−1∑i=1sl∑j=1sl+1(Θji(l))2egin{aligned}J(Theta)=&-frac{1}{m}left[sum_{i=1}^{m}sum_{k=1}^{K}y_{k}^{(i)}logleft(h_{Theta}left(x^{(i)} ight) ight)_{k}+left(1-y_{k}^{(i)} ight)logleft(1-left(h_{Theta}left(x^{(i)} ight) ight)_{k} ight) ight]\&+frac{lambda}{2m}sum_{l=1}^{L-1}sum_{i=1}^{s_{l}}sum_{j=1}^{s_{l+1}}left(Theta_{ji}^{(l)} ight)^{2}end{aligned}J(Θ)=​−m1​[i=1∑m​k=1∑K​yk(i)​log(hΘ​(x(i)))k​+(1−yk(i)​)log(1−(hΘ​(x(i)))k​)]+2mλ​l=1∑L−1​i=1∑sl​​j=1∑sl+1​​(Θji(l)​)2​

从上式可以看出,这相当于多个逻辑回归代价函数相加

3、反向传播算法(BackPropagationAlgorithm)

利用反向传播算法计算DVec

4、梯度检测(GradientChecking)

在进行梯度下降之后,要进行梯度检测,以保证梯度下降的正确性

fori=1:nthetaPlus=theta;thetaPlus(i)=thetaPlus(i)+EPSILON;thetaMinus=theta;thetaMinus(i)=thetaMinus(i)-EPSILON;gradApprox(i)=(J(thetaPlus)-J(thetaMinus))/(2*EPSILON);end

CheckgradApprox≈DVex?(frombackpop),就是看这样求出的导数是否接近反向传播算法的值

5神经网络的计算过程theta值初始化

(−ϵ≤Θij(l)≤ϵ)(left.-epsilonleqTheta_{ij}^{(l)}leqepsilon ight)(−ϵ≤Θij(l)​≤ϵ)

把theta值控制在[-E,E]之间

Theta1=rand(10,11)*(2*INIT_EPSILON-INIT_EPSILON;Theta2=rand(1,11)*(2*INIT_EPSILON-INIT_EPSILON;二、神经网络实现过程

随机初始化权重接近0的值

前向传播算法计算hΘ(x(i))h_{Theta}left(x^{(i)} ight)hΘ​(x(i))

计算代价函数J(θ)

反向传播算法计算局部偏导数∂∂Θjk(l)J(Θ)frac{partial}{partialTheta_{jk}^{(l)}}J(Theta)∂Θjk(l)​∂​J(Θ)

梯度检测

梯度下降或其他高级算法来最小化代价函数

重点:

确保在迭代代码中不含梯度检测的代码,因为梯度检测速度比反向传播算法相比很慢,

【人工智能学习笔记】用神经网络完成XOR异或操作原理

构作一个神经网络,用于计算含有2个输入的XOR函数。指定所用神经网络单元的种类。

取权值向量(W1,W2,W3,W4,W5)为(0.3,0.3,1,1,-2);

神经网络输入输出关系:Y=f(X1W3+X2W4+Z*W5);

其中Z为隐含节点Nh的输出,Z=f(X1W1+X2W2);

f为输入输出关系函数,θ为0.5,即x=0.5,f(x)=1。

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌抄袭侵权/违法违规的内容,一经查实,本站将立刻删除。

上一篇

下一篇