前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >专栏 >上海交通大学教授金耀辉:AI在智慧法院中的应用

上海交通大学教授金耀辉:AI在智慧法院中的应用

作者头像
数据猿
发布于 2018-04-25 03:44:28
发布于 2018-04-25 03:44:28
1K0
举报
文章被收录于专栏:数据猿数据猿

11月10日,由上海大数据联盟、数据猿主办,上海科睿联合主办的《构建智慧法院,促进司法职能—魔方大数据》在上海超级计算中心举行。本文是数据猿整理的“上海交通大学教授金耀辉”的现场发言实录

作者 | 金耀辉

官网 | www.datayuan.cn

微信公众号ID | datayuancn

2017年11月10日,由上海大数据联盟、数据猿主办,上海科睿联合主办的《构建智慧法院,促进司法职能——魔方大数据》在上海超级计算机中心举行。本期魔方大数据邀请了法院代表和技术提供方等专家大咖齐聚一堂,共同探讨了智慧法院和司法系统智能化的建设之路。

以下是数据猿整理“上海交通大学教授金耀辉”的发言实录:

人工智能领域目前在中国被炒的火热,在司法领域也实现了初步实践。正如前不久李开复在美国演讲时提到,中国很有可能在AI上面实现弯道超车。

我们今天讲的是智慧法院,在美国,人工智能在司法服务方面覆盖了很多场景,包括知识产权、尽职调查、法律分析、预测技术、司法研究、流程自动、电子商务等等,每年大概能达到400多亿美元。然而与其他行业相比,这个数字并不算多,因为400多亿仅占到整个司法服务的3%到4%。我们认为人工智能应用应该能达到5%到6%之间,因此这个市场依然还有巨大的空间,在中国估计这个市场会更大。

人工智能到底是什么?人工智能究竟能够帮助我们做什么?我相信大家都会有这样的疑惑。人工智能从研究领域到应用领域,我们希望的是能用机器来辅助人做一些决断或者推荐。整个机器学习的框架摆在这里,我们拥有原始数据,这里的原始数据可以理解为是客观数据,比如医院的检查或者法院的收案、结案等。同时还有一些业务数据,即跟具体的业务相关,比方说在医院里面诊断了是癌症或者不是癌症。然后进行算法学习、模型评估,最后是预测,比如在法院可以预测某个案子的胜率是多少。

现在“阿尔法狗”非常火,因此很多人一讲到人工智能就讲深度学习,事实上,深度学习只是人工智能的一种。在过去不是说没有人工智能,其实早在很多场景下我们已经开始使用了,只不过当时我们称其为规则的系统。比如在法院里面,犯了什么罪、要判几年刑,这就是规则。再往后机器学习会把这些特征找到,由机器去做映射,越到机器部分,效率会越好、准确度会提升,但是可解释性是下降的,这也是我们所面临的一个巨大难题。往往我们做出来一个模型,做得很好,效率很高,但是为什么会识别出来,我们并不知道,也就是说这个模型是一个黑箱。

人工智能应用在司法领域不仅仅是人工智能,它更是一种可为洞察,也就是给利益攸关者一些建议。什么叫可为洞察,我们是研究者,我们会把各种各样的数据,比如说法院内部的数据和外部的数据集成起来。那么这些数据为谁服务呢?过去做个大屏给领导展示一下,这是为管理者服务;还有就是给执行者服务,中国一线法官他面临的问题是案多人少,当他想查到一些类案的时候,其实并不方便,这时候人工智能就能为他们服务;最后是为当事人服务。

在整个社会管理领域,我们提倡3D持续改进,首先是DATA,前面讲到模型在决策中起了关键的作用,确实是这样。今年MIT有一个专业报道讲的是人工智能最核心的秘密。最核心的秘密就是我们建立了很多模型,这个模型精确度检测得很好,但是我们不知道为什么工作。以文本来说,我们可以把很多非结构化数据放到里面,并输出数据。但是我们经常会被质疑,问我们数据是怎么得到的?我不知道。我们在跟自贸区合作的时候,第一次尝试用深度学习,我们预测了4000多个P2P平台,预测它下个月会不会倒,准确率有85%。但是金融监管部门不敢用,因为它觉得我们的模型不可解释,不符合它的逻辑。包括在做类案的时候,跟法院的沟通也是这样,他让我们解释这个模型到底是怎么预测的,说不清楚就不敢用。因此这个问题困扰了我们很长时间。

什么叫人工智能?大家可以看到,上图是一张猫的图像,我们可以用深度学习识别出来图片上呈现的是一只猫,而且准确度非常高。人在识别猫的时候,由于猫有耳朵、皮毛、尾巴,所以知道这是猫。识别狗的时候也是这样,狗也有尾巴,但是狗的尾巴短,人是这样解释的。但如果用这样一个可解释的过程,你会发现当黑盒变成了灰盒或者白盒以后,它的准确度在下降。所以把刚才的过程加上了模糊的逻辑(之所以是模糊的,是因为人的很多知识是描绘不清楚的),经过特征生成、监督泛化、学习推理,最后形成业务逻辑。我们可解释以后,准确度在下降,这也不行。

那怎么办?我们在这个过程中间,加入了“错误分析”,可通过不断的迭代优化使得它分析的准确度再提升。但是在这个过程中,因为机器的能力是海量的,你不能让人去验证,这就给算法带来了一些挑战。我们要思考的是人和机器该怎么去融合,因此我们提出了名为元思的机器平台,它是一个深度学习框架与人机融合平台,很多机器学习算法都可以适用到这里面。

下面回到类案,我们一直被质疑,究竟什么是类案?我们查阅了很多资料,也跟很多专业老师沟通过,我觉得北大法学院的教授讲的是可以令人信服的:

第一,案件的关键事实相似;

第二,案件的裁判要点相似。

文章中讲到的类案分析用的都是专业的法律术语,搞懂其中隐含的法律逻辑判断过程,人看懂都是一件费力的事情,分析清楚其中的逻辑更是难上加难。如此复杂的语义逻辑试图让机器看懂,这其中的困难可想而知。所以我们的问题就是,怎么用机器做自动化的类案,也就是类案识别,这是一个最核心的问题。

一份裁判文书都有它的规范,从当事人、当庭的质证到最后的判决,我们要从结构上让计算机能读懂。首先法律的逻辑是什么?你有一个诉讼,这里指的是民案,你有诉讼请求,有证据的认定,认定以后有案件的事实,有争议的焦点,有因果关系,有适用法律,最后有判决结果。将这些东西形成案件图谱,在图谱上进行比较,这样的表达计算机能读懂,这是关键。通过这样一个模式,在保证准确度的前提下提升了司法的可解释性,这也就是我们在司法领域所研究的可解释的人工智能。

作为可解释的人工智能就是不仅仅要知其然,更要知其所以然,是可解释的。我们讲机器可以辅助法官办案,参与迭代的时候我们也跟基层业务法官多次沟通,他们也在帮我们不停地迭代,共同提升类案的准确度。我们期待通过业务法官的参与,实现司法与人工智能的深入融合,使人工智能更高效辅助法官审判。

本文参与 腾讯云自媒体同步曝光计划,分享自微信公众号。
原始发表:2017-11-18,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 数据猿 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
暂无评论
推荐阅读
编辑精选文章
换一批
后台填坑记——Golang内存泄漏问题排查(一)
本文记录了Golang服务内存泄漏问题的排查过程,通过多维度工具分析和代码溯源,最终定位到Redis/SQL连接池未正确关闭导致的协程泄漏问题。文章系统性地展示了从现象分析到根因定位的全流程方法,对后台服务稳定性维护具有实践指导意义。
粲然忧生
2025/04/22
4070
后台填坑记——Golang内存泄漏问题排查(一)
用redis做一个简单的限流
最近项目中有个需求要实现限制某个用户在2个小时内只能访问3次的效果,所以就简单地用redis实现了一个限流方案。
Johns
2021/08/23
1.3K0
用redis做一个简单的限流
记一次Context和goroutine实现超时调度引发的内存泄漏问题
最近一个项目上线,需要在上线前进行单节点压测以估计每个业务的部署计划。使用腾讯云的压测大师进行压测时,发现一个非常有意思的情况。首先上一下监控图:
Johns
2021/05/01
2.1K0
记一次Context和goroutine实现超时调度引发的内存泄漏问题
Golang+Redis分布式互斥锁
假设我们的某个业务会涉及数据更新,同时在实际场景中有较大并发量。流程:读取->修改->保存,在不考虑基于DB层的并发处理情况下,这种场景可能对部分数据造成不可预期的执行结果,此时可以考虑使用分布式锁来解决该问题
lestat
2021/05/04
3.2K0
简单方便的在Golang中使用Redis【Golang 入门系列】七
1. Redis 的安装很简单,我这里测试直接用的是windows 的版本。如何安装就不细说了。想了解的可以看之前的文章:https://www.cnblogs.com/zhangweizhong/category/771056.html
章为忠学架构
2019/07/15
2.8K0
go-redis使用入门
redis.NewClient(&redis.Options{}),其中Options是连接的配置,是一个结构体类型,以下是配置选项和说明
用户6297767
2023/11/21
5550
go-redis使用入门
一文搞懂Go语言操作Redis
Go语言操作Redis的客户端工具有很多,今天我们就选择比较常见的一个来进行演示,这个就是go-redis
闫同学
2023/10/14
5070
利用 Redis bitmap 实现高效的用户签到统计功能
在现代应用程序中,用户签到是一个常见的功能。我们通常使用 MySQL 数据库来存储用户的签到记录。然而,随着用户数量的增加,数据库中的记录将会随时间和用户量线性增长,这不仅增加了存储的负担,而且可能影响查询效率。在追求更高存储效率和查询性能的场景下,MySQL 可能不再是最佳选择。
陈明勇
2024/07/12
8672
利用 Redis bitmap 实现高效的用户签到统计功能
给大家丢脸了,用了三年golang,我还是没答对这道内存泄漏题。
问题 package main import ( "fmt" "io/ioutil" "net/http" "runtime" ) func main() { num := 6 for index := 0; index < num; index++ { resp, _ := http.Get("https://www.baidu.com") _, _ = ioutil.ReadAll(resp.Body) } fmt.Printf("此时goroutine个数= %d\n",
9号同学
2021/03/03
7750
给大家丢脸了,用了三年golang,我还是没答对这道内存泄漏题。
基于go使用redis实现简易排行榜功能
本文将使用golang实现两个可以通过postman调用的接口,一个为点击增加热度/播放量接口。一个为获取排行榜接口。为方便起见,将本文章接口将不涉及数据库联动,仅实现简单的ID、热度两个字段。
陈杪秋
2024/05/22
2500
读者说我的代码有内存泄漏的风险
看了这段代码,你知道是哪里发生内存泄漏了嘛?我先来告诉大家,这里time.After(time.Millisecond * 5)会发生内存泄漏,具体原因嘛别着急,我们一步步分析。
Golang梦工厂
2022/07/08
7360
读者说我的代码有内存泄漏的风险
Go语言Redis API基本功能实践
本来想着放弃Go了,没想到人算不如天算,还是得继续Go的学习和练习。由于之前提到的原因,又要把Java版本操作Redis也要迁移到Go版本了。
FunTester
2022/07/08
7400
一次goroutine 泄漏排查案例
背景是这样,今天看到监控大盘数据发现协程的数量监控很奇怪。呈现上升趋势,然后骤降。虽然对协程数量做了报警机制,但是协程数量还是没有达到报警阈值,所以没有报警产生。
蓝胖子的编程梦
2023/05/25
2.1K0
一次goroutine 泄漏排查案例
写在学习golang一个月后
连接池。由于PHP没有连接池,当高并发时就会有大量的数据库连接直接冲击到MySQL上,最终导致数据库挂掉。虽然Swoole有连接池,但是Swoole只是PHP的一个扩展,之前使用Swoole过程中就踩过很多的坑。经过我们的讨论还是觉得使用Golang更加可控一些。
李海彬
2018/10/08
1.1K0
写在学习golang一个月后
GoLang 操作 Redis
使用redis首先要部署redis,载个安装包,部署下即可,本文不赘述了。redis官网:https://redis.io/
JulyWhj
2022/06/01
1.1K0
GoLang 操作 Redis
Go实战项目-Beego的Session、日志文件的使用和redis的选择使用
go标准库里面没有实现这功能,只能靠自己实现了,哦,不,是第三方库。好在beego就自带session功能,这个之前就说过了。我们只是简单使用下,高并发场景估计还得自己来实现,单纯的靠这个框架,够呛。来看下怎么使用: 1、在调用之前就需要开启 beego.BConfig.WebConfig.Session.SessionOn = true //开始session beego目前支持四种session的存储引擎 memory、file、Redis 和 MySQL 默认就是memory ,但是,你重启之后就失效了,这除了写demo可以用之外,就算是保活的进程也是很肉痛,基于之前PHP框架保存文件的处理方式,我这边也是存放文件中。 2、设置存储引擎 beego.BConfig.WebConfig.Session.SessionProvider = “file” //指定文件存储方式 3、设置存储路径 beego.BConfig.WebConfig.Session.SessionProviderConfig = “./.tmp” //指定文件存储路径地址,也可以不指定,有默认的地址。 建议,存储的文件夹名称加上“.”,这样方便git提交的时候直接过滤,但是一般情况下,没事不要去下载,或者放在项目以外的其他路径也是可以的。这样就是永久保存了,重启依然有效。
用户6680840
2022/06/08
1.9K0
Go: redis客户端设计,适配器模式隐藏实现细节与工厂模式简化创建
在现代软件开发中,封装和隐藏不同组件之间的实现细节是至关重要的,这不仅有助于提高代码的可维护性和扩展性,还能够使得代码更加清晰和易于理解。本文将深入探讨如何在Go语言中通过适配器模式(Adapter Pattern)有效地隐藏和管理不同类型的Redis客户端之间的差异,同时展示如何优雅地创建和管理这些适配器。
运维开发王义杰
2024/04/15
1800
Go: redis客户端设计,适配器模式隐藏实现细节与工厂模式简化创建
Redis 实现高效任务队列:异步队列与延迟队列详解
文章链接:https://cloud.tencent.com/developer/article/2464880
南山竹
2024/11/12
3230
Redis 实现高效任务队列:异步队列与延迟队列详解
2023-06-19:讲一讲Redis分布式锁的实现?
要实现分布式锁,确实需要使用具备互斥性的Redis操作。其中一种常用的方式是使用SETNX命令,该命令表示"SET if Not Exists",即只有在key不存在时才设置其值,否则不进行任何操作。通过这种方式,两个客户端进程可以执行SETNX命令来实现互斥,从而达到分布式锁的目的。
福大大架构师每日一题
2023/08/29
3050
2023-06-19:讲一讲Redis分布式锁的实现?
2种Go Redis客户端使用对比
从上图可以看出, go-redis虽然每次操作会比redigo慢10%左右, 但是redigo需要显示申请/关闭连接,所以总体上二者的性能差异其实不大
Johns
2022/07/25
6.1K0
推荐阅读
相关推荐
后台填坑记——Golang内存泄漏问题排查(一)
更多 >
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档