卷积神经网络的数学推导 | Youmi Tech Blog.

作者:JerryXia | 发表于 , 阅读 (0)
神经网络-
卷积神经网络(Convolutional Neural Network, CNN)是一种前馈神经网络,每个神经元都只影响邻层的一部分神经元,具有局部感受野,因此,网络具有极强的捕捉局部特征的能力;另一方面,通过权值共享和池化,显著地降低了网络的计算复杂度,使得CNN得到广泛应用。CNN是图像分类和语音识别领域的杰出算法,也是目前大部分计算机视觉系统的核心技术,从facebook的图像自动标签到自动驾驶汽车,乃至AlphaGo都在使用。与此同时,近两年CNN逐渐被应用于NLP任务,在sentence classification中,基于CNN的模型取得了非常显著的效果。
本文假设读者比较熟悉神经网络的相关知识,特别是反向传播算法的过程,从数学推导的角度来理解CNN的内部原理。
1 神经网络  神经网络是由多个感知器(神经元)构成的全连接的网络,本质上来说,这样的连接只是简单的线性加权和而已,所以每个神经元加上同一个非线性函数(如sigmoid,tanh等),使得网络能拟合非线性。通常,称这个非线性函数为激活函数。一个典型的全连接神经网络如下所示:
1.1 前向传导上图...阅读全文


Ansible Dynamic Inventory 的使用 | Youmi Tech Blog.

作者:JerryXia | 发表于 , 阅读 (0)
Ansible-运维-
Ansible 在使用的过程中,如果机器数量比较固定,且变更不多的情况下,可在 /etc/ansible/hosts 文件里面配置固定的组合机器IP,并给他起组的别名,执行 ansible 脚本便可以通过别名找到相应的机器。
[webservers]111.222.333.444 ansible_ssh_port=888假如你有很多台机器,且机器经常变更导致IP时常变换,你还想把IP逐个写入 /etc/ansible/hosts 就不现实了。你也许会问,若不把IP写进 /etc/ansible/hosts,那不是没法用 ansible 指挥这些机器?感谢 Ansible Dynamic Inventory, 如果我们能通过编程等手段获取变更机器的IP,我们还是有办法实现的。
Dynamic Inventory 的原理通过编程的方式,也就是动态获取机器的 json 信息;Ansible 通过解析这串 json 字符串;ansible -i yourprogram.py -m raw  -a 'cd /home'Ansible dDynamic Invento...阅读全文


Spark Streaming从读源码到放弃 | Youmi Tech Blog.

作者:JerryXia | 发表于 , 阅读 (0)
Spark-数据分析-
这篇文章来自于被 Spark Streaming 虐了2个月的我在拜读源码的过程中归纳出来的 Spark Streaming 中的知识, 尝试给大家解释一下 Spark Streaming 的在运行中实际发生了什么事情, 以助于 tunning 时不受制于框架的层层封装. 最佳的阅读方式是配合着 Spark Streaming 的源代码一起读, 因此我尽量加上了源代码的跳转:)
当然面向的是曾经用过 Spark Streaming 的读者, 如果大家没有用过, 我会尝试简单说明一下什么是Spark Streaming.
总的来说这次介绍 Spark Streaming 分为5个部分, 按照运行时发生的顺序, 分为如下:
DAG 的生成在 Driver 上启动 Streaming, 分发 Receiver在 Executor 上启动 Receiver Job数据流转定时 Batch  Job为了更好的说明, 我将以 github 上 spark 项目的 kafka spark streaming 的 wordcount作为例子.
三句话介绍什么是 Spa...阅读全文


Flume 实时收集日志 | Youmi Tech Blog.

作者:JerryXia | 发表于 , 阅读 (0)
Flume-日志-运维-
在分布式系统中,各个机器都有程序运行的本地日志,有时为了分析需求,不得不这些分散的日志汇总需求,相信很多人会选择 Rsync,Scp 之类,但它们的实时性不强,而且也会带来名字冲突的问题。扩展性差强人意,一点也不优雅。
现实中,我们就碰到了这样的需求:实时汇总线上多台服务器的 Nginx 日志。Flume 立功了。
Flume 简介Flume是一个分布式,可靠高效的日志收集系统,它允许用户自定义数据传输模型,因此可扩展性也强。也有较强的容错和恢复机制.以下是几个重要的概念
Event:Event 是 Flume 数据传输的基本单元。flume 以事件的形式将数据从源头传送到最终的目的。Agent:Agent包含 Sources, Channels, Sinks 和其他组件,它利用这些组件将events从一个节点传输到另一个节点或最终目的。Source:Source负责接收events,并将events批量的放到一个或多个Channels。Channel:Channel位于 Source 和 Sink 之间,用于缓存进来的events,当Sink成功的将...阅读全文

分布式配置管理平台的设计与实现

作者:JerryXia | 发表于 , 阅读 (0)
2016 年 12 月 02 日open_source随着业务的发展,应用系统中的配置通常会越来越多,常见的一些应用配置大致会有数据源配置,数据源组件配置,业务组件配置等,对于这类配置都会比较稳定且较少变化,通常会放在文件中随应用一起发布。但实际中会有某些配置信息变化有一定频率和规律,并且希望能够做到尽量实时,比如一些营销类,或活动类应用系统,若使用传统的配置文件,加上重新发布应用可能会有些不方便,因此,才有了分布式配置管理平台,旨在能更好地解决这类问题。本文将介绍相关细节,及一个轻量的开源实现diablo。
分布式配置平台的一些应用场景分布式配置,也即配置中心。通常有以下的场景或需求,可以需要考虑使用分布式配置:
对某些配置的更新,不想要重启应用,并且能近似实时生效;希望将配置进行统一管理,而非放入各应用的配置文件中;对于某些应用系统,其某些配置变更比较频繁,规律;通常配置中心也可作为在其他分布式应用中的感知组件,比如典型的Zookeeper;...阅读全文