学习人工智能:吴恩达《AI for everyone》2019 第3周:实现智能音箱和自动驾驶的几个步骤;无监督学习;增强学习

本文主要是介绍学习人工智能:吴恩达《AI for everyone》2019 第3周:实现智能音箱和自动驾驶的几个步骤;无监督学习;增强学习,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

  吴恩达 Andrew Ng, 斯坦福大学前教授,Google Brain项目发起人、领导者。

Coursera 的联合创始人和联合主席,在 Coursera 上有十万用户的《机器学习》课程;斯坦福大学计算机科学前教授。百度前副总裁、前首席科学家;谷歌最成功的人工智能项目之一——Google Brain的发起人、领导者。

参考链接: AI for everyone

智能音响的4个步骤

四个步骤, 第一个步骤是检测触发词, 第二个是语音识别, 然后是意图识别, 最后用户对智能音响指令的执行 像这样的由 几个步骤组成的人工智能系统 有时,被称为人工智能管道 就是说,你有好几个人工智能组件 或是好几个机器学习组件, 来一步一步地 处理数据 一个公司里由四个不同的团队, 来专注于这个人工智能管道中的每一个步骤 是很常见的!

自动驾驶汽车,将多个人工智能组件组装在一起

主要步骤

汽车会接收各种各样的传感器作为输入 比如汽车前方 侧面或后方的图片 以及声波雷达 或激光雷达的传感器读数 有了这些作为输入 就能探测出其他车辆的存在或所在位置, 这样的话,你就可以 发现附近有车 同时注意到行人的位置 因为我们想要避开 其他车辆以及行人 汽车探测和行人探测 都可以通过机器学习来完成,即 使用输入输出映射,或A到B映射 这里的输入可能是图片 或者是雷达和激光雷达信息 输出是 其他车辆和行人的位置

最终,既然你已经知道了 其他车辆和其他行人的位置 你可以将这些信息投喂到 另一个专用的软件里, 这个软件称作运动规划, 这个软件的会规划动作 或者帮你规划 你的车行驶的路径 这样你就可以靠近你的目的地了 并且同时避免碰撞 一旦你规划出了你的车的动作 你可以将其转化成 特别的舵机角度 和加速度以及刹车指令 像油门应该踩多少 刹车应该踩多少来使你的车 以预想的角度和速度移动。


 

运动规划

简要介绍一下运动规划步骤 下面是一个例子, 比如你在开车 你的前方有一辆淡蓝色的车 运动规划软件的工作是 告诉你你的行车路径应该是什么 如这里红色部分所示 你应该沿着这个路径驾驶 从而不发生事故 所以运动规划软件的工作是 输出你驾驶的路径 以及速度 为了沿着道路行驶 和应该被设定的速度 所以你不会撞上另一辆车 同时还以合理的速度在路上行驶着 来看另一个例子 如果有一辆灰色的汽车 停在路的右边, 然后你想超过这辆车, 那么运动规划软件的工作是 画出一个像这样的路径 来使你向左开一些, 安全地超过这辆车 到目前为止,我简单描述了自动驾驶 主要的三个组成部分。

在一个真实的自动驾驶汽车里,更多组件

在一个真实的自动驾驶汽车里, 你通常不仅仅只使用 摄像头、雷达和激光雷达, 现在大多数自动驾驶汽车还会使用GPS 来获得位置,还有加速度计 有时候称作IMU,这就是加速度计 陀螺仪还有地图 因为我们知道 汽车通常更多是在道路上被发现 而行人更可能在人行道上被发现 尽管有时候他们也会出现在公路上, 所有这些都是 附加的信息,用以检测 车辆和行人 和接下来我们即将提到的别的物体。

除了检测车辆或者行人 为了安全驾驶你还需要知道 这些车和行人接下来要去哪儿 所以,另一个普遍的 自动驾驶汽车的部分是轨迹预测 这是另一个人工智能的部分, 它不仅让你找到车辆和行人 还有他们可能 在接下来的几秒钟到哪儿去 所以就算他们正在移动,你也可以避开他们。

安全驾驶不仅需要 知道其他车辆和行人的位置, 你还需要知道车道, 所以你还需要探测车道标志, 如果有交通灯你还需要 找到交通灯在哪儿 以及它是红灯、 黄灯还是绿灯 有时候还有其他障碍物 如突然出现的交通锥体,或者 也会有一群鹅从你的车前经过 这也需要被检测 所以你的车可以躲避 除了车辆和行人之外的其他障碍物

在一个大的自动驾驶汽车设计团队里, 让一部分人分别 负责每一个 这些红色的方框里的工作 一点都不例外。因为只有把他们分别做好, 然后组合放在一起,才能够 设计一辆自动驾驶汽车 如你在这些 综合的人工智能例子里, 以及之前的例子里 -- 比如智能音响--里 所看到的四步AI途径, 有时这需要一整个队伍才能构建 出一个复杂的AI产品。 

 非监督式学习

监督式学习(学习从输出A到输出B的映射) 在现今环境下是最有价值的技术,最典型的例子就是人脸识别,我们把人脸A和身份信息B,一起告诉AI,AI自己找出A到B的映射关系。

在非监督式学习里最著名的是聚类

聚类算法以这样的方式分析数据,自动地将数据分成 两个群体,或者更多群体,它通常用于分析市场分层 ,算法会帮助你挖掘市场特点。

聚类被称为非监督式算法,相比 监督学习算法是寻找A(输入) 到 B(输出) 映射模式, 你必须告诉算法你需要的输出B是什么, 非监督学习算法并不需要准确地告诉 AI 系统要什么输出 你只需给 AI 系统提供了一堆数据, 如:客户数据, 并告诉AI在里面找到一些有趣的信息, 有意义的结论就行。

强化学习

强化学习和训练 宠物狗的行为类似。  如何训练狗呢? 我们先让狗做任何它想做的事, 每当它表现得很好的时候,我们就会表扬它,称它好狗;  每当它做坏事的时候, 叫它坏狗bad dog 这样它就逐渐学会了好的行为, 而害怕不好的行为。 强化学习采用同样的原则, 用于直升机或其他事情。 

使用强化学习, 我们研发了世界上最棒的自主飞行直升机, 除了自动机器人, 强化学习 在玩游戏, 或者黑白棋、跳棋、国际象棋、围棋方面也应用很多。 你也许听说过AlphaGo, 通过强化学习它非常擅长玩围棋。

生成对抗网络

生成对抗网络 -- 另一种令人兴奋的AI技术-- 它是我的学生伊恩·古德费罗创造的, 生成对抗网络非常擅长于在什么都没有的情况下合成全新的图像。通过从名人图像数据库进行学习之后, 这个算法能够合成全新的图片。

这篇关于学习人工智能:吴恩达《AI for everyone》2019 第3周:实现智能音箱和自动驾驶的几个步骤;无监督学习;增强学习的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/786525

相关文章

C++中unordered_set哈希集合的实现

《C++中unordered_set哈希集合的实现》std::unordered_set是C++标准库中的无序关联容器,基于哈希表实现,具有元素唯一性和无序性特点,本文就来详细的介绍一下unorder... 目录一、概述二、头文件与命名空间三、常用方法与示例1. 构造与析构2. 迭代器与遍历3. 容量相关4

C++中悬垂引用(Dangling Reference) 的实现

《C++中悬垂引用(DanglingReference)的实现》C++中的悬垂引用指引用绑定的对象被销毁后引用仍存在的情况,会导致访问无效内存,下面就来详细的介绍一下产生的原因以及如何避免,感兴趣... 目录悬垂引用的产生原因1. 引用绑定到局部变量,变量超出作用域后销毁2. 引用绑定到动态分配的对象,对象

SpringBoot基于注解实现数据库字段回填的完整方案

《SpringBoot基于注解实现数据库字段回填的完整方案》这篇文章主要为大家详细介绍了SpringBoot如何基于注解实现数据库字段回填的相关方法,文中的示例代码讲解详细,感兴趣的小伙伴可以了解... 目录数据库表pom.XMLRelationFieldRelationFieldMapping基础的一些代

Java HashMap的底层实现原理深度解析

《JavaHashMap的底层实现原理深度解析》HashMap基于数组+链表+红黑树结构,通过哈希算法和扩容机制优化性能,负载因子与树化阈值平衡效率,是Java开发必备的高效数据结构,本文给大家介绍... 目录一、概述:HashMap的宏观结构二、核心数据结构解析1. 数组(桶数组)2. 链表节点(Node

Java AOP面向切面编程的概念和实现方式

《JavaAOP面向切面编程的概念和实现方式》AOP是面向切面编程,通过动态代理将横切关注点(如日志、事务)与核心业务逻辑分离,提升代码复用性和可维护性,本文给大家介绍JavaAOP面向切面编程的概... 目录一、AOP 是什么?二、AOP 的核心概念与实现方式核心概念实现方式三、Spring AOP 的关

vite搭建vue3项目的搭建步骤

《vite搭建vue3项目的搭建步骤》本文主要介绍了vite搭建vue3项目的搭建步骤,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学... 目录1.确保Nodejs环境2.使用vite-cli工具3.进入项目安装依赖1.确保Nodejs环境

Nginx搭建前端本地预览环境的完整步骤教学

《Nginx搭建前端本地预览环境的完整步骤教学》这篇文章主要为大家详细介绍了Nginx搭建前端本地预览环境的完整步骤教学,文中的示例代码讲解详细,感兴趣的小伙伴可以跟随小编一起学习一下... 目录项目目录结构核心配置文件:nginx.conf脚本化操作:nginx.shnpm 脚本集成总结:对前端的意义很多

Python实现字典转字符串的五种方法

《Python实现字典转字符串的五种方法》本文介绍了在Python中如何将字典数据结构转换为字符串格式的多种方法,首先可以通过内置的str()函数进行简单转换;其次利用ison.dumps()函数能够... 目录1、使用json模块的dumps方法:2、使用str方法:3、使用循环和字符串拼接:4、使用字符

Linux云服务器手动配置DNS的方法步骤

《Linux云服务器手动配置DNS的方法步骤》在Linux云服务器上手动配置DNS(域名系统)是确保服务器能够正常解析域名的重要步骤,以下是详细的配置方法,包括系统文件的修改和常见问题的解决方案,需要... 目录1. 为什么需要手动配置 DNS?2. 手动配置 DNS 的方法方法 1:修改 /etc/res

Linux下利用select实现串口数据读取过程

《Linux下利用select实现串口数据读取过程》文章介绍Linux中使用select、poll或epoll实现串口数据读取,通过I/O多路复用机制在数据到达时触发读取,避免持续轮询,示例代码展示设... 目录示例代码(使用select实现)代码解释总结在 linux 系统里,我们可以借助 select、