AI 路上,第一步这么走下去...

算法是描述解决一个问题的步骤,外界给它所指定的数据,然后经过一系列步骤输出一个结果。为了更快更轻量级地解决问题,我们会选择高效精简的结构去实现,这种结构称为数据结构。因此,算法和数据结构是不同的概念,但有相互依赖关系。

这是一条通往 AI 的路......说道入门 AI, 研究基础算法可能不错,具体怎么实践呢?没错,动手是第一步,有了它脑洞会大开。推荐 Leetcode 平台训练基础算法,它囊括了常用的基本算法思想,如贪心,深度、广度优先搜索,分治,递归,动态规划。Leetcode给出了题目的标签,大家可按照标签去训练,把level等于easy的100多道搞定再总结下。

Leetcode 给我们上的第一堂课:corner case. 各种情况都要考虑周全,没错,这正是考量算法健壮性的一个指标,无论怎么输入,算法都能正确应对,更不会crash. 光有意识还不行,还得想明白怎么做到全盘考虑。一般需要思考以下问题:准确区分出函数体内的常量和变量;如果是变量,那么它的取值范围又是怎样的;基于此的算法逻辑需要切分变量的值域吗。

其二,常用的数据结构,数组(线性表),链表,队列,栈,两个指针,树,图,字符串,对它们你已经不再陌生。并且,知道在什么场景下该使用什么样的数据结构,高效实现一个算法。比如,在需要频繁插入的场景下,要选择链表,而不是呆萌地选择数组,并知道为什么要这样做;面试官问你,二分查找的基本实现思路,你很快就能联想到两个指针;提到树,在你的脑海里就出现了递归二字;想到图,广度和深度优先遍历也出来了。这就叫数据结构和算法不分家,就像旅店,如果没有客人入住了,它就没有存在的必要一样。

再有,思想开始萌芽,意外之喜。上道后,在学到决策树做回归或分类时,突然看到贪心二字时,woo,原来它也是贪心思想启发下发明的啊。相信理解决策树已不是问题,有了在 Leetcode 中的贪心实战。再后来,学到语言模型中的 continuous bag of words 和 skip-gram 时,看到对它们效率低的解释时,也感到轻车熟路,因为 Leetcode 中的字符串 tag 多次涉及字符串模式匹配问题。

也会你还是不相信,学习 AI 为什么要去研究基础算法,直接 pip 安装一个sklearn, pandas, 调调 API 不就能实现文本分类,图像识别了吗。或许这是一条捷径,也恰巧解决了老板安排的问题。可是,好久不长,一天业务方突然给你打电话,说是某种输入下,怎么浏览器崩溃了。然后你连夜寻觅问题出在哪,最终锁定在一个API上,你很欣喜,但是后来很绝望,因为它来自第三方包的调用。你完全不知道它的内部实现细节,抓狂了! 彻夜研究后发现,此包的这个接口不能满足自己的需求,因为它的约束必须是线性的,而业务方的输入约束有可能是非线性的。你更抓狂了!

这就是调用第三方包的结果,有时很好,有时很糟。现在基本避免不了调用第三方包,但最好要全面了解所使用的模块,同时尽可能地明白算法实现原理。这些算法相对复杂,理解起来,相对有难度,为什么不从基础算法开始呢?夯实地基,一样重要。

那么,过了基础算法这关,下一步,该怎么更快的上路呢。AI 最重要的理论之一,可能就是概率论了。 这部分,放在下一次推送。

原文发布于微信公众号 - Python与机器学习算法频道(alg-channel)

原文发表时间:2018-05-12

本文参与腾讯云自媒体分享计划,欢迎正在阅读的你也加入,一起分享。

发表于

我来说两句

0 条评论
登录 后参与评论

相关文章

来自专栏数据结构与算法

洛谷P1720 月落乌啼算钱

目背景 (本道题目木有以藏歌曲……不用猜了……) 《爱与愁的故事第一弹·heartache》最终章。 吃完pizza,月落乌啼知道超出自己的预算了。为了不在爱与...

3169
来自专栏C语言及其他语言

[每日一题]老王赛马

题目描述 赛马是一古老的游戏,早在公元前四世纪的中国,处在诸侯割据的状态,历史上称为“战国时期”。在魏国作官的孙膑,因为受到同僚庞涓的迫害,被齐国使臣救出后,到...

2779
来自专栏趣学算法

ACM竞赛学习指南(算法工程师成长计划)

7641
来自专栏Java面试通关手册

六道面试中常见的智力题 来看看你会做几道?

下面的题目来自滴滴出行2017秋招题。这些题目是我自己觉得比较难或者比较容易出错的题目。

2454
来自专栏C语言及其他语言

【每日一题】问题 1429[蓝桥杯][历届试题]兰顿蚂蚁

题目描述 ? 兰顿蚂蚁,是于1986年,由克里斯·兰顿提出来的,属于细胞自动机的一种。 平面上的正方形格子被填上黑色或白色。在其中一格正方形内有...

2926
来自专栏后端技术探索

算法之经典背包问题分析与实例

我们人类是一种贪婪的动物,如果给您一个容量一定的背包和一些大小不一的物品,裝到背包里面的物品就归您,遇到这种好事大家一定不会错过,用力塞不一定是最好的办法,...

981
来自专栏新智元

邓侃:谷歌Talk to books引爆搜索方式革命

?---- 【新智元导读】昨天,新智元介绍了谷歌的全新搜索工具“Talk to Books”,基于自然语言文本理解,用户能够凭语义而非关键词来实现搜索功能。谷歌...

2966
来自专栏数据结构与算法

博弈论进阶之SG函数

SG函数 个人理解:SG函数是人们在研究博弈论的道路上迈出的重要一步,它把许多杂乱无章的博弈游戏通过某种规则结合在了一起,使得一类普遍的博弈问题得到了解决。 从...

4125
来自专栏余林丰

初学数据挖掘——相似性度量(二)

  上一篇中介绍了四个算法,并用四个算法分别计算了两个人的相似度。这篇就来讲讲相似性算法在实际当中怎么用。第一:将指定的人与其他人作相似性比较,并从高到低进行排...

2436
来自专栏机器之心

机器学习时代的哈希算法,将如何更高效地索引数据

2525

扫码关注云+社区

领取腾讯云代金券