Udacity
Machine Learning
Neural Networks
什么是 Neural Networks?
Perception:
如下图,Input Xi 乘以相应的权重 wi,然后求和得到 activation,再与 UNIT里的Theta ,大于等于这个阈值则 y=1,否则 y=0.
可以看到权重 wi 决定了最后的分类,下图就是 perception 达到的效果,它可以求出 halfplane 来把 (x1,x2) 分为两类。
Neural Network 可以表示 boolean function,
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.
我们希望建立一个 system,输入数据之后,就可以训练出 weights
为了训练出这些 weights,有两个规则:
- Perception Rules (Use threshold values)
- Gradient Descent/Delta Rules(Use unthreshold values)
1. Perception Rules
目标是要训练 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,这个算法就是
2. Gradient Descent
为什么用 a,而不用 y hat,因为 y hat 不可导。
两个 Rules 的比较:
Sigmoid 是什么?
求导后的形式也很简单,
Back Propagation
信息是从前向后传,Error 从后向前回溯
其中的 Sigmoid Units 也可以换成其他可微的函数,
这个 Error function 可以有很多局部最优,但不一定是全局最优。
Negative Attributes:
更多的节点,更多的层,更大的权重,这三条会导致问题变得很复杂
每次引用一个新的 Supervised Learning Algorithm 时,就想想它的 Restriction Bias 和 Preference Bias。
Restriction Bias:
可以告诉你这个模型的 Representational Power
只要 Neural Networks 足够复杂,也就是有足够多的层和节点,就不会受到这些限制,但是问题是可能 Overfitting,为了解决过拟合问题,会加一些边界条件来限制层数和节点数,这时可以用 Cross Validation 来决定用多少层,每层多少个节点,何时停止。
not very restrictive in terms of their bias
我们不会选择最多的迭代次数,而是选择 Cross Validation Error 最小的点停止。
Preference Bias:
告诉你你将要用的算法,你为什么选择这个算法而不是别的。
到底是选择 Gradient Descent 还是 Back Propagation。
该如何初始化权重。简单,随机