人工智能(一)机器学习和神经网络

2020/03/25 AI 共 3046 字,约 9 分钟
AI智谷X

人工智能(一)机器学习和神经网络

一、人工智能发展史

1、1950年:

  艾伦-图灵:机器能够像人类一样思考吗?并且提出了一种学习方法“图灵测试”。机器能让30%以上人相信它是一个“人”,2014年终于有一台机器,让33%的人相信它是一个13岁的小男孩,它就是首个通过图灵测试的程序“尤金-古斯特曼”。计算机领域的最高奖项就是“图灵奖”,被称为计算机领域的诺贝尔奖。

2、1956年:

  马文-明斯基、约翰-麦卡锡以及克劳德-香农召集了一个重要会议“达特茅斯会议”。主要议题就是机器是否能够像人类一样思考,就在这个会议上人们发明了一个名词“人工智能,Artificial Intelligence”,简称“AI”。从这次会议开始,人工智能进入了第一个大发展的时代。麦卡锡也凭借他在人工智能领域发的贡献,而获得了“图灵奖”。

人工智能的三涨两落:

1、第一次浪潮:AI算法 2、第二次浪潮:知识工程系统 3、第三次浪潮:深度学习 4、第一次低谷:专家系统等的算法由于当时存在知识获取难度问题,导致很多项目失败 5、第二次低谷:计算机能力难以模拟复杂度高及规模大的神经网络。LISP机市场崩溃。经费危机,美国取消AI预算,日本第五代计算机项目失败并退出市场。

3、1997年 IBM 深蓝机器人

  它战胜了国际象棋冠军卡斯帕罗夫,因此人工智能再次复苏。主要是还是得益于近些年计算机科学和算法的改进。尤其是计算机算法领域涌现出很多灵魂人物。

  多伦多大学的杰弗里-欣顿,他的贡献在于将方向传播算法(BP)应用在人工智能方面。

  纽约大学的杨易坤,他的贡献在于卷神经网络网络(CNN)。

  加拿大蒙特利尔大学的约书亚-本吉奥。

他们仨获得了2018年的“图灵奖”。

经过几十年的发展,人工智能已经具有了长足进步,在特定领域,比如图像识别领域,人工智能已经超越了人类。而在计算机翻译和语音识别方面,热弄智能也有了长足的发展。

二、梯度下降算法

  梯度下降是机器学习和优化领域中的一种常用方法,用于寻找函数的局部最小值或最大值。它是许多机器学习算法的基础,如线性回归、逻辑回归、神经网络等。梯度下降的核心思想是通过迭代地更新模型的参数,以便逐步朝着函数的极值点移动。

具体来说,梯度下降的过程如下:

1、初始化参数:

  首先,为模型的参数(权重和偏置)选择初始值。

2、计算梯度:

  在当前参数值下,计算损失函数对于每个参数的偏导数(梯度),这告诉我们如何调整参数以减少损失函数的值。

3、更新参数:

  使用梯度信息和一个称为学习率的超参数来更新参数。学习率控制了每次迭代中参数更新的步长。较小的学习率可能导致收敛较慢,而较大的学习率可能导致不稳定的收敛。

4、迭代:

重复步骤2和步骤3,直到达到预定的停止条件,如迭代次数达到指定值或损失函数收敛到某个阈值。

梯度下降有不同的变种,主要区别在于如何计算梯度。常见的有批量梯度下降(使用所有训练数据计算梯度)、随机梯度下降(使用单个随机样本计算梯度)以及小批量梯度下降(使用一小部分样本计算梯度)。

需要注意的是,梯度下降可能会陷入局部最优解,而不是全局最优解。为了应对这个问题,有时会使用随机初始化、学习率调整策略、以及更复杂的优化算法,如Adam、RMSProp等。

三、神经网络

  神经网络是一种受到人类神经系统启发的计算模型,用于处理和学习复杂的模式和关系。它是机器学习和人工智能领域中的重要技术,广泛应用于图像识别、自然语言处理、语音识别等任务。

  神经网络模拟了生物神经元之间的连接和信息传递方式,由多个神经元层组成,每层包含多个神经元节点。神经网络的主要组成部分包括输入层、隐藏层(可以有多层)、输出层。

1、基本的前馈神经网络(也称为多层感知机)工作方式如下:

(1)、输入层:

  接受原始数据或特征作为输入。

(2)、隐藏层:

  位于输入层和输出层之间的一层或多层神经元。每个神经元都将上一层的输出与带有权重的连接相结合,然后通过激活函数处理生成输出。

(3)、输出层:

  提供最终的预测结果或分类。

2、神经网络的训练过程涉及以下步骤:

(1)、初始化参数:

  对连接权重和偏置进行随机初始化。

(2)、前向传播:

  输入数据通过网络,计算每个神经元的输出。

(3)、计算损失:

  将网络输出与真实标签比较,计算损失函数来衡量预测的误差。

(4)、反向传播:

  根据损失函数的梯度,从输出层反向计算每个神经元的梯度,并将梯度传播回前一层,直至输入层。这样可以获得每个连接权重的梯度,从而知道如何更新参数以减少损失。

####(5)、参数更新:

  使用优化算法(如梯度下降)根据梯度信息更新连接权重和偏置。

(6)、重复迭代:

  反复执行前向传播、反向传播和参数更新,直到损失函数收敛或达到预定的迭代次数。

  深度学习是神经网络的一个分支,侧重于使用深层神经网络来处理复杂模式和数据。卷积神经网络(CNN)用于图像处理,循环神经网络(RNN)用于序列数据(如文本和语音),而变换器(Transformer)则在自然语言处理中取得了显著成就。

  神经网络的成功部分归因于其能够从数据中自动学习特征,并在多种任务中取得出色表现。

四、人工智能的框架

  人工智能的框架是指在解决问题或开发应用时所使用的组织结构、方法和工具的结合。这些框架可以帮助开发人员更高效地构建、训练和部署人工智能模型,从而实现不同任务的自动化和智能化。以下是几个常见的人工智能框架:

1、TensorFlow:

  TensorFlow 是由谷歌开发的开源人工智能框架,广泛用于构建深度学习模型。它提供了强大的张量计算功能,支持图形计算和自动求导,并且有丰富的预训练模型和工具。

2、PyTorch:

  PyTorch 是另一个流行的开源深度学习框架,由 Facebook 开发。它以动态图的方式进行计算,更贴近自然语言编程,使得模型构建和调试更加直观。

3、Keras:

  Keras 是一个高层次的神经网络 API,可以运行在 TensorFlow、PyTorch 等后端之上。它的设计使得模型构建非常简洁,适合初学者和快速原型开发。

4、Scikit-Learn:

  Scikit-Learn 是一个用于机器学习的 Python 库,提供了各种经典的机器学习算法和工具。它适用于构建各种机器学习模型,并有丰富的数据预处理和评估工具。

5、OpenAI Gym:

  OpenAI Gym 是一个用于强化学习研究和开发的工具包,提供了各种标准化的环境和任务,可以用于训练和评估强化学习算法。

6、Hugging Face Transformers:

  这是一个用于自然语言处理的框架,提供了各种预训练的语言模型,如BERT、GPT等,以及方便的模型加载、微调和部署工具。

7、Apache Spark MLlib:

  Spark MLlib 是 Apache Spark 生态系统中的机器学习库,适用于大规模数据处理和分布式计算,提供了各种常用的机器学习算法。

8、Microsoft Cognitive Toolkit (CNTK):

  CNTK 是微软开发的深度学习框架,具有高性能的训练和推断能力,广泛应用于语音识别、图像处理等领域。

9、Fastai:

  Fastai 是一个基于 PyTorch 的框架,专注于让深度学习更加易用,提供了高级别的接口和预训练模型。

  以上框架只是众多人工智能和机器学习框架中的一部分,每个框架都有自己的特点和适用场景。选择适合的框架取决于项目需求、编程语言偏好和开发经验等因素。


文档信息

Search

    Table of Contents