你好,游客 登录 注册 搜索
背景:
阅读新闻

应用深度学习与大数据分析识别诈骗(骚扰)电话

[日期:2016-09-12] 来源: FreeBuf  作者: [字体: ]

深度学习背景介绍

Google 在 2012 年透过 Google Brain 展现了前所未有的机器学习能力,2016年 Google 再次藉由 DeepMind 的 AlphaGo 于围棋上的胜利展现了深度学习的能力 [6];深度学习 (英语:Deep Learning) 并不是凭空创造出来的运算技术,是归属于机器学习的分支,模仿神经网路的运算模式透过复杂多节点、分层的运算结构对资料进行高层抽象的演算法;而神经网路更是远在1980便有研究者们开始进行相关研究,且随着近年来软硬体与计算效能的提升有大幅度进步;2009年多伦多大学 GeoffreyHinton 教授及其研究团队就以深度学习技术,开发出高准确度的语音辨认技术,能够正确地将口语转换成文字 [2],2012年,Geoffrey Hinton 教授的团队于电脑视觉辨识比赛 ILSVRC (ImageNet Large Scale VisualRecognition Challenge) 透过其所开发的深度学习系统获得了比过去高出约10%的正确率;並 于2014年与 Google合作以 GoogLeNet 再次 取得該照片内容辨识的冠军。

猎豹移动总裁傅盛说:深度学习是基于多层神经网路,并以海量数据做为输入的自主学习方法 [1];其本质就是透过很多小的数学元件组合成一个复杂模型再用来解复杂的问题。

诈骗(骚扰)电话现况

美国联邦贸易委员会 (Federal Trade Commission,FTC) 曾指出:电话诈骗是美国境内最普遍发生的诈骗案。联邦贸易委员会收到超过1500万有关诈骗的投诉,而在2014年这些案件牵涉总金额超过17亿;所有受害人中,46%在投诉时指出诈骗方式,而其中54%受害者指称遭受电话诈骗 [3]。同时,FTC亦倡议打击语音电话行销 (Robocall),得到如AT&T、谷歌、Alphabet、苹果、Verizon和Comcast 等30多家主要高科技公司的响应 [4]。另外,中国近来传出考上大学的学生被诈骗电话骗学费,导致呼吸心脏骤停最终去世。陆媒报导,在中国从事网路诈骗产业的人数至少有160万人,「年产值」逾人民币1100亿元;据日本警察厅统计,2014年,日本电信诈骗的涉嫌金额超过500亿日元 (32亿人民币)。国务院总理李克强在国务院常务会议通过《中华人民共和国无线电管理条例(修订草案),并表示:现在有些电信诈骗,不仅能够在群众手机上显示电信、银行、公安等部门机构的正式号码,还能准确了解群众与这些部门联系的信息。这恐怕不是简单的技术问题 [5] 。

数据分析及系统架构设计

图1. 非联络人陌生电话号码拨打行为分析

企业软体公司或服务公司目前碰到的最大问题便是“没有数据,怎么人工智慧化?”;拥有再高深的软体及再强大的硬体,没有所谓的商业逻辑与数据积累,任何商业的人工智慧是没有意义的空盒子[11]。而「该使用何种机器学习演算法?」的答案永远都是「视情况。」 这可视资料的大小、品质或是取决于演算法的数学运算如何针对您正在使用的电脑转译成指令。2016年03月,Google DeepMind 团队研发Alpha Go [6] 并且挑战南韩知名职业围棋棋士成功取得四胜一败,刹那间,深度学习、机器学习以及人工智慧获得大量的观注;另一方面,截至2016年06月30日,猎豹移动核心产品在全球范围内已下载安装到30.99亿台移动设备上,月度活跃用户规模达6.23亿。其中,79.4%的移动月度活跃用户来自欧、美为主的海外市场 [12] 。因此,基于深度学习其对于图像辨识的强大效果[7, 8], 猎豹移动威胁情报中心 ( http://tic.cmcm.com ) 藉由猎豹移动的核心产品于2016年05月开始至今已成功使用深度学习的Inception-v3 等模型 [9] 来对抗会因时区、语系等不同而造成远比过去钓鱼网站生命周期短的欺诈广告威胁,并获得了近90%的侦测率[10]。同时, 猎豹移动威胁情报中心 亦与 后台数据运营研发团队 针对2016年07月01日至2016年07月31日已成功辨识为骚扰、市场推销、诈骗、保险;快递及服务中心与已经过认证的非联络人陌生电话号码​​进行数据分析,如图1所示可以发现在上班时间(08-19)内,会有大量的拨打次数,进一步统计,发现平常上班工作日与周末休假日亦有类似的关联行为,两者间呈固定增减;再透过机器学习中LogisticRegression (逻辑回归)、Decision Tree (决策树)、Random Forest (随机森林)、SVM以及深度学习的Deep Neural Network (深层类神经网路, DNN) 等演算法进一步针对其来电响铃、接听时长、及使用者是否接听等各种行为进行关联分析。以下将简要说明系统的安装等相关指令:

表1. 自建测试软硬体环境

cuDNN v4

Keras 1.0.6

Python 2.7.6

TensorFlow 0.8

Cuda Tookit 7.5

Scikit-learn 0.17.1

Ubuntu x64 14.04

Intel Core i7 4770

GIGABYTE Z87-HD3

Intel S320/S520 SSD

ADATA DDR3 8GB * 4

GIGABYTE GTX 960 4G * 2

表2. Tensorflow 相关安装指令 (1. 安装 JAVA)

# add-apt-repository ppa:webupd8team/java 
# apt-get install oracle-java8-installer 
# apt-get update

表3. Tensorflow 相关安装指令 (2. 安装 bezel)

# echo "deb [arch=amd64] http://storage.googleapis.com/bazel-apt stable jdk1.8" | sudo tee /etc/apt/sources.list.d/bazel.list 
# curl https://storage.googleapis.com/bazel-apt/doc/apt-key.pub.gpg | sudo apt-key add - 
# apt-get update # apt-get install bazel 
# apt-get upgrade bazel 
# apt-get update

表4. Tensorflow 相关安装指令 (3. 安装 nvidia 驱动程式)

# add-apt-repository ppa:xorg-edgers/ppa -y 
# apt-get install nvidia-346 
# apt-get update

表5. Tensorflow 相关安装指令 (4. 安装 cuda Toolkit 7.5 及 cudnn v4)

cuda 下載網址: https://developer.nvidia.com/cuda-downloads

cudnn 下載網址 https://developer.nvidia.com/cudnn (需注册)

# export LD_LIBRARY_PATH="$LD_LIBRARY_PATH:/usr/local/cuda/lib64"

# export CUDA_HOME=/usr/local/cuda # ./cuda_7.5.18_linux.run -extract=/tensorflow/cuda

# ./cuda-linux64-rel-7.5.18-19867135.run

# ./cuda-samples-linux-7.5.18-19867135.run

# cp include/cudnn.h /usr/local/cuda-7.5/include/

# cp lib64/libcudnn* /usr/local/cuda-7.5/lib64/

表6. Tensorflow 相关安装指令 (5. 安装Tensorflow并开启 GPU 支持)

# git clone --recurse-submodules https://github.com/tensorflow/tensorflow 
# pip install https://storage.googleapis.com/tensorflow/linux/gpu/tensorflow-0.8.0-cp27-none-linux_x86_64.whl
# bazel build -c opt --config=cuda //tensorflow/cc:tutorials_example_trainer 
# bazel-bin/tensorflow/cc/tutorials_example_trainer --use_gpu

表7. Tensorflow 相关安装指令 (6. 安装keras)

# pip install keras # vi ~/.keras/keras.json (编辑修改 backend為tensorflow) 
 {     
"image_dim_ordering": "th",     
"epsilon": 1e-07,     
"floatx": "float32",     
"backend": "tensorflow"
}

表8. Tensorflow 相关安装指令 (7. Keras 部分源码)

from keras.models import Sequential 
from keras.layers import Dense, Dropout, Activation 
from keras.optimizers import SGD, Adadelta, Adagrad 
from keras.models import model_from_json 
import pandas as pd 
import numpy as np 
from sklearn import metrics 
from sklearn.metrics import accuracy_score, f1_score, precision_score, recall_score, classification_report, confusion_matrix 
import tensorflow as tf     
np.random.seed(1024) 
df_train = pd.read_csv("Train.csv")     
y = df_train.ix[:,-1] 
x = df_train.ix[:,0:-1] 
model = Sequential() # X为其建置欲输入的层数 
model.add(Dense(XX, input_dim=XX, init='normal',  activation='relu')) 
model.add(Dense(XX, init='normal',  activation='relu')) 
model.add(Dense(XX, init='normal',  activation='relu')) 
model.add(Dense(XX, init='normal',  activation='relu')) 
model.add(Dense(XX, init='normal',  activation='relu')) 
model.add(Dense(1,  init='normal',  activation='sigmoid')) 
model.compile(loss='binary_crossentropy', optimizer='adagrad', metrics=['accuracy']) 
hist = model.fit(np.array(x), np.array(y), nb_epoch=10000, batch_size=10, validation_split=0.25, shuffle=True) 
keras.callbacks.EarlyStopping(monitor='val_loss', patience=10, verbose=2, mode='auto') 
y_pred = model.predict_classes(np.array(x))   
print "Precision: ", metrics.precision_score(y, y_pred, average="binary") 
print "Recall: ", metrics.recall_score(y, y_pred, average="binary") 
print "F-measure: ", metrics.f1_score(y, y_pred, average='binary') 
print "Accuracy: ", metrics.accuracy_score(y, y_pred)

实验结果

图2. 非联络人陌生电话号码拨打行为分析

图3. 非联络人陌生电话号码拨打行为机器/深度学习计算分析

图2为根据猎豹移动的核心产品捞取相关国家的非联络人陌生电话拨打行为统计,可以发现平常上班日的恶意来电次数远胜过平常上班日及休假日的正常来电以及休假日的恶意来电,可見相关 拨打 行为并非血汗工厂且有稳定的上下班时间;图3 为针对 非联络人陌生 来电 相关 数据进行了各种机器学习以及深度类神经网路进行计算分析的结果,由于来电行为为一维的数据,初步发现传统的机器学习演算法其结果与DNN的比较,虽未如之前使用 ConvolutionalNeural Network (CNN) 的恶意推广 (欺诈广告) 等图像辨识类的3维数据呈现大幅度落差 [10],但其标准误差的增减幅度明显仍较其它机器学习演算法更稳定;另外,也进一步发现,诈骗(骚扰)电话的来电次数有非常强烈的地域关系,进一步萃取相关国家各自的特征并训练客制化独有的模型来应对,是后续要进行的工作核心目标。

结论

近期,人工智能与深度学习技术有了很大的进步,Google 于2015年11月释出了Tensorflow,另外有 Facebook 的 Torch、Amazon 的 DSSTNE以及广为人熟知的 Theano 与 Caffee,还有Keras 等 Python 框架,还有 Baidu 近日内发布 的 Paddle 等;而深度学习的系统会随着资料库越庞大,而变得更有效率,当硬体与网路的不断进化、各种影音资料急速累积,深度学习技术将会吸引更多研究者发展它的各种可能性。

人工智能,就好像第四次工业革命,正从学术界的私藏,转变为一种能够改变世界的力量。尤其,以深度学习取得的进步为显著标志。我们正降落到一片新大陆。深度学习带来的这场重大技术革命,有可能颠覆过去20年互联网对技术的认知,实现技术体验的跨越式发展,猎豹移动总裁傅盛说 [1]。





收藏 推荐 打印 | 录入:elainebo | 阅读: