美文网首页机器学习我爱编程
我的机器学习入门经历

我的机器学习入门经历

作者: EchoZhou | 来源:发表于2018-04-16 22:52 被阅读216次

    0x00

    公司里有个算法部门,人很少,但都是精英。机缘巧合,算法部门的大神推荐了我Cousera上面的机器学习课程,然后就开始了我的入门经历

    0x01

    先学的是吴恩达老师的课程(毕竟Cousera的创始人之一),这门课让我对机器学习有了一个基本的概念。
    如果我们有很多房屋信息和他的房价,那我们是否可以找出规律,来预测其他房子的房价呢?这个问题交给一个人类去解决,那就是获取信息归纳总结的过程,而交给计算机,就是机器学习。
    然后从这个问题出发,介绍了线性回归算法,通过画图让我学到了如何用梯度下降(gradient descent)一步一步逼近正确答案,来找到一个可以描述房价规律的函数。
    再加上之后的逻辑回归和SVM等算法之后,让我内心形成一个概念:机器学习就是先找到问题的代价函数(cost function),然后通过各种方法来寻求他的最小值(或者极小值)。这不就是一个凸优化的问题嘛!感觉学会了这三拳两脚,就已经可以去预测彩票了。
    最终我获得的技能是,可以通过一个数据集,来训练出一个可以有预测能力的系统。

    0x02

    算法部大神:“台湾国立大学林田轩老师的机器学习课程也很不错,可以看看。”然后这门课甚至改变了我的世界观。
    课程首先真正抽象了整个机器学习的流程。之前我以为机器学习只是面对具体问题,套上合适的算法,就叫机器学习。其实呢,所有的机器学习算法都在做同样的事情,如下图:


    机器学习的流程

    也就是说,训练的过程,就是从一个假设集(hypothesis set)里面挑选出最合适的假设。
    只会使用算法的我,一开始并没有假设集的概念,只是觉得最终的假设g是一步一步计算出来的。然而实际上我们在一开始决定g的形式的时候(比如线性,比如sign函数),就已经将他限定在一个集合之中,虽然看上去这个集合是无限大的。
    然后课程的下一个问题竟然是,如何证明这一整个流程是可行的(如何证明我们可以从假设集中找到近似于f的g)!
    我作为非科班程序员工作了一段时间之后,产生了这样的思维模式:解决问题的过程就是拿各种库和工具来直接调用,构建解决方案。为什么可以解决问题?这不是自然而然的嘛!这还需要证明?
    那么问题来了,为什么会存在g近似于f?之后的课程就开始了一整个证明的过程,从二元分类问题出发,用霍夫丁不等式作为工具,一步一步推导出了结果。讲真,从头到尾听完之后,我觉得整个世界都是可以用数学来描述,这个世界是数学的。这门课程的这一部分证明过程改变了我对很多问题的看法,甚至想用数学模型来描述身边遇到的各种问题。

    0x03

    我并没有觉得林老师的课程就比吴老师的高级。虽然前者为我构建了理论上的蓝图,但是课程的内容其实和实际工程以及实际问题联系的不算太多。后者是深入浅出地介绍了如何应用机器学习算法,来解决实际问题。这两门课程是相互补完的,都学完了之后我才觉得我算是对机器学习有了一知半解。
    他们都值得一学。

    附录:

    1.《机器学习》斯坦福大学:吴恩达
    2.《機器學習基石》台湾国立大学:林田轩

    相关文章

      网友评论

        本文标题:我的机器学习入门经历

        本文链接:https://www.haomeiwen.com/subject/kgwjkftx.html