《人工智能:线代方法》第一部分 人工智能基础

《人工智能:线代方法》第一部分 人工智能基础


0 前言

借着2023年DataWhale第一次组队学习的机会,准备在寒假把《人工智能:线代方法》给看完。关于绪论和人工基础,首先通读了一下全书以及目录结构,这里的人工智能基础主要包括了以下这些内容,我们不妨将这些内容当作是问题,逐一去寻找答案:

  • 1.1 什么是人工智能

Q:在学者和专家的眼中,什么是人工智能?
再进一步去问,什么是智能?什么样的智能是人工智能?人工智能的内涵和外延有那些?
这些都是值得去思考的问题。

  • 1.2 人工智能的基础

人工智能的基础是什么?
它是在什么样的基础上建立起来的?
这些基础之间是否有内在联系?怎么样去发挥作用的?

  • 1.3 人工智能的历史

作为一个计算机研究分支和现代方法,人工智能是怎么样发展到现在这一步的?人工智能有着什么样的历史?这个历史是否值得我们去思考和借鉴?

在信息检索和学习中,注意到北大林作铨教授有开一门课程,参考的也是这本书,因此在整理笔记的时候,将其综合到一起,便于理解和思考。

1.1 什么是人工智能

这部分主要是从人的理性角度以及思想与行为这两个维度来看人工智能,从而得到的组合结果为:类人行为类人思考理性思考理性行为

总的可以归纳为:

1.1.1 类人行为:图灵测试方法

Artificial Intelligence CAD attempts to understand intelligence entities, strives to building intelligent agents that perceive and act in an environment and makes computer smarter in human-level intelligence

1.1.2 类人思考:认知建模方法

1.1.3 理性思考:“思维法则”方法

1.1.4 理性行为:理性智能体方法

1.1.5 益机

参考

[1] 人工智能:现代方法 第四版(上册) page2-30。
[2] 北大人工智能课程 林作铨 教授 slides

Talk is cheap. Show me the code
本文转载于网络 如有侵权请联系删除

相关文章

  • 比特币背后的NFT区块链技术

    比特币背后的区块链技术 比特币的诞生拉开了数字货币产生和发展的序幕,其背后的区块链技术为金融科技的发展提供了新思路。区块链是开放架构下强大的安全技术机制。通过特定的数据结构和一致性算法,设计并实现了一个多方参与的自治系统。 数据结构 在区块链系统中,一段时间内产生的事务会被打包成一个数据块,每个数据块还存储前一个块的哈希值。通过这一种方式链接所有区块,系统中的多个参与者可以存储和验证区块链,以此来实现交易的可追溯性,确保交易不可篡改。 一致性算法 一致性算法相当于区块链系统的运算规则。一致性算法确定了事务的记录者,通过算法协调和管理总系统,解决了容错问题,提高了系统的安全性。 比特币系统由于存在“无中央发行人”、“绝对匿名难以打击犯罪”、“交易能力不够”等问题,不足以满足中央银行发行数字货币的需求。那么,区块链技术能否应用于设计一个模型来满足这些需求呢? 区块链技术的未来发展 据全球区块链研究中心预测:2014-2016年是全球区块链技术的传播期。区块链是从比特币中抽象出来的,是经过完善和升华的。以金融机构为代表的公司开始考察区块链,开始在内部研究部署私有链作为实验;有

  • LeetCode 0148 - Sort List

    SortListDesicriptionSortalinkedlistinO(nlogn)timeusingconstantspacecomplexity.Example1:Input:4->2->1->3 Output:1->2->3->4复制Example2:Input:-1->5->3->4->0 Output:-1->0->3->4->5复制Solution/** *Definitionforsingly-linkedlist. *structListNode{ *intval; *ListNode*next; *ListNode(intx):val(x),next(NULL){} *}; */ classSolution{ public: ListNode*sortList(ListNode*head){ vector<int>vec; for(autoit=head;it!=NULL;it=it->next) vec.push_back(it->val); sort(

  • 太赞了,亚马逊免费对外开放计算机编程课!

    大家好,我是小G。今天跟大家分享亚马逊在前不久免费开放的一个计算机编程课程:AmazonFutureEngineer。几周前,亚马逊CEO杰夫・贝索斯正式发布了年度股东信,在信中他提到了亚马逊正在为当前疫情所采取的一些措施与努力。在此其中,贝索斯也谈及了亚马逊将对外界开放的一些资源,在这里面,就包含今天小G要跟大家分享的这个计算机教程。在去年的时候,亚马逊正式启动了一项计划:AmazonFutureEnginee(亚马逊未来工程师)。这项计划诞生的主要目的,在于能帮助下一代年轻人,获得在技术驱动的社会下赖以生存的技能,让低收入人群和计算机爱好者,以更低成本的方式来习得计算机科学通用技能。为此,他还定下了一个小目标:每年要让数十万人通过亚马逊这项计划学会计算机编程技能。在该项计划启动后,亚马逊便为美国当地2000多所学校提供了计算机科学的教程赞助,并为100有实力的学生,提供价值4万美元的大学奖学金名额,同时,这些学生也将拥有在亚马逊学习工作的实习机会。另外在其网站上面,也托管了一些对外界开放的免费计算机学习资源: 从上图我们可以看到,这里面主要包含三大课程: VirtualRoboti

  • Java- Class.forName() 和 Xxx.class

    每个类都有一个Class对象。就是说,每当编写并且编译了一个新类,就会产生一个Class对象,被保存在一个同名的.class文件中。c所有的类都是在第一次使用时,动态加载到JVM中的。比如使用new操作符创建类的新对象(构造器是默认类的静态方法)。一旦某个类的Class对象被载入内存,它就被用来创建这个类的所有对象。classCandy{ static{ System.out.println("LoadingCandy"); } } classGum{ static{ System.out.println("LoadingGum"); } } classCookie{ static{ System.out.println("LoadingCookie"); } } publicclassSweetShop{ publicstaticvoidmain(String[]args){ System.out.println("insidemain"); newCandy(); System.out.print

  • 10分钟学会 Python 函数基础知识

    一、函数基础简单地说,一个函数就是一组Python语句的组合,它们可以在程序中运行一次或多次运行。Python中的函数在其他语言中也叫做过程或子例程,那么这些被包装起来的语句通过一个函数名称来调用。有了函数,我们可以在很大程度上减少复制及粘贴代码的次数了(相信很多人在刚开始时都有这样的体验)。我们可以把相同的代码可以提炼出来做成一个函数,在需要的地方只需要调用即可。那么,这样就提高了代码的复用率了,整体代码看起来比较简练,没有那么臃肿了。函数在Python中是最基本的程序结构,用来最大化地让我们的代码进行复用;与此同时,函数可以把一个错综复杂的系统分割为可管理的多个部分,简化编程、代码复用。接下来我们看看什么是函数,及函数该如何定义。有两种方式可以进行函数的定义,分别是def及lambda关键字。1.函数定义先总结一下为什么要使用函数?代码复用最大化及最小化冗余代码;过程分解(拆解)。把一个复杂的任务拆解为多个小任务。函数定义的语法为:deffunc_name(arg1,arg2,arg3,...,argN): statement returnvalue复制根据上面定义,可以简单地描述

  • Javascript中的Date.now() 方法与Date.UTC() 方法 ,Date.parse() 方法

    1. Date.now() 方法返回自1970年1月1日00:00:00UTC到当前时间的毫秒数。语法:无参数vartimeInMs=Date.now();复制描述:now()方法返回自1970年1月1日00:00:00UTC到当前时间的毫秒数,类型为Number。 因为now()是Date的一个静态函数,所以必须以Date.now()的形式来使用。复制2. Date.UTC() 方法接受的参数同日期构造函数接受最多参数时一样,返回从1970-1-100:00:00UTC到指定日期的的毫秒数。语法:Date.UTC(year,month[,date[,hrs[,min[,sec[,ms]]]]])复制参数:year 1900年后的某一年份。 month 0到11之间的一个整数,表示月份。 date 1到31之间的一个整数,表示某月当中的第几天。 hrs 0到23之间的一个整数,表示小时。 min 0到59之间的一个整数,表示分钟。 sec 0到59之间的一个整数,表示秒。 ms 0到999之间的一个整数,表示毫秒复制描述:UTC方法接受以逗号隔开的日期参数,返回1970-1-100:

  • 干货分享:十年大厂资深程序员的开发经验总结

    本文由腾讯云加社区整理和发布,原文链接:cloud.tencent.com/developer/article/1004735,内容有删减和改动。1、引言在互联网一线做了十年的程序开发,经历了网易、百度、腾讯研究院、MIG等几个地方,陆续做过3D游戏、2D页游、浏览器、移动端翻译app等。积累了一些感悟,但必然有依然幼稚的地方,就当抛砖引玉,聊为笑谈。(本文同步发布于:http://www.52im.net/thread-2162-1-1.html)2、关于作者康亮:腾讯高级工程师; 历经网易在线游戏事业部、百度客户端部门、腾讯研究院、腾讯MIG; 横跨多个平台10年开发,目前负责腾讯翻译君app。3、对于开发团队而言,流程太重要了行军打仗,你需要一个向导; 如果没有向导,你需要一个地图; 如果没有地图,至少要学习李广,找一匹识途的老马; 如果你连老马也没有,那最好可以三个臭皮匠好好讨论,力图胜过一个诸葛亮; 如果三个臭皮匠连好好讨论也做不到,那就是典型的乌合之众了,最好写代码前,点上三炷香,斟上一杯浊酒,先拜拜菩萨,再拜拜谷歌。我个人属于性格温和的(程序员大多性格不错),但确实见过少

  • 【教程】利用Tensorflow目标检测API确定图像中目标的位置

    深度学习提供了另一种解决“Wally在哪儿”(美国漫画)问题的方法。与传统的图像处理计算机视觉方法不同的是,它只使用了少量的标记出Wally位置的示例。在我的Githubrepo上发布了具有评估图像和检测脚本的最终训练模型。Githubrepo地址:https://github.com/tadejmagajna/HereIsWally这篇文章描述了使用Tensorflow目标检测API来训练神经网络的过程,并使用围绕它构建的Python脚本来寻找Wally。它由以下步骤组成:通过创建一组标记训练图像来准备数据集,其中标签代表图像中Wally的xy位置;读取和配置模型以使用Tensorflow目标检测API;在我们的数据集上训练模型;使用导出的图形对评估图像的模型进行测试。开始之前,请确保按照说明安装Tensorflow目标检测API。准备数据集神经网络是深度学习的过程中最值得注意的过程,但遗憾的是,科学家们花费大量时间的准备和格式化训练数据。最简单的机器学习问题的目标值通常是标量(比如数字检测器)或分类字符串。Tensorflow目标检测API训练数据使用两者的结合。它包括一组图像,并

  • Snagit for mac(强大的屏幕截图工具)汉化直装版

    Snagitformac汉化直装版是Mac平台上一款强大的屏幕捕获软件,Snagitmac版支持各种方式的屏幕截图,如全屏、滚动、部分、窗口、菜单等,可以从创建图像和视频中获取图片以及图像,捕捉您的屏幕,编辑图像并提供结果。拥有强大的视觉效果,支持屏幕录像功能,截图图片编辑、转换和分享功能,不需要任何设计技能,都能够轻松创建高质量的截图,截屏和视频。SnagitformacMac屏幕截图工具snagit formac最新功能1.屏幕截图重新构想TechSmithSnagit以极其强大的方式为生活带来了截图。全新的图像编辑功能可让您真正转换屏幕截图。文本捕获等熟悉的功能可以带来回报。更先进的屏幕录像机可为您提供更流畅,更专业的录音。2.明智之举切换以自动使屏幕中的对象捕获可移动。重新排列按钮,删除文本或编辑屏幕截图中的其他元素。现在,即使您正在记录的软件或技术发生变化,您的图形也始终保持最新状态。3.抓住文字GrabText快速从屏幕截图中提取文本。从错误消息,弹出窗口或文件菜单中捕获屏幕文本。无需重新输入所有文本即可轻松复制信息。4.文字替换现在,Snagit可以识别屏幕截图中的文本以

  • oc和js交互_js调用api

    大家好,又见面了,我是你们的朋友全栈君。iOSJS与OC交互本文内容导航1、`UIWebView`JS与OC交互1.1OC调用JS函数1.1.1OC拼接JS字符串调用JS方法1.1.2使用JSContext上下文环境调用JS函数1.2JS调用OC函数1.2.1OC拦截JS超链接操作请求1.2.2向JS中注入OC类1.2.3使用JSContext上下文,JS函数回调OC代码块1.3异常收集2、`WKWebView`OC与JS交互2.1`WKUIDelegate`协议2.2OC调用JS函数2.3JS调用OC2.3.1拦截JS超链接请求2.3.2OC接收JS发来的消息3、第三方库实现OC与JS交互3.1`WebViewJavascriptBridge`库使用1、UIWebViewJS与OC交互UIWebView在iOS12中已经被废弃,同时WKWebView在iOS8中已经出现。所以无特殊情况的话,我们一般应该也是用不到前者了! UIWebView相比于WKWebView的使用上会简单很多。UIWebView初始化:self.webView=[[UIWebViewalloc]initWith

  • 腾讯云文字识别计费概述

    腾讯云文字识别OCR提供预付费和后付费两种计费模式。 调用量的扣费顺序为“免费资源包>付费资源包>后付费”。当您的免费资源包耗尽时,服务将面临不可用风险,为保证业务不受影响,请前往购买页购买预付费资源包或前往控制台设置页开通后付费模式。 注意: 2021年12月14日前开通文字识别服务的客户,免费资源包及付费资源包耗尽后,会自动开通后付费模式,为避免产生额外费用,请前往控制台设置页关闭后付费模式。 文字识别服务除了成功返回识别结果的请求会进行计费之外,部分调用失败产生的错误码也会按照调用量收费,收费错误码请参考计费错误码说明。 当该服务仅剩一个可用资源包,且余量小于20%和余量为0时,系统都会通过微信/短信/邮件/站内信向您推送预警消息,您可以在消息订阅中配置消息通知的方式,系统通知可能有十分钟延迟。 注意: 若您在接入腾讯云文字识别接口时,Region参数选择境外地域(包含中国香港、中国澳门、中国台湾及新加坡等中国大陆以外地区),则调用量计费将按照国际站计费标准,实行后付费计费模式,无法扣减国内账号已购买的预付费资源包次数。国际站的计费标准参考计费

  • 外地人在北京 - 公积金/车牌摇号/买房/子女读书

    北京公积金提取全攻略     http://gjj.beijing.gov.cn/   提取公积金必须知道自己适合什么方式提取,选择正确的提取方案。 所以,第一步:根据自己的情况, 国管,市管,还是铁路? 离职,在职,离职多久? 有房,无房,取没取过? 继承,赠与,有无契税? 商业,商住,北京外地? 已婚,未婚,能否知情? 等等,等等       匹配提取方式 根据住房拥有情况 我们来看提取公积金需要提供的材料,这样主要方便大家定位自己的提取方式。 分为三种提取方式,拥有住房提取,没有住房提取以及其他提取。 根据自己的情况,看看规定的提取材料你是否齐全。 有房子的提供以下材料: 1.商品房,经适房,限价房: 提供材料:房本照片+契税票照片即可 (网签账号+密码仅用于期房)其他情况不用要,没用 3.公有住房、集资建房 提供材料:房本+房款的收据原件 4.危改、拆迁、征收回迁房 提供材料:房本契税票或者迁房统一发票或收据+拆迁协议 5.大修,翻修,自建房(平房宅基地) 提供材料:购房材料,发票,乡镇人民政府批准的文件(政府允许翻

  • golang对struct排序的方法

    方法一:使用sort.Slice()进行排序 packagemain import( "fmt" "sort" ) typemyStructstruct{ namestring scoreint } funcmain(){ s1:=[]myStruct{ {name:"mcc",score:1}, {name:"get",score:2}, {name:"zp",score:0}, } fmt.Println("排序前:",s1) sort.Slice(s1,func(i,jint)bool{ returns1[i].score<s1[j].score }) fmt.Println("排序后:",s1) } 复制 方法二、使用sort.Sort()进行排序 使用sort.Sort()方法需要重写Len()、Swap()、Less()这三个方法 packagemain import( "fmt" "sort" ) typemyStructstruct{ namestring scoreint } typem2[]myStruct func(am2)Len()int{

  • 值得看的文章

    https://www.cnblogs.com/humin/p/7136479.html https://www.jianshu.com/u/07214066934f https://www.jianshu.com/p/19ae438e1a1chttp://www.ptbird.cn/comments.html

  • Spring之FactoryBean

    首先要分辨BeanFactory与FactoryBean的区别,两个名字很像,所以容易搞混 BeanFactory:以Factory结尾,表示它是一个工厂类,是用于管理Bean的一个工厂 FactoryBean:以Bean结尾,表示它是一个Bean,不同于普通Bean的是:它是实现了FactoryBean<T>接口的Bean,根据该Bean的Id从BeanFactory中获取的实际上是FactoryBean的getObject()返回的对象,而不是FactoryBean本身,如果要获取FactoryBean对象,可以在id前面加一个&符号来获取。   spring中的Bean有两种。 一种是普通的bean,比如配置   [html] viewplain copy     <bean id="personService" class="com.spring.service.impl.PersonServiceImpl" scope="prototype">

  • 【Five-Minute Share】数据库内存分配设置

    对于数据库分配的内存,经常会看到的一条准则是:将服务器75-80%的内存分配给数据库。这是一条比较常见的准则,但并不是绝对的。首先,我们需要保障操作系统运行本身所需的充足内存后,才能去考虑数据库所分配的内存。比如4G,8G内存的服务器,如果分配80%的内存给数据库,这显然就不是一个明智的选择。曾经在一台16G内存配置的惠普小型机上,我们分配12G内存给数据库,结果导致了连登录服务器都极度卡顿。连操作系统的任务调度都已不流畅,谈何数据库的性能?因此,我们应该在为操作系统及其他重要应用规划好内存的基础上,再去计算给数据库分配的内存。此外,绝大多数的数据库服务都支持配置两个参数:“最大使用内存”及“默认初始化(分配)内存”,在数据库专用服务器上,往往会将默认初始化内存及最大使用内存配置成同一个数值,避免内存管理的开销,这个时候,就更需要谨慎考虑您的内存分配。而要详细了解具体如何分配,就需要去结合不同数据库产品的内存应用特点来进行规划了。没有一劳永逸的解决方案,只有更适合自己的选择。 -------------------------------------------- 快乐地度过每一

  • 二维码生成的常用数据格式

    原文地址:找不到了 二维码生成 (2DbarcodeorQRcode=Quickreferencecode)如今大家再熟悉不过了,用手机拍下二维码可以方便地获取网址、手机号码以及个人联系方式等等有用的资讯;什么是二维码?如果你不知道的话,直接问百度拉;笔者今天想为大家介绍下二维码生成中存储的数据格式,有心的你一定能用上^_^。   二维码生成网址(URL) 包含网址的二维码生成是大家平时最常接触到的(例如:http://www.cnphp.info),二维码识别软件能够通过http://前缀知道数据代表的是一个网址。使用{URLTO:www.baidu.com}类似的语法格式也能让识别软件认出网址。 当然,你也可以做个实验,既不使用语法标签urlto:也不带http://前缀,能否让识别软件认出网址呢^_^?    二维码生成电子邮箱地址(E-mailAddress) 互联网上大家联络时基本都会用到电子邮箱。当然,二维码也可以保存电子邮箱的地址(例如freemouse@email.com)。它的语法格式是{mailto:freemouse@ema

  • 项目上传到gitHub

    push的时候第一次可能遇到报错,报错的原因是本地的文件和仓库里的没有合并这个时候你可以这样: cd你的文件夹 gitinit gitremoteaddorigin你的git网址 gitcommit-m'首次提交' gitpull--rebaseoriginmaster //就是很重要,可以让你本地的文件与仓库的合并,如果你在github上选择了readme.md这里执行完可以在项目中看到了。 gitpush-uoriginmaster  

  • 纯CSS五角星评分

    话不多说,上代码 <!DOCTYPEhtml> <htmllang="zh"> <head> <metacharset="UTF-8"> <metaname="viewport"content="width=device-width,initial-scale=1.0"> <metahttp-equiv="X-UA-Compatible"content="ie=edge"> <title></title> <style> @font-face{font-family:"iconfont"; src:url('iconfont.eot?t=1592787814950'); src:url('iconfont.eot?t=1592787814950#iefix')format('embedded-opentype'), url('data:application/x-font-woff2;charset=utf-8;base64,d09GMgABAAAAAAN8AAsAAAAAB3

  • Sigmoid非线性激活函数,FM调频,胆机,HDR的意义

        前几天家里买了个二手车子,较老,发现只有FM收音机,但音响效果不错,车子带蓝牙转FM,可以手机蓝牙播放音乐,但经过几次转换以及对FM的质疑,所以怀疑音质是否会剧烈下降,抱着试试的态度放了一个手机上的音乐,结果感动的流泪了,为什么以前手机带的高保真耳机中遗失了那么多精彩内容,高保真音响,高保真功放.....为何不敌即将淘汰的车载的FM...       记得中学的时候经常看电子类书籍,对各种音响电路都很着迷,那是后流行高保真这一概念,各种信号补偿带通滤波反馈控制算法,就为了让声音能够真实的还原出来,特别鄙视那些玩胆机的人,认为他们不懂理论,只是固执与迷信,后来学习神经网络知道了人类神经元的Sigmoid激活函数,但不慎理解,认为这是人类感官系统的缺陷,工作在非线性的模式分类中将失去认识真实世界的能力。    由于FM带来的震撼,我不得不对以前学习过的人类神经元原理做出新的认识,神经元对信号强度做收集和分类,其分类的边界控制由激活函数来确定,Sigmoid激活

  • NHibernate系列文章二十七:NHibernate Mapping之Fluent Mapping基础(附程序下载)

    摘要 从这一节起,介绍NHibernateMapping的内容。前面文章都是使用的NHibernateXMLMapping。NHibernateXMLMapping是NHibernate最早最成熟的Mapping方法。其他的Mapping方法都是基于XMLMapping的思想进行的“变种”,要么暂时不能完全像XMLMapping那样功能丰富。其他的Mapping方法目前包括:FluentMapping、AttributeMapping和MappingbyConventions。他们各自都有优缺点。使用者应该根据实际情况选择适合自己项目的Mapping方式。 这篇文章介绍FluentMapping。本篇文章的代码可以到FluentNHibernate下载。 1、FluentMapping的优点 FluentMapping提供了大量的FluentAPI进行映射配置。相比XMLMapping,在代码中进行配置能够在编译时发现很多问题。 FluentMapping的可读性更强,代码更简洁。 FluentMapping将映射配置的类和实体映射类相分离,在一定程度上保持了实体类的简洁性。 Flu

相关推荐

推荐阅读