不知不觉
又到了周五了
伴随着一周的小尾巴
开始我们今天的一周IT新闻盘点吧
我们曾如此期盼外界的认可,到最后才知道:世界是自己的,与他人毫无关系。—杨绛
1
网络黑产无孔不入
随着社会进入数字经济时代,网络黑产不再是散兵游勇式的单打独斗,已经演化成具有专业分工、链条化运作特征的产业。提及网络黑产,就绕不开暗网,暗网复杂隐蔽,承载着大量的信息资源且鱼龙混杂,成为助长网络犯罪的重要工具。
2
工信部组织召开综合整治骚扰电话专项行动
8月15日,工信部信息通信管理局在北京组织召开综合整治骚扰电话专项行动工作会,进一步加大骚扰电话源头治理力度,深入推进骚扰电话综合整治。最高人民法院、最高人民检察院、教育部、公安部、司法部等十三部门参加会议。
3
智能锁百万指纹泄密,攻击者可进入任何地方!
近日,研究人员在生物识别公司Suprema的智能锁系统中发现了一个可公开访问的生物识别数据库安全漏洞,能够访问超过100万人的身份验证数据。该数据库超过2780万条记录的数据,包括指纹、面部识别数据,甚至还有员工的个人信息。
4
三大运营商回应降速传言 4G不会降速
近日,有传言称4G网络速度下降,目的是“为了推广50”。对此,记者分别致电三大运营商,相关客服工作人员均对此表示否认,并表示5G速度会更快,没有接到4G会降速的通知。
对于5G推出了4G是否会降速的疑问,一位客服明确表示,“5G网速会更快,4G不会降速。”他表示,没有接到公司通知。
独立电信分析师付亮指出,从日常使用来看,4G的下载速率通常在数十兆的量级,20-30Mbps、30-40Mbps的速率均属于正常范围,也较为常见。关于5G推广对4G网速是否会有影响,付亮认为,目前阶段5G非独立组网与4G有共用资源,从这角度看有可能对部分双载波4G+的百兆以上超高网速略有降低,但对普通4G用户来说不会有影响,并不会带来4G降速。
三大运营商客服昨日回复相关咨询时均表示,用户只需更换一部56手机,不换卡不换号即可接收到56信号。同时运营商目前相应的5G体验包提供免费体验流量。
5
数字人民币初露真容:非网络支付或电子钱包
在日前举行的第三届中国金融四十人伊春论坛上,央行支付结算司副司长穆长春表示,央行下属的数字货币研究所早于2018年就开始了数字货币系统的开发,央行数字货币已是“呼之欲出”。目前,该所已经申请了74项涉及数字货币技术的专利。央行数字货币是基于国家信用、由央行发行的法定数字货币,与比特币等“虚拟货币”有着本质区别。穆长春表示,以往电子支付工具的资金转移必须通过传统银行账户才能完成,而央行数字货币可脱离传统银行账户实现价值转移,使交易环节对账户依赖程度大为降低。
6
蓝牙存在泄露隐私风险,你一直开着吗?
波士顿大学研究人员发现,部分蓝牙设备上,蓝牙通信协议存在的漏洞,会导致个人信息被窃取,允许第三方追踪设备所在位置。Windows 10、ioS、macOS等软件系统以及Apple Watch、Fitbit手环等设备上都存在此漏洞。
7
App存隐忧莫让便民利器成扰民工具
在对上百款App代码进行了“全景扫描”后发现,有超8成App安装包中均含有超出其业务范围的权限代码;有过半数的App含有索取用户通讯录的代码。这意味着,用户对“隐私协议”点下“我同意”的按钮时,也向App敞开了隐私的大门。
8
App超半数留索取用户通讯录”后门”
据报道,109款App中嘀嗒出行、百合婚恋、和包支付、瑞钱包、e代驾、飞嘀打车、中国工商银行、悟空理财、平安好医生、开心消消乐10个App申请的敏感权限最多;83.6%的App含越界代码,中移动旗下的和包支付“越界”严重。
9
大量App存在读写用户设备文件等异常行为
国家互联网应急中心8月13日发布《2019年上半年我国互联网网络安全态势》。这份报告指出,我国移动APP违法违规使用个人信息问题十分突出,大量APP存在探测其他APP或读写用户设备文件等异常行为,对用户的个人信息安全造成潜在安全威胁。
10
iOS 12.4系统遭黑客破解 漏洞危及数百万用户
在最近的一次iOS 12.4系统更新中,苹果公司无意中恢复了在先前版本中修复过的一个漏洞,从而使得当前iOS 12.4版本系统遭到了黑客的破解,继而为众多iPhone用户带来了多年以来唯一一次最新系统的公开越狱机会,而这也将为苹果公司带来一系列的安全风险。
Graph Convolutional Neural Networks for Web-Scale Recommender Systems 用于Web级推荐系统的图形卷积神经网络 ABSTRACT Recent advancements in deep neural networks for graph-structured data have led to state-of-the-art performance on recommender system benchmarks. However, making these methods practical and scalable to web-scale recommendation tasks with billions of items and hundreds of millions of users remains a challenge.
Here we describe a large-scale deep recommendation engine that we developed and deployed at Pinterest. We develop a data-efficient Graph Convolutional Network (GCN) algorithm PinSage, which combines efficient random walks and graph convolutions to generate embeddings of nodes (i.
币圈历经7个月的寒冬之后,比特币价格在今年2月首次出现连续上涨,涨幅超过11%,一度突破4000美元。
近期,据Gikee.com链上数据监测显示:今年2月的交易量也是自去年3月以来的最高月度交易量,BTC交易量超过2000亿美元,ETH交易量超过1000亿美元。
BTC
由于比特币在2月中下旬突破4000美元,交易量环比增长34%,这是BTC交易量是一年内的最高,BTC交易在一个月内交易量近2063.7亿美元。
ETH
以太坊的交易量也达到了一年来的高位,在2月份,以太坊交易了价值1044.6亿美元的以太坊,ETH交易环比增长34.40%。
EOS
在2月份,EOS交易量为332.2亿美元,交易量增长54.75%,连续第5个月成为交易量第4的加密货币,是自2018年5月以来EOS交易量最高的月份。
LTC
莱特币在2月份的交易量排名第5,约有328.5亿美元的交易量,交易量环比增长93.58%,这是自2018年第一季度以来交易量最高的月份。
2月比特币价格飙升11%鼓舞了市场情绪,比特币链上交易量和交易所总交易量都达到了7个月以来的高位,但它还没有真正走出熊市困境,市场触底在即,投资者在等待市场下一次大幅调整。
目前,整个加密货币市场市值徘徊在1290亿美元左右,交易量开始略有减少,过去24小时内交易量为249亿美元,市场持续横盘,也许下一轮大幅调整马上要来了。
今日,据Gikee.com排行榜统计显示,目前交易量TOP 3是USDT、BTC、ETH。
3月6日市值TOP 10币种
而在今年,加密货币可能会触及市场行情的底部,并且今年大部分时间比特币价格可能徘徊在3000到5000美元之间。
也许直到2020年比特币产量减半的时候,我们才会迎来下一轮真正的牛市。
前端Web UI的日志如果还不能判断出具体问题所在,可以在部署机上输入命令 docker logs -f deploy-main 来获取更详细的日志 docker、registry、etcd、k8s这四个角色是缺一不可的,不能缺少组件。 节点主机内存不能太低,建议最少4G配置,否则kubeadm部署过程中master节点可能会卡死在等待kubelet服务启动的过程中而导致最终部署失败。 Breeze部署工具底层是调用ansible执行playbook脚本,所以对宿主机环境而言,python的版本兼容性是相关联的,如果在部署中看见了Failed to import docker-py – No module named ‘requests.packages.urllib3’. Try pip install docker-py这样的信息,请修正您宿主机的python依赖问题后再进行部署。 Breeze暂不支持非root账号的环境部署,因此请确保您部署机到各个服务器节点是直接root ssh免密的。 部署好之后,dashboard的端口是30300,但是谷歌浏览器是不可以访问的,火狐可以,这个是浏览器安全设置问题,和部署没有关系。 由于CentOS的特性,部署之后内核并未启动ipvs,因此kube-proxy服务中会看见警告日志,退回iptables方式,这个只需要将所有节点重启一次即可解决。 在部署机上,一定不要忘记执行“(1)对部署机取消SELINUX设定及放开防火墙”,否则会导致selinux的限制而无法创建数据库文件cluster.db,页面提示“unable to open database file”。 不要这样去关闭防火墙 systemctl stop firewalld 或 systemctl disable firewalld,我们的部署过程中已经做了正确的防火墙规则设定,服务是必须开启的,只是设定为可信任模式,也就是放开所有访问策略,如果你需要设定严格的防火墙规则,请自行学习研究清楚firewall-cmd的用法。 详细注解: iptables与firewalld都不是真正的防火墙,它们都只是用来定义防火墙策略的防火墙管理工具而已,或者说,它们只是一种服务。iptables服务会把配置好的防火墙策略交由内核层面的netfilter网络过滤器来处理,而firewalld服务则是把配置好的防火墙策略交由内核层面的nftables包过滤框架来处理。对于RHEL/CentOS 7系列,我们推荐的做法就是删掉iptables服务启用firewalld服务,注意不是删掉iptables命令。然后用命令firewall-cmd –set-default-zone=trusted来“关闭”防火墙。这样docker和kubernetes运行时才不会出故障。 docker最终还是要调用iptables命令的,它不在乎你的系统底层究竟是iptables服务还是firewalld服务,总之要么转换成netfilter模块执行要么转换成nftables模块执行。我们的部署程序,在安装docker的环节中,已经为您的主机做了这样的设置。也就是防火墙服务是active的,但是policy是trusted,这样是最佳方法。当然如果您实际生产环境不允许过于宽松的防火墙,可以手动再去使用firewall-cmd命令控制严格的具体ACL条目。
所有被部署的服务器在部署工作开始之前请使用命令: hostnamectl set-hostname 主机名
大家好,本文将带大家使用VirtualBox安装Ubuntu 18.04.1 LTS。 (0)镜像地址下载:Ubuntu Server 18.04.1 LTS
安装步骤:
(1)virtualbox新建虚拟电脑,依次点击下一步
(2)选择虚拟机内存
(3)为虚拟机创建一块虚拟硬盘。选择“现在创建虚拟硬盘”,并单击“创建”。
(4)选择虚拟硬盘文件类型。选择默认的VDI(VirtualBox磁盘映像),并单击“下一步”。
(5)选择“动态分配”,并单击“下一步”。
(6)输入虚拟硬盘文件的名称,并选择保存位置
(7)基础配置完毕,显示如下界面。
(8)设置–>存储–>控制器–>属性,选择已经下载的镜像
(9)右键启动虚拟机,即将进入安装流程
(10)安装界面
(11)安装成功界面如下
(12)安装完毕,进行网络配置
注:大多数朋友选择配置静态编辑网络配置文件进行静态IP配置,但由于操作复杂,而且配置难度比较大,
下面教大家用一个简便的操作。
注:网卡1配置’网络地址转换(NAT)’
注:网卡2配置’仅主机(Host-Only)网络’
(13)管理–>主机网络管理器,设置网卡
设置DHCP服务器
配置了主机网络管理器之后,我们需要打开虚拟机,点击图中的配置
配置Ethernet,第一个默认不需要配置,只需要配置第二个,例如我的是enp0s8
配置IPv4结束后,请点击APPLY应用,然后关闭窗口,打开终端,查看配置好的IP:ifconfig
到此, Ubuntu安装完毕,网络配置完成!
下一步就是使用XShell远程连接虚拟机
安装Ubuntu18.04教程结束,谢谢大家,共同进步!
何为关联规则学习 关联规则学习是一种基于规则的机器学习方法,用于发现大型数据库中变量之间的有趣关系。它旨在使用一些有趣的度量来识别在数据库中发现的强规则。这种基于规则的方法在分析更多数据时也会生成新规则。假设数据集足够大,最终目标是帮助机器模拟人类大脑的特征提取和新未分类数据的抽象关联能力。
基于强有力规则的概念,Rakesh Agrawal,TomaszImieliński和Arun Swami介绍了关联规则,用于发现超市中销售点(POS)系统记录的大规模交易数据中产品之间的规律性。例如,在超市的销售数据中发现,如果顾客一起购买洋葱和土豆,他们也可能会购买汉堡肉。这些信息可以用作关于营销活动的决策的基础,例如促销定价或产品放置。
除了市场购物篮分析的上述示例之外,目前在许多应用领域中使用关联规则,包括Web使用挖掘,入侵检测,连续生产和生物信息学。与序列挖掘相反,关联规则学习通常不考虑事务内或跨事务的项目顺序。
常用的关联算法包括 Apriori、FP-Growth、PrefixSpan、SPADE、AprioriAll、Apriori-Some等。
关联算法评估规则 频繁规律与有效规则:
频繁规则指的是关联结果中支持度和置信度都比较高的规则 有效规则指关联规则真正能促进规则中的前后项提升 假如,数据集有1000条事务数据用来显示购买苹果和香蕉的订单记录,其中有600个客户的订单记录中包含了苹果,有800个客户的订单记录中包含了香蕉,而有400个客户同时购买了苹果和香蕉。假如我们产生了一条关联规则,用来表示购买了苹果的客户中还有很多人购买香蕉,那么该规则可以表示为:苹果→香蕉。
支持度:support = 400/1000= 40%
置信度:confidence = 400/600=67%
如果只是看支持度和置信度,这个规则似乎非常显著的说明了苹果和香蕉之间的频繁关系,买了苹果的客户中有67%的人也会一起购买香蕉。但是,如果忽略购买苹果的事实,只购买香蕉的客户比例会高达是80%(800/1000)!这显示了购买苹果这种条件不会对购买香蕉产生积极的促进作用,反而会阻碍其销售,苹果和香蕉之间是一种负相关的关系。因此,只看支持度和置信度将无法完整体现规则的有效性,这里我们使用提升度来有效应对该问题。
提升度(Lift)指的是应用关联规则和不应用产生结果的比例。在本示例中,Lift=(400)/(800)=0.5(有关联规则的前提下只有400个客户会购买香蕉,没有关联规则的前提下会有800个购买香蕉)。当提升度为1时,说明应用关联规则和不应用关联规则产生相同的结果;当提升度大于1时,说明应用关联规则比不应用关联规则能产生更好的结果;当提升度小于1时,关联规则具有负相关的作用,该规则是无效规则。
做关联规则评估时,需要综合考虑支持度、置信度和提升度三个指标,支持度和置信度的值越大越好。
提升度低的负相关关联其实也是一种关联模式,也是可以通过避免的方式利用这种关联:不将互斥商品放在一个组合中,不将互斥广告投放整合投放,不将互斥关键字提供个客户,不将互斥信息流展现给客户。
运营分析中关联分析的使用 网站页面关联分析:帮助我们找到用户在不同页面之间的频繁访问关系,以分析用户特定的页面浏览方式,这样可以帮助了解不同页面之间的分流和引流情况,可用于不同页面间的推荐已达到提高转化率。 广告流量关联分析:针对站外广告投放渠道用户浏览或点击的行为分析,该分析主要用于了解用户的浏览和点击广告的规则。这种站外广告曝光和点击的关联分析可以为广告客户的精准投放提供参考。 用户关键字搜索:通过分析用户在站内的搜索关键字了解用户真实需求的。通过对用户搜索的关键字的关联分析,可以得到类似于搜索了iPhone又搜索了三星,这种关联可以用于搜索推荐、搜索关联等场景,有助于改善搜索体验,提高客户的目标转化率。 不同场景发生,这种模式可以广泛用于分析运营中关注的要素,例如用户浏览商品和购买商品的关联,关注产品价格和购买产品价格的关联,加入购物车与购买的关联。这种关联可以找到用户在一个事件中不同行为之间的关联,可以用来挖掘用户的真实需求,有针对性的对当前用户进行个性化推荐,同时也对定价策略有参考价值。 相同场景发生,用户在同一个页面中点击不同功能、选择不同的应用。这种关联可以用于分析用户使用功能的先后顺序,有利于做产品优化和用户体验提升;对于不同产品功能组合、开发和升级有了更加明确地参考方向,便于针对永辉习惯性操作模式做功能迭代;同时针对用户频繁查看和点击的内容,可以采用打包、组合、轮转等策略,帮助客户查找,同时增加内容曝光度和用户体验。 python代码实现 apriori模块:
# -*- coding: utf-8 -*- from numpy import * import re def createData(fileName): mat = [] req = re.compile(r',') fr = open(fileName) content = fr.readlines() for line in content: tem = line.replace('\n','').split(',') mat.append(tem) return mat def loadDataSet(): return [[1, 3, 4], [2, 3, 5], [1, 2, 3, 5], [2, 5]] # C1 是大小为1的所有候选项集的集合 def createC1(dataSet): C1 = [] for transaction in dataSet: for item in transaction: if not [item] in C1: C1.
网络安全概述 网络安全概述主要是讲解一些在网络层级容易发生的安全问题,一些常见的攻击手段及防御措施。主要的关注点在于网络协议中的一些漏洞和问题。
网络安全概述 暗网 暗网介绍 暗网与深网 ARP欺骗 ARP协议 1. ARP缓存表 2. ARP欺骗原理 3. 常用ARP攻击工具 DNS欺骗 DNS协议 DNS欺骗原理 DNS欺骗防范 中间人攻击 中间人攻击原理 VPN中的中间人攻击 SSL中的中间人攻击 暗网 暗网介绍 暗网(又称深网,不可见网)是指那些存储在网络数据库里,不能通过超链接访问而需要通过动态网页技术访问的资源集合,不属于那些可以被标准搜索引擎索引的表面网络。可以说,我们正常访问的网站只属于整个网络中的一小部分,只占到了整个网络的4%-20%,更多的部分由暗网组成。
暗网与深网 网络其实一共有三层:
表层网络:
表层网络就是人们所熟知的可见网络,人们平时访问的网站都属于这类,通过链接抓取技术就可以轻松访问这些网站。 深网:
表层网络之外的所有网络都称为深网,搜索引擎无法对其进行抓取。它们并没有完全隐藏起来,只是普通搜索引擎无法发现它的踪迹,不过使用一些工具也可以访问这些网络。 暗网:
暗网是深网的一部分,但被人为隐藏起来。如果不是精通技术,很难进入这个网络,他的域名数量甚至是表层网络的400-500倍。 ARP欺骗 ARP协议 ARP(Address Resolution Protocol)称为地址解析协议,就是在主机发出数据帧之前,先将目标IP地址转化成目的MAC地址的过程,它被收录在RFC826标准中。
1. ARP缓存表 如果每次使用IP地址访问目标主机时都需要使用ARP协议来获得MAC地址,会造成局域网内流量负载增加,传输效率降低。为了避免这种情况的发生,ARP协议规定每台主机都有一个本地的ARP高速缓存表,用来存放IP地址和MAC地址的映射,如果表中有目的主机的MAC地址,则不会再向局域网内广播请求,直接使用本地的IP-MAC映射。如果一段时间内不与某IP通讯,系统会删除相关的映射条目。
2. ARP欺骗原理 在以太局域网内,数据分组传输依靠的是MAC地址,而IP地址与MAC地址的映射依靠ARP表,每台主机都有一个ARP缓存表。正常情况下主机的ARP缓存表可以保证数据正确传输到目的主机。但是在ARP缓存表的实现机制中有一个漏洞,当主机收到一个ARP应答报文后,它不会去验证自己是否发送过这个ARP请求,而是直接用应答报文中的数据更新ARP缓存表。利用这一漏洞可以通过发送虚假的ARP应答报文,达到替换靶机ARP缓存中的映射关系。
3. 常用ARP攻击工具 Cain & Abel: 该组件是一个针对Microsoft操作系统的免费口令恢复工具,号称穷人使用的L0phtcrack。它功能十分强大,可以网络嗅探,网络欺骗,破解加密口令,解码被打乱的口令,显示缓存口令和分析路由协议。
BetterCap: 该组件是一个功能强大,模块化,轻便的MiTM框架,可以用来对网络开展各种类型的中间人攻击。他也可以实时操作HTTP和HTTPS流量,以及其他更多功能。
Ettercap: Ettercap是一个全面的套件,用于中间人攻击。它具有嗅探活动连接,内容过滤和许多其他的技巧。同时支持多种协议的主动和被动消除包括许多网络和主机分析的功能。
Netfuke: 该组件是一款Windows下常使用的ARP攻击工具。
DNS欺骗 DNS协议 DNS(Domain Name System)域名系统是域名与IP地址相互映射的一个分布式数据库,能够使用户更加方便的访问互联网,省去了记住要访问的主机IP地址的麻烦,可以直接使用更加语义化的域名来访问。通过主机名(域名)最终得到对应IP地址的过程叫做域名解析。
DNS欺骗原理 DNS欺骗攻击就是攻击者冒充域名服务器,吧用户查询的域名地址更换成攻击者的IP地址,然后攻击者将自己的主页取代用户的主页,这样访问用户主页的时候只会显示攻击者的主页,进而可以诱导用户点击或下载恶意程序。
DNS欺骗的实现利用了DNS设计时的一个安全缺陷。在一个局域网内,攻击者首先使用ARP欺骗,使目的主机的所有网络流量都通过攻击者的主机,之后通过嗅探目标主机发出的DNS请求分组,分析数据分组的ID和端口号,向目标主机发送构造好的DNS返回分组,目标主机确认分组ID和端口号都正确后,将返回分组中的域名和对应的IP地址保存进DSN缓存,而后当真正DNS应答报文返回时则被丢弃。
DNS欺骗防范 在DNS欺骗之前一般都需要使用ARP攻击来配合,因此可以首先做好对ARP欺骗的防御工作,例如设置静态的ARP映射,安装ARP防火墙
等。 使用代理服务器进行网络通信,本地主机与代理服务器的全部流量都可以加密,包括DNS信息 尽量访问带有https标识的站点 使用DNSSrypt等工具,DNSCrypt时OpenDNS发布的加密DNS工具,可以加密DNS流量,阻止最常见的DNS攻击 中间人攻击 中间人攻击原理 中间人攻击(Man-In-the-MiddleAttack)简称MITM攻击。是一种由来已久的网络入侵手段。所谓的中间人攻击,就是通过拦截正常的网络通信数据,进行数据的篡改和嗅探,而通信双方毫不知情。
人工智能的发展曾经经历过几次起起伏伏,近来在深度学习技术的推动下又迎来了一波新的前所未有的高潮。近日,IBM 官网发表了一篇概述文章,对人工智能技术的发展过程进行了简单梳理,同时还图文并茂地介绍了感知器、聚类算法、基于规则的系统、机器学习、深度学习、神经网络等技术的概念和原理。
人类对如何创造智能机器的思考从来没有中断过。期间,人工智能的发展起起伏伏,有成功,也有失败,以及其中暗藏的潜力。今天,有太多的新闻报道是关于机器学习算法的应用问题,从癌症检查预测到图像理解、自然语言处理,人工智能正在赋能并改变着这个世界。
现代人工智能的历史具备成为一部伟大戏剧的所有元素。在最开始的 1950 年代,人工智能的发展紧紧围绕着思考机器和焦点人物比如艾伦·图灵、冯·诺伊曼,迎来了其第一次春天。经过数十年的繁荣与衰败,以及难以置信的高期望,人工智能及其先驱们再次携手来到一个新境界。现在,人工智能正展现着其真正的潜力,深度学习、认知计算等新技术不断涌现,且不乏应用指向。
本文探讨了人工智能及其子领域的一些重要方面。下面就先从人工智能发展的时间线开始,并逐个剖析其中的所有元素。
现代人工智能的时间线
1950 年代初期,人工智能聚焦在所谓的强人工智能,希望机器可以像人一样完成任何智力任务。强人工智能的发展止步不前,导致了弱人工智能的出现,即把人工智能技术应用于更窄领域的问题。1980 年代之前,人工智能的研究一直被这两种范式分割着,两营相对。但是,1980 年左右,机器学习开始成为主流,它的目的是让计算机具备学习和构建模型的能力,从而它们可在特定领域做出预测等行为。很多初学者,对大数据的概念都是模糊不清的,大数据是什么,能做什么,学的时候,该按照什么线路去学习,学完往哪方面发展,想深入了解,想学习的同学欢迎加入大数据学习扣群:805127855,有大量干货(零基础以及进阶的经典实战)分享给大家,并且有清华大学毕业的资深大数据讲师给大家免费授课,给大家分享目前国内最完整的大数据高端实战实用学习流程体系
图 1:现代人工智能发展的时间线
在人工智能和机器学习研究的基础之上,深度学习在 2000 年左右应运而生。计算机科学家在多层神经网络之中使用了新的拓扑学和学习方法。最终,神经网络的进化成功解决了多个领域的棘手问题。
在过去的十年中,认知计算(Cognitive computing)也出现了,其目标是打造可以学习并与人类自然交互的系统。通过成功地击败 Jeopardy 游戏的世界级选手,IBM Watson 证明了认知计算的价值。
在本文中,我将逐一探索上述的所有领域,并对一些关键算法作出解释。
基础性人工智能
1950 年之前的研究提出了大脑是由电脉冲网络组成的想法,正是脉冲之间的交互产生了人类思想与意识。艾伦·图灵表明一切计算皆是数字,那么,打造一台能够模拟人脑的机器也就并非遥不可及。
上文说过,早期的研究很多是强人工智能,但是也提出了一些基本概念,被机器学习和深度学习沿用至今。
图 2:1950 – 1980 年间人工智能方法的时间线
人工智能搜索引擎
人工智能中的很多问题可以通过强力搜索(brute-force search)得到解决。然而,考虑到中等问题的搜索空间,基本搜索很快就受影响。人工智能搜索的最早期例子之一是跳棋程序的开发。亚瑟·塞缪尔(Arthur Samuel)在 IBM 701 电子数据处理机器上打造了第一款跳棋程序,实现了对搜索树(alpha-beta 剪枝)的优化;这个程序也记录并奖励具体行动,允许应用学习每一个玩过的游戏(这是首个自我学习的程序)。为了提升程序的学习率,塞缪尔将其编程为自我游戏,以提升其游戏和学习的能力。
尽管你可以成功地把搜索应用到很多简单问题上,但是当选择的数量增加时,这一方法很快就会失效。以简单的一字棋游戏为例,游戏一开始,有 9 步可能的走棋,每 1 个走棋有 8 个可能的相反走棋,依次类推。一字棋的完整走棋树包含 362,880 个节点。如果你继续将这一想法扩展到国际象棋或者围棋,很快你就会发展搜索的劣势。
感知器
感知器是单层神经网络的一个早期监督学习算法。给定一个输入特征向量,感知器可对输入进行具体分类。通过使用训练集,网络的权重和偏差可为线性分类而更新。感知器的首次实现是 IBM 704,接着在自定义硬件上用于图像识别。
图 3:感知器与线性分类
作为一个线性分类器,感知器有能力解决线性分离问题。感知器局限性的典型实例是它无法学习专属的 OR (XOR) 函数。多层感知器解决了这一问题,并为更复杂的算法、网络拓扑学、深度学习奠定了基础。
聚类算法
使用感知器的方法是有监督的。用户提供数据来训练网络,然后在新数据上对该网络进行测试。聚类算法则是一种无监督学习(unsupervised learning)方法。在这种模型中,算法会根据数据的一个或多个属性将一组特征向量组织成聚类。
图 4:在一个二维特征空间中的聚类
你可以使用少量代码就能实现的最简单的聚类算法是 k-均值(k-means)。其中,k 表示你为样本分配的聚类的数量。你可以使用一个随机特征向量来对一个聚类进行初始化,然后将其它样本添加到其最近邻的聚类(假定每个样本都能表示一个特征向量,并且可以使用 Euclidean distance 来确定「距离」)。随着你往一个聚类添加的样本越来越多,其形心(centroid,即聚类的中心)就会重新计算。然后该算法会重新检查一次样本,以确保它们都在最近邻的聚类中,最后直到没有样本需要改变所属聚类。
登陆的时候,发现输入账号的不同大小写竟然能够登陆。Mybatis查询代码如下
select from userName=#{userName} 通过多次断点查询后,发现是上面的xml文件没写对。
userName=#{userName} 这样写不匹配大小写。
解决办法,加个BINARY
select from BINARY userId=#{uid}
基本数据增强主要包含如下方式:
1.旋转: 可通过在原图上先放大图像,然后剪切图像得到。
2.平移:先放大图像,然后水平或垂直偏移位置剪切
3.缩放:缩放图像
4.随机遮挡:对图像进行小区域遮挡
5.水平翻转:以过图像中心的竖直轴为对称轴,将左、右两边像素交换
6.颜色色差(饱和度、亮度、对比度、 锐度等)
7.噪声扰动: 对图像的每个像素RGB进行随机扰动, 常用的噪声模式是椒盐噪声和高斯噪声;
Tensorflow代码实现:
参数可根据需求进行相应调整。
# -*- coding: utf-8 -*- """ # 数据增强实现 """ import tensorflow as tf import cv2 import numpy as np from scipy import misc import random def random_rotate_image(image): interb = ['nearest','bilinear','cubic','bicubic'] angle = np.random.uniform(low=-10.0, high=10.0) key = random.randint(0,3) return misc.imrotate(image, angle, interb[key]) def random_occlusion(image): b_ratio = 1./10 #遮挡比例 M1 = np.ones((320,250)) b_H = random.randint(10,320*(1-b_ratio)-10) b_W = random.