论文阅读_分类模型的可解释性
#论文阅读 #模型解释
论文题目:《Why Should I Trust You? Explaining the Predictions of Any
Classifier》
论文地址:https://chu-data-lab.github.io/CS8803Fall2018/CS8803-Fall2018-DML-Papers/lime.pdf
模型可解释性论文列表:https://github.com/oneTaken/awesome_deep_learning_interpretability
《Why Should I Trust You? Explaining the Predictions of Any
Classifier》是 2016 年发表在 KDD 上的论文,至今被引用 2984
次。文中介绍了可以应用于任何分类模型的模型解释方法。
很多复杂的机器学习模型和深度学习模型,都被外界视为黑盒,如何对用户解释它的结果、评价其效果,让用户放心地使用,尤其是在医疗这种性命攸关的领域,对于模型推广至关重要。文中提出了用于解释分类模型的
LIME 方法。
在机器学习领域,一般在训 ...
论文阅读_自然语言模型GPT-3
自然语言模型 GPT-3
论文:https://arxiv.org/abs/2005.14165
代码:https://github.com/openai/gpt-3
OpenAI 于 2020 年 6 月发表了 GPT-3 论文《Language Models are Few-Shot
Learners》,模型包括 1750 亿参数,比之前最大模型又大了 10 倍,使用 45T
数据训练,31 位作者,论文长达 75 页,尝试了不同量级的 GPT-3 模型,在 20
多个 NLP 数据集上做了评价。其核心是不使用 Fine-tune 的 GPT-3
模型。
目前前沿的自然语言模型一般是先用大规模无监督数据预测训练(pretrain)模型之后,然后使用带标注的领域数据微调模型
(fine-tune),费时费力,且有些领域难以实现标注;模型也可能被领域数据的分布带偏,从而损失了泛化能力;另外,微调后的模型只能解决特定问题,不像人类,可以在众多类似的问题之间切换,并使用综合技能解决复杂的问题。
Pretrain&fine-tune
方法一般用于有大量标注的数据(带标注数据一般含几千 ...
读懂英文文章所需的单词量
简介
备考托福,GRE
需要背上万单词,除去考试通关的因素,就想看看是不是真有必要花时间去背那么多单词。
实验使用从初中到 GRE 不同等级考试要求的单词表,代入 Brown
文本数据集,评估背会各等级单词后,能看懂多大比例的文本。比如:高中毕业要求
4000
左右单词量,背会后对于取自不同领域的各种文本,能看懂句中单词的比例是多少。
从实验结果可以看到,即使背会了 GRE 要求的 15000+
以上,还会有很多词不认识,如一些专业领域的词汇。当然,如果就认识 200
个词,那也确实太少了。因此,本文将讨论对于不同学习阶段,背多少词,背哪些词性价比最高。
数据和方法
资源数据集
使用初中,高中,大学四六级,专八,雅思,托福,GRE
的单词表。另外,加入了初一上半学期(这个学期基本都在复习小学内容,可近似地视为小学毕业水平),以及
Brown 数据集中的高频单词。
评价数据集
使用自然语言处理 NLTK 自带的 Brown 语料库,它创建于 1961
年,包含来自五百多个不同来源的文本,包含新闻,社论等类型。是一个覆盖类型相对全面的语料库,其中包含
5 万多句子,116 万多单词。
方法 ...
论文阅读_BiLSTM-CRF实现序列标注
论文阅读:BiLSTM-CRF
实现序列标注
论文名称:《Bidirectional LSTM-CRF Models for Sequence Tagging》
论文地址:https://arxiv.org/pdf/1508.01991v1.pdf
相关代码:https://github.com/BrikerMan/Kashgari(Keras)
《Bidirectional LSTM-CRF Models for Sequence Tagging》是 Baidu
Research 在 2015 年发表的一篇论文,它使用双向长短期记忆网络 LSTM
加条件随机场 CRF
的方式解决文本标注的问题。该方法至今仍是命名实体识别的主流方法之一。
之前一直不理解的是 RNN、LSTM、CRF、HMM
都可以单独实现文本标注,为什么要将 LSTM 和 CRF
结合起来?本文就来看看它是如何实现的。文后结合命名实体识别
NER,展示了它的具体使用方法。
文本标注用途非常广泛,不仅标注切分,还可以通过标注拆分出关键信息,供下游应用使用。在该文发表之前,实现文本标注常用的方法有线性统计模型,比如隐马尔 ...
20_少儿Python编程_第二十讲 :编程技巧
少儿 Python 编程 _
第二十讲:编程技巧
在学习编程的过程中,起初新手开发者对程序没有什么概念,先讲解习惯和注意事项,不但没什么效果,注意事项太多,反而提高了编程的难度;往往在自己遇到问题后,经过思考,印象更加深刻。之前在每一讲课后练习中,也加入了一些技巧说明,但比较分散。本讲将总结编写程序过程中遇到的各种问题和编程习惯。
20.1 编程习惯
写程序最重要的是实现功能,在实现功能的基础上,好的编程习惯,让代码更清晰,更容易理解,无论是过一段时间自己再看,还是给别人使用都能节约大量时间;同时,好的编程习惯让代码在不同运行环境和操作系统中也能稳定地运行。
20.1.1 缩进
缩进指代码与边界之间的距离,Python
使用缩进组织代码块,一般用冒号和缩进区分代码之间的层次。代码块缩进常出现在:函数体、循环体、以及判断语句之后。
对 Python
编程来说,缩进是必不可少的;其它编程语言,也大都包括缩进,但有的不是必须缩进,比如
C
语言用大括号括住循环体内容,但一般程序员也会使用空格缩进,这样更容易看到代码的层次:直观地看到循环从哪里开始,到哪里结束,缩进也是一种良好的编程习惯。
1 ...
19_少儿Python编程_第十九讲: 数据分析网站
少儿 Python 编程 _
第十九讲:数据分析网站
本讲是一个综合实例,结合了数据分析和构建网站技术,提供用户通过浏览器上传文件,在服务端实现分析上传的数据,并生成动态统计表格,回传给用户端。其中用到表单上传文件、读取
Excel 数据表文件、统计图表、生成动态网页等技术。
19.1 上传文件
让用户上传文件,处理后再把结果返回给用户,是一个很常用的操作,比如用户上传一张相片,服务器端经过美颜或者换背景处理后显示在网页上;又如用户上传一个
Excel
数据表文件,数据统计分析后把统计结果显示给用户。开发者提供前端和后端服务。用户使用网络中任意一台计算机或者手机,只需要用浏览器即可实现需要的功能,无需安装任何软件。
上传文件功能也可通过表单实现。本例展示了上传文件的方法。为简化代码逻辑,将
HTML 模板也写入了 Python 代码。
1234567891011121314151617181920212223242526272829303101 from flask import Flask,request,redirect,url_for02 import os03 04 UPLO ...
ubuntu重启后找不到gpudriver
ubuntu 重启后找不到 gpu
driver
使用 nvidia-smi 提示(此时 X-window
也无法正常启动,只能显示输密码界面):
NVIDIA-SMI has failed because it couldn't communicate with the NVIDIA
driver.
Make sure that the latest NVIDIA driver is installed and running.
用以下命令自动重装驱动:
$ sudo ubuntu-drivers autoinstall
此时可正常使用 nvidia-smi,启动 gpu docker 时又报错。
用以下命令查看驱动情况:
$ nvidia-container-cli -k -d /dev/tty info
也报错。分析发现系统自动安装的 driver 是 430 版本(之前好像安装过 440
或 450,重启后不能正常使用)。
因此,用以下命令安装 430 配套的 libcuda1:
$ sudo apt-get install libcuda1-430
安装后 docker 也可 ...
Docker问题解决
nvidia-docker 无法正常启动
上周更新了 nv 的驱动到 450,然后发现 nvidia-docker
无法启动了,报错:
1docker: Error response from daemon: OCI runtime create failed: container_linux.go:349: starting container process caused "process_linux.go:449: container init caused \"process_linux.go:432: running prestart hook 1 caused \\\"error running hook: exit status 1, stdout: , stderr: nvidia-container-cli: initialization error: driver error: failed to process request\\\\n\\\"\"": unknown.
使用命令:
12345$ nvid ...
自动机器学习框架之四_PyCaret
自动机器学习框架之四
_PyCaret
机器学习涉及数据分析、清洗、建模、评价、对比模型……无论是初学者,还是有经验的开发者在面对新的项目时,都想要简化这些工作,最好能用简单的代码、较短时间,就能得出初步验证结果,之后再进一步优化。
希望能用一个简单的数据文件,几行通用的 Python
语句,就能实现分析、建模和部署。PyCaret
就是这样的工具:虽然没有太多创新算法,但极大地简化了工作流程。这也让机器学习的门槛越来越低。
PyCaret 是 Python 开发的机器学习库,它封装了
Sklearn,XGBoost,LightGBM,Spacy,Shap,PyOD,Gensim,WordCloud
等工具,几乎包括机器学习所有的使用场景和方法(不含深度学习):异常检测
Anomaly Detection,关联规则 Association Rules,分类 Classification,回归
Regression,聚类 Clustering,自然语言处理 NLP
等。其中支持最丰富的还是分类和回归。
PyCaret
屏蔽了具体使用细节,比如各种库在建模,绘图,特征排序的不同调用方法。向 ...
用Lucene构造垂直搜索引擎
用 Lucene 构造垂直搜索引擎
Lucene 是用于全文检索的开源库,Apache 软件基金会提供支持。它由 Java
语言开发,也提供 Python 接口调用。
本文介绍使用开源项目 Lupyne
构建垂直搜索引擎,搜索本地网页中的内容。它使用 Python
语言编写,搜索功能用 Lucene 引擎实现,使用 html2text
从本地网页中提取数据,实现对网页中文本的搜索,前端调用 CherryPy
框架(flask 的 web server 常用作开发测试。而 cherrypy 的 web server
常用于生产环境),提供网页搜索功能。
运行文中实例需要匹配 Java,Python,Lucene
等各个软件版本,环境配置比较复杂,因而基于 Lucene 提供的 docker image
环境构建。
Lucene 元素
使用 Lucene 之前,先来了解一些相关概念。
Directory:指定如何保存构建的索引,测试时常保存在内存中,实际应用中,一般将其保存在文件系统中,本例将索引保存在/tmp/a
目录下。
Analyzer:分析器,用于处理文本,如分词,去停用词等。
I ...