机器学习算法领域里,有一个颇受争议的观点:机器学习算法不需要数学,因为很多算法都封装好了,调个包就能用,并不需要大量的数学知识。
对此我先抛出个人的愚见:机器学习算法从业者的确不需要花费大量的时间在数学上,相比于数学的研究,掌握调参的技巧更加重要,更具有实践意义。然而,数学绝非一无是处。同样是做机器学习算法,数学更好的人可以做出更加高效、更加简洁的模型。
机器学习算法
调参和优化,在机器学习算法里面非常重要。接触一个场景,根据需求去做算法,你发现准确度不好、loss很高等很多问题,这个时候哪怕你拥有非常深厚的数学功底,也未必能够找到问题出在哪里。当然,数学知识会引导你找到一个大致的解决问题的方向,但不会告诉你解决问题的具体方法。所以如何获取解决问题的方法?靠的是经验。哪怕只会调包,做得多了也能积累出经验。所以数学功底好的人,真不必瞧不上那些玩调包的人,因为论找问题的经验,不一定谁更技高一筹。
工业界里模型并没有那么多,而能调整的参数也没有那么多。对于数学能力不是很强的机器学习算法工程师来说,这绝对是一件好事。因为就算数学知识不强,具备一定的调参经验,也能做出不错的效果。就拿工业界常用的Regression算法来讲,这个算法真的比其他算法好吗?倒也不是。出众的算法,大多都是因为它更加稳定,更加易于解释和说明。
机器学习算法
当然,很多人都在说机器学习算法想要入门,必须具有相当强的数学基础。类似的言论不知道劝退了多少年轻人,因为数学这门学科对于很多人而言简直就是噩梦般的存在。大家一看,数学要求那么高,还是算了吧。为什么大家都在说数学对于算法工程师的重要性呢?这里面是否高估了数学的重要性呢?存在这样一个大家都不愿意放在台面上说的问题:科班出身的怕被人抢了饭碗,所以一定会说这一行门槛很高,对于数学要求很高。
对于数学一窍不通的人要做机器学习算法,那是行不通的。但是,大家也不必高估数学对于算法的重要性,如果有人告诉你想搞算法必须要精通各种高深的数学理论,你也是不必相信的,合理看待数学对于算法的作用就好了。