设存在一张像素大小为(sqrt n times sqrt n)的样本图片,即该图片总像素个数(=n)
现需采用神经网络对其进行识别,过程如下:
(1)生成向量(X_{1times n}):
设存在向量(X_{1times n}),则可将图片的(n)个像素存入向量(X),记为:
(2)生成隐层:
生成隐层需将矩阵X变换为512列的矩阵Y,设存在矩阵(W_{ntimes512}),则有:
[tag{2} Y_{1times 512}=X_{1 times n}cdot W_{n times 512} = begin {bmatrix} y_1&y_2&y_3&...&y_{512} end {bmatrix} ]
设存在函数:
[relu(x)= begin{cases} x&xgeq 0\ 0&x
采用(relu())函数对矩阵(Y)进行处理,得到矩阵(Z):
[tag{3} Z_{1times 512}=relu(Y) ]
(3)创建分类
设样本图片共有(r)种可匹配的图片类型,且存在矩阵(O_{1times r})、(W'_{512 times r}),则有:
[tag{4} O_{1times r}=Z_{1times 512} cdot W'_{512 times r} = begin{bmatrix} o_1&o_2&o_3&...&o_r end{bmatrix} ]
(4)生成概率分布
为统计样本图片与每一种图片类型匹配的概率,可使用(softmax())函数对矩阵(O_{1times r})进行处理,得到对应的概率分布矩阵(S_{1times r}):
[tag{5} O_{1times r}= begin{bmatrix} o_1&o_2&o_3&...&o_r end{bmatrix} stackrel{softmax()} Longrightarrow S_{1times r}= begin{bmatrix} s_1&s_2&s_3&...&s_r end{bmatrix} ]
对于矩阵(S_{1times r})中的任一元素(s_i),有:
[tag{6}
0 [(i=1,2,3,...,r)
] 且由概率分布性质可知: [tag{7}
Sigma_{i=1}^r s_i=100%
] 对于5.1中的算法过程,设采用(m)张不同的样本图片进行训练后得到某一概率值(s_k),且(s_k)为矩阵S中的最大概率值,则矩阵O中的图片类型(o_k)即为样本图片的最佳匹配类型。 若要对任意图片进行识别,则需通过训练得到的(s_k)、(o_k)进一步对矩阵(W、W')进行求解。 对于5.1 式(2)、式(4)中的矩阵(W_{ntimes 512}、W'_{512times r}),设存在以下函数(J): [tag{8}
J(W,W')
] 则由梯度相关概念可知,可求解函数(J)对矩阵(W、W')的偏导数得到相应梯度,再由梯度进一步对(W、W')进行求解。 而训练得到的(s_k)、(o_k)所属的矩阵(向量)S、矩阵(向量)O均由(W、W')变换得到,故需先在S、O中求偏导数。 由(softmax())算法及概率的基本概念可得: [tag{9}
s_k=frac{e^{o_k}}{Sigma_{i=1}^r e^{o_i}}
] 设: [tag{10}
J=-ln(s_k)
] [qquadquad
=-ln(frac{e^{o_k}}{Sigma_{i=1}^r e^{o_i}})
] [qquadqquadqquad
=ln(Sigma_{i=1}^r e^{o_i})-ln(e^{o_k})
] 则有: [frac{alpha J}{alpha O}
] [qquad
=frac{alpha [ln(Sigma_{i=1}^r e^{o_i})-ln(e^{o_k})]}{alpha O}
] [=
frac{(Sigma_{i=1}^r e^{o_i})_O'}{Sigma_{i=1}^r e^{o_i}}-(o_k)'_O
] [qquadqquadqquadqquadqquad
=
begin{bmatrix}
s_1-0&s_2-0&...&s_k-1&...&s_r-0
end{bmatrix}
] [tag{11}
qquadqquadquad
=
begin{bmatrix}
s_1&s_2&...&s_k-1&...&s_r
end{bmatrix}
]5.2 矩阵(W、W')的求解
5.2.1 概率求解阶段1:求偏导数(frac{alpha J}{alpha O})
参与评论
手机查看
返回顶部