0基础想学算法?聊聊我的算法觉醒之路

算法入门 机器学习基础 深度学习 学习路径 非科班学习 算法实践 学习资源 学习总结
作者分享了从零开始学习算法的经历。最初,他在电商公司从事广告反作弊工作,利用大数据工具进行规律过滤,但逐渐感到职业瓶颈。通过参与识别商家刷单行为的项目,他首次接触并模拟了机器学习算法,成功上线了一个高准确率的算法,这让他意识到算法的潜力。然而,学习过程中,他发现许多资料和课程过于晦涩,不适合非科班出身的学习者。最终,他通过《机器学习实战》这本书,从代码实战入手,逐步掌握了机器学习的基础,并在GitHub上分享了学习过程,获得了广泛关注。作者总结道,学习算法需要找到适合自己的方法,避免半途而废。尽管算法带来了许多好处,但其难以可视化展示价值的特性也限制了其应用场景。
文章内容
思维导图
常见问题
社交分享

我学习算法,本质上是一个时代的机缘巧合。至于好坏,我们继续聊下去!

故事背景

我原来在某大型电商公司是做广告反作弊。当时是利用大数据Hive+python/shell,完成一些规律过滤。

长期这样的生活有一段时间,持续了1年多,感觉遇到了瓶颈,觉得自己的职业方向没任何挑战和成长空间。不过由于我们领导的业务能力非常强大、效果显著。所以接到搜索部门的业务订单,开始了对全网的商家刷单行为进行异常识别。

项目实践

由于我对机器学习是懵逼的,所以我按照领导的提示,模拟机器学习算法,一步一步的构建特征和统计,最终完成了我们的第一个算法。在不断优化参数的过程中,得到了一个非常高的准确率,算法也得以上线。

这一次我彻底震惊了,这个算法的最终其实并不难,难的是我的确没见过世面,也不知道一步一步实现的过程和步骤。所以又一次震碎了我的世界观,原来世界上有这么厉害的东西,而我却显得很无知。就好像你是一个苗子还不错的人,经过1年的磨练,突然有人给了你一门适合你的武林秘籍 - 尝鲜版,你上手后,得心应手!你觉得你的瓶颈期没了,有了新方向的那种感觉。

寻找资料

就这样,在这样的思想下,开始寻找各种学习资料。但是你发现,周围的学习资料都不适合你,为什么这么说呢?因为我并不是师出名门,就是并没有良好的公式推导能力(因为很多公式都进行缩写和包装),对于不是科班出来的,光一个符号你可能都不知道是什么,就这样网上晦涩难懂的课程,让学习它的人又高兴又痛苦,而我是第一个被劝退的人。

但是我在工作是真实体验过算法成果,并且通过实践知道它并不是很难的人。我开始怀疑,网上讲公式推导的这群人,可能不太适合我(当然当时也觉得他们教得不行),后来在和朋友聊天的过程中很多人也遇到了这种情况,想学,但是都听不懂这些专家老师在讲什么!

我也没事经常和周围同事聊怎么学习这事,有一个老哥给我说,你看一下这本书《机器学习实战》,这本书说的是算法如何从0通过代码来的过程,由于代码只有加减乘除,所以对于编程基础和调试能力很强的我非常适合,我不用去理解公式推导的过程,只需要理解这个代码这么写有什么用就行。

学习效果

从此一发不可收的,学完这本书,并且分享笔记和录制了视频,不断的强化和完善自我,就这样我也打下来良好的机器学习基础,为此我们在知乎发帖,说:有些课程虽然很牛,但的确不适合非科班的人学习的狂言!然后在GitHub公开了我们学习的全过程,我们的项目在GitHub从0到38K star(机器学习搜索前3,现在可能排序有些变化)。

这个学习的过程很痛苦,怎么说呢,我们花了2个月的时间,不断的调试和输出,写了大量的笔记,完成了对代码的理解(当然也有很多遗漏的地方),在这个过程中,大脑也不断的强化,也慢慢理解了代码这么写的原因,也就是这个算法牛逼的地方。有点像:“读书百遍,其义自见”。

至此,后来学习深度学习的过程、学习大模型的过程,都非常顺利,甚至用轻松来形容也不为过。

学习总结

就是我们要学一个东西,一定要找到一个适合自己的课程体系,就像有的人适合从代码实战中学习、有些人却可以直接从公式推导来学习;所以要清楚自己的能力给自己定位,找到适合自己的,才能学完,不然很容易半途而费,从而错过一套不错的武林秘籍。

现在回过头来想想,算法的好处的确非常多,有机会接触很多牛人的思想结晶。但算法弊病也最为明显,最大的毛病就是:无法可视化的对外展示自己的价值,也就是非常适合做幕后的工作者,很难脱离职场。

思维导图生成中,请稍候...

问题 1: 你是如何开始学习算法的?
回答: 我在广告反作弊工作中遇到了瓶颈,后来通过参与商家刷单异常识别项目,模拟机器学习算法并成功上线,从而对算法产生了兴趣。

问题 2: 在学习算法的过程中,你遇到了哪些困难?
回答: 我发现网上的学习资料大多晦涩难懂,尤其是公式推导部分,因为我不是科班出身,很多符号和缩写都不理解,导致学习进展缓慢。

问题 3: 你是如何克服学习算法的困难的?
回答: 我通过阅读《机器学习实战》这本书,从代码实战入手,专注于理解代码的作用,而不是公式推导,这让我逐渐掌握了算法的基础。

问题 4: 学习算法后,你取得了哪些成果?
回答: 我完成了《机器学习实战》的学习,并分享了笔记和视频,在GitHub上发布的项目获得了38K star,打下了扎实的机器学习基础。

问题 5: 你认为学习算法的关键是什么?
回答: 关键是找到适合自己的学习方式,比如从代码实战入手,而不是盲目跟随公式推导,这样才能坚持学完并掌握知识。

问题 6: 学习算法对你的职业发展有何帮助?
回答: 学习算法让我突破了职业瓶颈,接触到了更多牛人的思想结晶,为后续学习深度学习和大型模型打下了基础。

问题 7: 你认为算法的最大弊端是什么?
回答: 算法的最大弊端是难以可视化地展示其价值,更适合做幕后工作,难以在职场中直接体现其贡献。

问题 8: 你对想学习算法的初学者有什么建议?
回答: 建议初学者先明确自己的能力定位,选择适合自己的学习方式,比如从代码实战入手,避免因不适合的学习方法而半途而废。

问题 9: 你在学习算法的过程中,最深刻的体会是什么?
回答: 最深刻的体会是“读书百遍,其义自见”,通过不断调试和输出代码,逐渐理解了算法的核心思想和实现方式。

问题 10: 学习算法后,你对未来的学习有何规划?
回答: 学习算法让我对深度学习和大型模型的学习更加顺利,未来会继续探索这些领域,进一步提升自己的技术能力。