2019-08-19 17:56:03 weixin_38742571 阅读数 836

如今,人工智能技术已经成为国家战略,无人超市、人脸识别、自动驾驶、智能家居等“黑科技”正逐渐成为现实。

像云计算、大数据、深度学习、算法、语音识别、技术机器人技术等作为人工智能的技术储备,都离不开Python、Java、C++等编程语言的支撑。

而当下热门的Python被认为是现阶段人工智能技术的首选编程语言。因此想入门人工智能领域,需要从Python入手(下图来自拉勾网2019年8月8日数据)
在这里插入图片描述
Python工程师月薪高达15K以上,那Python工程师主要做什么?Python工程师未来前景如何?
请看下方视频,来听听知名技术作家李刚老师怎么说

Python编程 行业分析与课程简介

李刚老师出版的《疯狂Java》系列图书曾得到市场的广泛认可,经过多次再版,已被多家高校选作教材。上方视频来自于李刚老师的在线视频课程《21天通关Python》第一章第一节 Python行业分析。

大家都有学习Python的困惑,今天就给大家推荐一本巨有影响力的Python实战书,上线时间仅2个月,就超越了众多实力派,成京东和当当网上的长期畅销图书,并且收获了3.4W的五星好评。

这本书可谓是笔者独家私藏图书之一了,对我学习Python有着莫大的帮助,在京东上也常常"断货",这次拿出来给大家分享一下,希望能帮到大家。

《21天通关Python》视频课程以畅销图书为教材,由图书作者李刚亲自操刀讲解;上手门槛低,可作为0基础掌握Python教材;书籍+线上复合型学习场景特别适合Python小白学习!

点击查看课程:https://edu.csdn.net/bundled/detail/49?utm_source=jiansuopy1_10
(含图书邮寄+视频教程+社群答疑+导师带队)

笔者跟大家分享一个福利!下单时输入优惠码csdn66,立减20元,券后仅需99元!

扫码入Python技术交流群,可免费听技术讲座+领学习资料+视频课免费看
在这里插入图片描述

2018-04-18 21:01:12 xyisv 阅读数 4682

点击上面的目录链接可快速定位所需内容,点击每个文章链接可全文查看。

本页面一周一更新,无新文章不更新,上次更新2018年4月18日。


机器学习基本理论

基本术语与方法

机器学习术语表

机器学习领域权威会议与期刊整理

机器学习中一些模型为什么要对数据归一化?

机器学习数据集划分及交叉验证的选择

深度学习和经典机器学习对比

机器学习相似性度量(距离度量)

收敛性变量与多样性变量的区别

机器学习非平衡数据集概述

ROC曲线/AUC曲线与混淆矩阵介绍

高斯变异

监督学习与无监督学习

朴素贝叶斯分类器

最大互信息系数(MIC)详解

MIC(最大互信息系数)的计算

特征选择概述

特征选择的基本方法概述

特征选择与特征提取(降维)

特征选择方法与理解

多目标优化问题

多目标优化问题详解

Pareto最优解几点解释

多目标优化问题概述

多目标进化算法的一般流程

非支配排序算法通用MATLAB代码


分类算法、经典算法

分类算法包括KNN、SVM算法和聚类算法、当然像遗传算法、PSO算法都是很流行的。

分类算法

决策树概述

朴素贝叶斯分类器

KNN算法概述

KNN算法MATLAB实现

MATLAB中SVM(支持向量机)的用法

Python支持向量机(SVM)实例

NSGA2算法

NSGA-II多目标遗传算法概述

NSGA2算法MATLAB实现(能够自定义优化函数)

NSGA2算法特征选择MATLAB实现(多目标)

NSGA-Ⅱ算法Matlab实现(测试函数为ZDT1)

NSGA-Ⅱ算法C++实现(测试函数为ZDT1)

NSGA-II快速非支配排序算法理解

随机固定分组合作协同进化NSGA2算法(CCNSGA2)

粒子群优化算法(PSO)

MATLAB粒子群优化算法实现(PSO)

粒子群优化(PSO)算法概述

Python粒子群优化算法实现(PSO)

随机固定分组合作协同进化PSO算法(CCPSO)

PSO算法特征选择MATLAB实现(单目标)

基于柯西和高斯分布的单目标PSO

聚类算法

k-means算法概述

MATLAB工具箱k-means算法

蚁群算法(ACO)

蚁群算法(ACO)最短路径规划(MATLAB)

蚁群算法(ACO)MATLAB实现

其它算法

模拟退火算法(SAA)C语言与MATLAB实现

变邻域搜索算法(Variable Neighborhood Search,VNS)


前沿算法

本部分展现的论文中讨论和提出的机器学习算法。

NSGA2算法

NSGA-II多目标遗传算法概述

NSGA2算法MATLAB实现(能够自定义优化函数)

NSGA2算法特征选择MATLAB实现(多目标)

NSGA-Ⅱ算法Matlab实现(测试函数为ZDT1)

随机固定分组合作协同进化NSGA2算法(CCNSGA2)

NSGA-Ⅱ算法C++实现(测试函数为ZDT1)

前沿PSO算法

基于粒子交互学习策略的PSO算法(IIL-PSO)

基于柯西和高斯分布的单目标PSO

多目标CSO算法(MOCSO)理解

差分分组算法

差分分组合作协同进化MATLAB代码

差分分组的合作协同进化的大规模优化算法概述

一个更快更准确的差分分组大规模黑盒子优化算法概述

其它算法

超启发式算法

马尔科夫毯(Markov Blankets)

变邻域搜索算法(Variable Neighborhood Search,VNS)

基于VNS及马尔科夫毯分组的高维特征选择算法

自我评价算法(SEE)框架


演化计算算法

演化计算是模拟自然界中的生物的演化过程产生的一种群体导向的随机搜索技术和方法。

基于粒子交互学习策略的PSO算法(IIL-PSO)

粒子群优化(PSO)算法概述

Python粒子群优化算法实现(PSO)

基于柯西和高斯分布的单目标PSO

多目标CSO算法(MOCSO)理解

演化计算基本方法与思想

基于量子遗传的函数寻优算法MATLAB实现

人工鱼群算法MATLAB实现

蚁群算法(ACO)最短路径规划(MATLAB)

蚁群算法(ACO)MATLAB实现


协同进化/演化

协同演化算法(coevolutionary algorithms,CEA)是当前国际上计算智能研究的一个热点,它运用生物协同演化的思想,是针对演化算法的不足而兴起的,通过构造两个或多个种群,建立它们之间的竞争或合作关系,多个种群通过相互作用来提高各自性能,适应复杂系统的动态演化环境,以达到种群优化的目的。

合作协同进化算法概述(Cooperative Coevolution)

广义协同进化算法概述

合作协同进化详解及伪代码

随机固定分组合作协同进化NSGA2算法(CCNSGA2)

随机固定分组合作协同进化PSO算法(CCPSO)

差分分组合作协同进化MATLAB代码

差分分组的合作协同进化的大规模优化算法概述


python机器学习

python机器学习只适合做小规模的算法和简单神经网络,适合入门新手学习,由于Python的效率极低,一般前沿研究中不使用Python进行大数据学习。因此下面很多算法是基于Python模块编写的机器学习代码。

Python支持向量机(SVM)实例

Python机器学习房价预测 (斯坦福大学机器学习课程)

Python粒子群优化算法实现(PSO)

NLTK在python中对文字所表达的情感预测

Python机器学习与拼写检查器

Python英文搜索引擎(模糊搜索)

基于词典的社交媒体内容的情感分析(Python实现)


深度学习神经网络

深度学习的概念源于人工神经网络的研究。含多隐层的多层感知器就是一种深度学习结构。深度学习通过组合低层特征形成更加抽象的高层表示属性类别或特征,以发现数据的分布式特征表示。

深度学习和经典机器学习对比

神经网络模型详解


特征选择算法

特征选择( Feature Selection )也称特征子集选择( Feature Subset Selection , FSS ),或属性选择( Attribute Selection )。是指从已有的M个特征(Feature)中选择N个特征使得系统的特定指标最优化,是从原始特征中选择出一些最有效特征以降低数据集维度的过程,是提高学习算法性能的一个重要手段,也是模式识别中关键的数据预处理步骤。对于一个学习算法来说,好的学习样本是训练模型的关键。

机器学习如何做特征选择实验

特征选择方法与理解

特征选择的基本方法概述

特征选择与特征提取(降维)

SFS与SBS特征选择算法

基于MIC(最大互信息系数)的特征选择

NSGA2算法特征选择MATLAB实现(多目标)

PSO算法特征选择MATLAB实现(单目标)

基于VNS及马尔科夫毯分组的高维特征选择算法

2019-07-02 09:19:03 cp_oldy 阅读数 1065


视频链接


1. Anomaly Detection 异常检测

novelty, exception, outlier

异常检测不能看做二分类的原因

  • 异常类不止1类
  • 异常类样本难收集

2. Attack & Defense 攻击和防御

Motivation:

  • labs->real world
  • robust
  • malicious attack

L-infinity 适合图像攻击
d(x0,x)=x0x=max{Δx1,Δx2,Δx3, }d(x^0, x') = ||x^0-x'||_{\infty} = \max{\{\Delta x_1, \Delta x_2, \Delta x_3, \cdots\}}

L2范数不适合图像攻击的小例子,每个像素修改一点和一个像素修改很多,L2范数变化完全一样,但是视觉效果相差很大。

物理世界中的攻击需要考虑更多

针对人脸识别系统的“眼镜”攻击:物理世界的限制

  • 有效性(多角度有效)
  • 鲁棒性(不是像素,是色块,可被相机捕获)
  • 可行性(可打印颜色);

针对交通标志的攻击:【自动驾驶】贴一些小补丁,让系统认为是另一种标志。

Defense 防御
防御很难。
weight regularization, dropout, model ensemble对对抗攻击不能够完全防住。

防的两种策略:

  • 被动防御: 异常检测的特例。
  • 主动防御: 训练时加入防御。

被动防御

  1. filter
  2. scale
    这些策略,不会对正常图片有很大的影响;对攻击图像有效果。

主动防御

思想:找出漏洞,补起来。
在训练过程中,把攻击数据作为数据,进行数据增强加到训练数据中,不停迭代,对之前发现的漏洞进行补劳。

但是,防御仍然很难。假如你的防御是针对攻击A,那可能对攻击B防御效果不好。


3. Explainable ML 可解释学习

可解释学习就是,不仅要让模型知道图片是一只猫,还要让模型知道为什么图片是一只猫。

常见应用:录用员工、罪犯假释、拒绝贷款、医疗诊断

遇到错误怎么办?

unexplainable ML:暴力调参
explainable ML:根据解释改变模型

可解释学习 ≠ 完全可解释

深度学习是黑盒子不可解释,但是人脑也是黑盒子。所以,可解释学习的目标是让人觉得舒服(爽)。

explainable v.s. powerful

模型指标 可解释 不可解释
能力强大 决策树 深度模型
能力有限 线性模型 -

local explanation:

object X \Rightarrow Components: {x1,...,xn,...x_1, ..., x_n, ...}

判断局部重要性的简单思想:去掉修改某一个部分。

方法1:
例如用灰色图片来覆盖狗,车,人的某一个部分,然后看预测的准度。

注意: 灰色方块的大小很重要,颜色也很重要。不同的指标得到的结果不同。

方法2:
计算扰动对结果的影响,即计算梯度。
ykxn|\frac{\partial y_k}{\partial x_n}|,得到
显著性图。

方法缺点:梯度饱和;解决方法:integrated gradient

攻击解释性?!

vanilla gradient / Deep LIFT
加入一些noise,让分类结果不变,但是saliency map变化很大。

global explanation:

Question: what do you think a cat look like?

Activation Maximization激活最大化
找到使得类别输出激活最大的图像输入。
在这里插入图片描述
可能令人很失望!!!

在这里插入图片描述
加入“长得像数字”正则项。

用可解释模型去解释不可解释模型

  • 显然,线性模型是可解释的。问题:线性模型并不能够模拟神经网络。

退而求其次,我们只模拟黑盒子的一部分。举例的方式是LIME。先确定一个要分析的数据点,然后在附近采样一些点,然后用可解释的模型(如线性模型)来拟合这些数据。

  • 用决策树来解释神经网络。问题:我们不希望树太大。

很神奇!!!训练一个知道自己要被decision tree解释的network,然后控制他的深度。Tree regularization,用一个网络,输入是网络的参数,输出是解释该网络的树的复杂度。

4. 终身学习

Life Long Learning (LLL)
continuous learning, never ending learning, incremental learning

要做到终身学习,需要有以下几个要求:

  • knowledge retention 知识保持:不固执
  • knowledge transfer 知识迁移
  • model expansion 模型扩展:有效率扩展

Catastrophic Forgetting 灾难性遗忘

在这里插入图片描述
模型会忘记知识,比如在task1上训练的模型,继续在task2上微调之后,对第一类的分类精度会降低很多。这在ZSL到GZSL的扩展当中,也会出现。

奇怪的地方:先学任务1再学任务2会忘记知识,但是同时学任务1和任务2效果还不错。

LLL的上界是多任务学习!!!

elastic weight cosolidation (EWC)
basic idea: 和旧知识相关的权重不修改,只修改不重要的权重。每个权重有一个守护bib_ibib_i可以是权重的二次微分。
参考方法:SI,MAS(不需要标注)

life long learning和transfer learning的区别

在这里插入图片描述
也就是说,其实gzsl属于lll的范畴。

future work

以上只讨论了任务学习的个数,并没有讨论任务学习的顺序。一个新的方向就是curriculum learning,针对难易不同的任务,学习顺序不同。

5. 元学习

元学习和机器学习的区别:
机器学习:根据数据找一个函数f的能力
f(x)=‘cat’
元学习:根据数据找一个找一个函数f的函数F的能力
F(X)=f*

三步走

  1. 收集训练任务和测试任务(验证集)
  2. 评估F的方式
    Defining the goodness of a function F
    L(F)=n=1NlnL(F) = \sum_{n=1}^{N} l^n
    把N个任务的loss相加。
  3. 选择合适的F*

MAML和pre-training

MAML是要找到一个初始化的参数ϕ\phi,经过训练后能够找到最好的θn\theta^n对每个任务效果好。关注的好的初始点,重点在训练之后
pre-training是要找到一个初始化参数ϕ\phi对所有任务效果好。关注的是现在的效果,不继续训练

MAML、Reptile、Pre-train

在这里插入图片描述

2018-02-22 21:49:44 u011626960 阅读数 3087

介绍机器学习相关,大致了解什么是机器学习,以及机器学习分类、基本用途。













完整版请下载PDF

http://download.csdn.net/download/u011626960/10255071

2017-04-14 22:47:34 hicheney 阅读数 2015

机器学习概述

@(机器学习)

什么是机器学习?

机器学习主要是研究如何使计算机从给定的数据中学习规律,即从观测数据(样本)中寻找规律,并利用学习到的规律(模型)对位置或无法观测的数据进行预测。

机器学习基本概念

1、机器学习算法类型

  根据训练数据提供的信息以及反馈方式的不同,可以分为:
* 有监督学习(Supervised Learning):每组训练数据都有一个明确的标签和结果,利用这些已知的数据来学习模型的参数,使得模型预测的目标标签和真实标签尽可能接近。涉及的应用:预测房屋的价格,股票的涨停,垃圾邮件检测。神经网络也是一种监督学习的方式。常见算法有逻辑回归(Logistic Regression)和反向传递神经网络(Back Propagation Neural Network)。根据目标标签的类型不同,又可以分为:
* 回归(Regression)问题:目标标签y是连续值(实数或连续整数),f(x)的输出也是连续值。
* 分类(Classification)问题:目标标签y是离散的类别(符号)。在此问题中,通过学习得到的决策函数也叫分类器

这里写图片描述

  • 无监督学习(Unsupervised Learning):学习的数据不包含目标标签,需要学习算法自动学习到一些有价值的信息。一个典型的问题就是聚类,常见算法包括Apriori算法以及k-Means算法。

这里写图片描述

  • 半监督学习(Semi-supervised Learning):少量有目标标签的样本和大量没有目标标签的样本。先试图对未标识数据进行建模,在此基础上对标识的数据进行预测,如图论推理算法或者拉普拉斯支持向量机等。

这里写图片描述

  • 强化学习(Reinforcement Learning):输入数据直接反馈到模型,模型必须立刻做出调整。也就是常说的从经验中总结提升。常见的应用场景包括动态系统以及机器人控制等,Google的AlphaGo就是运用了这种学习方式。算法本身会总结失败和成功的经验来达到很高的成功率。常见算法包括Q-Learning以及时间差学习(Temporal difference learning)。

这里写图片描述

  • 遗传算法(Genetic Algorithm):模拟进化理论,适者生存不适者淘汰,通过淘汰机制选择最优化的模型。

这里写图片描述

  在企业数据应用的场景下, 人们最常用的可能就是监督式学习和非监督式学习的模型。 在图像识别等领域,由于存在大量的非标识的数据和少量的可标识数据, 目前半监督式学习是一个很热的话题。 而强化学习更多的应用在机器人控制及其他需要进行系统控制的领域。

2、风险函数与损失函数

  我们需要建立一些准则来衡量决策函数的好坏,一般是定义一个损失函数L(y,f(x,θ)),然后在所有的训练样本上来评价决策函数的风险。

损失函数

  给定一个实例(x,y),真实目标是y,机器学习模型预测的结果为f(x,θ),损失函数就是用来估量模型的预测值和真实值的不一致程度,它是一个非负实值函数,损失函数越小,模型的鲁棒性就越好。损失函数是经验风险函数的核心部分,也是结构风险函数的重要组成部分。
常见的损失函数有如下几类:
* 0-1损失函数:0-1损失函数(0-1 loss function)是

L(y,f(x,θ))=={01if y=f(x,θ)if yf(x,θ)I(yf(x,θ))

* 平方损失函数:通常为线性回归的损失函数。
L(y,y^)=(yf(x,θ))2

  最小二乘法和梯度下降法都是通过求导来求损失函数的最小值。
* 最小二乘法:直接对L(y,f(x,θ))求导找出全局最小,是非迭代法;
* 梯度下降法:迭代法,先给定一个,然后向下降最快的方向调整,在若干次迭代之后找到局部最小。其缺点是到最小点的时候收敛速度变慢,并且对初始点的选择极为敏感。
* 交叉熵损失函数:对于分类问题,预测目标为y为离散的类别,模型输出f(x,θ)为每个类的条件概率。
  假设y{1,...,C},模型预测的第i个类的条件概率P(y=ix)=fi(x,θ),则f(x,θ)满足
fi(x,θ)[0,1]i=1Cfi(x,θ)=1

  f_y(x,\theta)可以看做真实类别y的似然函数。参数可以用最大似然估计来优化。考虑到计算问题,我们经常使用最小化负对数似然,也就是负对数似然损失函数。
L(y,f(x,θ))=logfy(x,θ)

  如果我们用one-hot向量y来表示目标类别c,其中只有yc=1,其余的向量元素都为0.
  负对数似然函数可以写为:
L(y,f(x,θ))=i=1Cyilogfi(x,θ)

  yi也可以看成是真实类别的分布,这样上面的公式恰好是交叉熵的形式,因此,负对数似然函数也常叫做交叉熵损失函数。
* Hinge损失函数:对于两类分类问题,假设yf(x,θ)的取值为{1,+1}。Hinge损失函数的定义如下:
L(y,f(x,θ))=max(0,1yf(x,θ))=|1yf(x,θ)|+.

风险函数

  • 经验风险Remp(θ),在已知的训练样本(经验数据)上计算得来。用对参数θ求经验风险来逐渐逼近理想的期望风险的最小值,这一原则我们称为经验风险最小化原则
  • 结构风险Rstruct(θ),在经验风险最小化的原则上加上参数的正则化,叫做结构风险最小化原则

3、常见的基本概念

数据

  所有能由计算机程序处理的对象的总称,可以是数字、字母和符号等。

特征

  在现实世界中,原始数据通常并不都是以连续变量或离散变量的形式存在的,我们首先需要抽取出一些可以表征这些数据的数值型特征,这些数值型特征可以表示为向量形式,也称为特征向量。

参数与超参数

  需要通过学习算法学习得来的就是参数。超参数是参数的参数。

特征学习

  如何自动地学习有效的特征也成为机器学习中一个重要的研究内容,也就是特征学习,也叫表示学习。特征学习分成两种,一种是特征选择,是在很多特征集合选取有效的子集;另一种是特征提取,是构造一个新的特征空间,并将原始特征投影到新的空间中。

样本

  按照一定的抽样规则从从全部数据中取出的一部分数据,是实际观测到的数据。

训练集和测试集

  一组样本的集合就称为数据集。为了检验机器学习算法的好坏,一般将数据集分成两部分:训练集和测试集。训练集用来进行模型学习,测试集用来进行模型验证。

正例和负例

  对于两类分类问题,常用正例和负例来分别表示属于不同类别的样本。

判别函数

  经过特征提取后,一个样本可以表示为k维特征空间中的一个点。为了对这些点进行分类,需要一些超平面来将这个特征空间分成一些互不重叠的子区域,使得不同类别的点分布在不同的子区域中,这些超平面就是判别界面。
为了定义这些超平面,就需要引入判别函数。假设变量zRm为特征空间中的点,这个超平面由所有满足函数f(z)=0的点组成。这里的的f(z)就是判别函数。

机器学习简介

阅读数 695

机器学习实践应用

阅读数 5279

没有更多推荐了,返回首页