Task 1
Make a program for the probabilistic and binary model (概率模型)
这个是Probabilistic and binary model:
P可以表达为: P=sigmoid(S-θ)=上边这个公式, a是gain,θ是threshold
y=0 with probability(1-P)
y=1 with probability P
y的判断的coding建议:
if rand()<=(RAND_MAX+1)*P
y=1
else y=0
use a die to compute y,
random number generator rand() 0~(RAND_MAX+1)
主要目的就是把上边这个模型用代码表示出来, 先使用srand() , 然后使用rand() 取10000次结果,看y=1的结果有多少,是否和理论结果相符(理论结果是y=1出现10000*P次)。
Task 2
Apply RNN with deterministic and binary neuron models to solve the following simultaneous equation x1~x4 with binary variables 0 or 1.
Solution (x1 x2 x3 x4)=(1 0 1 0)
Find value of x1 x2 x3 x4 for this equation set
X1-x2+x3+x4=2
-x1+2*x2-x3-x4=-2
2*x1-x2+2*x3+x4=4
-x1-x2+x3+x4=0
Hint:
E=(x1-x2+x3+x4-2)^2+(-x1+2*x2-x3-x4+2)^2+(2*x1-x2+2*x3+x4-4)^2+(-x1-x2+x3+x4)^2
Procedure:
• Find an energy function (standard form) for the given problem. The solution of the problem is the minimum of the energy function.
• Constitute a RNN with the energy function.
• Give initial states to neurons and update their values one by one using deterministic binary model.
The energy always decreases when neurons update its state one by one.
Deterministic model(确定性模型)
这个公式截图是另一个文件中task2的,在这个作业里只有x1~x4, 因此数字9在这里应该改成4, 但是公式是一样的。 这里的y可以理解为update state(output)。当S=0的时候,y也等于1.
下一个截图是关于这个公式的运用的例子, 这个例子是x1~x3的。式子E可以写成下一个截图中画了红色五角星的部分,其中θ是threshold= -1,Wn是weight= -2. Update的过程如左边的小表格所示,若设置x1~x3初始值为(1 1 1),E根据左边公式求得3. Update x1时看x2 x3的值, 带入S的公式中,得(1)(-2)+(1)(-2)=-4<0, 根据下图的公式可知,updated x1 (即公式中的y)= 0。现在x1~x3变为(0 1 1)。接下来update x2, 看x1 x3的值, S=(0)(-2)+(1)(-2)=-2<0, updated x2=0, x1~x3变为(0 0 1).以此类推。
在要完成的task中,在update的过程中, E的值会一直减少,直到E的值成为了1(即最小值), 所对应的x1~x4的值就是答案。正确答案为(1 0 1 0)答案是二进制的。
在这个task中,主要任务就是把题干中提供的式子用上述的方法不停update,直到得出结果。这个题得出的结果可以参考另一份文档中的task2, 基本相同。我不太懂编程语言,猜测是可以通过一些function计算出threshold和weight的值,将这个值带入到给的deterministic model中进行类似上边例子的update。