神经网络(深度学习)的几个基础概念
从广义上说深度学习的网络结构也是多层神经网络的一种。传统意义上的多层神经网络是只有输入层、隐藏层、输出层。其中隐藏层的层数根据需要而定,没有明确的理论推导来说明到底多少层合适。
而深度学习中最著名的卷积神经网络CNN,在原来多层神经网络的基础上,加入了特征学习部分,这部分是模仿人脑对信号处理上的分级的。
具体操作就是在原来的全连接的层前面加入了部分连接的卷积层与降维层,而且加入的是一个层级。
输入层-卷积层-降维层-卷积层-降维层--....--隐藏层-输出层简单来说,原来多层神经网络做的步骤是:特征映射到值。特征是人工挑选。深度学习做的步骤是信号->特征->值。
特征是由网络自己选择。
谷歌人工智能写作项目:爱发猫
请问神经网络里面的代价函数是什么意思?
下面是就是神经网络中代价函数J(Θ)J(Θ)的表达式,看起来还是稍微有点复杂A8U神经网络。这个表达式到底在计算什么?下面我们先用一个简单的例子来分开一步步计算一下。
J(Θ)=−1m∑i=1m∑k=1K[y(i)klog((hΘ(x(i)))k)+(1−y(i)k)log(1−(hΘ(x(i)))k)]+λ2m∑l=1L−1∑i=1sl∑j=1sl+1(Θ(l)j,i)2J(Θ)=−1m∑i=1m∑k=1K[yk(i)log((hΘ(x(i)))k)+(1−yk(i))log(1−(hΘ(x(i)))k)]+λ2m∑l=1L−1∑i=1sl∑j=1sl+1(Θj,i(l))2有如下神经网络:其中:LslK=神经网络总共包含的层数=第l层的神经元数目=输出层的神经元数,亦即分类的数目L=神经网络总共包含的层数sl=第l层的神经元数目K=输出层的神经元数,亦即分类的数目假设s1=3,s2=2,s3=3s1=3,s2=2,s3=3,则Θ1Θ1的维度为2×42×4,Θ2Θ2的维度为3×33×3。
则有:XT=⎡⎣⎢⎢⎢1x1x2x3⎤⎦⎥⎥⎥,Θ1=[θ110θ120θ111θ121θ112θ122θ113θ123]2×4,Θ2=⎡⎣⎢⎢θ210θ220θ230θ211θ221θ231θ212θ222θ232⎤⎦⎥⎥3×3XT=[1x1x2x3],Θ1=[θ101θ111θ121θ131θ201θ211θ221θ231]2×4,Θ2=[θ102θ112θ122θ202θ212θ222θ302θ312θ322]3×3先回忆一下正向传播的计算公式: z(j)=Θ(j−1)a(j−1)……(1)a(j)=g(z(j)),setting a(j)0=1……(2)hΘ(x)=a(j)=g(z(j))……(3)z(j)=Θ(j−1)a(j−1)……(1)a(j)=g(z(j)),setting a0(j)=1……(2)hΘ(x)=a(j)=g(z(j))……(3)详解戳此处 此时我们先忽略regularizedterm ①当m=1时; J(Θ)=−1m∑k=1K[y(i)klog((hΘ(x(i)))k)+(1−y(i)k)log(1−(hΘ(x(i)))k)]J(Θ)=−1m∑k=1K[yk(i)log((hΘ(x(i)))k)+(1−yk(i))log(1−(hΘ(x(i)))k)]1.令a1=XT;⟹z2=Θ1∗a1=[θ110θ120θ111θ121θ112θ122θ113θ123]2×4×⎡⎣⎢⎢⎢1x1x2x3⎤⎦⎥⎥⎥=[θ110+θ111⋅x1+θ112⋅x2+θ113⋅x3θ120+θ121⋅x1+θ122⋅x2+θ123⋅x3]2×11.令a1=XT;⟹z2=Θ1∗a1=[θ101θ111θ121θ131θ201θ211θ221θ231]2×4×[1x1x2x3]=[θ101+θ111⋅x1+θ121⋅x2+θ131⋅x3θ201+θ211⋅x1+θ221⋅x2+θ231⋅x3]2×1=[z21z22],⟹a2=g(z2);=[z12z22],⟹a2=g(z2);2.给a2添加偏置项,并计算a3即hθ(x) 2.给a2添加偏置项,并计算a3即hθ(x); a2=⎡⎣⎢1a21a22⎤⎦⎥;⟹z3=Θ2∗a2=⎡⎣⎢⎢θ210θ220θ230θ211θ221θ231θ212θ222θ232⎤⎦⎥⎥3×3×⎡⎣⎢1a21a22⎤⎦⎥=⎡⎣⎢⎢z31z32z33⎤⎦⎥⎥;a2=[1a12a22];⟹z3=Θ2∗a2=[θ102θ112θ122θ202θ212θ222θ302θ312θ322]3×3×[1a12a22]=[z13z23z33];⟹hθ(x)=a3=g(z3)=⎡⎣⎢⎢g(z31)g(z32)g(z33)⎤⎦⎥⎥=⎡⎣⎢h(x)1h(x)2h(x)3)⎤⎦⎥⟹hθ(x)=a3=g(z3)=[g(z13)g(z23)g(z33)]=[h(x)1h(x)2h(x)3)]此时我们知道,对于每一个example,最终都会输出3个结果,那么这时代价函数所做的就是将这3个输出取对数然后乘以对应的预期期望值y之后,再累加起来。
具体如下:假设 input:XT=⎡⎣⎢⎢⎢1x1x2x3⎤⎦⎥⎥⎥;output:y=⎡⎣⎢100⎤⎦⎥=⎡⎣⎢y1y2y3⎤⎦⎥input:XT=[1x1x2x3];output:y=[100]=[y1y2y3]则有: J(Θ)∗m=[−y1×log(h(x)1)−(1−y1)×log(1−h(x)1)]+[−y2×log(h(x)2)−(1−y2)×log(1−h(x)2)