人工智能概述

2023-05-16

目录

  • 什么是人工智能
  • 实现人工智能的方法
    • 逻辑编程
    • 机器学习
    • 深度学习
    • 机器学习和深度学习的区别
  • 人工智能的分类
  • 如何实现人工智能

什么是人工智能

人工智能 又被称为机器智能,是一种综合计算机科学、统计学、语言学等多种学科,使机器 模仿、展现 人类智能的 技术。

说到人工智能我们不得不提到图灵测试,那么什么是图灵测试呢?
计算机科学家 艾伦·图灵 在 1950 年发表了一篇论文,文中提出了一项思想实验:我们委托一名人类测试员,使用测试对象能够理解的语言,分别和身处密室中的一台机器、一名人类自由地进行对话。假如经过若干轮对话后,测试员依然无法分辨出谁是机器、谁是人类,则说明该机器通过测试,是具有智能的。

人工智能的应用也可分为四大主要组成部分:

  • 计算机视觉:辨识图像的形状、颜色、含义;
  • 自然语言处理:理解人类的自然语言,识别对话意图、归纳文章主题,并能够以自然语言进行应答;
  • 推理与规划:能根据已有的知识,遵循逻辑推理出解决问题的方法;
  • 仿真机器人:能运动,包括操作工具、跑动、避开障碍物等等。

例如在生活中我们常见的图书馆或者小区的门禁(用人脸解锁的那种)就体现了计算机视觉方面的智能,还有手机的语音助手,小爱,小艺,小度,siri等他们则体现了自然语言处理方面的智能。

实现人工智能的方法

人工智能的实现方法主要有三种:

  • 逻辑编程
  • 机器学习
  • 深度学习

逻辑编程

其核心思想就是通过事实规则,自动分析其中的逻辑关系,最终得出结论。

我们可以举一个例子:
以下有三条事实和规则:

  • 小明是人类,小红也是人类。
  • 一名人类能对另一名人类产生好感,小明对小红有好感,小红也对小明有好感。
  • 如果两人互相之间有好感,则他们之间的关系是朋友关系。

由此可以得出结论:小明与小红之间是朋友关系。

这一套逻辑在 Prolog 编程语言中,可以这样表达:

human(xiaoming). # 小明是人类
human(xiaohong).  # 小红是人类
like(xiaoming, xiaohong). # 小明对小红有好感
like(xiaohong, xiaoming). # 小红对小明有好感

# 对于朋友关系的定义:
# 当 X、Y 都是人类,并且 X 对 Y 有好感、Y 对 X 也有好感,
# 则 X 和 Y 之间是朋友关系
friend(X, Y) :- human(X), human(Y), like(X, Y), like(Y, X).

# 小明和小红之间是朋友关系吗?
?- friend(xiaoming, xiaohong).
# 输出:true.

Prolog 是一种逻辑编程语言,专门用来解决逻辑问题。(并非重点,自行了解)

上个世纪逻辑编程大放异彩。众多计算机科学家采用这一思路编写“人工智能”程序解决复杂代数应用题、证明几何定理,开发出了世界上第一款聊天机器人——ELIZA。

实际上,ELIZA 的底层逻辑十分简单。
它由若干条规则构成,当检测到患者的输入中含有模糊的定义时,会引导他举一个具体的例子(think of a specific example);当检测到患者表达了伤心、难过的情绪时,会及时地反馈“I am sorry to hear that …”;此外的大多数时候,ELIZA 只是单纯地变换主语,然后复述患者的话。

逻辑编程实现人工智能的缺点
在一些 边界模糊、无法用简明逻辑描述 的任务面前(例如图像识别,自然语言处理等方面)逻辑编程显得力不从心。这归根结底是因为逻辑编程方法的核心思路,是 表示知识(事实)和规则,此时计算机的智能完全依赖于人类的智能,也就是编写程序的我们。

那么如何改进呢:
让机器自己学会思考,学会根据 已有的经验 应对 不确定的未来。

在经历了长达数十年的摸索后,计算机科学家们终于找到了人工智能的突破口。现代化的人工智能技术,发扬了机器 计算能力强、擅长处理大量数据 的特点,让机器在海量数据中学习解决问题的方法。

这便是使人工智能真正具备应用可能的划时代技术——机器学习

机器学习

机器学习 的核心目标,是教会计算机学习知识的方法而这个“方法”,就是 机器学习算法

就像我们在学习写作时,会先学习简单词句,再进行写作的练习,并且会参加大大小小的考试,检测学习成果。机器在学习时也是一样:

  • 它需要从简单的例子开始学起,这些例子被称为 训练集
  • 训练到满意效果后,要完成测试题,检测成果,这些习题被称为测试集
  • 机器学习的过程,就是遵循算法,生成一套属于自己的解题思路的过程;
  • 生成的“解题思路”,就是 模型

机器学习的核心在于 学习,也就是 生成模型 的过程。在传统机器学习算法中,我们需要人工地从数据中 提取特征,再让机器学习这些特征之间的个性与共性。整体的流程是这样的:
机器学习步骤

那什么是 特征 呢?
特征,是能够表示某类知识的 最小单位。文本类信息有文本的特征,语音类信息有语音的特征,图像信息有图像的特征。
以文本类信息为例。一篇文章由若干句子构成,每个句子里,若干词语按顺序排列好。同样的词语,因为出现位置的不同,代表的含义可能完全不同。词语出现的次数,又极有可能反映出一句话或一段话的主旨与情感。所以文本的特征,是词语出现的 次数位置

机器学习实现人工智能的缺点
①想要准确描述图像的特征依然太难,这就造成了图像识别的正确率并不是很高。
②机器在应对不同任务时,所需要的方法也是有差异的。这就与科学家所追寻的大道至简的思想背道而驰。

经过广泛研究,科学家们在 机器学习 基础上提出了一套更简练、更触达“智能”本质的技术——深度学习

深度学习

深度学习 是一种 端到端 的机器学习方法,运用类似人脑神经元的 神经网络 结构,赋予机器思考的能力。
人们不再需要人工地提取数据的特征,只需要把这些数据原封不动地喂给 神经网络,机器就能在不断探索的过程中,自动地提取数据中的特征,完成模型的训练。
著名计算机研究学者 李开复 曾经举过这样一个形象的例子:假设深度学习要处理的数据是信息的“水流”。神经网络就像是一张巨大的水管网络,网络由若干层构成,每层都有许多能够控制水流流向与流量的 调节阀。根据不同任务的需要,水管网络的层数、每层的调节阀数,可以有不同组合。
就像:
神经网络结构
这张巨大网络的入口,是等待处理的数据;出口则是若干个牌子,每个牌子对应着一个识别结果。神经网络的目的是让每个输入都匹配到正确的结果
比如在 人脸识别 任务中,训练集由若干名人类的面部照片构成,每个人可能有许多张不同光线、角度、姿势的照片。因此水管网络的入口是 抹去姓名的照片,出口是这些人的 姓名。机器的任务,就是调节阀门,让照片与人名对应起来
例如我们将人物A对应的照片喂给水管网络,图片被解析成字节构成的水流,在水管网络中流淌。等水流流过整个水管网络,机器会跑到出口位置观察:是不是人物A这个出口的牌子流出的水多。

  • 如果是,那么很好,说明水管网络非常奏效;
  • 如果不是,机器则会调整水管网络中的 调节阀,让人物A牌子的出口流出的水流最多。

一来二去经过一个数量庞大的训练集的训练,整张网络变成了经验丰富的摆渡人,能顺利地将每个输入结果对应到指定输出。我们就可以宣布,一个深度学习人工智能程序 训练 完成了。

机器学习和深度学习的区别

深度学习是机器学习的一种特殊算法,而机器学习是实现人工智能的一种方式。很多同学在刚接触这些概念时,会把深度学习和机器学习搞混,认为它们是同一层级的技术。这是不对的。

三者的关系
相比于传统机器学习算法,深度学习的实现过程像是一个巨大的黑盒。我们无需关心黑盒子内部的实现原理,只要在最开始告诉程序若干对 输入-输出 结果对,“对于输入 A,我希望得到结果 a;对于输入 B,我希望得到结果 b……”,程序便会自动地分析每个输入的特征,找到一种合适的方式达到目标结果。

机器学习与深度学习

人工智能的分类

科学家们按照人工智能与人类智能之间的关系,将人工智能分为三类:

  • 弱人工智能:也被称为 应用型人工智能,拥有部分人类智能,能且只能在 限定领域 解决 特定问题;
  • 强人工智能:也被称为 通用型人工智能,拥有人类的全部智能,能够胜任人类的所有工作;
  • 超人工智能:远超人类目前表现出的智能水平。

如何实现人工智能

机器学习算法
限于计算机性能以及海量的数据训练,我们一般借助国内互联网公司的人工智能开放平台。
在这里插入图片描述

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

人工智能概述 的相关文章

  • Linux命令发送Http的get或post请求

    get请求 curl命令模拟get请求 xff1a 1 使用curl命令 xff1a curl span class hljs string 34 http www baidu com 34 span 如果这里的URL指向的是一个文件或者一
  • 深度学习之----多任务学习

    介绍 在机器学习 xff08 ML xff09 中 xff0c 通常的关注点是对特定度量进行优化 xff0c 度量有很多种 xff0c 例如特定基准或商业 KPI 的分数 为了做到这一点 xff0c 我们通常训练一个模型或模型组合来执行目标
  • PID控制原理(全干货)

    主要内容 xff1a 1 常用的控制算法与PID控制算法的异同点 xff1b 2 PID控制算法的理论分析 3 基于单片机的PID算法实现 4 PID算法的工程应用的一些注意事项 5 演示板电路分析 6 PID算法C语言实现 基于ARM C
  • ESP32 手册+文档整理

    ESP32 一些手册和批注 Arduino IDE 这个板子是带了LoRa的版本 xff0c 国外还有一个TTGo 有类似的ESP32 43 LoRa这种组合 如果不需要LoRa xff0c 可以考虑ESP32 DevKit 或者PicoK
  • 【TVM帮助文档学习】TVM语言参考

    本文翻译自Language Reference tvm 0 9 dev0 documentation 本文档提供TVM的嵌入式语言和IRs的参考 Relay介绍 Relay 是一种函数式的 可微的编程语言 它是一种面对机器学习领域的具有良好
  • 【TVM帮助文档学习】通过示例分析TVM代码流程

    本文翻译自TVM Codebase Walkthrough by Example tvm 0 9 dev0 documentation 了解TVM代码颇具挑战性 xff0c 它的各组件之间的交互非常隐晦 在本指南中 xff0c 我们将通过一
  • Linux设置nacos自启动(centos7)

    1 编写服务脚本 vim lib systemd system nacos service 将下列内容添加进入 span class token punctuation span Unit span class token punctuat
  • 图像处理——Haar特征

    Haar特征最初是用来进行人脸特征的表示的 xff0c 最近重新看了SURF算法 xff0c 发现在生成特征点描述子的时候也有用到Haar特征 查看了一些博文 xff0c 自己整理一些 xff0c 方便以后复习 Haar特征分为三类 xff
  • TVM运行时系统

    本文翻译自TVM Runtime System tvm 0 9 dev0 documentation TVM的编译器栈开发和部署支持多种编程语言 在本文中 xff0c 我们将解释TVM运行时的关键元素 我们需要满足一些有趣的需求 部署 从p
  • 彻底解决anaconda虚拟环境中pip是全局pip 下载包自动到base环境而非虚拟环境的问题 No module named _abc报错解决

    删除系统变量中的 PYTHONHOME C ProgramData Anaconda3 同时需要将虚拟环境的Lib site package的路径添加至系统变量Path中 xff0c 否则还是会报没有 abc模块的错误
  • C++基础语法

    C语言作为程序化的开发语言 xff0c 适合处理较小规模的程序 xff0c 相对于大规模程序 xff0c C语言并不合适 xff0c 所以提出了C 43 43 语言 C 43 43 对C语言的加强主要表现在 1 命名空间 2 函数重载与运算
  • 什么是DOM对象?如何获取DOM对象?

    今天的web前端培训环节 xff0c 我们讲解一下DOM对象 DOM对象本质上是浏览器根据html标签生成的 JS对象 xff0c 它的所有的标签属性都可以在这个 JS对象上面找到 xff0c 修改这个对象的属性会自动映射到标签身上 DOM
  • 2021电赛F题数字识别和巡线部分

    文章之前12月发了一次 xff0c 但是我后来申请的免毕设后 xff0c 用到了一些文字 xff0c 所以删了这篇文章 xff0c 但是还是查重了 xff0c 于是我把一些程序讲解先删了 xff0c 等毕设结束后再编辑加上 这次电赛我没有准
  • STM32CubeMX的使用,配置DMA串口

    这次记录下最近调用的外设 DMA以前用得很少 xff0c 只通过ADC采集使用 xff0c 开启后就直接读那个数组就可以了 我对dma的理解就是不占用cpu xff0c 数据传输速度快 xff0c 可以直接从外设和内存间相互读取 目前的工作
  • Freertos利用队列传递变量值

    记录部分代码 void CreateTask xTaskCreate LED Task 34 LED 34 30 NULL 0 amp LED Handle xTaskCreate OLED Task 34 OLED 34 150 NULL
  • CubeMX调用DSP库

    踩坑记录 先下载库 下载安装完记得勾选 生成工程 把Cube库中对应型号文件夹中的DSP头文件复制到自己工程目录下 Middlewares ST ARM DSP Inc 编译 xff0c 此时会报错 xff0c 定位 复制对应系列芯片至 再
  • FreeRTOS 事件组

    实现功能 xff0c 当任务A B完成后执行串口任务 不同任务用不同的位表示 configUSE 16 BIT TICKS 61 1 bitx 0 7 xff1b configUSE 16 BIT TICKS设置为0 xff0c bitx
  • STM32 硬件SPI应用 WK2124串口扩展芯片

    根据官方实例代码修改而成 xff0c 具体寄存器参数请参考手册 全双工模式 xff0c 8位数据 xff0c 有效位为最高位 预分频结果最终在芯片工作范围内即可 SPI模式0 CS片选信号是自己用软件设定 仅列出读写寄存器修改 xff0c

随机推荐

  • Mapreduce单词计数的例子

    WordCount类 package org apache hadoop examples span class hljs comment 著名源文件存放的地方 span import java io IOException import
  • LCD12864驱动显示程序

    这里是用的并行写法 xff0c 后续会更新串行 并行缺点就是太占用io口了 xff0c 我其实更喜欢用串行 不过不是比赛要求都不怎么用了 lcd12864 c include 34 lcd12864 h 34 uchar code num
  • HC-SR501人体红外感应模块程序

    当感应到时 xff0c 输出一个高电平 这里我对io口进行了配置 xff0c 要不然读不到高电平 建议大家以后养成习惯 xff0c 对io口进行配置 xff0c stm32中会用到 在这里我额外提下 xff0c 一般在stm32中 浮空输入
  • HX711称重模块程序

    以上部分截自于厂家数据手册 include lt STC12C5A60S2 H gt include 34 lcd12864 h 34 unsigned long HX711 Buffer 61 0 unsigned long Weight
  • SYN6288中文语音合成 程序

    用到串口2 xff0c 因为串口1的话会影响下载 xff0c 需每次拔插线 include lt STC12C5A60S2 H gt include lt stdio h gt include lt math h gt include lt
  • STC单片机超声波程序

    SR05 xff0c 这款只能用定时器计算 include lt intrins h gt include 34 12864 h 34 include lt stdio h gt sbit RX 61 P1 6 sbit TX 61 P1
  • VTK学习-坐标系统

    写在前面 xff1a 这篇博客简要根据书本内容简要介绍一些VTK中要用到的坐标系统与空间变换 这一部分与计算机图形学结合更加紧密 想起之前也 被迫 研究过一段时间的计算机图形学中三维显示部分 xff0c 现在简单学一学 xff0c 提示一下
  • python出现进程已结束,退出代码为-1066598274 (0xC06D007E)的含义

    python出现进程已结束 xff0c 退出代码为 1066598274 0xC06D007E 的含义为你当前使用的某个包与其他相关的包版本之间发生冲突 解决方法 xff1a 卸载正在使用的当前包与相关包 重新安装一遍即可解决
  • lxc

    LXC为Linux Container的简写 Linux Container容器是一种内核 虚拟化技术 xff0c 可以提供轻量级的虚拟化 xff0c 以便隔离进程和资源 xff0c 而且不需要提供指令解释机制以及全虚拟化的其他复杂性 相当
  • 关于ros2、turtlebot3和nav2的应用总结

    关于ros2 turtlebot3和nav2的应用总结 一 资源简介 1 版本要求 ros2 foxy turtlebot3 waffle nav2 0 4 1 gazebo gazebo ros pkgs 3 5 0 zip 2 资源链接
  • motion_primitive_library导航源码阅读笔记

    一 motion primitive library导航源码阅读笔记 二 路径规划文献 Search based Motion Planning for Quadrotors using Linear Quadratic Minimum T
  • Linux下安装cmake步骤详解(图文)

    1 查看Linux位数 getconf LONG BIT 2 获cmake源码包 这里我先新建一个文件夹来存放cmake mkdir app cd app wget https cmake org files v3 3 cmake 3 3
  • cartographer代码流程整理

    代码解析地址 https zhuanlan zhihu com p 48010119 一 代码目录结构 1 cartographer ros 2 cartographer 二 测试命令 2D xff1a roslaunch cartogra
  • 关于ros2、webots的应用总结

    关于ros2 webots的应用总结 一 资源简介 1 版本要求 ubuntu20 04 1 ros2 foxy 2 资源链接 webots官网 xff1a http www cyberbotics com webots ros2网址 xf
  • 日常使用书签

    1 TensorFlow API 中 NCHW 与 NHWC 的区别 https blog csdn net weixin 41847115 article details 83794551 utm medium 61 distribute
  • 在ubuntu下安装opencv4.5.1详细步骤

    1 到https github com opencv opencv下载opencv4 5 1 xff0c 解压得到opencv master 2 安装依赖包 sudo apt get install build essential cmak
  • 路径规划资料

    1 RRT算法原理图解 https blog csdn net weixin 43465857 article details 96451631 2 最透彻的A 算法详解 https my oschina net u 4847229 blo
  • nav2阅读笔记

    1 机器人起始坐标是在全局地图中 xff0c 目标点也在全局地图中 xff0c 全局路径规划在全局地图完成 机器人的运动控制是在局部地图中完成 xff0c 也就是在车体坐标系下 2 无人机 自动驾驶车辆全局路径规划 局部路径规划都是在全局坐
  • 日常使用标签2

    日常使用标签2 1 CUDA入门教程 https blog csdn net luoganttcc article details 123474189
  • 人工智能概述

    目录 什么是人工智能实现人工智能的方法逻辑编程机器学习深度学习机器学习和深度学习的区别 人工智能的分类如何实现人工智能 什么是人工智能 人工智能 又被称为机器智能 xff0c 是一种综合计算机科学 统计学 语言学等多种学科 xff0c 使机