机器学习
文章平均质量分 90
关于人工智能方面的读书/课程笔记以及实践总结
FlameAlpha
荒诞之余也常伴理性,不是吗?
展开
-
单类支持向量机(One-Class SVM)
minR,aR2+C∑i=1nξi subject to: ∥xi−a∥2≤R2+ξi for all i=1,…,nξi≥0 for all i=1,…,n\begin{array} { c } \min _ { \boldsymbol { R } , \mathbf { a } } \boldsymbol { R } ^ { 2 } + \boldsymbol { C } \sum _ { \boldsymb.原创 2020-06-10 18:05:10 · 9075 阅读 · 6 评论 -
sklearn 之 单类支持向量机(One-Class SVM)
这里先列出官方给出的使用高斯核(RBF kernel) one class svm 实现二维数据的异常检测:#!/usr/bin/python# -*- coding:utf-8 -*-import numpy as npimport matplotlib.pyplot as pltimport matplotlib.font_managerfrom sklearn import svmxx, yy = np.meshgrid(np.linspace(-5, 5, 500), np.lin原创 2020-06-04 17:55:44 · 3759 阅读 · 4 评论 -
Keras 之 自编码器(Auto Encoder)
这里以 fashion_mnist 数据集为例,先写出自编码器的基本实现代码如下:import osimport tensorflow as tfimport numpy as npfrom tensorflow import kerasfrom tensorflow.keras import Sequential, layersfrom PIL import Imagefrom matplotlib import pyplot as plttf.random原创 2020-06-01 11:27:37 · 1407 阅读 · 3 评论 -
Keras 之 多层感知机(MLP)
这里以 mnist 数据集为例,代码如下:import tensorflow as tffrom tensorflow.keras import datasets, layers, optimizers, Sequential, metrics# 设置GPU使用方式# 获取GPU列表gpus = tf.config.experimental.list_physical_devices('GPU')if gpus: try: for gpu in gpus:原创 2020-06-01 11:19:53 · 760 阅读 · 0 评论 -
Tensorflow 之 张量操作
改变形状通过 tf.reshape(x, new_shape),可以对张量的视图进行任意的合法改变x=tf.range(96)x=tf.reshape(x,[2,4,4,3])增删维度增加维度:增加一个长度为 1 的维度相当于给原有的数据增加一个新维度的概念,维度长度为 1,故数据并不需要改变,仅仅是改变数据的理解方式,因此它其实可以理解为改变视图的一种特殊方式。通过 tf.expand_dims(x, axis) 可在指定的 axis 轴前可以插入一个新的维度:x = tf.random.u原创 2020-05-28 17:45:09 · 1007 阅读 · 0 评论 -
Tensorflow 之 张量类型
常量类型在 Tensorflow 中任何变量都需要转换为 Tensorflow 可以识别的类型,当然作为变量的特殊形式(不可改变)常量需要使用 tf.constant 存储或转换为张量类型 tf.Tensor ,当然可能不太贴切,所以Tensorflow 也创建了函数 tf.convert_to_tensor 实现了一样的功能,以常见的类型为例:tf.constant(1) # 标量 shape 为 []tf.constant(1.2) # 标量 shape 为 []tf.constant(True翻译 2020-05-25 16:06:35 · 1432 阅读 · 0 评论 -
Tensorflow 之 CPU/GPU计算效率对比
import numpy as npimport matplotlibfrom matplotlib import pyplot as pltplt.close()# Default parameters for plotsmatplotlib.rcParams['font.size'] = 20matplotlib.rcParams['figure.titlesize'] = 20matplotlib.rcParams['figure.figsize'] = [9, 7]matp转载 2020-05-22 17:28:22 · 1853 阅读 · 0 评论 -
Keras 之 多层感知机的详细实现
本文中以 0~9 数字图片识别,首先准备图片数据,这里使用到的是 MNIST 数据集,借助 Keras 实现:import osimport tensorflow as tf # 导入 TF 库from tensorflow import keras # 导入 TF 子库from tensorflow.keras import layers, optimizers, datasets # 导入 TF 子库(x, y), (x_val, y_val) = datasets.mnist.load_da转载 2020-05-24 11:15:05 · 1096 阅读 · 0 评论 -
简单线性回归模型的 Python 实现
观察数据获取:def get_data(b = 0.089, w = 1.477, x_range=(-10.,10.), gauss=0.1): data = []# 保存样本集的列表 for i in range(100): # 循环采样 100 个点 x = np.random.uniform(x_range[0], x_range[1]) # 随机采样输入 x # 采样高斯噪声 eps = np.random.normal(0., gauss) # 得到模型的输出 y =转载 2020-05-18 18:03:41 · 709 阅读 · 0 评论 -
梯度提升机(Gradient Boosting Machine)之 LightGBM
随着大数据时代的到来,GBDT正面临着新的挑战,特别是在精度和效率之间的权衡方面。传统的GBDT实现需要对每个特征扫描所有数据实例,以估计所有可能的分割点的信息增益。因此,它们的计算复杂度将与特征数和实例数成正比。这使得这些实现在处理大数据时非常耗时。直接的想法是减少样本数据量和特征数。LightGBM 针对这两种操作提出来两个方法:基于梯度的单边采样(Gradient-based One-Side Sampling (GOSS)):当对样本进行采样时,为了保持信息增益估计的准确性,应该更好地保留那些原创 2020-05-16 14:23:36 · 12833 阅读 · 8 评论 -
梯度提升机(Gradient Boosting Machine)之 XGBoost
相对于随机森林使用 bagging 融合完全长成决策树,梯度提升决策树使用的 boosting 的改进版本 AdaBoost 技术的广义版本,也就是说是根据损失函数的梯度方向,所以叫做梯度提升(Gradient Boosting)。...原创 2020-05-12 09:32:41 · 2901 阅读 · 1 评论 -
主成分分析(Principal Components Analysis)
主成分分析PCA(Principal Component Analysis),作用是:聚类 Clustering:把复杂的多维数据点,简化成少量数据点,易于分簇降维:降低高维数据,简化计算,达到数据降维,压缩,降噪的目的PCA 的目的就是找到一个低维映射空间,使得数据映射后方差最大。理论实现:首先对样本空间为 ddd 维全部的数据中心化,使得均值为 0,即将所有的样本与样本均值相减获得新的样本:xi=xi−μ\mathbf { x } _ { i } = \mathbf { x } _ {原创 2020-05-10 18:36:04 · 1034 阅读 · 0 评论 -
线性判别分析(Linear Discriminat Analysis)
线性判别分析(Linear Discriminat Analysis)PCA找寻的投影向量力求找到使得特征点方差较大(也就是说散的比较开),与PCA所找寻的投影向量不同,LAD所找寻的投影向量具有下面两种特性:映射后不同类数据之间的中心点(均值点)相距较远映射后同类数据之间方差较小(分布比较集中)类似于一种聚类分析,但是却是一种监督学习算法。而PCA属于一种无监督学习算法。那么将LDA的主轴与PCA的主轴画出如下:可以看出实际上数据在映射在 LDA 的主轴上可分性更高。在下面的正文中的一原创 2020-05-09 11:40:22 · 690 阅读 · 0 评论 -
机器学习技法 之 终章(Final)
特征转换的技巧核技巧对于数值特征,使用一些映射函数 Φ\PhiΦ,将想要的特征转换嵌入进 kernel 运算里面,在 kernel 运算里面就包含了特征转换和在转换后空间上取内积。(numerous features within some Φ\PhiΦ: embedded in kernel KΦK_\PhiKΦ with inner product operation)。常用的核技巧...原创 2020-05-03 18:18:52 · 388 阅读 · 0 评论 -
机器学习技法 之 支持向量回归(SVR)
核逻辑回归(Kernel Logistic Regression)SVM 和 Regularization 之间的联系软间隔支持向量机的原最优化问题为:minb,w,ξ12wTw+C⋅∑n=1Nξn s.t. yn(wTzn+b)≥1−ξn and ξn≥0 for all n\begin{aligned} \min ...原创 2020-05-03 17:11:08 · 2452 阅读 · 0 评论 -
机器学习技法 之 矩阵分解(Matrix Factorization)
推荐系统这里用推荐系统的应用实例引出矩阵分解:现在有一个电影评分预测问题,那么数据集的组成为:{(x~n=(n),yn=rnm): user n rated movie m}\left\{ \left( \tilde { \mathbf { x } } _ { n } = ( n ) , y _ { n } = r _ { n m } \r...原创 2020-05-02 21:17:02 · 1926 阅读 · 2 评论 -
机器学习技法 之 径向基函数网络(RBF Network)
径向基函数网络(Radial Basis Function Network):就是将基假设函数进行线性聚合。径向基函数网络假设函数(RBF Network Hypothesis)先回顾一下高斯支持向量机(Gaussian SVM):gsvm(x)=sign(∑SVαnynexp(−γ∥x−xn∥2)+b)g _ { \mathrm { svm } } ( \mathbf { x } )...原创 2020-05-02 09:45:53 · 2147 阅读 · 0 评论 -
机器学习技法 之 深度学习(Deep Learning)
前面学习了基础神经网络算法,可以得知神经网络基本结构中:神经元(Node)的个数,层数(Layer),以及激活函数的类型和神经元之间的连接形式都是可以自己选择的,这就导致结构的多样性,那么如何选择呢?当然是视情况而定了。浅层与深层(Shallow versus Deep Neural Networks)浅(shallow)层以为着较少(few)的隐含层(hidden layers)。其意味着:...原创 2020-05-01 14:16:51 · 945 阅读 · 0 评论 -
机器学习技法 之 神经网络(Neural Network)
动机(Motivation)感知机的线性融合(Linear Aggregation of Perceptrons)中文中的感知器或感知机均指的是Perceptron 。将 Perceptrons 作为 Linear Aggregation 的基模型,搭配方式的网络结构图图如下所示:可以看出这里使用了两层的权重 wt\mathbf{w}_twt 和 α\alphaα,和两层的 sig...原创 2020-04-28 14:41:46 · 1159 阅读 · 0 评论 -
机器学习技法 之 聚合模型总结(Summary of Aggregation Models)
Blending Models(融合模型)Blending:指的是当已有丰富多样的 gtg_tgt 时,进行聚合(Aggregate)。(aggregate after getting diverse gtg_tgt)。常用的三种 Blending 模型如下:uniform : 是认为不同的 gtg_tgt 之间可能可以相互修正,从而提高稳定性(stability)。而 non-un...原创 2020-04-27 11:05:04 · 1694 阅读 · 0 评论 -
机器学习技法 之 决策树(Decision Tree)
决策树(Decision Tree) aggregation type blending learning uniform voting/averaging Bagging non-uniform linear &...原创 2020-04-26 19:26:23 · 645 阅读 · 0 评论 -
机器学习技法 之 梯度提升决策树(Gradient Boosted Decision Tree)
梯度提升决策树从名字看是由三个部分组成,这里的提升(Boosted)指的是 AdaBoost 的运用,现在先看一下后两个部分提升决策树(Adaptive Boosted Decision Tree)。原创 2020-04-26 19:25:27 · 798 阅读 · 2 评论 -
机器学习技法 之 随机森林(Random Forest)
森林顾名思义就是有很多树,这里的树当然就是决策树。实际上随机森林就是将 fully-grown C&RT decision tree 作为 bagging 基模型(base model)。random forest (RF) = bagging + fully-grown C&RT decision...原创 2020-04-26 19:23:53 · 1991 阅读 · 0 评论 -
机器学习技法 之 支持向量机(SVM)
机器学习中特征转换或利用是整个流程中的核心内容,这里介绍三个与之有关的三个主流技术:Embedding Numerous Features: how to exploit and regularizenumerous features? →\rightarrow→ inspires Support Vector Machine (SVM) model (如何挖掘利用众多特征和控制复杂度)C...原创 2020-04-24 10:50:55 · 1302 阅读 · 0 评论 -
机器学习技法 之 聚合模型(Aggregation Model)
聚合模型实际上就是将许多模型聚合在一起,从而使其分类性能更佳。aggregation models: mix or combine hypotheses (for better performance)下面举个例子:你有 TTT 朋友,他们对于股票涨停的预测表现为 g1,⋯ ,gTg_1,\cdots ,g_Tg1,⋯,gT。 常见的聚合(aggregation)方法有:sele...原创 2020-04-24 10:50:20 · 9215 阅读 · 1 评论 -
机器学习基石 之 三大学习原则(Three Learning Principles)
三大学习原则(Three Learning Principles)奥卡姆剃刀 ‘Occam’s razor’引用两个名言An explanation of the data should be made as simple as possible, but no simpler. —Albert Einsteinentia non sunt multiplicanda praeter n...原创 2020-04-24 10:47:53 · 1009 阅读 · 0 评论 -
机器学习基石 之 正则化(Regularization)与验证(Validation)
过拟合与欠拟合(under & over)欠拟合(underfitting): EinE_{\text {in}}Ein较高,EoutE_{\text {out}}Eout也较高。过拟合(overfitting): EinE_{\text {in}}Ein较低,EoutE_{\text {out}}Eout却较高。(例如数据中有噪声,却使用了高次多项式非线性转换,便会出现过拟合...原创 2020-04-24 10:47:30 · 1261 阅读 · 0 评论 -
机器学习基石 之 非线性转换(Nonlinear Transformation)
非线性转换(Nonlinear Transformation)前面讲了许多线性模型,但是假如数据并不是线性可分的,该如何处理呢?基本思路是将数据样本(特征)空间 X\mathcal{X}X 映射到 Z\mathcal{Z}Z 空间后,在 Z\mathcal{Z}Z 空间数据是线性可分的话,便可以在 Z\mathcal{Z}Z 空间上使用线性模型对数据分析。那么该映射叫做非线性特征转换 Φ\Ph...原创 2020-04-24 10:46:49 · 2315 阅读 · 0 评论 -
机器学习基石 之 多分类(Multi-Classification)
多分类(Multi-Classification)One-Versus-All (OVA) Decomposition以逻辑回归为例,其思路是将其中一类和剩下的类分开,做二分类,并对全部类做次操作,这样便有了K个逻辑回归分类器,只要取其中概率最大hypothesis所对应的分类作为分类结果即可。for k∈Yk \in \mathcal { Y }k∈Y , obtain w[k]\ma...原创 2020-04-24 10:46:26 · 953 阅读 · 0 评论 -
机器学习基石 之 逻辑回归(Logistic Regression)
逻辑回归(Logistic Regression)软性二分类(Soft Binary Classification)逻辑回归实际上是一种软性二分类(Soft Binary Classification),与 硬性二分类(Hard Binary Classification)的区别是数据一致,但是目标函数不同,软性二分类的目标是给出分类结果为正负样本的概率分别为多少,比如预测是否发放信用卡时,不...原创 2020-04-24 10:45:56 · 599 阅读 · 0 评论 -
机器学习基石 之 线性回归(Linear Regression)
线性回归(Linear Regression)理论实现最简单的想法是y≈∑i=0dwixiy \approx \sum _ { i = 0 } ^ { d } w _ { i } x _ { i }y≈i=0∑dwixi线性回归的假设函数为: h(x)=wTxh(\mathrm{x}) = \mathrm{w}^{T} \mathrm{x}h(x)=wTx。类似于 percept...原创 2020-04-24 10:45:27 · 745 阅读 · 0 评论 -
机器学习基石 之 机器学习实现与可行性(Feasibility)分析
前言正确的判断来自于经验,而经验来自于错误的判断。— Frederick P. Brooks本文为机器学习笔记文件,参考资料有《林轩田机器学习基石&技法》《机器学习》《吴恩达机器学习课堂》《神经网络与深度学习》《Sklearn 与 TensorFlow 机器学习实用指南》。什么是机器学习(Machine Learing)首先我们应该弄清楚什么是学习。learning: a...原创 2020-04-24 10:43:45 · 1982 阅读 · 4 评论