Zabbix 监控系统安装与简单设置
Zabbix 是一款开源免费的企业级监控软件,原作者是 Alexei Vladishev,编程语言是C(Server 端)和PHP(frontend),跨平台,可以用于集群网络监控、管理系统等。下面简单记录一下Zabbix服务的安装和利用Zabbix监控Linux服务器。服务器采用Ubuntu 18.04,把Zabbix Server 安装在box0,负责监控box1和box2等
安装Zabbix访问网址:Zabbix ,选择Install from Packages
选择系统(Choose your platform)这里选择 ZABBIX VERSION: 5.0 LTS, OS DISTRIBUTION: Ubuntu, OS VERSION: 18.04 (Bionic), DATABASE: MySQL, WEB SERVER: Apache
安装Zabbix 服务(Install and configure Zabbix server for your platform)注意:所有命令以 root 身份运行
安装Zabbix仓库(Install Zabbix repos ...
机器学习优化算法:从SGD到Adam
机器学习是实现人工智能的一种有效方法,当构建好模型后,需要使用优化器迭代学习模型参数,常用的有随机梯度下降法(SGD)和 Adam,下面总结一下各种的优缺点,并介绍一点优化器的演变过程。
随机梯度下降法 SGDSGD 是一种梯度下降算法,为什么叫做随机梯度下降呢,因为每次迭代都是随机选择一个样本,计算损失函数沿着负梯度方向求极小值,而梯度下降算法是将所有样本计算损失函数的平均,然后再计算损失函数沿着负梯度方向求极小值,通过链式法则一层一层依据梯度下降方向来更新模型参数。
SGD 的计算公式如下(与梯度下降算法相同):$$\Delta \theta_t = - \alpha \times g_t.$$这里,$\alpha$ 是学习率或步长,$g_t$ 是梯度方向,$\Delta \theta_t$ 是损失函数优化量,包含了优化迭代的方向和步长。优化变量公式如下:$$x = x + \Delta \theta_t.$$
SGD 的缺点如下:
容易陷入局部极值(这是梯度下降算法的通病,因为复杂模型的损失函数一般都不是凸函数,具有多局部极值)
遇到鞍点,模型无法更新参 ...
为 Conda 设置可用源
Python 是一个非常优秀的编程语言,特别是在数据科学和人工智能领域。对于从事人工智能,尤其是深度学习方向研究的科研人员、学生及其他爱好者来说,Python 是一款神器,这主要是归功于 Python 的各种功能包,如 Numpy, Sympy, Matplotlib, Pandas, Scikit-learn, Tensorflow, Pytorch 等,那么如何有效的管理(安装、删除、更新升级、降级到特定版本等)这些包非常的重要。
Python 常用的包管理工具有 Pip 和 Conda 等。
Pip 是标准的 Python 包管理系统,用于安装和管理由 Python 编写的软件包,大多数包能够从默认的包及其依赖项源(PyPI, Python Package Index)中找到。
Conda 是一个多功能软件包管理软件,它不仅可以管理 Python 包,也可以管理 R 语言包等,因实际使用中发现 Pip 安装包是总是出现不兼容,安装包失败问题,所以建议使用 Conda 来管理 Python 包。同时,建议使用 Miniconda 或 Ananconda 来安装 Python 和 ...
机器学习中的标准化和归一化方法
在机器学习实践中,经常会遇到对数据进行标准化、归一化等,那它与数学中的标准化、归一化、单位化有什么区别呢,python 包中如何实现这些标准化、归一化(或叫正则化)、单位化计算呢,还有哪些类似的计算方法呢,对于已知的数据集我该采用哪种标准化或归一化或单位化方法呢?这些问题一直是每一个机器学习从业者或学生们在实际工作中遇到的问题,而且网络上很多都介绍的不是很清晰,这里进行一个总结,以飨读者。
标准化、归一化、单位化的区别标准化 (Standardization)首先看到标准化使我想起在概率论中对随机变量 $\xi$ 的标准化$$z = \frac{\xi - \mu}{\sigma}.$$这里,$\mu$ 是随机变量 $\xi$ 的均值,$\sigma$ 是标准差。它也叫做 $z$-score,多翻译为标准分数(standard score)。 经过变换后,随机变量 $z$ 就是标准差为 1 的随机变量,因此,也可以叫做标准差归一化。需要注意的是,因为标准差的计算公式是使 $\xi - \mu$ 和 $\sigma$ 具有相同的量纲,所以, $z$ 是一个没有量纲的随机变量 ...
开源许可协议
开源许可协议有很多,常见的如:MIT, BSD, Apache, LGPL, GPL,它们之间的关系可以参见阮一峰的如何选择开源许可证?
该图是乌克兰程序员 Paul Bagwell 制作的分析图,阮一峰将其转化为中文版。此外,也可以参考GitHub提供的网站选择一个开源软件协议,英文版有Choose an open source license获取更多信息。下面对某些开源许可协议(证)进行介绍。
没有License没有 Licence 默认是被版权保护。想让大家使用,就需要选择一个合适的开源许可协议。
MITMIT 是最宽泛、最自由,没有任何限制。可以售卖、可以使用作者名促销等。
BSD相对自由,与 Apache 差不多,教 MIT 严格一些,不允许使用作者名促销,需要保护版权。
GPL最严格,基于 GPL 协议的代码而开发的代码,以及修改的代码,都必须遵守 GPL 协议发布。GPL 也包含不同的版本,对权力进行适当的放开,其中 GPL v3 是最严格的、最激进的,它也是 GPL 之父 Richard Stallman 不断在宣传和推进的开源许可协议。
GUNGNU 是 Le ...
有理函数的不定积分
有理函数的不定积分有理函数是指由两个多项式函数的商所表示的函数,其一般形式为
$$R(x) = \frac{P(x)}{Q(x)} = \frac{\alpha_0 x^n + \alpha_1 x^{n-1} + \cdots + \alpha_n}{\beta_0 x^m + \beta_1 x^{m-1} + \cdots + \beta_m},$$其中$n,m$为非负整数,$\alpha_0, \alpha_1,\cdots, \alpha_n$与$\beta_0,\beta_1, \cdots, \beta_m$都是常数,且$\alpha_0 \neq 0, \beta_0 \neq 0$.若$m > n$,则称它为真分式;若$m \leq n$,则称它为假分式。由多项式的除法可知,假分式总能化为一个多项式与一个真分式之和。多项式的不定积分容易求得,只需要关注真分式的不定积分。
根据代数知识,有理真分式必定可以表示成若干个部分分式之和(称为部分分式分解)。因而问题归结为求那些部分分式的不定积分。为此,先把如何分解部分分式的方法简述如下:
第一步 对 ...
LaTeX 数学符号
$\LaTeX$ 数学符号常用基本 $\LaTeX$ 书写
幂和下脚标1$x_1$ \quad $x^2$ \quad $e^{-\alpha x}$ \quad $x^3_{ij}$ \quad $e^{x^3}$ \neq $e^{3x}$
$$x_1 \quad x^2 \quad e^{-\alpha x} \quad x^3_{ij} \quad e^{x^3} \neq e^{3x}$$
开方1$\sqrt{x}$ \quad $\sqrt{x^2 + y^2}$ \qquad $\sqrt[3]{x}$ \quad $\surd[x^3 + y^3]$
$$\sqrt{x} \quad \sqrt{x^2 + y^2} \qquad \sqrt[3]{x} \quad \surd[x^3 + y^3]$$
上下水平线1$\overline{x + y}$ \qquad $\underline{x - ...
Centos 修改时区
Centos修改系统显示时间可以通过修改时区来做。常用的时区一般包含CST, UTC, GMT.
时区介绍CST:China Standard Time,即中国标准时间,又称北京时间。是我中国大陆的标准时间,比世界协调时快八小时(即UTC+8),与香港、澳门、台湾、马来西亚、新加坡等地的标准时间相同。
UTC:Coordinated Universal Time,即协调世界时。是最主要的世界时间标准,其以原子时秒长为基础,在时刻上尽量接近于格林威治标准时间,UTC + 8小时 = CST。协调世界时是最接近格林威治标准时间(GMT)的几个替代时间系统之一。对于大多数用途来说,UTC时间被认为能与GMT时间互换,但GMT时间已不再被科学界所确定。
GMT:Greenwich Mean Time,即格林威治平均时间。是指位于英国伦敦郊区的皇家格林威治天文台当地的平太阳时,因为本初子午线被定义为通过那里的经线。
查看时区下面介绍如何修改系统时间,假设Centos系统采用UTC时区,可以通过如下命令查看
1date
修改时区我们想要修改为北京时间,方法如下
使用timedate ...
一个脚本启动、关闭和查看大数据处理平台集群Zookeeper、Kafka等
对于分布式大数据处理框架,如Zookeeper、Kafka、Storm等,在启动、关闭、查看状态时都需要一个一个的去各节点机器上查看,效率非常低,这里给出一个脚本,用于管理大数据处理框架如Zookeeper集群,具体脚本代码参看我的GitHub网站:https://github.com/xujinzh/archive/tree/master/big-data
命令使用说明,这里假设Zookeeper集群部署在box0, box1, box2上,我们在本地可以通过ssh连接这些集群服务器。在本地运行shell脚本。注意,这里的脚本需要你修改为自己的启动参数,如用户名,启动初始位置等。可以通过vim zks-daemons.sh来修改相应内容。
12345678910111213(base) jinzhongxu@jinzhongxu-PowerEdge-R740:~/Documents/daemons$ ./zks-daemons.sh statusZooKeeper JMX enabled by defaultUsing config: /home/jinzhongxu/zook ...
Linux 关机和重启命令
重新启动 Linux 系统和关闭 Linux 系统推荐使用 shutdown 命令。下面分别介绍 Linxu 系统的重启和关机命令:shutdown, reboot, init, systemctl, halt, poweroff 等。本篇所有命令以 root 运行,普通用户需要使用 sudo.
shutdown该命令需要 root 权限,且功能比较强大,像 reboot,halt 等都是基于该命令。
shutdown 命令比较安全,使用该命令后,它会在系统关闭之前给系统上的所有登录用户一条警告。同时该命令搭配不同的参数,可以设置不同的重启操作。
该命令的一般格式: shutdown [选项] [时间] [警告信息]
选项的含义:
k: 并不真正关机而只是发出警告信息给所有用户
r: 关机后立即重新启动
h: 关机后不重新启动
f: 快速关机重启动时跳过fsck
n: 快速关机不经过init 程序
c: 取消一个已经运行的shutdown
rebootreboot 命令比较粗暴,重启系统时直接删除所有进程,不是平稳安全的关闭它们。但简单粗暴的它可以快速关闭系统。容易造成其他用 ...
机器学习神经网络模型loss和accuracy的理解
训练机器学习模型时,特别是使用 TensorFlow 进行训练神经网络模型时,在每一步(epoch,表示一个周期,即训练完所有训练集样本。假设训练集包含100000个样本,而batch_size设置为100,即一次输入100个训练样本,那么需要1000次迭代后就完成一次epoch,将所有训练样本训练一次)总是会出现loss是多少,accuracy是多少。
loss越低,模型越好(当模型没有过拟合时)。它不是一个百分比,而是一次epoch中训练集样本或验证集样本所有error的和。比如,在神经网络中,loss值一般是 negative log likelihood(分类问题)和 residual sum of squares(回归问题)。因此,模型的训练是通过减少loss为目的的,即最小化loss function,如神经网络中采用反向传播对模型参数求导。loss隐含着每一次优化迭代后模型表现的好坏。
accuracy是当模型的参数学习得到并固定后来计算得到的。通过比较真实标签和预测标签来确定的0-1损失。它是一个百分比值。
优化训练的目标是loss值,而不是accuracy,因为l ...