神经网络的迷人之处部分在于其难解释性,很多时候,神秘的东西更能激发人们的兴趣,笔者今天在学习词向量的时候,受到了一些启发,在一些NLP任务中,过将词向量融入到任务中,使用神经网络进行端到端的学习,从而能使词向量朝着我们预期的方向(也就是解决当前任务的方向)改变,这一点是由误差反向传播完成的,从而引出本文的中心思想:能否通过一个训练好的神经网络,将一个随机的输入向量作为参数,得到与目标最适配的向量?
背景
我曾经训练过一个识别MINST的单隐层神经网络,准确率约有99%,我能否使用这个神经网络,反向生成一个数字的图片?
思路
为了生成数字的图片,我假设,如果有这么一个向量,通过神经网络作用后与给定的某个label(如1)距离最小,那么,这个向量就是这个label(如1)对应的图片,这个问题的目标在于,我给定label之后,要寻找一个最适配的输入向量,也就是相当于我问神经网络:“你觉得,什么样的图片更像1?”我通过将输入向量看作变量,预测与目标的欧式距离看作目标函数,这事实上也就演变成了一个优化问题。
m
i
n
E
=
(
y
−
y
^
)
2
2
s
t
.
a
j
=
Σ
i
=
1
p
W
j
i
(
1
)
x
i
,
j
=
1
,
.
.
.
,
q
z
j
=
σ
(
a
j
+
θ
j
(
1
)
)
,
j
=
1
,
.
.
.
,
q
b
k
=
Σ
j
=
1
q
W
k
j
(
2
)
z
j
,
k
=
1
,
.
.
.
,
h
y
^
k
=
σ
(
b
k
+
θ
k
(
2
)
)
,
k
=
1
,
.
.
.
,
h
min \quad E=\dfrac{(y-\hat{y})^2}{2}\\ \begin{aligned} st. & a_j = \Sigma_{i=1}^{p}W^{(1)}_{ji}x_{i},j=1,...,q\\ & z_j = \sigma(a_j+\theta^{(1)}_j),j=1,...,q\\ & b_k = \Sigma_{j=1}^{q}W^{(2)}_{kj}z_{j},k=1,...,h\\ & \hat{y}_k = \sigma(b_{k}+\theta^{(2)}_k),k=1,...,h\\ \end{aligned}
minE=2(y−y^)2st.aj=Σi=1pWji(1)xi,j=1,...,qzj=σ(aj+θj(1)),j=1,...,qbk=Σj=1qWkj(2)zj,k=1,...,hy^k=σ(bk+θk(2)),k=1,...,h
乍一看,这不就是神经网络嘛?但是在这里,我们优化的参数不是
W
W
W或者
θ
\theta
θ,而是
x
x
x。
优化
方法一:梯度下降
既然梯度可以求到
x
x
x,那不妨就用梯度下降法来进行优化
∂
E
∂
x
i
=
Σ
k
=
1
h
(
y
^
k
−
y
k
)
y
k
(
1
−
y
k
)
Σ
j
=
1
q
W
k
j
(
2
)
z
j
(
1
−
z
j
)
W
j
i
(
1
)
\dfrac{\partial{E}}{\partial{x_i}} = \Sigma_{k=1}^{h}(\hat{y}_{k}-y_k)y_k(1-y_k)\Sigma_{j=1}^{q}W^{(2)}_{kj}z_j(1-z_j)W^{(1)}_{ji}
∂xi∂E=Σk=1h(y^k−yk)yk(1−yk)Σj=1qWkj(2)zj(1−zj)Wji(1)
结果:非常慢!!由于
σ
\sigma
σ函数对剃度弥散的作用太明显,当初优化的时候就花了整整一个通宵,由于急于想看结果,所以不采用这个方法。
方法二:进化策略
这个方法是一个stackoverflow上的老哥教给我的,就是保存一个最优的参数(误差最小的
x
x
x),然后每轮通过在最优的
x
x
x上做一个微小的扰动,通过大量的随机查找获得最优的
x
x
x,为了避免陷入局部最优,进行多次初始化。最后得到的结果如下:
0:
1:
2:
3:
4:
5:
6:
7:
8:
9:
结论
在训练集的图片中,数字是白色的,所以现在我要尝试把图片中白色部分解释成数字(强行解释),其实就我的角度看,图中白色的部分倒是没什么规律,而网络似乎很明确地知道一个数字哪些部分应当是黑色的,比如0,通过优化得到的图片说明网络知道大多数0中间有一个大大的黑圈,6也是,从强行解释的角度,4的结果大致可以看出中间白色的部分能够围成一个类似4的形状,有些数字(比如2和5)黑色的部分与数字的形状十分相似,这可能是因为黑色部分也是沿着数字的走势分布在周围的吧,可见还是有一定的结果的,只是并没有十分明显。
一些思考
结果并没有给出十分符合人类直观的数字图片,我想结果有几点:
- 优化结果的唯一性是一个矛盾,我们都知道这类非线性优化问题的最优解往往唯一(往往还找不到),而神经网络被训练的目标之一是泛化性能,倘若生成的图片十分明确清晰,可能网络本身存在过拟合,这点同时也否定了我们之前的假设,即图片应该是给定label使误差最小的那个 x x x,其实,这个使误差最小 x x x的更可能是集成所有训练集中对应label图片的特点得到的一张图片。
- 没了
某天下午闲来无聊的瞎想…