这才是计算机科学_人工智能
人工智能
- 一、前言
- 二、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 数字,形成神经元网络
回到上面的例子:看神经元如何分类
-
左侧需要被分类的单个飞蛾的数据(mass重量 wingspan翼展),右侧分类的结果

-
中间有一个隐藏层,负责把输入变成输出,分类
分类神经元:把输入* 权重 ,然后求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算子
举个栗子:找垂直边缘的算法
假设来帮助无人机躲避障碍,为了简单 可以把图片变成灰度

可以很容易的看到,杆子的左边缘从哪里开始的,因为垂直的颜色变化,可以制定规则:
- 某像素是垂直边缘的可能性,取决于左右两边像素的颜色差异程度
这叫做 核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让计算机输出声音
相关文章:
这才是计算机科学_人工智能
人工智能一、前言二、ML2.1 分类2.1.1 决策树2.2.2 支持向量机2.2.3 人工神经网络三、计算机视觉3.1 Prewitt算子3.2 Viola-Jones 人脸检测算法3.3 卷积神经网络四、自然语言处理4.1 知识图谱4.2 语音识别一、前言 之前讲了计算机从发展到现在的过程,计算机很适合做…...
DFS深度优先搜索—Java版
递归三要素 递归的定义 递归的拆解 递归的出口 什么时候使用DFS? 深度回溯问题(DFS与回溯区别不大) 二叉树问题 组合、排列问题 找方案问题(解空间是一棵树或者图,需要自行构造图/树) 图的搜索问题…...
RAY - 小记
文章目录关于 RAYRAY 结构关于 RAY Ray is a unified framework for scaling AI and Python applications. Ray consists of a core distributed runtime and a toolkit of libraries (Ray AIR) for accelerating ML workloads. RAY 是一个简单、通用的分布式计算框架。 RAY 解…...
金三银四软件测试工程师面试题(含答案)
前言:此文专门记载本人平时面试以及收藏的面试题目,如果有错误之处请及时指正,谢谢! 1、python的数据类型有哪些 答:Python基本数据类型一般分为:数字、字符串、列表、元组、字典、集合这六种基本数据类…...
Python 连接数据源与邮件功能(九)
文章目录一、概述二、Python 连接数据源1)Python MySQL 基础操作1、部署MySQL2、MySQL Connector 库【1】安装 mysql-connector-python 库【2】连接 MySQL【3】增加数据【4】查询数据【5】更新数据【6】删除数据2、PyMySQL 库【1】安装 PyMySQL 库【2】连接 MySQL【…...
网站如何锁定用户,超级浏览器有办法解决吗?
随着全球开放,跨境电商人纷纷开启了2023年的搞钱之旅,很多期待着在新的一年大干一场。但前事不忘后事之师,2022年跨境生意全面沦陷,其实除了大环境的因素之外,还有一个很重要的原因是,各个平台都开始实行非…...
Ubuntu下使用Wine运行HBuilderX
安装完wine后,在HbuilderX的目录中打开终端,直接输入wine HBuilderX.exe命令,启动过程中会提示安装wine-mono组件,点击安装按钮下载安装该组件,该组件下载速度慢,需要等待特别长时间。 安装完毕后&…...
如何高效远程维护分布在海外的中大型智能设备?
一、行业需求 随着越来越多的企业进行全球化经营,设备制造商和系统集成商的设备分布到全球各地,数量多而且分散,传统的设备运维方式,面临着出差成本高,工作效率低,服务不及时等问题,客户常常因…...
【双指针问题】LeetCode 925. 长按键入
Halo,这里是Ppeua。平时主要更新C语言,C,数据结构算法......感兴趣就关注我吧!你定不会失望。 🌈个人主页:主页链接 🌈算法专栏:专栏链接 我会一直往里填充内容哒! &…...
APP测试中IOS和Android的区别,有哪些注意点?
01、常识性区别 02、导航方式 iOS:Tab放在页面底部,不能通过滑动来切换,只能点击。也有放在上面的,也不能滑动,但有些Tab本身可以滑动,比如天猫的。还有新闻类的应用。 Android:一般放在页面…...
2019蓝桥杯真题平方序列(填空题) C语言/C++
题目描述 本题为填空题,只需要算出结果后,在代码中使用输出语句将所填结果输出即可。 小明想找到两个正整数 X 和 Y,满足2019<X<Y;2019^2, X^2, Y^2组成等差数列。 请你求出在所有可能的解中,XY 的最小值是多少?…...
vue中,给一个URL地址,利用FileSaver.js插件下载文件到本地
①首先下载 FileSaver.js 插件 npm install file-saver --save ②在需要的.vue页面引入 import { saveAs } from file-saver 在HTML中引入 <script src"https://cdn.bootcdn.net/ajax/libs/FileSaver.js/2.0.5/FileSaver.min.js"></script> //Fil…...
从0开始学python -34
Python3 输入和输出-2 读和写文件 open() 将会返回一个 file 对象,基本语法格式如下: open(filename, mode)filename:包含了你要访问的文件名称的字符串值。mode:决定了打开文件的模式:只读,写入,追加等。…...
瑞典军事研究:从认知心理学的视角探讨军事创新进程
来源:Military Innovation as the Result of Mental Models of Technology 《摘要》 政治紧张局势的加剧和技术发展的进步促使Scandinavian 国家(斯堪的纳维亚半岛,欧洲最大的半岛,有挪威、瑞典两国以及芬兰北端的一小部分。&am…...
【MySQL进阶-08】深入理解innodb存储格式,双写机制,buffer pool底层结构和淘汰策略
MySql系列整体栏目 内容链接地址【一】深入理解mysql索引本质https://blog.csdn.net/zhenghuishengq/article/details/121027025【二】深入理解mysql索引优化以及explain关键字https://blog.csdn.net/zhenghuishengq/article/details/124552080【三】深入理解mysql的索引分类&a…...
5. AOP
一、如何定义一个MethodHandler? 1.Controller注解修饰的类 1.注册成Spring Bean 2.表示它是一个SpringMVC下的Controller 2.在这个类下的方法中,只要被RequestMapping修饰&&方法的形参符合规定(需要看文档) 方法的返回值符合规定…...
ubuntu上尝试libpqxx库链接人大金仓
ubuntu上尝试libpqxx库链接人大金仓 C的项目让使用国产数据库 运维给架了一个人大金仓数据库, Kingbase 8 是基于 PostgreSQL 9.6 做的, 尝试直接使用libpqxx链接数据库。 文章目录ubuntu上尝试libpqxx库链接人大金仓第一步 搭建libpqxx开发环境搜索lib…...
【Python入门第十二天】Python 列表
Python 集合(数组) Python 编程语言中有四种集合数据类型: 列表(List)是一种有序和可更改的集合。允许重复的成员。元组(Tuple)是一种有序且不可更改的集合。允许重复的成员。集合(…...
Android 异步操作库 RxJava
RxJava概述 RxJava 是一种响应式编程,来创建基于事件的异步操作库。基于事件流的链式调用、逻辑清晰简洁。 RxJava 我的理解是将事件从起点(上游)流向终点(下游),中间有很多卡片对数据进操作并传递&#x…...
2021-12-05青少年软件编程(C语言)等级考试试卷(六级)解析
2021-12-05青少年软件编程(C语言)等级考试试卷(六级)解析T1. 电话号码 给你一些电话号码,请判断它们是否是一致的,即是否有某个电话是另一个电话的前缀。比如: Emergency 911 Alice 97 625 999 Bob 91 12 54 26 在这个例子中,我们不可能拨通Bob的电话,因为Emergency的…...
XML Group端口详解
在XML数据映射过程中,经常需要对数据进行分组聚合操作。例如,当处理包含多个物料明细的XML文件时,可能需要将相同物料号的明细归为一组,或对相同物料号的数量进行求和计算。传统实现方式通常需要编写脚本代码,增加了开…...
【ROS】Nav2源码之nav2_behavior_tree-行为树节点列表
1、行为树节点分类 在 Nav2(Navigation2)的行为树框架中,行为树节点插件按照功能分为 Action(动作节点)、Condition(条件节点)、Control(控制节点) 和 Decorator(装饰节点) 四类。 1.1 动作节点 Action 执行具体的机器人操作或任务,直接与硬件、传感器或外部系统…...
相机从app启动流程
一、流程框架图 二、具体流程分析 1、得到cameralist和对应的静态信息 目录如下: 重点代码分析: 启动相机前,先要通过getCameraIdList获取camera的个数以及id,然后可以通过getCameraCharacteristics获取对应id camera的capabilities(静态信息)进行一些openCamera前的…...
Typeerror: cannot read properties of undefined (reading ‘XXX‘)
最近需要在离线机器上运行软件,所以得把软件用docker打包起来,大部分功能都没问题,出了一个奇怪的事情。同样的代码,在本机上用vscode可以运行起来,但是打包之后在docker里出现了问题。使用的是dialog组件,…...
Python 实现 Web 静态服务器(HTTP 协议)
目录 一、在本地启动 HTTP 服务器1. Windows 下安装 node.js1)下载安装包2)配置环境变量3)安装镜像4)node.js 的常用命令 2. 安装 http-server 服务3. 使用 http-server 开启服务1)使用 http-server2)详解 …...
LLaMA-Factory 微调 Qwen2-VL 进行人脸情感识别(二)
在上一篇文章中,我们详细介绍了如何使用LLaMA-Factory框架对Qwen2-VL大模型进行微调,以实现人脸情感识别的功能。本篇文章将聚焦于微调完成后,如何调用这个模型进行人脸情感识别的具体代码实现,包括详细的步骤和注释。 模型调用步骤 环境准备:确保安装了必要的Python库。…...
node.js的初步学习
那什么是node.js呢? 和JavaScript又是什么关系呢? node.js 提供了 JavaScript的运行环境。当JavaScript作为后端开发语言来说, 需要在node.js的环境上进行当JavaScript作为前端开发语言来说,需要在浏览器的环境上进行 Node.js 可…...
Easy Excel
Easy Excel 一、依赖引入二、基本使用1. 定义实体类(导入/导出共用)2. 写 Excel3. 读 Excel 三、常用注解说明(完整列表)四、进阶:自定义转换器(Converter) 其它自定义转换器没生效 Easy Excel在…...
Ray框架:分布式AI训练与调参实践
Ray框架:分布式AI训练与调参实践 系统化学习人工智能网站(收藏):https://www.captainbed.cn/flu 文章目录 Ray框架:分布式AI训练与调参实践摘要引言框架架构解析1. 核心组件设计2. 关键技术实现2.1 动态资源调度2.2 …...
基于Java项目的Karate API测试
Karate 实现了可以只编写Feature 文件进行测试,但是对于熟悉Java语言的开发或是测试人员,可以通过编程方式集成 Karate 丰富的自动化和数据断言功能。 本篇快速介绍在Java Maven项目中编写和运行测试的示例。 创建Maven项目 最简单的创建项目的方式就是创建一个目录,里面…...
