96SEO 2026-02-20 03:20 15
聊天机器人的未来聊天机器人的现状基本的聊天机器人概念流行的聊天机器人平台DialogFlow

就像核技术已被用于开发核武器和为核电站供能一样人工智能也可以用于崇高的事业或邪恶的目的。
例如使用当前的“现成”技术我们可以制造一架无人驾驶飞机向其提供目标人员的照片然后让无人驾驶飞机追捕该人直到将其消灭。
即使将该技术用于更具建设性的用例也很难预测该技术在未来几年中将如何发展。
等消息传递平台为企业与人互动创造了机会并有可能通过这些互动获利。
随着使用聊天机器人云计算和语音生物识别技术的不断发展公司可以改善客户服务并以更少的人员处理更多的电话。
年中当您致电您的银行时只有最不常见的情况需要人工干预并且很大一部分电话会自动处理。
当我们拨打呼叫中心时有时至少是打电话给我们的原因之一是抱怨或发泄不仅能解决问题。
随着聊天机器人变得越来越好他们将能够展示出我们所理解的同情和理解。
此外他们将拥有对您以前所有通话的完全访问权限并且能够通过记住先前对话的片段来发展历史并建立融洽的关系。
此外就像现在一样当您通过网络电话应用等不同渠道与银行进行通信或者与分行中的某人交谈时聊天机器人将能够访问并使用通过其他渠道输入的信息可以为您提供更好更快的服务。
再说一次我们还没有到那儿但是可能会有一天我们宁愿打电话给客户服务而不是使用其他渠道如在线访问因为这样会更快更有效。
听音乐设置闹钟创建购物清单获取天气预报控制房屋周围的设备订购在线商品预订机票
例如除非我们以这种方式对其进行编程否则聊天机器人将永远不会感到沮丧。
尤其是聊天机器人持续不断的发展在伦理上的影响是一个不变的话题。
随着聊天机器人变得越来越好越来越像人类当我们与聊天机器人而不是人类聊天时监管机构可能会迫使企业披露信息。
但是我们可能会达到这样的地步聊天机器人是如此出色以至于尽管在一开始就进行了披露但我们很快就会忘记另一端是一台计算机而不是理解我们并同情我们的人。
毫无疑问聊天机器人将是多产的—在我们的家中在我们的汽车中在可穿戴设备中在呼叫中心以及在电话中。
与其他技术一样使用该技术成长的年轻人永远不会知道没有聊天机器人为我们服务并改善我们的生活会是什么样子。
在下一节中我们将回到现实并就如何利用现有的聊天机器人技术使用当今可用的工具创建出色的应用提供一些建议。
在的上一节中我们讨论了随着人工智能技术的发展未来几年可能实现的目标。
在本节以及本章的其余部分我们将重点介绍当今可行的方法以及使您自己的应用尽可能有用和用户友好的最佳实践。
为了利用当今可用的现有技术并且鉴于仍然需要使用域数据和特定意图来对当前的聊天机器人进行专门编程因此我们应该谨慎设计一个好的设计和好的计划来对我们的聊天机器人进行编程。
当前与定义为“万事通”的聊天机器人相比在定义明确且狭窄的域空间中发挥作用的聊天机器人具有更好的表现和有用的机会。
设计用于在在线商务体验期间提供支持的聊天机器人不能用于诊断汽车问题而必须在该域中重新编程。
将聊天机器人明确地放在特定的目标和空间上这样很可能会为用户创造更好的体验。
脸上惊慌失措的表情告诉我他不明白这个问题无论有多少次我试图解释他都不会。
这里的要点是服务生知道“餐馆英语”以及完成餐厅交易所需的所有短语和互动。
同样当我们在以下各节中开发聊天机器人时只要我们停留在预期的域中它就可以与我们的用户进行通信。
如果聊天机器人被开发用于预订餐厅那么如果用户的意图是进行医疗诊断它将无法提供帮助。
在目前的状态下聊天机器人将能够以人类为中心的方式帮助我们完成重复性的交易任务。
但是即使我们应该尝试使聊天机器人在域上保持尽可能紧密但这并不意味着我们不应该在机器人中注入一些“个性”。
人们在聊天时通常希望对对话有一定程度的共同兴趣因此对话将以这样的方式进行将存在回答后续问题的答案以及有助于和促进对话的答案
在深入研究自己的聊天机器人的设计之前让我们介绍一些在开发过程中对我们有帮助的基础概念。
在开发代码之前让我们设定一个基准并访问一些与聊天机器人相关的有用定义。
这是一种自然语言理解模块需要经常接受训练以适应特定于使用的需求。
演讲者正在尝试娱乐例如有人告诉您开玩笑。
演讲者正在尝试通知有人问几点了或者温度是多少
上下文是用来给予讨论的连贯性和流畅性保留了对话中已经使用的关键概念。
提供了已经过训练的预建实体或者我们可以构建自定义实体并对其进行训练。
这样的聊天机器人平台可以与大多数最受欢迎的对话和消息传递平台集成例如
履行是一项连接服务可让您根据最终用户的表达来执行操作并将动态响应发送回用户。
例如如果用户正在寻找员工详细信息则您的服务可以从数据库中获取详细信息并立即对用户结果进行响应。
每当我们与某人进行对话时使用稍有不同的方式提出相同的问题是完全正常的。
例如我们可能会问“今天过得怎么样”的问题但是有很多方法可以问相同的问题。
人类自然会善于从话语中解释含义并回答发问者想问的问题而不是他们实际问的问题。
但是作为人类我们有足够的技巧来理解的真正含义可能是“告诉我您的一天”。
许多聊天机器人平台都变得越来越好不再要求我们拼出每一个发音而是能够进行一些“模糊”匹配并且不需要为每个单独的组合输入内容。
这样的许多聊天机器人保持休眠状态直到它们被“唤醒”并准备好接收命令为止。
聊天机器人唤醒后很多时候我们希望该聊天机器人为我们执行一个动作因此我们需要“启动”该动作。
当聊天机器人没有针对特定交互的程序化答案时它应该能够显示默认行为以尽可能优雅地处理无法预料的情况。
例如如果聊天机器人的功能是预订美国境内的国内航班但用户请求飞往加拿大温哥华的包机则聊天机器人应能够优雅地告诉用户他们仅服务于美国城市然后再次询问目的地
既然我们已经介绍了与聊天机器人更好地协作所需的基本概念让我们考虑如何创建一个有用的“结构良好”的聊天机器人。
自适应聊天机器人是一种可以理解并适应收到的所有语音的聊天机器人。
即使对于未明确编程的语音也应该有一个优美的响应以使聊天机器人用户重回正轨或者利用此机会将会议转移给实时操作员。
我们喜欢听到自己的名字也喜欢别人记住我们的一些小事我们孩子的名字母校等等。
个性化的聊天机器人会记住以前的交互以及他们收集的有关单个用户的信息。
当然我们的聊天机器人应该随时准备提供帮助并在需要时随时进行访问。
但这也适用于我们能够以多快的速度获取聊天机器人来帮助我们实现意图。
想一想在传统交互式语音响应IVR系统中的导航树在这些导航树中我们必须按很多数字然后他们才知道我们要执行的意图。
与相关的聊天机器人可以使聊天机器人的用户感知到他们确实在进行正常的对话。
但是在此之前我们应该考虑主要的聊天机器人平台这些平台是我们聊天机器人的开发和发行的基础。
这三大供应商均提供可靠且可扩展的云计算服务这些服务将帮助您根据需要实现和自定义聊天机器人。
服务MicrosoftLexAWSWit.aiFacebookWastonIBM
当然可以使用此处列出的平台以及其他流行的平台编写功能强大的聊天机器人。
DialogFlow并在本章的其余部分中使用该平台进行聊天机器人的开发。
PlatformGCP控制台仅通过即可不使用代码来配置聊天机器人。
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-MXJ7E6po-1681568818800)(https://gitcode.net/apachecn/apachecn-dl-zh/-/raw/master/docs/ai-py/img/B15441_16_01.png)]
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-f1qTCbmt-1681568818801)(https://gitcode.net/apachecn/apachecn-dl-zh/-/raw/master/docs/ai-py/img/B15441_16_02.png)]
正如我们先前看到的聊天机器人开发中的另一个重要概念是插槽类型。
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-93guXiQS-1681568818801)(https://gitcode.net/apachecn/apachecn-dl-zh/-/raw/master/docs/ai-py/img/B15441_16_03.png)]
可以通过编程方式创建这些意图但是为了使示例保持简单我们将使用图形化界面来创建意图。
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-DbW3u07U-1681568818801)(https://gitcode.net/apachecn/apachecn-dl-zh/-/raw/master/docs/ai-py/img/B15441_16_04.png)]
我们在构造这些句子时越精确越全面那么聊天机器人在识别意图方面将越成功。
现在我们可以通过插入更多意图为聊天机器人添加更多功能来进行操作。
我们可以通过在从一个意图转到另一个意图的同时添加参数同时保持对话的上下文来使我们的聊天机器人更加灵活。
要使用此方法请从左侧菜单中选择Integrations并确保已启用Web
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-iXxA2MDJ-1681568818802)(https://gitcode.net/apachecn/apachecn-dl-zh/-/raw/master/docs/ai-py/img/B15441_16_05.png)]
将聊天机器人集成到站点中可以在如何部署聊天机器人方面为开发人员提供更多的控制权和灵活性。
该代码初始化一个以意图为输入的客户端会话最后返回一个响应即所谓的fulfillment并将相应的置信度作为一个十进制值。
我们要获取答案的句子保存在名为text_to_be_analyzed的变量中。
session_client.session_path(PROJECT_ID,
DialogFlow.types.TextInput(textanalyzed_text,
DialogFlow.types.QueryInput(texttext_input)
session_client.detect_intent(sessionsession,
response.query_result.query_text)
response.query_result.intent.display_name)
response.query_result.intent_detection_confidence)
response.query_result.fulfillment_text)
进行会话的目的是能够向服务器发出请求并接收可以满足该请求的响应。
到目前为止我们仅使用本地服务器因此其他外部客户端无法通过互联网访问该服务器。
Webhook我们需要将其部署在可以通过互联网访问的服务器上。
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-lXKsDobf-1681568818802)(https://gitcode.net/apachecn/apachecn-dl-zh/-/raw/master/docs/ai-py/img/B15441_16_06.png)]
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-N6vIpCmN-1681568818802)(https://gitcode.net/apachecn/apachecn-dl-zh/-/raw/master/docs/ai-py/img/B15441_16_07.png)]
https://886b89bc.ngrok.io/webhook
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-I5EmO2Y0-1681568818803)(https://gitcode.net/apachecn/apachecn-dl-zh/-/raw/master/docs/ai-py/img/B15441_16_08.png)]
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-nNkvmRTd-1681568818803)(https://gitcode.net/apachecn/apachecn-dl-zh/-/raw/master/docs/ai-py/img/B15441_16_09.png)]
在此示例中我们将非常简单地开始但最终我们将允许用户从餐厅订购食物。
因此例如用户可能会说“我想订购汉堡和薯条”而聊天机器人会将这种话语传递给后端以进行验证存储和处理
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-Nb3xTMgE-1681568818803)(https://gitcode.net/apachecn/apachecn-dl-zh/-/raw/master/docs/ai-py/img/B15441_16_10.png)]
req.get(queryResult).get(action)#
make_response(jsonify(results()))
req.get(queryResult).get(action)
req.get(queryResult).get(action)
现在我们将研究如何从服务器获取响应以及如何根据响应来处理响应。
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-QrS1wh3L-1681568818803)(https://gitcode.net/apachecn/apachecn-dl-zh/-/raw/master/docs/ai-py/img/B15441_16_11.png)]
在这一点上我们的聊天机器人除了演示如何从服务器获取响应外还没有做其他事情。
一些明显的增强功能包括根据建立的菜单检查所请求的食物以查看菜单上是否有可用项目
在本章中我们首先了解了聊天机器人的潜在未来以及聊天机器人变得越来越好将如何影响我们的社会。
然后我们了解了当前聊天机器人技术的局限性以及当前局限性推荐的最佳实践。
我们一步一步地了解了如何测试聊天机器人的功能并确保其设置正确。
在下一章中我们将跳到另一个令人兴奋的主题并学习如何训练序列数据并将其用于时间序列分析。
为此我们将涵盖许多主题以使我们更好地掌握如何构建和使用这些模型。
我们将了解如何分割时间序列数据并对其执行各种操作然后我们将讨论如何滚动地从时间序列数据中提取各种统计信息。
接下来我们将学习隐马尔可夫模型HMM然后实现一个用于构建这些模型的系统。
我们将了解如何使用条件随机场来分析字母序列最后我们将讨论如何使用到目前为止学到的技术来分析股市数据。
处理时间序列数据切片时间序列数据操作时间序列数据从时间序列数据中提取统计信息使用隐马尔可夫模型生成数据使用条件随机场识别字母序列股市分析
在机器学习的世界中我们遇到了许多类型的数据例如图像文本视频和传感器读数。
基因组序列数据这个也许是我们拥有的序列数据的最好和最重要的例子。
如果我们开始更改本书中单词的顺序不久之后本书将变得完全不可理解
计算机语言在大多数计算机语言中正确的输入顺序对于任何功能正常运行至关重要。
例如在许多计算机语言中符号的意思是“大于或等于”而在其他语言中的意思可能是赋值或产生语法错误。
许多数据科学家将在其职业生涯中的某个时刻尝试使用其数据科学技能来尝试预测股市。
他们中的许多人将意识到这是一项艰巨的努力并转向其他主题和问题。
在经济周期的不同时间股票对经济状况的反应不同。
影响股票价格的因素很多这使它成为一个非常复杂的系统。
股票中一些最剧烈的变动发生在市场交易时间之外这使得实时处理这些信息变得困难。
时间序列数据是从任何数据源例如传感器麦克风股票市场等获得的时间戳值。
时间序列数据具有许多重要特征需要对其进行建模才能进行有效分析。
在本章中我们将看到如何构建通常描述时间序列数据和序列数据的模型。
时间序列数据分析被广泛应用于金融传感器数据分析语音识别经济学天气预报制造以及更多领域。
这是一个可爱的名字让人联想到毛茸茸的熊但这里有一些没用的琐事。
的名称来自面板数据一词这是计量经济学术语用于包含多个时间段内观测值的数据集。
我们还将使用其他几个有用的包例如hmmlearn和pystruct。
如果在安装cvxopt时出错则可以在这个页面上找到进一步的说明。
假设您已经成功安装了包让我们继续进行下一部分在此我们将研究如何通过和
使用集成索引的数据帧操作从各种不同的文件格式读取数据并将数据写入内存数据结构的方法数据分类数据筛选缺失值估计重塑和旋转数据集基于标签的切片索引和子集创建高效的列插入和删除数据集上的按分组操作合并和连接数据集
在本节中我们将使用它来将数字序列转换为时间序列数据并将其可视化。
库需要结束日期为独占日期因此我们需要将最后一行的date字段增加一个月
使用开始日期和结束日期以及每月一次的频率来创建带有日期的索引列表
timeseries.plot()plt.title(Dimension
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-av2rBG1A-1681568818804)(https://gitcode.net/apachecn/apachecn-dl-zh/-/raw/master/docs/ai-py/img/B15441_17_01.png)]
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-fESxTYX3-1681568818804)(https://gitcode.net/apachecn/apachecn-dl-zh/-/raw/master/docs/ai-py/img/B15441_17_02.png)]
从外部文件加载数据如何将其转换为时间序列格式以及如何对其进行绘制和可视化奠定基础。
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-iUHlPxTM-1681568818804)(https://gitcode.net/apachecn/apachecn-dl-zh/-/raw/master/docs/ai-py/img/B15441_17_03.png)]
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-bIQOeqP7-1681568818804)(https://gitcode.net/apachecn/apachecn-dl-zh/-/raw/master/docs/ai-py/img/B15441_17_04.png)]
库中可用的不同功能例如过滤和求和以及该功能如何帮助更好地分析和处理数据集。
在这种情况下我们将获取dim1中所有小于45的数据点和dim2中所有大于30的值
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-1aRrYUO3-1681568818805)(https://gitcode.net/apachecn/apachecn-dl-zh/-/raw/master/docs/ai-py/img/B15441_17_05.png)]
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-esLg8n8g-1681568818805)(https://gitcode.net/apachecn/apachecn-dl-zh/-/raw/master/docs/ai-py/img/B15441_17_06.png)]
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-SVeBVigp-1681568818805)(https://gitcode.net/apachecn/apachecn-dl-zh/-/raw/master/docs/ai-py/img/B15441_17_07.png)]
为了从时间序列数据中提取有意义的见解我们可以从中生成统计数据。
data[dim1].rolling(window60).corr(o***rdata[dim2]).plot()
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-0ChoPgCp-1681568818805)(https://gitcode.net/apachecn/apachecn-dl-zh/-/raw/master/docs/ai-py/img/B15441_17_08.png)]
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-dBS328sZ-1681568818806)(https://gitcode.net/apachecn/apachecn-dl-zh/-/raw/master/docs/ai-py/img/B15441_17_09.png)]
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-XTuCWvny-1681568818806)(https://gitcode.net/apachecn/apachecn-dl-zh/-/raw/master/docs/ai-py/img/B15441_17_10.png)]
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-HgiTsHGg-1681568818806)(https://gitcode.net/apachecn/apachecn-dl-zh/-/raw/master/docs/ai-py/img/B15441_17_11.png)]
1.0的相关性表示完全相关而0.0的相关性表示变量根本不相关。
到目前为止我们将不会很快凭借我们的模型及其预测股票价格的能力而成为百万富翁。
在下一节中我们将学习一种有用的技术来分析时间序列数据称为隐马尔科夫模型HMM。
在此示例中推销员必须在以下三个城市之间旅行才能工作伦敦巴塞罗那和纽约。
考虑到他的工作承诺和时间表我们有一组概率决定了从城市X到城市Y的机会。
城市概率P(London-London)0.10P(London-Barcelona)0.70P(London-
NY)0.20P(Barcelona-Barcelona)0.15P(Barcelona-London)0.75P(Barcelona-
NY)0.10P(NY-NY)0.05P(NY-London)0.60P(NY-Barcelona)0.35
伦敦巴塞罗那纽约伦敦0.100.700.20巴塞罗那0.750.150.10纽约0.600.350.05
如果我们没有马尔可夫链来对该问题进行建模那么我们将不知道旅行时间表是什么样的。
GaussianHMM(n_componentsnum_components,
range(hmm.n_components):print(\nHidden
round(np.diag(hmm.covars_[i])[0],
plt.plot(np.arange(num_samples),
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-zXi8JuAa-1681568818806)(https://gitcode.net/apachecn/apachecn-dl-zh/-/raw/master/docs/ai-py/img/B15441_17_12.png)]
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-r9fDqcX5-1681568818806)(https://gitcode.net/apachecn/apachecn-dl-zh/-/raw/master/docs/ai-py/img/B15441_17_13.png)]
在给定不同行程的情况下我们解释图表的方式是遍历销售路线所需的时间不同。
手写识别字符识别物体检测命名实体识别基因预测图像分割语音标记的一部分降噪
在第一个字母之后的下一个字母将成为元音的可能性高于其在辅音中的可能性。
较高的C值表示我们会在训练过程中对错误分类施加更高的罚款但最终可能会使模型过拟合。
argparse.ArgumentParser(descriptionTrains
classifier)parser.add_argument(--C,
FrankWolfeSSVM(modelChainCRF(),
np.array(alphabets[labels])folds
self.clf.predict(input_data)[0]
np.array(list(string.ascii_lowercase))
build_arg_parser().parse_args()c_val
convert_to_letters(y_test[index]))predicted
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-0yBNGUwt-1681568818807)(https://gitcode.net/apachecn/apachecn-dl-zh/-/raw/master/docs/ai-py/img/B15441_17_14.png)]
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-0gAq0SJn-1681568818807)(https://gitcode.net/apachecn/apachecn-dl-zh/-/raw/master/docs/ai-py/img/B15441_17_15.png)]
请不要指望此模型产生的结果将接近生产质量并且您将能够使用此模型执行实时交易并从中获利。
如果您愿意我们建议您继续增强模型并针对不同的数据集强调该模型并可能将其与当前市场数据一起使用。
yf.Ticker(INTC).history(startstart_date,
np.column_stack([diff_percentages,
warnings.catch_warnings():warnings.simplefilter(ignore)hmm.fit(training_data)
plt.plot(np.arange(num_samples),
plt.plot(np.arange(num_samples),
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-hCg7vGfQ-1681568818807)(https://gitcode.net/apachecn/apachecn-dl-zh/-/raw/master/docs/ai-py/img/B15441_17_16.png)]
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-7NxNzjS2-1681568818807)(https://gitcode.net/apachecn/apachecn-dl-zh/-/raw/master/docs/ai-py/img/B15441_17_17.png)]
正如我们在本节开头提到的我们不建议您使用此代码来使用真实货币进行实际交易。
首先我们将花费一些时间来理解为什么图像识别对于机器学习非常重要。
我们将学习如何使用色彩空间跟踪对象以及如何使用背景减法来跟踪对象。
OpenCV帧差分使用色彩空间跟踪对象使用背景减法跟踪对象使用
作为希望从本书的主题中变得清晰起来一般的人工智能尤其是机器学习是推动当今社会发生数字化转型的一些技术。
类似地即使他们使用不同的方法“查看”捕获图像并识别这些图像中包含的内容对于计算机来说也是最重要的以便创建数据集以馈入机器学习管道并从该数据中获取洞察力。
在这种情况下计算机就像人类的同类计算机一样需要能够在任何给定的每秒内提取千兆字节的数据分析这些数据并实时做出改变人生的决定。
无人驾驶技术只是图像识别的一种应用其应用几乎是无限的仅受我们的想象力限制。
除其他功能外还提供功能您可以将图像用作输入而不是使用关键字作为输入并获取图像而
考虑了图像识别的一些实际应用后让我们进入将要使用的包以亲自了解它。
如果我们有一个跑步者的视频我们可能想分析跑步者的跑步情况而不是背景图像。
有时候您会发现一个一次性的极客会在隐藏在这种背景下的电影中发现问题正如我们在《权力的游戏》的最新剧情中几次看到有人在背景中发现一杯星巴克但这是例外而不是规则。
当我们观看实时视频流时从该流捕获的连续帧之间的差异为我们提供了很多信息。
本节中的代码需要连接的摄像头因此请确保您的计算机上装有摄像头。
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-bEd2rIlr-1681568818808)(https://gitcode.net/apachecn/apachecn-dl-zh/-/raw/master/docs/ai-py/img/B15441_18_01.png)]
通过过滤所有额外的不相关信息它允许系统中的其他算法更有效地处理图像中的相关信息因此可以更快地对任何潜在的危险做出反应。
这种过滤可能有用的另一个实例是加载视频的空间有限或成本高昂我们需要压缩图像并提高空间利用率。
我们将由读者提出其他可能有用的方案但希望我们能给您足够的灵感激发您的想象力和创造力。
通过帧差分获得的信息很有用但是我们将无法使用它构建健壮的跟踪器。
要构建健壮的对象跟踪器我们需要知道可以使用对象的哪些特征来精确跟踪它。
我们应该注意我们需要知道对象的颜色分布以便为阈值选择合适的范围。
interpolationcv2.INTER_AREA)return
cv2.medianBlur(img_bitwise_and,
提供给您的文件colorspaces.py中提供了完整的代码。
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-Hm0VzIN1-1681568818808)(https://gitcode.net/apachecn/apachecn-dl-zh/-/raw/master/docs/ai-py/img/B15441_18_02.png)]
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-3DnrGKLo-1681568818808)(https://gitcode.net/apachecn/apachecn-dl-zh/-/raw/master/docs/ai-py/img/B15441_18_03.png)]
如您在中看到的输出帧我们现在只在图像中看到一种颜色它对应于任何皮肤。
与上一节中看到的类似我们对图像进行了过滤以仅包含我们感兴趣的信息。
在这种情况下过滤是不同的但结果是事实是我们现在仅具有进一步处理图像所需的信息。
检测异常皮肤状况或变色。
仅在看到人的肤色时才会打开的安全系统。
背景减法是一种技术它对给定视频中的背景进行建模然后使用该模型来检测运动对象。
该算法的基本原理是检测背景为其建立模型然后从当前帧中减去背景以获得前景。
我们正在对背景进行建模并实时更新这使其成为一种自适应算法可以适应不断变化的基线。
interpolationcv2.INTER_AREA)return
cv2.createBackgroundSubtractorMOG2()
完整代码在提供给您的文件background_subtraction.py中给出。
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-BxjcI5zi-1681568818808)(https://gitcode.net/apachecn/apachecn-dl-zh/-/raw/master/docs/ai-py/img/B15441_18_04.png)]
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-neH7E4tG-1681568818809)(https://gitcode.net/apachecn/apachecn-dl-zh/-/raw/master/docs/ai-py/img/B15441_18_05.png)]
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-yJM8lDxp-1681568818809)(https://gitcode.net/apachecn/apachecn-dl-zh/-/raw/master/docs/ai-py/img/B15441_18_06.png)]
看着一个小时或几个小时的镜头对准空旷的停车场可能比看着油漆枯燥更无聊但是如果安全系统足够智能可以在车架发生运动时进行记录我们将能够辨别出“有趣的东西”。
基于颜色空间的跟踪允许我们跟踪有色对象但是我们必须首先定义颜色。
让我们看看如何在实时视频中选择一个对象然后使用一个可以跟踪它的跟踪器。
我们要跟踪该对象因此在其周围绘制了一个粗糙的边界这就是感兴趣的区域所指的区域。
因此此算法称为均值平移因为均值即质心一直在移动我们使用此跟踪对象。
cv2.EVENT_LBUTTONDOWN:self.drag_start
如果选择完成则设置标志指示我们应该开始跟踪矩形区域内的对象
trackerObjectTracker().start_tracking()
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-Yd1Yne08-1681568818809)(https://gitcode.net/apachecn/apachecn-dl-zh/-/raw/master/docs/ai-py/img/B15441_18_07.png)]
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-365Ldw7J-1681568818809)(https://gitcode.net/apachecn/apachecn-dl-zh/-/raw/master/docs/ai-py/img/B15441_18_08.png)]
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-ylcmADbV-1681568818809)(https://gitcode.net/apachecn/apachecn-dl-zh/-/raw/master/docs/ai-py/img/B15441_18_09.png)]
希望到现在为止您已经看到了图像识别的许多应用的可能性并且可能已经提出了关于如何应用到目前为止所学知识的自己的想法。
他们使用的技术可能比我们在本章中使用的技术要复杂一些但是概念并没有什么不同。
码标记而美国职业棒球大联盟使用与我们在本节中学到的技术类似的技术来绘制打击区。
与我们在这里看到的最接近的示例是温网锦标赛用来确定网球着陆的位置并确定其进出的例子。
多年来用计算机制作逼真的面孔非常困难但好莱坞及其特效艺术家终于破解了密码。
显然他们正在使用比本章将介绍的技术更复杂的技术但是光流技术是开始实现此功能的基础技术。
您必须能够在视频移动的任何时刻跟踪该人的脸然后才能在视频中更改该人的脸。
当我们在给定帧中检测到一组特征点时我们将计算位移向量以对其进行跟踪。
搜索区域大于3×3因为我们寻找一堆不同的3×3色块以获得与当前色块最接近的那个。
一旦获得该信息从当前补丁的中心点到前一帧中匹配的补丁的路径将成为运动向量。
cv2.calcOpticalFlowPyrLK(prev_img,
cv2.calcOpticalFlowPyrLK(current_img,
\feature_points_0_rev).reshape(-1,
tp[0]new_tracking_paths.append(tp)
np.zeros_like(frame_gray)mask[:]
tracking_paths]:cv2.circle(mask,
使用内置函数以及遮罩最大拐角质量级别最小距离和块大小等参数计算要跟踪的良好特征
cv2.goodFeaturesToTrack(frame_gray,
np.float32(feature_points).reshape(-1,
完整代码在提供给您的文件optical_flow.py中给出。
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-qn4xG1HT-1681568818810)(https://gitcode.net/apachecn/apachecn-dl-zh/-/raw/master/docs/ai-py/img/B15441_18_10.png)]
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-x8BPQM4b-1681568818810)(https://gitcode.net/apachecn/apachecn-dl-zh/-/raw/master/docs/ai-py/img/B15441_18_11.png)]
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-tDseRjrl-1681568818810)(https://gitcode.net/apachecn/apachecn-dl-zh/-/raw/master/docs/ai-py/img/B15441_18_12.png)]
在本节中我们将看到如何自动来自动检测实时视频中人脸的位置并对其进行跟踪。
年在他们的标志性研究论文中首次提出了这种对象检测方法。
您可以在这里查看。
之所以相关是因为它帮助我们规避了构建具有较高准确率的单步分类器的过程。
为了构建用于检测人脸的机器学习系统我们首先需要构建特征提取器。
我们需要在多个尺度上计算这些求和和差异这使其成为计算密集型过程。
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-RPF2JXZX-1681568818810)(https://gitcode.net/apachecn/apachecn-dl-zh/-/raw/master/docs/ai-py/img/B15441_18_13.png)]
如果要计算此图像中矩形ABCD的总和则无需遍历该矩形区域中的每个像素。
假设OC表示由矩形的左上角O和矩形的对角相对角点C形成的矩形区域。
我们有效地做的是考虑一个较大的矩形其中O和C代表相对的对角线然后我们“切出”白色部分以仅留下蓝色区域。
cv2.CascadeClassifier(haar_cascade_files/haarcascade_frontalface_default.xml
face_cascade.detectMultiScale(gray,
face_rects:cv2.rectangle(frame,
完整代码为提供给您的文件face_detector.py中提供的。
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-3cg6476r-1681568818811)(https://gitcode.net/apachecn/apachecn-dl-zh/-/raw/master/docs/ai-py/img/B15441_18_14.png)]
从人脸检测我们将在下一部分中转到类似的概念“眼睛检测和跟踪”。
cv2.CascadeClassifier(haar_cascade_files/haarcascade_frontalface_default.xml)
cv2.CascadeClassifier(haar_cascade_files/haarcascade_eye.xml)
face_cascade.detectMultiScale(gray,
eye_cascade.detectMultiScale(roi_gray)
完整代码在提供给您的文件eye_detector.py中给出。
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-99rttC4N-1681568818811)(https://gitcode.net/apachecn/apachecn-dl-zh/-/raw/master/docs/ai-py/img/B15441_18_15.png)]
窃听上一节中的想法我们可以使用在本节中学到的技术为电影或胡须或胡须等中的屏幕角色添加眼镜。
我想到的另一个应用是跟踪卡车驾驶员的眼睛并确定他们眨眼或闭上眼睛的速度以查看他们是否感到疲倦并要求他们可能是强迫他们翻身。
我们期待您的来信并结合您自己的想法学习如何应用本章中学到的技术。
在下一章中我们将讨论人工神经网络并使用这些技术来构建光学字符识别引擎。
我们将使用循环神经网络分析序列数据最后将使用神经网络构建光学字符识别引擎。
神经网络简介构建基于感知器的分类器构建单层神经网络构建多层神经网络构建向量量化器使用循环神经网络分析序列数据在光学字符识别OCR数据库中可视化字符构建光学字符识别OCR引擎
人工智能的基本前提之一是构建可以执行通常需要人类智能的任务的系统。
神经网络的一个缺点是在将给定数据输入神经网络之前我们需要将其转换为数字格式。
为了理解这一过程让我们首先考虑如何构建神经网络然后如何训练神经网络。
当我们看着一个盒子时大脑的第一部分可能会识别出简单的事物例如角落和边缘。
如果我们在训练数据中具有M个不同的类则输出层将包含M个神经元。
一个简单的神经网络将由两层组成而一个深度神经网络将由许多层组成。
每个神经元都充当简单函数并且神经网络会自我训练直到误差降至某个阈值以下。
基于误差有多大神经网络会自行调整并重新训练直到其更接近可解度。
他们的发展基于圣地亚哥·拉蒙·卡哈尔和查尔斯·斯科特·谢灵顿爵士所做的神经系统工作。
年的论文中进行的研究《神经活动固有的逻辑思想》描述了一种结构该结构借鉴了神经元的结构具有二进制阈值激活函数类似于一阶逻辑语句。
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-ek6dKsnT-1681568818811)(https://gitcode.net/apachecn/apachecn-dl-zh/-/raw/master/docs/ai-py/img/B15441_19_01.png)]
在后面的章节中我们将看到更复杂的示例以及神经网络的一些有趣应用。
从提供给您的文本文件data_perceptron.txt中加载输入数据。
每行包含用空格分隔的数字其中前两个数字是特征最后一个数字是标签
np.loadtxt(data_perceptron.txt)
让我们定义一个具有两个输入神经元的感知器在其中为每个维度分配一个神经元。
文件perceptron_classifier.py中提供了完整代码。
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-Qt7EV2B2-1681568818811)(https://gitcode.net/apachecn/apachecn-dl-zh/-/raw/master/docs/ai-py/img/B15441_19_02.png)]
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-ZiIem3e7-1681568818812)(https://gitcode.net/apachecn/apachecn-dl-zh/-/raw/master/docs/ai-py/img/B15441_19_03.png)]
我们可以从前面的屏幕截图中观察到在第四个周期结束时误差降至0这正是我们想要发生的情况。
建立一个带有几个感知器的模型是一个好的开始它使我们对这个令人兴奋的概念有了基本的了解但是要真正解决问题这种简单的模型是不够的。
我们不会建立具有这么多节点的神经网络但是这个数字使您了解解决复杂问题所需的方法。
在建立具有数十亿个节点的模型之前让我们进行下一步以建立具有单层的网络。
我们将使用提供给您的文件data_simple_nn.txt中的输入数据。
提取每个维度的最小值和最大值我们不需要像上一节中那样对其进行硬编码
完整代码在文件simple_neural_network.py中给出。
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-g1dKixmh-1681568818812)(https://gitcode.net/apachecn/apachecn-dl-zh/-/raw/master/docs/ai-py/img/B15441_19_04.png)]
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-Mvzf7L6o-1681568818812)(https://gitcode.net/apachecn/apachecn-dl-zh/-/raw/master/docs/ai-py/img/B15441_19_05.png)]
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-rosYawos-1681568818812)(https://gitcode.net/apachecn/apachecn-dl-zh/-/raw/master/docs/ai-py/img/B15441_19_06.png)]
5”中看到的那样误差迅速开始减少这表明我们的训练有效地创造了越来越好的预测。
我们也不会在本节中谈到这一点但让我们朝着正确的方向迈出又一步。
这种类型的架构可产生更高的精度并且使我们能够解决更复杂更多样化的问题。
nn.sim(x_dense.reshape(x_dense.size,1)).reshape(x_dense.size)
完整代码在文件multilayer_neural_network.py中给出。
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-xcTRG9ec-1681568818812)(https://gitcode.net/apachecn/apachecn-dl-zh/-/raw/master/docs/ai-py/img/B15441_19_07.png)]
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-Y67V1cRM-1681568818813)(https://gitcode.net/apachecn/apachecn-dl-zh/-/raw/master/docs/ai-py/img/B15441_19_08.png)]
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-wW2c1Ipm-1681568818813)(https://gitcode.net/apachecn/apachecn-dl-zh/-/raw/master/docs/ai-py/img/B15441_19_09.png)]
如果继续训练网络并减少误差您将看到预测输出将与输入曲线相匹配即使重新仍很准确。
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-bWb1vqUc-1681568818813)(https://gitcode.net/apachecn/apachecn-dl-zh/-/raw/master/docs/ai-py/img/B15441_19_10.png)]
在前面的部分中我们学习了如何构建基本的神经网络以及对基础知识的牢固掌握和理解。
此技术通常用于多个领域例如语音/图像识别语义分析和图像/语音压缩。
年代的贝尔实验室在那里进行了研究以使用离散化程序优化信号传输。
NeuroLabv0.3.5的某些问题运行以下代码将引发错误。
包layer_out.np[w][n][st:i].fill(1.0)中net.py文件的
行更改为layer_out.np[w][n][int(st):int(i)].fill(1.0))应该可以解决此问题。
从文件data_vector_quantization.txt加载输入数据。
np.loadtxt(data_vector_quantization.txt)
定义一个具有两层的神经网络其中输入层有10神经元输出层有4神经元
nl.net.newlvq(nl.tool.minmax(data),
如果运行代码将获得以下屏幕截图其中显示了输入数据点和集群之间的边界
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-GXUGrmM6-1681568818813)(https://gitcode.net/apachecn/apachecn-dl-zh/-/raw/master/docs/ai-py/img/B15441_19_11.png)]
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-vUVO3Vg0-1681568818814)(https://gitcode.net/apachecn/apachecn-dl-zh/-/raw/master/docs/ai-py/img/B15441_19_12.png)]
get_data(num_points_test)output
nn.sim(wave)plt.plot(amp.reshape(num_points_test
4))plt.plot(output.reshape(num_points_test
resultsplt.subplot(211)plt.plot(error_progress)plt.xlabel(Number
(MSE))plt.subplot(212)plt.plot(amp.reshape(num_points
4))plt.plot(output.reshape(num_points
dataplt.figure()plt.subplot(211)visualize_output(nn,
300])plt.subplot(212)visualize_output(nn,
文件recurrent_neural_network.py中提供了完整代码。
第一个屏幕截图的上半部分显示了训练进度下半部分显示了叠加在输入波形顶部的预测输出
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-NyQEB8DP-1681568818814)(https://gitcode.net/apachecn/apachecn-dl-zh/-/raw/master/docs/ai-py/img/B15441_19_13.png)]
以下屏幕截图的上半部分显示了即使我们增加了波形的长度神经网络也如何模拟波形。
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-PwqTa7KJ-1681568818814)(https://gitcode.net/apachecn/apachecn-dl-zh/-/raw/master/docs/ai-py/img/B15441_19_14.png)]
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-CeuUXZZA-1681568818814)(https://gitcode.net/apachecn/apachecn-dl-zh/-/raw/master/docs/ai-py/img/B15441_19_15.png)]
在下一部分中我们将通过研究光学字符识别来演示神经网络的实际应用。
将手写体转换为计算机字符一直是许多计算机科学家试图解决的基本问题但仍然难以捉摸。
我可能是错的但是我认为我们将找到一种治愈癌症的方法然后才能找到一种可靠的方法来使计算机识别医生的笔迹。
我们继续尝试解决此问题的原因是这是一个有价值的目标具有许多应用。
随着系统能够更好地识别他们的笔记他们将获得更多的精力来专注于实际治疗和帮助患者的精力而不再关注文书工作。
完整代码在文件character_visualizer.py中给出。
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-wbldPbza-1681568818814)(https://gitcode.net/apachecn/apachecn-dl-zh/-/raw/master/docs/ai-py/img/B15441_19_16.png)]
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-uvvTucdx-1681568818815)(https://gitcode.net/apachecn/apachecn-dl-zh/-/raw/master/docs/ai-py/img/B15441_19_17.png)]
我们刚刚想出了一种可视化数据集并验证我们的模型正在做出准确预测的方法。
现在我们已经学习了如何处理这些数据让我们使用神经网络构建光学字符识别系统。
1))label[orig_labels.index(list_vals[1])]
list_vals[start:end]])data.append(cur_char)
np.array(labels).reshape(num_datapoints,
range(num_test):print(\nOriginal:,
orig_labels[np.argmax(labels[i])])
orig_labels[np.argmax(predicted_test[i])])
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-TxoV75aa-1681568818815)(https://gitcode.net/apachecn/apachecn-dl-zh/-/raw/master/docs/ai-py/img/B15441_19_18.png)]
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-7KdkFZM7-1681568818815)(https://gitcode.net/apachecn/apachecn-dl-zh/-/raw/master/docs/ai-py/img/B15441_19_19.png)]
正如我们在前面的屏幕截图中看到的我们的模型正确地选择了其中的三个。
我们让您看看它们是否可以通过更长的网络训练和调整模型的配置来获得更高的准确率和更好的结果。
在随后的章节中我们将回顾该技术的许多其他用例这些用例处于当前机器学习革命的最前沿。
为嵌入了图像分类软件的无人机拍照它可以区分平民和敌方战斗人员。
中的层类型构建基于感知器的线性回归器使用单层神经网络构建图像分类器使用
我们将让您的想象力疯狂起来但是使用其中一些生成的“人类”在电影中出演肯定可以制作一部电影。
会创建伪造的入侵然后使用这些入侵来训练模型以识别这些威胁从而使我们能够阻止这些攻击的真实版本。
可用于“伪样式迁移”即在不完全修改示例的情况下修改示例的某些大小。
这是在麻省理工学院创建的唐纳德·特朗普总统形象之上插入尼古拉斯·凯奇的脸的例子
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-RT43HQu0-1681568818815)(https://gitcode.net/apachecn/apachecn-dl-zh/-/raw/master/docs/ai-py/img/B15441_20_01.png)]
隐私作为其安全策略的的一部分许多公司希望将某些数据保密和保密。
当我们在普通神经网络中使用时我们需要将输入数据转换为单个向量。
将每个神经元连接到上一层中的每个神经元称为完全连通性显然不会起作用。
这与完全连接层形成对比在完全连接层中每个神经元都连接到上一层的所有神经元。
由于单个过滤器无法捕获图像的所有细微差别因此我们多次执行M以确保捕获所有细节。
如果查看这些过滤器的输出我们可以看到它们提取了诸如边角等特征。
随着我们在网络的层中的进展我们将看到后面的层提取更高级别的特征。
像任何其他神经网络一样它为图像中的元素分配权重和偏差并能够将这些元素彼此区分开。
架构的基本形式可以与人脑中的神经元和树突进行比较并从视觉皮层中汲取灵感。
然后我们可以将这个扁平化的图像用作基于感知器的神经网络的输入。
当使用基本的二进制黑白输入时此方法在执行类的预测时可能会显示平均精度得分但对于涉及像素始终的复杂图像该方法几乎没有准确率。
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-bshS469L-1681568818816)(https://gitcode.net/apachecn/apachecn-dl-zh/-/raw/master/docs/ai-py/img/B15441_20_02.png)]
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-2d0i50wO-1681568818816)(https://gitcode.net/apachecn/apachecn-dl-zh/-/raw/master/docs/ai-py/img/B15441_20_03.png)]
架构在数据集上表现更好这是因为参数数量减少了并且权重得到了重用。
需要这一层来为网络增加非线性以便可以很好地推广到任何类型的函数。
最大池化通常在池化层中使用我们在给定的KxK窗口中选择最大值。
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-HWFkVzSy-1681568818816)(https://gitcode.net/apachecn/apachecn-dl-zh/-/raw/master/docs/ai-py/img/B15441_20_04.png)]
当我们从网络中的输入层到输出层时输入图像就从像素值转换为最终的类别分数。
模型的准确率和鲁棒性取决于许多因素-层的类型网络的深度网络内各种类型的层的排列为每个层选择的函数训练数据等等。
在前面的章节中我们已经看到了线性回归但是本节是关于使用神经网络方法构建线性回归模型的。
tf.Variable(tf.random_uniform([1],
tf.train.GradientDescentOptimizer(0.5)
完整代码在文件linear_regression.py中给出。
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-1kIXrMkG-1681568818816)(https://gitcode.net/apachecn/apachecn-dl-zh/-/raw/master/docs/ai-py/img/B15441_20_05.png)]
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-18aED86J-1681568818816)(https://gitcode.net/apachecn/apachecn-dl-zh/-/raw/master/docs/ai-py/img/B15441_20_06.png)]
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-oUfXPX78-1681568818817)(https://gitcode.net/apachecn/apachecn-dl-zh/-/raw/master/docs/ai-py/img/B15441_20_07.png)]
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-oHJ9BhyC-1681568818817)(https://gitcode.net/apachecn/apachecn-dl-zh/-/raw/master/docs/ai-py/img/B15441_20_08.png)]
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-IcZmj5Ob-1681568818817)(https://gitcode.net/apachecn/apachecn-dl-zh/-/raw/master/docs/ai-py/img/B15441_20_09.png)]
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-nIk4tVHX-1681568818817)(https://gitcode.net/apachecn/apachecn-dl-zh/-/raw/master/docs/ai-py/img/B15441_20_10.png)]
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-4EamiHT9-1681568818817)(https://gitcode.net/apachecn/apachecn-dl-zh/-/raw/master/docs/ai-py/img/B15441_20_11.png)]
我们可以看到w和b的值是如何不断调整的我们还可以看到损失如何持续减小直到损失很小的程度以至于我们不再看到它减小。
有趣的是我们能够很快取得良好的结果但是我们为我们的网络解决了一个相当简单的问题。
tensorflow.examples.tutorials.mnist
input_data.read_data_sets(./mnist_data,
tf.reduce_mean(tf.nn.softmax_cross_entropy_with_logits(logitsy,
tf.train.GradientDescentOptimizer(0.5).minimize(loss)
我们将使用批量进行训练在该批量中我们在当前批量上运行优化器然后继续进行下一个批量以进行下一次迭代。
mnist.train.next_batch(batch_size)
tf.reduce_mean(tf.cast(predicted,
如果运行代码它将把数据下载到当前文件夹中名为mnist_data的文件夹中。
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-FrNR0IsL-1681568818818)(https://gitcode.net/apachecn/apachecn-dl-zh/-/raw/master/docs/ai-py/img/B15441_20_12.png)]
tensorflow.examples.tutorials.mnist
input_data.read_data_sets(args.input_dir,
tf.nn.relu(convolution_2d(x_image,
将上一层的输出与在上一步中计算的权重张量进行卷积然后向其添加偏差张量。
tf.nn.relu(convolution_2d(h_pool1,
将上一层的输出与完全连接的层的权重张量相乘然后向其添加偏置张量。
tf.nn.relu(tf.matmul(h_pool2_flat,
tf.reduce_mean(tf.nn.softmax_cross_entropy_with_logits(y_conv,
tf.train.AdamOptimizer(1e-4).minimize(loss)
tf.reduce_mean(tf.cast(predicted,
mnist.train.next_batch(batch_size)
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-c4lOaL70-1681568818818)(https://gitcode.net/apachecn/apachecn-dl-zh/-/raw/master/docs/ai-py/img/B15441_20_13.png)]
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-w89RfP9u-1681568818818)(https://gitcode.net/apachecn/apachecn-dl-zh/-/raw/master/docs/ai-py/img/B15441_20_14.png)]
现在我们有了的输出我们可以看到的卷积神经网络的准确率比简单的神经网络要高得多。
作为专业的SEO优化服务提供商,我们致力于通过科学、系统的搜索引擎优化策略,帮助企业在百度、Google等搜索引擎中获得更高的排名和流量。我们的服务涵盖网站结构优化、内容优化、技术SEO和链接建设等多个维度。
| 服务项目 | 基础套餐 | 标准套餐 | 高级定制 |
|---|---|---|---|
| 关键词优化数量 | 10-20个核心词 | 30-50个核心词+长尾词 | 80-150个全方位覆盖 |
| 内容优化 | 基础页面优化 | 全站内容优化+每月5篇原创 | 个性化内容策略+每月15篇原创 |
| 技术SEO | 基本技术检查 | 全面技术优化+移动适配 | 深度技术重构+性能优化 |
| 外链建设 | 每月5-10条 | 每月20-30条高质量外链 | 每月50+条多渠道外链 |
| 数据报告 | 月度基础报告 | 双周详细报告+分析 | 每周深度报告+策略调整 |
| 效果保障 | 3-6个月见效 | 2-4个月见效 | 1-3个月快速见效 |
我们的SEO优化服务遵循科学严谨的流程,确保每一步都基于数据分析和行业最佳实践:
全面检测网站技术问题、内容质量、竞争对手情况,制定个性化优化方案。
基于用户搜索意图和商业目标,制定全面的关键词矩阵和布局策略。
解决网站技术问题,优化网站结构,提升页面速度和移动端体验。
创作高质量原创内容,优化现有页面,建立内容更新机制。
获取高质量外部链接,建立品牌在线影响力,提升网站权威度。
持续监控排名、流量和转化数据,根据效果调整优化策略。
基于我们服务的客户数据统计,平均优化效果如下:
我们坚信,真正的SEO优化不仅仅是追求排名,而是通过提供优质内容、优化用户体验、建立网站权威,最终实现可持续的业务增长。我们的目标是与客户建立长期合作关系,共同成长。
Demand feedback