超人汪小建(seaboat)
公众号:【远洋号】,笔名seaboat,擅长工程算法、人工智能算法、自然语言处理、计算机视觉、架构、分布式、高并发、大数据和搜索引擎等方面的技术,大多数编程语言都会使用,但更擅长Java、Python和C++。平时喜欢编程、绘画、看书、写作和运动,擅长素描、篮球、跑步、游泳、健身和羽毛球等运动项目。崇尚技术自由,崇尚思想自由。出版书籍:《Tomcat内核设计剖析》、《图解数据结构与算法》、《图解Java并发原理》、《人工智能原理科普》。
展开
-
机器学习之梯度下降法
方向导数如图,对于函数f(x,y),函数的增量与pp’两点距离之比在p’沿l趋于p时,则为函数在点p沿l方向的方向导数。记为$\frac{\partial f}{\partial l} = \lim_{\rho \rightarrow 0} \frac{f(x+\Delta x,y+\Delta y)-f(x,y)}{\rho } $,其中$\rho=\sqrt{(\Delta x)^{2} + (原创 2017-03-26 20:40:40 · 1844 阅读 · 0 评论 -
神经网络的交叉熵损失函数
常见损失函数0-1损失函数 L(Y,f(X))={1,0Y != f(X)Y = f(X)L(Y,f(X))=\begin{cases}1,& \text{Y != f(X)}\\0& \text{Y = f(X)}\end{cases}平方损失函数 L(Y,f(X))=(Y−f(X))2L(Y,f(X))=(Y-f(X))^{2}绝对损失函数L(Y,f(X))=|(Y−f(X))|L(Y原创 2017-07-04 18:07:16 · 7709 阅读 · 2 评论 -
softmax的多分类
关于多分类我们常见的逻辑回归、SVM等常用于解决二分类问题,对于多分类问题,比如识别手写数字,它就需要10个分类,同样也可以用逻辑回归或SVM,只是需要多个二分类来组成多分类,但这里讨论另外一种方式来解决多分类——softmax。关于softmaxsoftmax的函数为P(i)=exp(θTix)∑Kk=1exp(θTkx)P(i)=\dfrac{exp(\theta_i^Tx)}{\sum_{k=原创 2017-07-13 17:38:37 · 36344 阅读 · 0 评论 -
LSTM神经网络
LSTM是什么LSTM即Long Short Memory Network,长短时记忆网络。它其实是属于RNN的一种变种,可以说它是为了克服RNN无法很好处理远距离依赖而提出的。我们说RNN不能处理距离较远的序列是因为训练时很有可能会出现梯度消失,即通过下面的公式训练时很可能会发生指数缩小,让RNN失去了对较远时刻的感知能力。∂E∂W=∑t∂Et∂W=∑tk=0∂Et∂nett∂nett∂st(∏t原创 2017-08-03 21:21:52 · 34667 阅读 · 5 评论 -
TensorFlow构建循环神经网络
前言前面在《循环神经网络》文章中已经介绍了深度学习的循环神经网络模型及其原理,接下去这篇文章将尝试使用TensorFlow来实现一个循环神经网络,该例子能通过训练给定的语料生成模型并实现对字符的预测。这里选择使用最原始的循环神经网络RNN模型。语料库的准备这里就简单用纪伯伦的《On Friendship》作为语料吧。RNN简要说明用下面两张图简要说明下,RNN模型有多个时刻的输入,从第一个图中看到输原创 2017-08-29 16:06:04 · 7358 阅读 · 0 评论 -
循环神经网络
RNN是什么循环神经网络即recurrent neural network,它的提出主要是为了处理序列数据,序列数据是什么?就是前面的输入和后面的输入是有关联的,比如一句话,前后的词都是有关系的,“我肚子饿了,准备去xx”,根据前面的输入判断“xx”很大可能就是“吃饭”。这个就是序列数据。循环神经网络有很多变种,比如LSTM、GRU等,这里搞清楚基础的循环神经网络的思想,对于理解其他变种就比较容易了原创 2017-07-28 19:38:56 · 11443 阅读 · 4 评论 -
GRU神经网络
前面已经详细讲了LSTM神经网络(文末有链接回去),接着往下讲讲LSTM的一个很流行的变体。GRU是什么GRU即Gated Recurrent Unit。前面说到为了克服RNN无法很好处理远距离依赖而提出了LSTM,而GRU则是LSTM的一个变体,当然LSTM还有有很多其他的变体。GRU保持了LSTM的效果同时又使结构更加简单,所以它也非常流行。GRU模型回顾一下LSTM的模型,LSTM的重复网络模原创 2017-08-17 15:19:48 · 139447 阅读 · 8 评论 -
谈谈谷歌word2vec的原理
word2vec在NLP领域中,为了能表示人类的语言符号,一般会把这些符号转成一种数学向量形式以方便处理,我们把语言单词嵌入到向量空间中就叫词嵌入(word embedding)。谷歌开源的word2vec则是这么一种词嵌入工具,它能生成词向量,通过词向量可以很好地度量词与词之间的相似性。word2vec采用的模型包含了连续词袋模型(CBOW)和Skip-Gram模型。通过它可以在大数据量上进行高效原创 2017-08-10 20:14:41 · 13689 阅读 · 0 评论 -
卷积神经网络
什么是卷积首先看卷积公式y(t)=f(t)∗g(t)=∫∞−∞f(u)g(t−u)duy(t)=f(t)*g(t)=\int_{-\infty} ^{\infty} f(u)g(t-u)du它是通过两个函数 f(t) 和 g(t) 来生成第三个函数的一种数学算子。从负无穷到正无穷遍历全部 u 值,把 g(t-u) 的值乘以 f(u) 的值之后再进行累加,得到关于该累加操作的关于 t 的函数。从另一原创 2017-07-24 18:17:18 · 5452 阅读 · 1 评论 -
如何用TensorFlow训练词向量
前言前面在《谈谈谷歌word2vec的原理》文章中已经把word2vec的来龙去脉说得很清楚了,接下去这篇文章将尝试根据word2vec的原理并使用TensorFlow来训练词向量,这里选择使用skip-gram模型。语料库的准备这里仅仅收集了网上关于房产新闻的文章,并且将全部文章拼凑到一起形成一个语料库。skip-gram简要说明skip-gram核心思想可以通过下图来看,假设我们的窗口大小为2,原创 2017-08-24 15:21:57 · 9801 阅读 · 2 评论 -
神经网络原理的可视化
前言神经网络具有很强的学习能力和自适应自组织能力,而且随着隐含层的数量增大学习能力也将变得更强,因此目前很多场景都使用神经网络,比如深度学习,我们更熟悉的就是阿法狗。关于神经网络神经网络已经有很多变种,比如卷积神经网络、循环神经网络等等。感知器是一种最基础的神经网络,他只有输入层和输出层,感知器只能处理线性可分问题,而对于非线性问题就需要多层神经网络。一般如下图所示,有多个层,...原创 2018-05-09 09:45:32 · 2223 阅读 · 0 评论 -
一个例子了解迁移学习
迁移学习对于传统机器学习而言,要求训练样本与测试样本满足独立同分布,而且必须要有足够多的训练样本。而迁移学习能把一个领域(即源领域)的知识,迁移到另外一个领域(即目标领域...原创 2018-12-13 08:00:00 · 309 阅读 · 0 评论 -
可视化探索卷积神经网络提取特征
前言卷积神经网络的发展主要是为了解决人类视觉问题,不过现在其它方向也都会使用。发展历程主要从Lenet5->Alexnet->VGG->GooLenet->ResNet等。传统神经网络传统BP神经网络层与层之间都是全连接的,对于图像处理领域,当神经网络处理大图像时,全连接会导致待训练的参数非常庞大,比如100万个像素的图像,对于100个节点的隐层,则会产生亿级别的参数...原创 2018-12-06 08:16:24 · 7395 阅读 · 2 评论 -
聊聊从脑神经到神经网络
前言神经网络能解决非线性的复杂的模型问题,而且通过增加网络的层数将具备更加强大的学习能力,另外如果再改造改造层的结构则变成各类深度学习模型,例如CNN RNN之类的。神经网络一般被用来捕捉复杂情况下的特征,比如说视频图像中的动物类别、一名作家的写作风格等等。大脑神经元人脑可能有1000多亿个神经元,每个神经元都可能在几个方向上互相连接着,这么大量的神经元及连接就形成了一个超级大型的网络。我...原创 2018-11-29 08:32:22 · 1660 阅读 · 0 评论 -
聊聊机器学习的套路
前言这里说说机器学习问题分析的一般性过程,尽管存在各种各样的机器学习问题,但大体上的步骤及最佳实践都有一定的套路。理解问题首先得理解要解决的是什么问题,比如业务上要解决什么问题该问题涉及到的信息管道有哪些如何采集数据,数据源在哪数据是完整的吗,数据刻度最小是多少数据是定期发布的还是实时获取的确定影响模型的有价值因素工作量以上等等等等。ETL处理待收集的数据可能是表格数...原创 2018-11-15 08:34:46 · 414 阅读 · 0 评论 -
让机器玩游戏的强化学习(附github)
强化学习强化学习是代理面临的学习问题,它通过与动态环境反复交互试验从而学习到某种行为。它是机器学习的主要学习方法之一,智能体从环境到行为的学习,也就是如何在环境中采取一些...原创 2018-12-20 08:00:00 · 308 阅读 · 0 评论 -
图像的卷积和池化操作
离散域卷积分为连续函数卷积及离散函数卷积,因为我们实际工作中多数情况下是数字化的场景,所以我们需要离散域的卷积操作。对于两个离散函数f和g,卷积运算是将连续函数的积分操作...原创 2018-12-27 08:00:00 · 736 阅读 · 0 评论 -
TensorFlow训练词向量(附github)
前言这篇文章将尝试根据word2vec的原理并使用TensorFlow来训练词向量,这里选择使用skip-gram模型。语料库的准备这里仅仅收集了网上关于房产新闻的文章,并且将全部文章拼凑到一起形成一个语料库。skip-gram简要说明skip-gram核心思想可以通过下图来看,假设我们的窗口大小为2,则对于文本"The quick brown fox jumps over the la...原创 2019-02-25 16:39:47 · 6180 阅读 · 0 评论 -
从大脑结构到人工神经网络
前言神经网络能解决非线性的复杂的模型问题,而且通过增加网络的层数将具备更加强大的学习能力,另外如果再改造改造层的结构则变成各类深度学习模型,例如CNN RNN之类的。神经网络一般被用来捕捉复杂情况下的特征,比如说视频图像中的动物类别、一名作家的写作风格等等。大脑神经元人脑可能有1000多亿个神经元,每个神经元都可能在几个方向上互相连接着,这么大量的神经元及连接就形成了一个超级大型的网络。我...原创 2019-07-12 09:02:26 · 2127 阅读 · 0 评论 -
一文了解人工智能神经网络的原理
大脑神经元人脑可能有1000多亿个神经元,每个神经元都可能在几个方向上互相连接着,这么大量的神经元及连接就形成了一个超级大型的网络。我们就是因为这些网络而存在各种各样的思想和意识。大脑神经元即是脑神经细胞,主要包括细胞体、树突、轴突、突触等。细胞体,由细胞核、细胞质和细胞膜组成。它是神经元新陈代谢的中心,是接收信息并处理的部件。树突,是细胞体向外延伸树枝状的纤维体,它是神经元的输入通道...原创 2019-06-24 09:10:14 · 1564 阅读 · 0 评论 -
为什么需要微积分
微积分我们知道数学是人类描述自然规律的语言将现实世界进行抽象,有了数学这个工具就能让我们对物体数量、物体结构、物体的空间、物体的运动等进行抽象量化描述。现今的数学已经发展...原创 2019-05-20 08:00:00 · 1259 阅读 · 0 评论 -
AI神经网络如何辨别事物
AI与神经网络人工智能已经发展了六七十年,经历了几度繁荣和衰落。虽然已取得不错的进展,但是与理想中的人工智能差距还是很大。人工智能三大学派:符号学派、连接学派、行为学派。...原创 2019-06-11 08:00:00 · 8489 阅读 · 23 评论 -
强化学习如何让机器玩游戏
强化学习强化学习是代理面临的学习问题,它通过与动态环境反复交互试验从而学习到某种行为。它是机器学习的主要学习方法之一,智能体从环境到行为的学习,也就是如何在环境中采取一些列行为,才能使得回报信号函数的值最大,即获得的累积回报最大。现在强化学习与深度学习结合的深度强化学习更加强大。马尔科夫决策过程在理解强化学习之前,我们先了解我们要解决什么样的问题。其实强化学习过程就是优化马尔科夫决策过程...原创 2019-07-04 09:06:14 · 4107 阅读 · 6 评论 -
人工智能如何自己玩游戏?
人工智能近些年来,人工智能在各类媒体大肆宣传报道下又大火了起来。以大众的眼光来看,人工智能看似已经无所不能了,自动驾驶、智能机器人、人脸识别、语音翻译以及下围棋玩游戏等等,这些都不在话下。正所谓外行看热闹内行看门道,实际上,目前的人工智能所用到的技术主要是一些机器学习算法,属于弱人工智能。虽然它能实现很多神奇的应用,但它的局限性也很大,只有在清楚了解人工智能的机制原理后才不至于被媒体夸大的...原创 2019-07-09 08:00:00 · 4663 阅读 · 4 评论 -
一文了解人工智能——学科介绍、发展史、三大学派
何为智能在介绍人工智能之前,我们要先了解智能到底是什么?智能,其实就是智力和能力的总称。世界著名教育心理学家霍华德·加德纳提出了著名的“多元智能理论”,他认为人类个体都独立存在着八种智能,分别如下:多元智能理论 视觉—空间智能,指对线条、形状、结构、色彩和空间关系的敏感以及通过平面图形和立体造型将它们表现出来的能力。 语言—言语智能,指听说读写能力,利用语言描述事件、表...原创 2019-07-16 19:00:00 · 1538 阅读 · 0 评论 -
我的开源项目——深度学习实验室
githubhttps://github.com/sea-boat/DeepLearning-LabDeepLearning-Labrnn char test.seq2seq test.word2vec test.cross entropy test.bidirectional rnn test.原创 2018-07-05 09:31:45 · 1218 阅读 · 0 评论 -
2017文章汇总——深度学习篇
2017快过完了,大家过去一年收获如何?不管怎样,保持好心态,未来不迎,当下不杂,既过不恋。 近期准备把过去一年写的文章按照分类重新整理推送一遍,包括:“分...原创 2017-12-23 08:51:54 · 146 阅读 · 0 评论 -
我的2017年文章汇总——深度学习篇
2017快过完了,大家过去一年收获如何?不管怎样,保持好心态,未来不迎,当下不杂,既过不恋。近期准备把过去一年写的文章按照分类重新整理推送一遍,包括:“分布式”、“机器学习”、“深度学习”、“NLP”、“Java深度”、“Java并发核心”、“JDK源码”、“Tomcat内核”。本篇推送深度学习相关文章。LSTM神经网络GRU神经网络循环神经网络卷积神经网络深度学习的seq2seq模型TensorF原创 2017-12-23 11:22:22 · 3414 阅读 · 1 评论 -
深度学习的Attention模型
前言前面看到谷歌发表的运用在机器翻译上的论文《Attention is all you need》,很是让人惊讶,这是一种全新的模型,与之前的经典的seq2seq模型改动较大,它完全摒弃了RNN或CNN神经网络,大大简化了模型的复杂度,而且效果还相当好。当然Attention模型可以单独使用,但这篇文章我们来看看Attention的机制及怎么与经典的seq2seq结合。seq2seq前面我们有详细的原创 2017-10-12 09:16:13 · 4722 阅读 · 1 评论 -
神经网络与深度学习
非线性的世界我们的世界是一个非线性的世界,我们能否让机器来学习现实中很多复杂的问题呢?从人类大脑结构中受到的启发,人们开始在一定程度上模拟大脑的结构。既然大脑能够理解这个世界,那人工神经网络应该也是可以的。神经网络简单的感知机属于线性模型,而通过嵌套多个神经网络层和增加神经元就可以解决很多复杂的问题。整个神经网络模型包含了三要素:线性变换、非线性变换和线性决策。线性与非线性变换实际上就是...原创 2019-05-24 10:11:13 · 270 阅读 · 0 评论 -
深度学习的seq2seq模型
从rnn结构说起根据输出和输入序列不同数量rnn可以有多种不同的结构,不同结构自然就有不同的引用场合。如下图,one to one 结构,仅仅只是简单的给一个输入得到一个输出,此处并未体现序列的特征,例如图像分类场景。one to many 结构,给一个输入得到一系列输出,这种结构可用于生产图片描述的场景。many to one 结构,给一系列输入得到一个输出,这种结构可用于文本情感分析,对一原创 2017-09-07 16:21:22 · 54854 阅读 · 3 评论 -
2018汇总深度学习篇
浅聊卷积神经网络的发展神经网络原理的可视化可视化探索卷积神经网络提取特征一个例子了解迁移学习图像的卷积和池化操作LSTM神经网络GRU神经网络循环神经网络卷积神经网络深度...转载 2019-01-10 08:55:13 · 279 阅读 · 0 评论 -
centos7离线安装支持容器的GPU环境
前言有时生产环境无法连外网,为了让AI应用以容器的方式在GPU机器上跑起来,有很多软件要安装,软件的依赖关系较麻烦,这里将一次可行的安装过程记录下。一些说明物理机只需安装nvidia驱动,不用装cuda,镜像里面有就可以了。为了让docker容器的nvidia穿透到宿主机上需要安装下面四个插件。注意安装这几个插件后要执行 systemctl restart docker 重启docker服务才行。yum install nvidia-container-toolkit-1.7.0-1.x86_原创 2022-02-18 19:07:04 · 1388 阅读 · 0 评论