临近春节你为什么打不到车?概率论来帮忙!

简介:

马斯克已经让他的Tesla跑车飞上了天,然而地面上想打车的你,可能会发现随着春节的临近,越来越难呼唤到一辆车了。

f39d781522f7a083314a603f9b8348e312ebace5

加班需谨慎

要说打车,Uber是世界上最流行的打车软件之一。Uber必须不停地匹配搭车者和司机,并使他们能尽可能快地抵达目的地。这个简单的任务的每一步都需要优化,比如决定最优路径、最佳到达时间……

然而,现实世界充满了不确定性。雨雪啦,事故啦,很多事件的发生都可能影响车辆的供需。

许多目前的机器学习模型还是基于确定性的,但是现实世界的数据基本都是不完整的,或者某种意义上不完善的。这样一来,在做预测(比如预测车辆供需)的时候,概率论就很有用武之地了。

ebf95a3a876e2693a13d451a5ca1789a5b0d98cc

贝叶斯推断能让我们在预测之前对现实世界有一个先验假设,并且能基于观测不断更新模型。

不久前,为了更好地适应现实世界的不确定性,Uber的团队开源了一种编程语言Pyro。Pyro是一种概率语言,使用Python和PyTorch构建。我们可以通过它,建立一个既可以扩展也十分高效的贝叶斯深度学习模型。

4b2be8b6114ed22807c276bdcc19afefdb9a2514

编程语言那么多,为什么偏偏还要开发一种?

因为这种语言能适应不确定性建模——对于模型中两次同样的输入值,可能会有两个不同的结果。在传统的编程语言中使用概率简直太难了,概率只能存在于晦涩的子程序中。与之相对的是,Pyro将概率分布作为编程的核心。Pyro程序的基本单位是随机函数,它帮助我们明确地计算给定输入的输出概率。

Pyro的问世,能否缓解打车难的问题呢?

今天,就让我们一起来看看YouTube网红小哥Siraj Raval的视频:Uber Pyro概率编程入门。他将解释Pyro的原理和用途,还将实际应用一个天气数据的案例。视频附有代码,可以跟随一起练手哦。

时长8分钟

附有中文字幕

点击观看

06aa4bc31e99fdd1f206f8e337b71585aad2a2e4

Pyro是由Uber的人工智能实验室开源的。这个实验室来头也不一般,它最开始是Uber收购的一家创业公司Geometric Intelligence,这家公司的创始人是纽约大学教授Gary Marcus,不过他加入几个月后就退出了。对,就是那个挑起了对深度学习前景的质疑、引发Yann LeCun等各界AI人士论战的那个Gary Marcus。 (⊙ˍ⊙)

还不知道大佬们的互怼经过?可以点击下面的文章查看:

Marcus十大理由质疑深度学习?LeCun说大部分错了

Gary Marcus再发万字长文,列14个Q&A回应机器学习批判言论

除了预测几小时后的打车需求和车辆供给,Pyro也被Uber用来做财务预算,它可以预测接下来几周的财务数据。同时,Uber的其他业务条线也在利用Pyro,比如Uber Eats用它来预测食物的准备和运输时间;它也为无人车部门的工作做出了贡献。

Σ(゚д゚lll)原来Uber搞出了这么厉害的东西!

你猜Uber和Tesla的车谁能先飞起来?(被火箭带上外太空的不算)



原文发布时间为:2018-02-9

本文作者:文摘菌

本文来自云栖社区合作伙伴“大数据文摘”,了解相关信息可以关注“大数据文摘”微信公众号

相关文章
|
JavaScript Android开发
使用贝叶斯曲线滑动安卓屏幕(autojsPro7)
使用贝叶斯曲线滑动安卓屏幕(autojsPro7)
522 0
|
数据可视化 Linux API
使用Docker安装部署Swagger Editor并远程访问编辑API文档
使用Docker安装部署Swagger Editor并远程访问编辑API文档
413 0
|
9月前
|
数据采集 搜索推荐 定位技术
新网站如何快速提升收录?
新网站可通过选择符合SEO优化的网站框架、清晰有序的导航栏设计、规范统一的URL命名、定期更新网站内容、获取外部链接等方式,提高百度收录率并提升排名。
174 9
|
JavaScript 前端开发 数据库
测试开发之路--Flask 之旅 (五):后台管理
本文介绍了如何使用 Flask-Admin 模块为应用添加后台管理功能,包括数据库表管理、自定义视图及服务器文件管理。通过实例展示了如何初始化 Flask-Admin,并实现对用户、角色等表的增删查改操作。此外,还介绍了如何定制视图及管理服务器上的配置文件。这一模块大大提升了应用的管理效率与灵活性。
309 5
测试开发之路--Flask 之旅 (五):后台管理
|
存储 Linux Shell
深入理解Linux操作系统的启动过程
【10月更文挑战第21天】本文将深入浅出地介绍Linux操作系统的启动过程,包括BIOS、引导加载程序、内核初始化和系统服务启动等环节。通过阅读本文,您将了解到Linux启动过程中的关键步骤和相关概念,以及如何优化启动速度。
279 1
|
JavaScript 前端开发 安全
Vue3官方文档速通(下)
Vue3官方文档速通(下)
408 0
|
消息中间件 存储 数据可视化
中间件日志收集与流处理
【6月更文挑战第17天】
631 3
|
运维 Cloud Native Devops
云原生技术演进与未来趋势
随着企业数字化转型的加速,云原生技术作为推动现代软件开发和运维模式的核心力量,其发展态势受到业界广泛关注。本文将深入探讨云原生技术的演进路径,分析其在容器化、微服务架构及自动化运维等方面的创新实践,并预测未来的发展趋势。通过引用最新的研究报告和统计数据,本文旨在为读者提供一个关于云原生技术全景式的认识框架,同时对关键技术点进行深度解析,揭示云原生技术如何助力企业实现敏捷、可靠和高效的业务运营。
599 0
|
SQL 存储 关系型数据库
【mysql】将逗号分割的字段内容转换为多行并group by
【mysql】将逗号分割的字段内容转换为多行并group by
|
Shell
monkey命令
​ 一:Monkey所有命令: monkey常用命令: 二、Monkey常用命令参数说明 基本参数 说明 -p 指定一个或多个包 -s 指定一个随机数生成器的seed值 --throttle 指定事件之间的固定延迟(ms) -v 指定反馈信息级别(信息级别就是日志的详细程度) -c 指定一个或多个类别名 -f 运行指定的monkey脚本 事件参数 说明 --pct-touch 指定触摸事件百分比 --pct-motion 指定动作事件百分比 --pct-trackball 指定轨迹事件百分比 --pct-syskeys 指定系统按键事件百分比
363 0