L01-人工智能导论

人工智能是什么?

火星车?智能语音助手?自动驾驶?

目前没有一个公认的对于人工智能的定义,我们要接受并理解这个世界的复杂性,以多维度、多角度来观察问题,切记故步自封。

从时间维度来讲

  • 图灵:图灵机—可以做所有的数学计算,但不能判断自己何时停下。
  • 冯诺依曼:将图灵机从论文中搬到了现实中。
  • 1956年,首次提出人工智能的概念。
    Artificial Intelligence:Every aspect of learning or any other feature of intelligence can be so precisely described that a machine can be made to simulate it.
  • 期望用函数拟合来解决问题,但并不能解决基本的XOR问题,所以后来使得AI研究转向了Symbol和Logic。
  • Hinton—反向传播:给予大量正确的label,让机器自己去调整、拟合最优的函数。
    Kai-Fu Lee【语音】——奠定了机器学习的基础:通过大量的数据、标签来进行拟合、学习。
  • 1998年,可以识别文字了,但遇到了机器学习整个过程中两个最主要的限制:
    a、强大的计算能力 b、大量的训练数据。
  • 因此,在2011年及之前,大多用的都是特征提取、决策树等方法。
  • 从2012年开始,错误率急速下降,排名第一的使用的模型都是深度学习模型。
  • 2016,AlphaGo—当人类解决了分类的问题之后,将重点转向了“做决策”方面,代表:围棋。对于AI来说,人类越简单,越条件反射的动作,越难做,而人类觉得越复杂的事情,AI做起来会越简单。

从方法论来讲

1、试着解析并输出grammer_rule

  • 运行结果:

(1)Python split()方法
Python split() 通过指定分隔符对字符串进行切片,如果参数 num 有指定值,则分隔 num+1 个子字符串。
str.split(str="", num=string.count(str)).

  • str – 分隔符,默认为所有的空字符,包括空格、换行(\n)、制表符(\t)等。
  • num – 分割次数。默认为 -1, 即分隔所有。

返回分割后的字符串列表。

(2)Python strip()方法
Python strip() 方法用于移除字符串头尾指定的字符(默认为空格或换行符)或字符序列。
注意:该方法只能删除开头或是结尾的字符,不能删除中间部分的字符。
str.strip([chars])

  • chars – 移除字符串头尾指定的字符序列。

返回移除字符串头尾指定的字符生成的新字符串。

2、试着切分并使用ic进行debug
Tips:什么是Icecream?

  • Icecream是一个python的库,可以用最小的代码打印出更多debug的可读信息。
  • 导入:pip install icecream

通过使用ic,我们不仅看到了结果,也看到了函数形式和参数。

  • 运行结果:

3、试着输出复合句子

  • 运行结果:

4、试着输出公示表达

  • 运行结果:

  • Statistical VS. Logic analysis:
    上述例子是早些年,20世纪70、80年代流行的编程方式。我们码完代码后,要进行思考,通过大量数据来进行功能实现以及通过逻辑分析进行功能实现,这两种思路,有何优劣?

从问题范式上来讲

  • (1)Relax based models:对于我们来说,这种问题可以一眼就看出来,比如什么是狗什么是猫,路灯在哪。
  • (2)State based models:对于我们来说,这种问题一看有点懵,但仔细思索思索,一步一步,也是能够解决的。
  • (3)Optimization models:有限制条件,在此条件下,将事情做得最好。例如,今天有100元,需要用这100元完成三餐,要达到什么标准之类的。
  • (4)Logic models:需要逻辑推理,如下图这个例子,告诉如果下雨,地就会湿。问地湿了,下没下雨。

说到这里,那么很多小伙伴们就不太理解什么是State based models。下面我们用一个模型例子来感受一下 – “倒水问题”:

  • 有两个杯子,大杯子90mL,小杯子40mL,问:如何得到50mL的水?如何得到60mL的水?

  • 运行结果:

从研究对象上来讲

(1)AI Agent – 如何创建能够解决问题的AI方法与模型
(2)AI Tools – 如何使用这些AI模型

人工智能和其他学科之间的关系是什么?

人工智能是包含了很多很多学科知识的一个东西,只要有利于我们去模仿智慧,实现目标,我们都会去吸收该学科的内容。

下图详细地列举出了人工智能方面几个重要的模型起源于什么学科。

我们为什么要学习人工智能?

1、特斯拉、iPhone、抖音、淘宝等,这些的成功都是因为我们深刻的处在一个数字智能时代。

2、人工智能是一种力量,是一种能够使用数据这种能源的力量。

3、而且可以实现职业的可持续增长

怎么才能学好人工智能?

1、心力 – 人工智能并不是非常简单,不然工资也不会那么高,但是你需要坚信自己能够学会,能够学好,要有一个学习的动力。

2、编程能力 – 需要提高自己的编程能力。

3、数学能力 – AI机器学习,是要让计算机去寻找数学之间的关系的,背后的灵魂就是数学。

4、建模能力 – 我们要把理论上、纸面上、代码中的模型,变成实际问题的解决方案。

5、交流能力 – 不同的人有不同的想法,所用的模型、方法也不同,要多和身边的人进行交流。

6、质疑能力 – 所有公开的源码、api、论文都有可能是错的,或者说适用范围有限,要有质疑能力。

如果在学习中遇到了以下的问题,该怎么办?

1、If(遇到了相关的名词术语、方程、公式、代码,看不懂)

  • Not(放弃、质疑自己)
  • Do(首先查询维基百科、bing等高质量搜索引擎)
  • Do(花费15min仍然无法解决,再寻找身边的人帮忙)

2、If(代码感到困难,做不出来)

  • Not(放弃、质疑自己)
  • Do(想尽办法,查询维基百科、bing等高质量搜索引擎,Stack Overflow,GitHub)
  • Do(花费1h仍然无法解决,再寻找身边的人帮忙)

3、If(感到作业、任务过于简单)

  • Not(放弃、骄傲自满)
  • Do(寻找高技术任务练习)