当前位置: 首页 > news >正文

这才是计算机科学_人工智能

人工智能

  • 一、前言
  • 二、ML
    • 2.1 分类
      • 2.1.1 决策树
      • 2.2.2 支持向量机
      • 2.2.3 人工神经网络
  • 三、计算机视觉
    • 3.1 Prewitt算子
    • 3.2 Viola-Jones 人脸检测算法
    • 3.3 卷积神经网络
  • 四、自然语言处理
    • 4.1 知识图谱
    • 4.2 语音识别

一、前言

之前讲了计算机从发展到现在的过程,计算机很适合做迭代的工作
擅长 存放、整理、获取、处理 大量的数据
但是想根据谁做决定,就要牵扯到机器学习,这也是ML的本质
ML算法可以让计算机 从 数据中学习,然后自行做出预测&决 定

机器学习虽然有用,但是不会被定义为 智能
虽然ML AI 这两个词语经常混用,但是大多数科学家会说ML是为了实现AI这个更加宏大目标的技术之一

二、ML

2.1 分类

classification
做分类的算法叫做 “分类器classifier”
虽然可以用 照片声音 训练算法,很多算法会减少复杂度,把数据简化为“特征features”

2.1.1 决策树

举个例子:分类飞蛾,有两个特征值:“翼展” “重量” “”
在这里插入图片描述

把决策空间切成几个分块的简单方法,可以用 “决策树decision tree”来表示
在这里插入图片描述
一些算法会用多个 decision tree 来预测,科学家称其为 “森林forest”

2.2.2 支持向量机

Suport Vector Machines
本质上是用任意线段来切分 决策空间,不一定是直线,可以是多项式或者是其他数学函数,通过算法不断地对数据迭代,找出最好的线
在这里插入图片描述
再加入一个 特征,触角长度,2D的平面就会变成3D的了
在这里插入图片描述

四个特征,四维度…上千维度

决策树 & 支持向量机 这样的技术发源于 统计学

2.2.3 人工神经网络

灵感来自于大脑里的神经元,神经元是细胞,用电信号 化学信号来传输消息,神经元细胞从其他细胞得到一个或者多个输入值,然后做出反应 输出信号值,很多很多神经细胞组成巨大的互联网络,能处理复杂的信息

计算机中的人造神经元也很类似,可以接受多个输入,然后整合并发出一个信号
在这里插入图片描述
它不用电信号,化学信号 而是 input 数字 output 数字,形成神经元网络

回到上面的例子:看神经元如何分类

  1. 左侧需要被分类的单个飞蛾的数据(mass重量 wingspan翼展),右侧分类的结果
    在这里插入图片描述

  2. 中间有一个隐藏层,负责把输入变成输出,分类

分类神经元:把输入* 权重 ,然后求sum
在这里插入图片描述
对于sum(权重*原始值) ,用一个偏差值(bias)处理: + or - 一个x
一开始,这些权重 偏差值x都会是随机的,然后算法会调整这些值 来训练
最后,神将元有激活函数,也叫做传递函数(应用于输出,对结果执行最后一次数学修改(把负数变成0、控制值在一个区间等))
在这里插入图片描述
这个过程会应用于多个神经元,如下图3个

在这里插入图片描述
最终一层,数字最高的就是结果
在这里插入图片描述
中间结果会有很多很多层,这便是深度学习

在这里插入图片描述
尽管神经网络50年前就发明了,但是限制于硬件的发展,最近5年才得到应用

以上,一个算法虽然能人脸识别,自动驾驶,但是也都是只能做一件事
这种被称为“弱AI Week AI” or “窄AI Narrow AI”,只能做特定的事情。
通用的AI,像人类一样可以处理各种算法的,叫做“强AI Strong AI”,目前还没有做出来,但是人来留下来的大量的数据,用作训练,可能就是点燃强AI的燃料,就像 ChatGPT。

AI自己不断地学习,阿尔法go 自己和自己下了 上百万盘,自己发现成功的策略,这被称为“强化学习Reinforcement learning”

三、计算机视觉

半个多世纪以来,科学家一直想让计算机有视觉,因此记诞生了“计算机视觉Computer Viesion”这个领域
正如计算机视觉的大佬 李飞飞所说:“看到不等于看懂”
在这里插入图片描述
像素每一个是RGB

举个栗子:追踪粉红球
在这里插入图片描述
计算机会从上到下一个像素一个像素的check ,找打粉红球的RGB,
然后视频的每一帧都会做这个check,这样就会追踪这个球的踪迹了

但是因为 天气 等因素的变化,这个粉红球的RGB也可能会变,但是会寻找最接近的,每一个像素都要check,像素在这里被称为 “块patches”

3.1 Prewitt算子

举个栗子:找垂直边缘的算法
假设来帮助无人机躲避障碍,为了简单 可以把图片变成灰度
在这里插入图片描述

可以很容易的看到,杆子的左边缘从哪里开始的,因为垂直的颜色变化,可以制定规则:

  1. 某像素是垂直边缘的可能性,取决于左右两边像素的颜色差异程度
    在这里插入图片描述这叫做 核Kernal or Filter过滤器,里面的像素用来做像素乘法,总和存到中心像素

在这里插入图片描述
这里指定了每个像素要* 的值(-1,0,1)
在这里插入图片描述
新的值147就成为了中心像素的值,和原来224的色差很大,说明是边缘

把核Kernal应用到像素块,这个操作叫做 卷积convolution

把这个操作应用到其他块:
在这里插入图片描述

结果是1,和原来的色差很小,说明不是边缘

如果把kernal应用到照片中的每一个像素
在这里插入图片描述

想要看横向的,就需要用不同的Kernal
在这里插入图片描述

这两个边缘增强的核叫做Prewitt算子

3.2 Viola-Jones 人脸检测算法

当然还有很多很多的Kernal

判定眼睛的Kernal:眼睛:一个黑色的圆圈被外层更亮的一层像素包裹
在这里插入图片描述
计算机扫描图像,一个窗口,多种核来扫描,那么就可以找到人脸
在这里插入图片描述

这个早期人脸检测算法叫做:Viola-Jones 人脸检测算法

3.3 卷积神经网络

在这里插入图片描述
输入权重约等于 Kernal的值
但是和Kernal不同的是,卷积神经网络可以不断迭代出自己的权重

在这里插入图片描述

在这里插入图片描述
第一次卷积 出 边缘edges
第二次卷积出shapes(边缘组成的角落)
第三次卷积出 特征实例(眼睛 嘴巴)

最后把直到某一层把所有特征放到一起
在这里插入图片描述
卷积神经网络并不是一定需要很多很多层,但是系别复杂物体和场景就需要一定的复杂度,所以是 深度学习

有了脸部识别,那么我们就可用专用的计算机视觉算法来定位面部标识
在这里插入图片描述
在这里插入图片描述
这些信息可以用情感识别算法来实现

还可以标记一个人两眼之间的距离,以及前额头有多高,来识别是谁
这就是:生物识别biometric data

四、自然语言处理

4.1 知识图谱

让计算机如何理解语言,高级的编程语言也是语言,但是相对固定一些
,和人类的语言完全不同,人类的语言被称为“自然语言”
从计算机诞生之初就出现了计算机处理语言的学科NLP,结合了计算机&语言学

早期就是把一个句子切成一个词一个词 ,然后查词典,但是还有语法的问题,因此开发了 “短语结构规则” 来代表语法规则,基于这个规则可以做出分析树

在这里插入图片描述
按照 “短语结构规则” 来生成句子

Google版本的叫“知识图谱Knowledeg Graph”
在这里插入图片描述
对话系统Dialog Systenms,用上大量的聊天记录来训练深度学习模型

4.2 语音识别

贝尔实验室在1952年推出一个语音识别系统 Audrey ,自动数字识别器
在这里插入图片描述

a & e的两个声音的波形,信号来自麦克风内部隔膜震动的频率

为了更加容易识别,可以换谱图(spectrogram)看
在这里插入图片描述
这种图的转换是用 “快速傅里叶变换FFT”

在这里插入图片描述
音速phonemes:构成单词的声音片段
语音识别软件知道这些音速,英语大概有44种音速,因此语音识别也就是音速的识别,我们可以识别音速来识别这些

Speech Synthesis让计算机输出声音

http://www.lryc.cn/news/11468.html

相关文章:

  • DFS深度优先搜索—Java版
  • RAY - 小记
  • 金三银四软件测试工程师面试题(含答案)
  • Python 连接数据源与邮件功能(九)
  • 网站如何锁定用户,超级浏览器有办法解决吗?
  • Ubuntu下使用Wine运行HBuilderX
  • 如何高效远程维护分布在海外的中大型智能设备?
  • 【双指针问题】LeetCode 925. 长按键入
  • APP测试中IOS和Android的区别,有哪些注意点?
  • 2019蓝桥杯真题平方序列(填空题) C语言/C++
  • vue中,给一个URL地址,利用FileSaver.js插件下载文件到本地
  • 从0开始学python -34
  • 瑞典军事研究:从认知心理学的视角探讨军事创新进程
  • 【MySQL进阶-08】深入理解innodb存储格式,双写机制,buffer pool底层结构和淘汰策略
  • 5. AOP
  • ubuntu上尝试libpqxx库链接人大金仓
  • 【Python入门第十二天】Python 列表
  • Android 异步操作库 RxJava
  • 2021-12-05青少年软件编程(C语言)等级考试试卷(六级)解析
  • github 使用
  • Kubernetes集群维护—备份恢复与升级
  • 前端开发常用案例(二)
  • 基于springboot+vue的儿科保健计划免疫系统
  • 1.两数之和
  • 字符串匹配 - 模式预处理:KMP 算法(Knuth-Morris-Pratt)
  • 工程师手册:电源设计中的电容选用规则
  • 【安全开发】专栏文章汇总
  • 视频监控流程图4
  • 「JVM 编译优化」Java 语法糖(泛型、自动装箱/拆箱、条件编译)
  • Linux下的进程控制