正如我在 < 2019 年总结>里说提到的, 我将开始一系列自然语言处理 (NLP) 的笔记.
很多人都说, AI 并不难啊, 调现有库和云的 API 就可以啦.
然而实际上并不是这样的.
首先, AI 这个领域十分十分大, 而且从 1950 年图灵提出图灵测试, 1956 年达特茅斯会议开始, AI 已经发展了五十多年了, 学术界有的认为有六个时期, 有的认为有三起二落 https://zhuanlan.zhihu.com/p/25774614 .
所以 Ai 发展到今天, 已经有相当的规模了, 不可能有一个人熟悉 AI 的所有领域, 最多也就是熟悉相关联的几个领域, 比如 NLP 和 OCR 以及知识图谱相关联, 这已经顶天了.
所以我不敢说我会 AI, 我只敢说我做过自然语言处理 (NLP) 项目.
换种我们所熟知的方式表达, AI 就相当于. NET, .NET 有七龙珠, 遍及 web, 桌面, 移动端, 手游端等等, 一个人不可能熟悉所有领域, 能够熟悉 Web 和桌面端两三个领域已经很顶天了.
当一个做惯了 Web 和桌面端的程序员突然去做移动端和手游端, 因为缺乏对应领域的基础知识, 是不能马上上手的, 也是通不过面试的, 也就是为什么很少. NET 程序员能够从 Web 和桌面端转型做手游端一样. 最典型一个问题, 让一个做 Web 的. NET 程序员去做手游客户端的自动寻路功能, 并不容易, 并不是调 API 就能解决的.
所以虽然我做过 NLP 项目, 现在让我突然去做阿拉法狗, 我也是不行的.
我接触到不少人做过 NLP 项目, 因为只会调现有库和云的 API, 最终效果不佳, 不得不回退到用正则表达式处理的方式, 甚至乎类似于 "价值一个亿的 AI 核心代码 https://cloud.tencent.com/developer/news/371848". 或者采取人工 + 智能的方式.
在此我并没有嘲笑以上各种方法的意思, 毕竟第一我的水平也不怎么样嘛, 第二正则表达式和人工 + 智能的方式的确临时解决了部分问题.
但是人总是要有追求的, 就像 Eric 说的, 就算做咸鱼都要做一条有理想的咸鱼, 而且从长远的角度来说还是要靠数学才能根本性的解决问题.
数学和 AI 一样五花八门种类繁杂, 同样是研究数学, 研究计算共形几何和研究范畴论的两个人是很难沟通的.
自然语言处理 (NLP) 对应的数学分支是概率论. 而概率论中又会用到微分和积分, 合称微积分.
然而概率论子分类也很多, 这里就简单列一下 NLP 所用到的概率论知识点吧:
概率(probability)
最大似然估计(maximum likelihood estimation)
条件概率(conditional probability)
全概率公式(full probability)
贝叶斯决策理论(Bayesian decision theory)
贝叶斯法则(Bayes' theorem)
二项式分布(binomial distribution)
期望(expectation)
方差(variance)
然而要弄懂上面 9 点, 还需要理解以下概念:
排列组合
频率与概率
古典概型与几何概型
条件概率
全概率公式
一维和二维离散型随机变量
一维和二维连续随机变量
协方差和相关系数
大数定律及中心极限定理
样本与抽样分布
点估计
后面我会对具体每个概念写心得.
来源: https://www.cnblogs.com/adalovelacer/p/NLP-Math-1-summary.html