Aiden Blog

机器学习篇 | BP 神经网络引入

BP 神经网络是指使用BP算法训练的前馈神经网络, 神经网络模型形如: 神经网络基本分位三部分 : 输入层对接样本的特征向量 中间包含0到多个隐含层 输出层对应预测结果 神经网络中的每一个神经节点都是一个神经元 常见的激活函数有sigmod, ReLU, tanh 单层神经网络主要用来解决线性可分的问题, 对于不可分的问题, 采用多层神经网络 BP 神经网...

机器学习篇 | 决策树介绍

决策树(Decision Tree)是一种简单但是广泛使用的分类器。通过训练数据构建决策树,可以高效的对未知的数据进行分类。 决策数有两大优点: 决策树模型可以读性好,具有描述性,有助于人工分析; 效率高,决策树只需要一次构建,反复使用,每一次预测的最大计算次数不超过决策树的深度。 决策树的基本流程 如上所示, 在基于递归模式的划分属性过程中, 在遇到以下三种情况会阻...

机器学习篇 | 多分类模型-Softmax

softmax 模型说明 对输入数据 $\lbrace (x_{1}, y_{1}), (x_{2}, y_{2}), …, (x_{m}, y_{m}) \rbrace$有$k$个类别, 即 $y_{i} \in \lbrace 1, 2, …,k \rbrace$, 那么 softmax 回归主要估算输入数据 $x_{i}$ 归属于每个类别的概率, 即 其中, $\theta...

机器学习篇 | 分类模型-逻辑回归 (Logistic Regression)

简单来说, 逻辑回归(Logistic Regression)是一种用于解决二分类(0 or 1)问题的机器学习方法,用于估计某种事物的可能性。 比如某用户购买某商品的可能性,某病人患有某种疾病的可能性,以及某广告被用户点击的可能性等。 逻辑回归虽然称为回归,实则是一个二分类模型。 sigmod 函数 逻辑回归的核心为sigmod 函数 : 对于逻辑回归任务,样本集可以分类正...

机器学习篇 | 机器学习常见距离汇总

对函数 dist(.,.), 若它是一个”距离度量”, 则需要满足一些基本性质 : 非负性 : $dist(x_i, x_j) \geq 0$ 同一性 : $dist(x_i, x_j) = 0$ 当且仅当 $x_i = x_j$ 对称性 : $dist(x_i, x_j) = dist(x_j, x_i)$ 直递性 : $dist(x_i, x_j) \leq dist...

Netty 教程 | Netty 框架结构介绍

介绍 : netty 作为 java 方面的网络通信框架一直在各个系统中被广泛应用。 在这里总结整理了下它的内部原理以及架构组织。 netty 主要用来应用在 socket 通信方面,其它基础方面的资料可以参考我之前的文档: 网络方面的资料可以阅读 : 网络部分相关. IO模型方面的资料可以阅读 : IO 的分类比较 Java NIO方面的应用可以阅读 : Java NI...

Linux 教程 | Linux 平台IO技术

用户空间以及内核空间概念 我们知道现在操作系统都是采用虚拟存储器,那么对32位操作系统而言,它的寻址空间(虚拟存储空间)为4G(2的32次方)。 操心系统的核心是内核,独立于普通的应用程序,可以访问受保护的内存空间,也有访问底层硬件设备的所有权限。为了保证用户进程不能直接操作内核,保证内核的安全,操心系统将虚拟空间划分为两部分,一部分为内核空间,一部分为用户空间。 针对linux操作系...

杂谈 | (Cloud Native)云原生的设计哲学

云原生一词已经被过度的采用,很多软件都号称是云原生,很多打着云原生旗号的会议也如雨后春笋般涌现。 云原生本身甚至不能称为是一种架构,它首先是一种基础设施,运行在其上的应用称作云原生应用,只有符合云原生设计哲学的应用架构才叫云原生应用架构。 云原生的设计理念 云原生系统的设计理念如下: 面向分布式设计(Distribution) :容器、微服务、API 驱动的开发; 面向配置...

C++ 教程 | C11 智能指针

由于 C++ 语言没有自动内存回收机制,程序员每次new出来的内存都要手动delete。程序员忘记delete,流程太复杂,最终导致没有delete,异常导致程序过早退出,没有执行delete的情况并不罕见。 对于编译器来说,智能指针实际上是一个栈对象,并非指针类型,在栈对象生命期即将结束时,智能指针通过析构函数释放有它管理的堆内存。所有智能指针都重载了operator->操作符,直...

C++ 教程 | C11 中的右值问题

左值与右值 左值和右值,最早是从 C 语言继承而来的。在 C 语言或者继承版本的解释中。 左值是可以位于赋值运算符=左侧的表达式(当然,左值也可以位于=的右侧) 右值是不可以位于赋值运算符=左侧的表达式。 对于这个经典的解释,我们有如下示例 int foo(42); int bar(43); // foo, bar 都是左值 foo = bar; bar = foo; ...