Udacity Machine Learning Neural Networks
如下图,Input Xi 乘以相应的权重 wi,然后求和得到 activation,再与 UNIT里的Theta ,大于等于这个阈值则 y=1,否则 y=0.
可以看到权重 wi 决定了最后的分类,下图就是 perception 达到的效果,它可以求出 halfplane 来把 (x1,x2) 分为两类。
AND
OR
NOT
也就是可以用 perception 来表示 AND,OR,NOT,那么怎么用它来表示 anything。
XOR
XOR=OR-AND 所以要先把 AND 和 OR 都写在下面的表格里 先考虑 OR 的话,w1=1,w3=1,theta=1 但是 AND 对应的 w2 不能直接=-1,因为当 x1 和 x2 同时为 1 时,此时的值等于theta,就无法得到XOR的0了,所以 w2=-2.
为了训练出这些 weights,有两个规则:
目标是要训练 weights,得到的 y 可以和 Threshold 比较进而归类,阈值 Theta 可以被换到表达式左边的权重里,所以右边是0
我们就是要通过改变 wi 来找到最优的权重,也就是要找到 delta wi,就可以找到 wi。
y 是实际值,y hat 是用 wi 计算出来的,二者相减的结果有下面四种可能,如果 y hat 是正确的,那就意味着 wi 不需要改变,但如果是错误的,比如 y=0,y hat=1,那说明 y hat 过大了,那么由 delta wi 的公式可以看出,xi 向负方向偏离太远,
不想让 y hat 过大或者过小,这个时候 learning rate 就起作用了,也就是可以在某个方向一点一点地走。
如果一个数据集可以找到线性的 half plane,那么 Perception Rule 就一定能找到这个平面。
需要一个算法 robust to non-linear separability,这个算法就是
为什么用 a,而不用 y hat,因为 y hat 不可导。
两个 Rules 的比较:
求导后的形式也很简单,
信息是从前向后传,Error 从后向前回溯
其中的 Sigmoid Units 也可以换成其他可微的函数, 这个 Error function 可以有很多局部最优,但不一定是全局最优。
更多的节点,更多的层,更大的权重,这三条会导致问题变得很复杂
每次引用一个新的 Supervised Learning Algorithm 时,就想想它的 Restriction Bias 和 Preference Bias。
可以告诉你这个模型的 Representational Power
只要 Neural Networks 足够复杂,也就是有足够多的层和节点,就不会受到这些限制,但是问题是可能 Overfitting,为了解决过拟合问题,会加一些边界条件来限制层数和节点数,这时可以用 Cross Validation 来决定用多少层,每层多少个节点,何时停止。 not very restrictive in terms of their bias
我们不会选择最多的迭代次数,而是选择 Cross Validation Error 最小的点停止。
告诉你你将要用的算法,你为什么选择这个算法而不是别的。
到底是选择 Gradient Descent 还是 Back Propagation。 该如何初始化权重。简单,随机