深度学习(part1)--机器学习及深度学习基础
学习笔记,仅供参考,有错必纠
文章目录
- 深度学习
- 机器学习概述
- 机器学习常用框架--scikit-learn
- 特征处理
- 深度学习原理
- 单感知机
- 多层感知机
- 网络训练过程
- 常见激活函数
- 常见损失函数
- 梯度下降
- 深度学习中的3个概念
深度学习
机器学习概述
机器学习常用框架–scikit-learn
- scikit-learn算法地图
- scikit-learn常用API
sklearn.base
:所有估算器的基类;
sklearn.calibration
:预测概率的校验;
sklearn.cluster
:该模块包含了流行的无监督聚类算法;
sklearn.cluster.bicluster
:双聚类算法;
sklearn.covariance
:该模块提供了在给定一组样本点的情况下稳健地估计特征协方差的方法和算法,协方差估计与高斯图形模型理论密切相关;
sklearn.cross_decomposition
: 交叉分解;
sklearn.datasets
: 数据集;
sklearn.decomposition
: 该模块包括各种矩阵分解算法,包括PCA,NMF或ICA. 该模块的大多数算法可以被视为降维技术;
sklearn.ensemble
: 该模块包含用于分类,回归和异常检测的基于集成的方法;
sklearn.exceptions
: 该模块包含scikit-learn中使用的所有自定义警告和错误类;
sklearn.feature_extraction
:该模块用于提取原始数据的特征. 它目前包含从文本和图像中提取特征的方法;
sklearn.feature_selection
:该模块实现了特征选择算法. 它目前包括单变量滤波器选择方法和递归特征消除算法;
sklearn.gaussian_process
:该模块实现了基于高斯过程的回归和分类;
sklearn.linear_model
:该模块实现了广义线性模型. 它包括利用最小角度回归和坐标下降计算的岭回归,贝叶斯回归,套索和弹性网估计. 它还实现了Stochastic Gradient Descent相关算法;
sklearn.metrics
:评价指标. 该模块包括评分函数,性能指标和成对指标以及距离计算;
sklearn.model_selection
:模型选择. 评估估算器性能,调整估算器的超参数和学习曲线部分;
sklearn.naive_bayes
: 朴素贝叶斯. 该模块主要包含GaussianNB,MultinomialNB和BernoulliNB三种贝叶斯算法;
sklearn.neighbors
: 近邻算法;
sklearn.neural_network
: 神经网络模型. 该模块包括基于神经网络的模型;
sklearn.pipeline
:管道. 该模块实现了用于构建复合估计器的实用程序;
sklearn.preprocessing
: 预处理和规范化. 该模块包括缩放,居中,标准化,二值化和插补方法;
sklearn.svm
: 支持向量机. 该模块包括支持向量机算法;
sklearn.tree
: 决策树. 该模块包括用于分类和回归的基于决策树的模型;
sklearn.utils
: 工具. 该模块包括各种工具。
特征处理
对于大多数的机器学习算法和优化算法来说,将特征值缩放到相同区间可以使得获取性能更好的模型。就梯度下降算法而言,例如有两个不同的特征,第一个特征的取值范围为110,第二个特征的取值范围为110000。在梯度下降算法中,代价函数为最小平方误差函数,所以在使用梯度下降算法的时候,算法会明显的偏向于第二个特征,因为它的取值范围更大。在比如,k近邻算法,它使用的是欧式距离,也会导致其偏向于第二个特征。
常用的特征处理方法
- 归一化(normalization):通过特征的最大最小值将特征缩放到[0,1]区间范围内;
- 标准化(standardization):标准化是通过特征的平均值和标准差将特征缩放成 一个标准的正态分布,均值为0,方差为1。
sklearn中的标准化以及归一化方法
标准化:
from sklearn.preprocessing import StandardScaler
import numpy as np
cps = np.random.random_integers(0, 100, (100, 2))
ss = StandardScaler()
std_cps = ss.fit_transform(cps)
归一化:
from sklearn.preprocessing import MinMaxScaler
import numpy as np
data = np.random.uniform(0, 100, 10)[:, np.newaxis]
mm = MinMaxScaler()
mm_data = mm.fit_transform(data)
origin_data = mm.inverse_transform(mm_data)
- sklearn正则化
X = [[1, -1, 1],[2, 0, -3],[0, 1, -1]]from sklearn.preprocessing import normalize
l2 = normalize(X, norm='l2')
print('l2:', l2)from sklearn.preprocessing import Normalizer
normalizerl1 = Normalizer(norm='l1')
l1 = normalizerl1.fit_transform(X)
print('l1:', l1)
输出:
l2: [[ 0.57735027 -0.57735027 0.57735027][ 0.5547002 0. -0.83205029][ 0. 0.70710678 -0.70710678]]
l1: [[ 0.33333333 -0.33333333 0.33333333][ 0.4 0. -0.6 ][ 0. 0.5 -0.5 ]]
深度学习原理
单感知机
感知机是人工神经网络中的最小单元,单感知机是最简单的神经网络,然而,单感知机无法拟合“异或”运算。
多层感知机
神经网络又被称为多层感知机模型。
网络训练过程
- 正向传播
- 反向传播
- 梯度下降
常见激活函数
- sigmoid函数(Logistic 函数)
特点:(1)它可以将一个实数映射到(0,1)的区间;在特征相差不是特别大时效果比较好.
用法:通常用来做二分.
缺点: 激活函数计算量大(指数运算);反向传播时容易出现梯度消失(当数据分布在曲线平滑位置时很容易就会出现梯度消失).
- Tanh函数(双切正切函数)
特点:输出是以0为中心,取值范围为[-1,1];以认为是Sigmoid 函数的改进版.
用法:实际中tanh会比sigmoid更常用;循环神经网络中常用;常用于二分类问题.
缺点:梯度消失;在曲线几乎水平的区域学习非常的慢.
- ReLU函数(矫正的线性单元)
特点:大于0的部分输出为y=xy=xy=x,小于0的部分输出为0;ReLU对于梯度收敛有巨大加速作用,只需要一个阈值就可以得到激活值,从而节省计算量.
用法:深层网络中隐藏层常用.
缺点:容易得到0值,丢失该神经元对应的相关信息.
- SoftMax
特点: 当有多个输出的时候通过概率求得那个输出能够胜出.
用法: 用于多分类神经网络输出;用于多分类问题的最后一层.
缺点:基本只用于多分类问题.
- 线性激活函数(linear函数)
特点: 输入是什么,输出就是什么;没有做任何 非线性变换.
用法: 仅仅用于线性回归.
缺点:没有非线性变换,无法得到非线性特征;无法建立非线性模型.
常见损失函数
- Zero-one Loss(0-1损失)
- 交叉熵损失函数
- 均方误差(MSE)
梯度下降
批量梯度下降: 每次迭代使用全部样本.
随机梯度下降:每次迭代使用1个样本.
小批量梯度下降:每次迭代使用b个样本(b按照情况设置,一般为10).
深度学习中的3个概念
- Epoch
一个Epoch指将所有数据送入网络中完成一次前向计算及反向传播的过程,由于一个Epoch常常太大,计算机无法负荷,通常会将它分成几个较小的batches。
那么,为什么需要多个epoch呢?在训练时,将所有数据选代训练一次是不够的,需要反复多次才能拟合收敛。
- Batch Size
所谓Batch就是每次送入网络中训练的一部分数据,而Batch Size就是每个batch中训练样本的数量。
- Iteration
所谓Iteration就是完成一次epoch所需的batch个数。
深度学习(part1)--机器学习及深度学习基础相关推荐
- 大数据 深度 分页_机器学习、深度学习、大数据 ?傻傻分不清楚?
提起机器学习四个字,不知你的脑海中是否会有一丝印象?毕竟身处信息时代,在日常生活中,无论通过什么媒介,接触到这个名词概念的机会还是挺大的.与之类似,还有以下这些名词概念:数据分析.数据挖 掘.深度学习 ...
- 深度盘点:机器学习、深度学习面试知识点3W字汇总
作者丨Oldpan 来源丨oldpan博客,编辑丨机器学习社区 欢迎关注,专注学术论文.机器学习.人工智能.Python技巧 前言 最近这段时间正临秋招,这篇文章是我在那会找工作过程中整理的一些重要知 ...
- 机器学习、监督学习、非监督学习、强化学习传统机器学习、深度学习、迁移学习基本概念
文章目录 机器学习(machine learning) 监督学习(supervised learning) 非监督学习(unsupervised learning) 强化学习(reinforcemen ...
- [学习笔记] [机器学习] 7. 集成学习(Bagging、随机森林、Boosting、GBDT)
视频链接 数据集下载地址:无需下载 1. 集成学习算法简介 学习目标: 了解什么是集成学习 知道机器学习中的两个核心任务 了解集成学习中的 Boosting 和 Bagging 1.1 什么是集成学习 ...
- 1-1 机器学习和深度学习综述-paddle
课程>我的课程>百度架构师手把手教深度学习>1-1 机器学习和深度学习综述> 1-1 机器学习和深度学习综述 paddle初级课程 王然(学生) Notebook 教育 初级深 ...
- 认识:人工智能AI 机器学习 ML 深度学习DL
人工智能 人工智能(Artificial Intelligence),英文缩写为AI.它是研究.开发用于模拟.延伸和扩展人的智能的理论.方法.技术及应用系统的一门新的技术科学. 人工智能是对人的意识. ...
- 机器学习之深度学习入门
个人公众号 yk 坤帝 获取更多学习资料,学习建议 本文用浅显易懂的语言精准概括了机器学习的相关知识,内容全面,总结到位,剖析了机器学习的what,who,when, where, how,以及why ...
- 人工智能、机器学习、深度学习、神经网络概念说明
目录 1.机器学习的范围 2.机器学习的方法 2.1回归算法 2.2神经网络 2.3 SVM(支持向量机) 2.4聚类算法 2.5降维算法 2.6推荐算法 2.7总结 3 机器学习的分类 3.1 监督 ...
- 《神经网络与深度学习》邱希鹏 学习笔记(4)
<神经网络与深度学习>邱希鹏 学习笔记(4) 完成进度 第二章 机器学习概述 机器学习算法的类型 数据的特征表示 传统的特征学习 特征选择 特征抽取 深度学习方法 评价指标 理论和定理 P ...
最新文章
- DeepMind新突破!首次用深度学习从第一性原理计算分子能量
- 【原创】大数据基础之Spark(9)spark部署方式yarn/mesos
- hadoop3.2.0集群搭建的一些坑!
- java 基础知识巩固_Java基础巩固——《Java核心技术基础·卷一:基础知识》
- Oracle归档目录 和 DB_RECOVERY_FILE_DEST
- .net core linux安装
- 基于Linux命令行终端的ftp客户端程序
- update怎么同时改两个字段_[NewLife.XCode]高级增删改
- 【BZOJ4300】绝世好题,位运算相关DP
- 单链表的归并算法思路总结
- CentOS ifconfig无IP地址解决办法
- 程序员在跳槽时,该怎么说离职原因?
- ​EMNLP 2022 | 预训练语言模型的时空效率优化
- math_(函数数列)极限的含义误区和符号梳理/邻域去心邻域邻域半径
- vue判断当前浏览器为IE低版本,给出升级提示;IE11及其他浏览器正常使用
- 银行购房按揭贷款利息计算
- logit模型应用实例_最大似然估计(上)——离散选择模型之十
- MAC地址修改,注册表版
- 一个优秀IT专家的成长历程---献给所有的颓废或..
- 【面试题】给你一个项目,你准备怎么开展ui自动化
热门文章
- 知乎上砍手豪关于kaggle的观点(转载)
- 深度学习:卷积神经网络
- python matplotlib:figure,add_subplot,subplot,subplots讲解实现
- mysql case when then 函数_MySQL case when then 语句使用和时间函数使用
- mysql where从句_MySQL死锁系列-常见加锁场景分析
- JEPaas【按钮隐藏】根据单据状态值决定【添加明细】【删除】按钮的隐藏和显示
- Oracle中创建、修改、删除序列
- Kubernetes应用部署模型解析(原理篇)
- linux之权限管理_1
- Ehcache BigMemory: 摆脱GC困扰(转)