这才是计算机科学_人工智能
人工智能
- 一、前言
- 二、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的…...
eNSP-Cloud(实现本地电脑与eNSP内设备之间通信)
说明: 想象一下,你正在用eNSP搭建一个虚拟的网络世界,里面有虚拟的路由器、交换机、电脑(PC)等等。这些设备都在你的电脑里面“运行”,它们之间可以互相通信,就像一个封闭的小王国。 但是&#…...
HTML 语义化
目录 HTML 语义化HTML5 新特性HTML 语义化的好处语义化标签的使用场景最佳实践 HTML 语义化 HTML5 新特性 标准答案: 语义化标签: <header>:页头<nav>:导航<main>:主要内容<article>&#x…...
微软PowerBI考试 PL300-选择 Power BI 模型框架【附练习数据】
微软PowerBI考试 PL300-选择 Power BI 模型框架 20 多年来,Microsoft 持续对企业商业智能 (BI) 进行大量投资。 Azure Analysis Services (AAS) 和 SQL Server Analysis Services (SSAS) 基于无数企业使用的成熟的 BI 数据建模技术。 同样的技术也是 Power BI 数据…...
什么是库存周转?如何用进销存系统提高库存周转率?
你可能听说过这样一句话: “利润不是赚出来的,是管出来的。” 尤其是在制造业、批发零售、电商这类“货堆成山”的行业,很多企业看着销售不错,账上却没钱、利润也不见了,一翻库存才发现: 一堆卖不动的旧货…...
OkHttp 中实现断点续传 demo
在 OkHttp 中实现断点续传主要通过以下步骤完成,核心是利用 HTTP 协议的 Range 请求头指定下载范围: 实现原理 Range 请求头:向服务器请求文件的特定字节范围(如 Range: bytes1024-) 本地文件记录:保存已…...
Psychopy音频的使用
Psychopy音频的使用 本文主要解决以下问题: 指定音频引擎与设备;播放音频文件 本文所使用的环境: Python3.10 numpy2.2.6 psychopy2025.1.1 psychtoolbox3.0.19.14 一、音频配置 Psychopy文档链接为Sound - for audio playback — Psy…...
微服务商城-商品微服务
数据表 CREATE TABLE product (id bigint(20) UNSIGNED NOT NULL AUTO_INCREMENT COMMENT 商品id,cateid smallint(6) UNSIGNED NOT NULL DEFAULT 0 COMMENT 类别Id,name varchar(100) NOT NULL DEFAULT COMMENT 商品名称,subtitle varchar(200) NOT NULL DEFAULT COMMENT 商…...
让AI看见世界:MCP协议与服务器的工作原理
让AI看见世界:MCP协议与服务器的工作原理 MCP(Model Context Protocol)是一种创新的通信协议,旨在让大型语言模型能够安全、高效地与外部资源进行交互。在AI技术快速发展的今天,MCP正成为连接AI与现实世界的重要桥梁。…...
什么是Ansible Jinja2
理解 Ansible Jinja2 模板 Ansible 是一款功能强大的开源自动化工具,可让您无缝地管理和配置系统。Ansible 的一大亮点是它使用 Jinja2 模板,允许您根据变量数据动态生成文件、配置设置和脚本。本文将向您介绍 Ansible 中的 Jinja2 模板,并通…...
GO协程(Goroutine)问题总结
在使用Go语言来编写代码时,遇到的一些问题总结一下 [参考文档]:https://www.topgoer.com/%E5%B9%B6%E5%8F%91%E7%BC%96%E7%A8%8B/goroutine.html 1. main()函数默认的Goroutine 场景再现: 今天在看到这个教程的时候,在自己的电…...
