AI学习过程

AI领域的一些相关专家

Ben Goertzel  http://en.wikipedia.org/wiki/Ben_Goertzel  



AI领域的一些相关信息

百度和谷歌的人工大脑应用的是 深度学习 


要看的一些内容:(以后上班了就在地铁上看这些东西)

纪录片:Through the Wormhole  http://en.wikipedia.org/wiki/Through_the_Wormhole

纪录片: TED:


  1. 在真正的实验室中,实验通常是使用matlab和Octave等实验平台执行,在后期移植到C++和Java平台中的。

  2. 梯度下降法中,步伐alpha太大,一步可能跨过最优点,然后可能造成无法收敛。

  3. 随着逐渐逼近最优点,偏导数会逐渐减小,所以步长参数alpha一样大时,实际调节的步长也会逐渐减小。

  4. 实际上是以某种定义下的误差项作为cost function的J(theta)函数。

  5. 梯度下降法是要减去步伐的。

  6. Batch梯度下降:每各梯度下降的迭代中使用到了所有的数据。

  7. normal equation(正规方程)是另一种求解最优值的方法,但是在数据量比较大的情况下,使用正规方程不如使用梯度下降法。

  8. 当不归一化的时候,图会变得非常狭长,在梯度下降法步长一定的情况下,会加长收敛的时间。在归一化的时候,边界并不重要,各参数的取值范围不统一也没问题,各个参数边界大致统一才重要,所以[-1,1]可以,[0,3]也可以。一般行业的取值范围大以3为边界可以接受,小的以1/3为边界可以接受。

  9. 一般设置归一化的公式为s=(v-avg)/(max-min),avg是整个样本的平均值。

  10. [重要]设置梯度下降的收敛阀值(梯度下降两次迭代间的差值)通常是比较难的事情,大牛通常是观察梯度下降曲线看是否收敛到平坦来说明收敛的情况。梯度下降曲线还可以随时监视梯度下降算法是否在正确的运行。例如,如果梯度下降曲线是右上方行的时候,通常说明步长太大,要减少步长。IMPORTANT:大牛在使用梯度下降法的时候通常同时使用不同的步长设置来测试效果,这些取值可以从0.003开始,每次乘以10。

     

  11. 对模型的选择,对于一个右侧S曲线形式的曲线,你可以选择二次函数,但是二次函数的特定问题是二次函数是对称的,在一侧数据的上升后在另一侧会下降,因此,使用二次函数不符合真实数据的假设因而我们需要换一个模型,使用三次数据进行分析。

  12. -----------------------------------------------------------------------------------------------------

    使用正规方程(Normal Equetion)求解代价函数最小化的theta vs 使用偏导数求解代价函数的最小化的theta

               可以直接求得                                   |            需要大量的计算

               不需要归一化                                   |   需要求解归一化(归一化是梯度下降计算要求的)

               大数据量时计算不简便                           |           支持大数据

               要求求逆矩阵,维度是数据个数nXn,可能不存在    |          无需求解逆矩阵

        (大牛:属性个数大于10000时,就不能用正规方程)       |  

              不能用在特定的方法中(如逻辑回归)              |

  13. 正规方程求解过程中出现不可逆的情况非常少,当出现不可逆的时候,通常有两个原因,第一个原因是因变量和预测变量之间有共线性;第二个原因是求解方程的自由度小于0,也就是变量多于方程数。


  1. 逻辑回归模型的基本假设是:



  2. 逻辑回归可以做非线性,但是只能做2-分类

  3. 关于逻辑回归的Cost Function是一个分段函数



  4. 逻辑回归最终的Cost Function与线性回归最终的Cost Function是一致的,但需要知道的是,整个推导过程却是不一致的。

  5. 除梯度下降法之外,用于求解最优theta参数的方法还有拟牛顿法(Quasi-Newton Methods)、共轭梯度法(conjugate gradient)、DFP、BFGS(比DFP要先进)和L-BFGS。共轭梯度法、BFGS和L-BFGS的优势是,不需要人工挑选步长alpha,迭代的速度更快,但缺点是更加复杂。专家建议称:你最好不要自己设计程序来使用共轭梯度法、BFGS和L-BFGS,除非你是数值计算方面的专家。当然,Matlab和Octvia中包含有现成的相关算法库。

  6. 在Matlab中,一个通用的梯度下降的计算方法如下:

  7.  Multi-Class 逻辑回归模型通过使用K个2元回归模型来对多各类别进行分类,每个回归将一个分类与其他分类(作为一个整体)区分开来

  8. Regularization(正则化):用于解决过拟合问题。过拟合又称作高方差。其基本思想是增加参数的平方项目加和,以平滑曲线。应当注意到的是,参数是斜率,各种参数多种多样的时候,曲线拐弯较多,较不平滑,当参数尽可能小的时候,曲线较为平滑。正则化同时可以应用到Liner Regression中。

  9. 正规方程解法中运用正则化的时候,其计算公式更新如下:当XTX是可逆的时候,前面的公式一定是可逆的。

  10.  使用Neural Networks来做机器学习是一种需求而不是备选项。原因如下:负责边界的线性和逻辑回归模型可以使用多项式来构建属性的多次方,但在一个机器学习过程中,属性可能有上百上千上万,使用多项式及其二次幂三次幂至多次幂很不实际,因此必须寻找一种新的方式,神经网络就是随之而来。

  11. 人工神经网络是当前最先进的算法(Andrew NG,2011)。

  12. 神经学家做过的有趣的实验,将动物眼睛到视觉皮层的神经剪断并接到听觉皮层上,听觉皮层将学会和完成视觉任务。

  13. 尝试使用神经网络识别数字Courtesy与Yann LeCun。

  14. 在使用人工神经网络的时候,前向传播和反向传播的公式通常非常复杂,因而可能出现各种小错误,但是又不能检查出来。Gradient Checking就是解决这一问题的方法。Gradient Checking确保你在计算的确实是正确的梯度下降方法。在这一计算过程中,专家使用的双侧差分公式使用的差分值EPSILON为10E-4。

  15.  [Here add the pic 无标题.png]

  16. 在神经网络的Theta值初始化的过程中,如果使用相同的值,如ones(n,1),则会出现学习后每个Theta值仍一样的现象,因为各个初始参数相同,更新值也相同,则更新最后结果也一样。因此,要使用不同的Theta初始化值。初始化的区间是[-EPSILON,EPSILON]。

  17. [Here add the pic 无标题2.png]

  18. 在设计人工神经网络模型的时候,通常只使用一个隐藏层;如果要使用多个隐藏层,则每个隐藏层要有相同数目的神经元数目

  19. 在自动驾驶过程总,每个神经元控制一个行驶方向,最有自信的神经元将控制车辆行驶的方向。

  20. “很多人掌握了如何高效有力的运用这些学习算法,而另外一些人没有掌握如何运用这些算法,因此总是把时间浪费在毫无意义的尝试上”。收集更多的数据可能得到更为精确的结果,这个想法可能是错误的。当你面对较差的预测结果的时候:(1)使用更多的训练数据;(2)尝试更少的数据集合;(3)尝试使用其他未尝试的属性。(4)尝试使用多项式属性(属性的多次幂或乘积);(5)增大/减少惩罚系数lambda以防止过拟合

  21. 把数据分成三部分:训练集、交叉验证集、测试集合。我们使用交叉验证集合来计算误差来选择模型,从而避免了使用测试集合来选择模型的嫌疑(这就是为什么分为三个部分的原因)。

  22. 高测试误差高验证误差(高偏差)=underfitting  测试误差<<验证误差(高误差)=overfitting
      高偏差情况下更多的数据对改进性能无义   |    高误差情况下更多的数据对改进性能无义略有意义

  23. 如何调试一个学习算法
    [ADD 无标题3.png Here]


  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值