一个模仿人体大脑神经信号处理的算法模型,理念很简单,但是其中还是有些点会有点纠结。
1. gradian descent 梯度下降。需要使用在连续可导的函数。对于梯度下降的理解,花了很多的时间,最后通过一篇博客中描述了,导数(一元函数求导,得到结果小于零则在这个方向上函数值是减小趋势,否则是上升趋势),偏导(多元在一个方向上求导),方向导数(多元在多个方向上求导),得到梯度就是多元在多个方向上求出哪个方向上有最大的变化率。
梯度即函数在某一点最大的方向导数,函数延梯度方向有最大的变化率。
既然理解了梯度,那么梯度下降会比较清晰。因为梯度代表函数最大的变化率,那么为了减小函数值,要采取负梯度方向,这样函数值延方向下降最快,优化目标。
这篇blog的地址是:http://m.blog.csdn.net/article/details?id=50978864
2. error backpropagation BP。假设使用的是sigmoid unit。建立在gradian descent基础之上。其目标就是要最小化training set中的累积误差。那么gradian descent确实比较适合。
根据机器学习教材,bp又有标准和累积之分,标准bp是针对单个样例不停迭代,中间可能出现抵消效果,但在训练集非常大时效果比累积bp好。累积bp是直接针对累积误差最小化,读取整个训练集以后对参数进行更新,更新频率低。
bp容易overfitting,一般会有early stopping和regularization。early stopping很基本,就是验证集,当验证集误差增大,则停止训练。regularization则是在误差中加入阈值平方和与一个0-1之间的参数乘积。
3. 局部最小和全局最小。如何跳出局部最小而得到全部最小。
根据机器学习教材,
(1)多组初始值初始化多个神经网络,得倒的值很有可能有全局最小。🤔🤔但是要多少组呢?会不会消耗资源很大?
(2)simulated annealing。以一定概率接受比当前解更差的结果,从而在某个点的到全局最小。但有可能跳出全局最小呢。
(3)随机梯度下降。加入随机因子,在局部最小时也不为零从而跳出。🤔
(4)遗传算法。🤔
4. 节点,层,权值变大会造成overfitting。用cross validation限制overfitting。
5.怎么设定隐藏层的大小?
一般三层,节点小于训练集数-1,在连接权的2-10倍。?可能经验中得到。
6. mark rbf网络,art网络,som网络,elmam,boltzmann机
网友评论