深度学习和机器学习(一些笔记)
无
过动猿
这个作者很懒,什么都没留下…
展开
-
机器学习_pytorch_简单神经网络
文章目录回归问题分类问题快速搭建法保存提取批训练Optimizer优化器 回归问题 建立数据集 # 建立数据集 import torch import matplotlib.pyplot as plt x = torch.unsqueeze(torch.linspace(-1, 1, 100), dim=1) # x data (tensor), shape=(100, 1) y = x.pow(2) + 0.2*torch.rand(x.size()) # nois原创 2021-11-08 14:20:44 · 739 阅读 · 0 评论 -
机器学习_pytorch_高阶内容
文章目录GPU加速训练Dropout缓解过拟合批标准化 GPU加速训练 对数据集进行更改 对模型进行更改 两种方法: 1. .cuda() 2. device = torch.device("cuda" if torch.cuda.is_available() else "cpu") .to(device) Dropout缓解过拟合 net_dropped = torch.nn.Sequential( torch.nn.Linear(1, N_HIDDEN), torch.nn原创 2021-11-08 16:29:55 · 223 阅读 · 0 评论 -
机器学习_pytorch_高级神经网络结构_AutoEncoder自编码
文章目录AutoEncoder自编码1. 获取训练数据2. AutoEncoder模型3. 训练 AutoEncoder自编码 神经网络也能进行非监督学习, 只需要训练数据, 不需要标签数据. 自编码就是这样一种形式. 自编码能自动分类数据, 而且也能嵌套在半监督学习的上面, 用少量的有标签样本和大量的无标签样本学习. 1. 获取训练数据 自编码只用训练集就好了, 而且只需要训练 training data 的 image, 不用训练 labels. import torch import torch.nn原创 2021-11-08 15:42:47 · 297 阅读 · 0 评论 -
机器学习_数据获取
文章目录数据获取1.一些常见的机器学习现成数据集2.从哪获取数据集3.生成数据4.其他方法 数据获取 1.一些常见的机器学习现成数据集 MNIST:手写数据集 ImageNet:图片数据集,从图片搜索引擎上获得 AudioSet:音频数据集,youtube上的音频切片 Kinetics:人类行为数据集,youtube上的视频切片 KITTI:无人驾驶数据集,被相机记录到的一些交通场景 Amazon Review:评论数据集,亚马逊网站上的一些用户评论 SQuAD:问答数据集 LibriSpeech:有声读物原创 2021-11-16 16:07:13 · 1257 阅读 · 0 评论 -
机器学习_神经网络技巧
检验神经网络 将数据集分成训练集和测试集 交叉验证:数据集不足时,可使用交叉验证来测试 特征标准化 解决各特征之间因为量纲不同导致的各特征对结果影响的权重不同的问题 方法:min-max标准化、标准差标准化等 选择好特征 好特征:能使得我们更轻易的分辨出相应特征代表的类别的特征 删除特征的原则 (1)避免无意义的特征:比如对于两个类别来说,某个特征在两个类别上的数据分布基本一致,代表这个特征并不能对分类有什么帮助,需要删除。 (2)避免重复性的特征:比如对于距离来讲,“米”和“千米”虽然量纲原创 2021-11-08 12:58:52 · 514 阅读 · 0 评论 -
机器学习_pytorch_神经网络基础
文章目录numpy 和 torch 对比变量 Variable激励函数 numpy 和 torch 对比 numpy、torch的相互转换 import torch import numpy as np np_data = np.arange(6).reshape((2,3)) torch_data = torch.from_numpy(np_data) tensor2array = torch_data.numpy() print(np_data) print(torch_data) print(t原创 2021-11-08 13:29:55 · 689 阅读 · 0 评论 -
机器学习_sklearn_一般使用
文章目录通用学习模式sklearn 强大数据库sklearn 常用属性与功能 通用学习模式 1.导入需要的模块 2.获取数据 3.划分测试集和训练集 4.建立模型-训练-预测 # 1.导入模块 from sklearn import datasets from sklearn.model_selection import train_test_split from sklearn.neighbors import KNeighborsClassifier # 2.获得数据 iris = datasets.原创 2021-11-08 16:38:31 · 828 阅读 · 0 评论 -
机器学习_pytorch_高级神经网络结构_CNN
文章目录卷积神经网络CNN1. 获取数据集2. CNN模型3. 训练4. 取10个数据,看看预测的值对不对 卷积神经网络CNN 1. 获取数据集 import torch import torch.nn as nn import torch.utils.data as Data import torchvision # 数据库模块 import matplotlib.pyplot as plt torch.manual_seed(1) # reproducible # 初始化常量 EPO原创 2021-11-08 14:52:34 · 94 阅读 · 0 评论 -
机器学习_pytorch_高级神经网络结构_RNN
文章目录RNN(LSTM)循环神经网络(分类)1. 准备数据集(同CNN)2. RNN模型3. 训练RNN(LSTM)循环神经网络(回归)1. RNN模型2.训练 RNN(LSTM)循环神经网络(分类) 1. 准备数据集(同CNN) 2. RNN模型 RNN的整体流程: 1.(input0, state0) -> LSTM -> (output0, state1); 2.(input1, state1) -> LSTM -> (output1, state2); 3.... 4.(i原创 2021-11-08 14:57:26 · 411 阅读 · 0 评论 -
机器学习_sklearn_高级使用
文章目录正则化Normalization交叉验证Cross-validationLearning curve 检视过拟合validation_curve 检视过拟合保存模型 正则化Normalization from sklearn import preprocessing #标准化数据模块 import numpy as np #建立Array a = np.array([[10, 2.7, 3.6], [-100, 5, -2], [120, 2原创 2021-11-10 08:55:15 · 134 阅读 · 0 评论 -
深度学习第20天_项目1_fasttext原理
fastText原理剖析 fastText的模型架构 fastText的架构有三层:输入层,隐含层,输出层 输入层:是对文档embedding之后的向量,包含又N-gram特征 隐藏层:是对输入数据的求和平均 输出层:是文档对应标签 如下图所示: (1)N-gram的理解 a. bag of word(词袋) bag of word 又称为bow,称为词袋。是一种只统计词频的手段。 b. N-gram模型 但在很多情况下,词袋模型是不满足我们的需求的 例如:我爱她 和 她爱我 在词袋模型下,概率完全原创 2021-10-04 09:12:46 · 447 阅读 · 0 评论 -
深度学习第19天_项目1_文本分类的介绍
文本分类 文本分类的目的 回顾之前的流程,我们可以发现文本分类的目的就是为了进行意图识别 在当前我们的项目下,我们只有两种意图需要被识别出来,所以对应的是2分类的问题 可以想象,如果我们的聊天机器人有多个功能,那么我们需要分类的类别就有多个,这样就是一个多分类的问题。例如,如果希望聊天机器人能够播报当前的时间,那么我们就需要准备关于询问时间的语料,同时其目标值就是一个新的类别。在训练后,通过这个新的模型,判断出用户询问的是当前的时间这个类别,那么就返回当前的时间。 同理,如果还希望聊天机器人能够播报未来原创 2021-09-30 09:04:26 · 252 阅读 · 1 评论 -
深度学习第18天_项目1_文本分词
文本分词 准备词典和停用词 (1)准备词典 user_dict_path = "C:/Users/dajian/PycharmProjects/pythonProject9/7.chat_service/corpus/user_dict/keywords.txt" jieba.load_userdict(config.user_dict_path) (2)准备停用词 stopwords_path = "C:/Users/dajian/PycharmProjects/pythonProject9/7.c原创 2021-09-26 09:36:34 · 132 阅读 · 0 评论 -
深度学习第17天_项目1_语料准备
语料准备 分词词典 最终词典的格式: (1)词典来源 a.各种输入法的词典 例如:https://pinyin.sogou.com/dict/cate/index/97?rf=dictindex 例如:https://shurufa.baidu.com/dict_list?cid=211 b.手动收集,根据目前的需求,我们可以手动收集如下词典 机构名称,例如:传智,传智播客,黑马程序员 课程名词,例如:python,人工智能+python,c++等 (2)词典处理 输入法的词典都是特殊格式,需要使原创 2021-09-26 08:23:15 · 203 阅读 · 1 评论 -
深度学习第16天_项目1_项目流程介绍
聊天机器人需求分析和流程介绍 需求分析 在黑马头条的小智同学实现聊天机器人,能够起到智能客服的效果,能够为使用app的用户就饿绝基础的问题,而不用额外的人力。 但是由于语料的限制,所以这里使用了编程相关的问题,能够回答类似:python是什么,python有什么优势 之类的问题。 效果演示 实现流程 (1)整体架构 整个流程的描述如下: a.接受用户的问题之后,对问题进行基础的处理 b.对处理后的问题进行分类,判断其意图 c.如果用户希望闲聊,那么调用闲聊模型返回结果 d.如果用户希望咨询问原创 2021-09-25 09:18:01 · 87 阅读 · 0 评论 -
深度学习第15天_项目1_走近聊天机器人
聊天机器人 目前企业中常见的聊天机器人 (1)QA BOT(问答机器人):回答问题 a.代表:智能客服 b.比如:提问和回答 (2)TASK BOT(任务机器人):帮助人们做事情 a.代表:siri b.比如:设置明天早上9点的闹钟 (3)CHAT BOT(闲聊机器人):通用、开放聊天 a.代表:微软小冰 常见的聊天机器人是怎么实现的 (1)问答机器人的常见实现手段 a.信息检索、搜索(简单,效果一般,对数据问答对的要求高) 关键词:tfidf、SVM、朴素贝叶斯、RNN、CNN b.知识原创 2021-09-25 08:33:25 · 120 阅读 · 0 评论 -
深度学习第13天_梯度爆炸和梯度消失
梯度消失 假设我们由四层极简神经网络:每层只有一个神经元 假设我们使用sigmoid激活函数,即f为sigmoid函数,sigmoid的导数如下图 假设每层都取得sigmoid导函数的最大值0.25时,x1=0.5,w1=w2=w3=0.5,那么在反向传播时 ∇w1<0.50.250.50.250.5*∇out = 1/2^7∇out 当权重初始过小或使用易饱和神经元(sigmoid,tanh…),sigmoid在y=0,1处梯度接近0,而无法更新参数,使神经网络在反向传播时也会呈现指数倍缩小,产原创 2021-09-24 10:06:33 · 96 阅读 · 0 评论 -
深度学习第12天_RNN实现文本情感分类
Pytorch中LSTM和GRU模块的使用 LSTM介绍 LSTM和GRU都是由torch.nn提供 (1)LSTM的api torch.nn.LSTM(input_size, hidden_size, num_layers, batch_first, dropout, bidirectional) a. input_size:输入数据的形状,即embedding_dim b. hidden_size:隐藏层的神经元数量,即每一层有多少个LSTM单元 c. num_layer:即RNN中的LSTM单元原创 2021-09-24 09:27:46 · 605 阅读 · 0 评论 -
深度学习第11天_循环神经网络RNN2
循环神经网络RNN 循环神经网络的介绍 为什么有了神经网络还需要有循环神经网络? 在普通的神经网络中,信息的传递是单向的,这种限制虽然是的网络变得更容易学习,但在一定程度上也减弱了神经网络模型的能力,特别是在很多限时任务重,网络的输出不仅和当前时刻的输入相关,也和过去一段时间的输出相关,此外,普通网络难以处理时序数据,比如视频、语音、文本等,时序数据的长度一般是不固定的,而前馈神经网络要求输入和输出的位数都是固定的,不能任意改变。因此,当处理这一类和时许相关的问题时,就需要一种能力更强的模型。 循环神经原创 2021-09-24 09:27:26 · 178 阅读 · 0 评论 -
深度学习第十天_文本情感分类
文本情感分类原创 2021-09-10 10:18:19 · 574 阅读 · 0 评论 -
深度学习第九天_循环神经网络
循环神经网络RNN基础 文本的tokenization (1)概念和工具的介绍 tokenization就是通常所说的分词,分出的每一个词语我们把它成文token 常见的分词工具有很多,比如: - jieba分词:https://github.com/fxsjy/jieba - 清华大学的分词工具THULAC:https://github.com/thunlp/THULAC-Python (2)中英文分词的方法 a.把句子转化为词语 比如:我爱深度学习可以分为[我,爱,原创 2021-09-05 10:53:59 · 138 阅读 · 0 评论 -
深度学习第八天_pytorch实现手写数字识别
使用pytorch实现手写数字识别 思路和流程分析 流程: (1)准备数据,这些需要准备DataLoader (2)构建模型,这里可以使用torch构造一个深层的神经网络 (3)模型的训练 (4)保存模型,后续持续使用 (5)模型的评估,使用测试集,观察模型的好坏 准备训练集和测试集 (1)torchvision.transforms的图形数据处理方法 a. torchvision.transforms.ToTensor i. 把一个取值范围是[0,255]的PIL.Image或者shape为原创 2021-09-05 09:28:52 · 489 阅读 · 0 评论 -
深度学习第七天_数据集
模型中使用数据加载器的目的 在前面的线性回归模型中,我们使用的数据很少,所以直接把全部数据放到模型中去使用。 但是在深度学习中,数据量通常都是非常多的,非常大的,如此大量的数据,不可能一次性的在模型中进行向前的计算和反向传播,经常我们会对整个数据进行随机的打乱顺序,把数据处理成一个个的batch,同时还会对数据进行预处理 数据集类的使用 Dataset基类介绍 在torch中提供了数据集的基类torch.utils.data.Dataset,继承这个基类,我们能够非常快速的实现对数据的加载 Datase原创 2021-08-07 10:45:18 · 275 阅读 · 0 评论 -
深度学习第六天_常见的优化算法
常见的优化算法介绍 梯度下降算法(BGD) 每次迭代都需要把样本都送入,这样的好处是每次迭代都顾及了全部的样本,做的是全局最优化 随机梯度下降法(SGD) 针对梯度下降算法训练速度过慢的缺点,提出了随机梯度下降算法,随机梯度下降算法是从样本中随机抽出一组,训练后按梯度更新一次,然后再抽取一组,再更新一次,在样本量极其大的情况下,可能不用训练完所有的样本呢就可以获得一个损失值在可接受范围之内的模型了 torch中的api为:torch.optim.SGD() 小批量梯度下降(MBGD) SGD原创 2021-08-05 09:26:17 · 144 阅读 · 0 评论 -
深度学习第五天_GPU上运行
在原创 2021-08-04 10:33:41 · 592 阅读 · 0 评论 -
深度学习第四天_线性回归
线性回归实现 下面,我们使用一个自定义的数据,来使用torch实现一个简单的线性回归 假设我们的基础模型就是y = wx+b,其中w和b均为参数,我们使用y = 3x+0.8来构造数据x,y,所以最后通过模型应该能够得出w和b应该分别接近3和0.8 准备数据 计算预测值y_predict 计算损失loss,把参数的梯度置为0,进行反向传播 更新参数 在这里插入代码片 ...原创 2021-08-04 09:48:55 · 366 阅读 · 0 评论 -
深度学习第三天_梯度下降和反向传播
梯度下降和反向传播 梯度 梯度:是一个向量,导数+变化最快的方向(学习的前进方向) 梯度下降 a.算出梯度∇w b.w = w-a*∇w 梯度<0,表示w将增大 梯度>0,表示w将减小 梯度就是多元函数参数的变化趋势(参数学习的方向),只有一个自变量时称为导数 反向传播 a.神经网络的计算图 wn[i,j]表示第n层第i个神经元,连接到第n+1层第j个神经元的权重 f可理解为激活函数,∇out为损失函数对预测值的导数 遇到分叉之后的结果需要相加,分叉之前导数相乘即可原创 2021-08-02 10:23:53 · 423 阅读 · 0 评论 -
深度学习第二天_pytorch入门
pytorch 张量Tensor a.各种数值数据称为张量 b.常数:scaler:0阶张量 c.向量:vector:1阶张量 d.矩阵:matrix:2阶张量 e.3阶张量 张量Tensor的创建 a.利用python中的列表或者序列创建tensor torch.tensor([[1,-1],[1,-2]]) b.使用numpy中的数组创建tensor torch.tensor(np.array([1,2,3],[4,5,6])) c.使用torch的api创建tensor (1)t原创 2021-07-31 10:07:56 · 135 阅读 · 0 评论 -
深度学习第一天_基本概念
深度学习的介绍 深度学习 机器学习的分支,人工神经网络位基础,对数据的特征进行学习的方法 机器学习和深度学习的区别 a.特征抽取: i.人工的特征抽取的过程 ii.深度学习:自动的进行特征抽取 b.数据量 i.机器学习:数据少,效果不是特别好 ii.深度学习:数据多,效果更好 应用场景 a.图像识别 i.物体识别 ii.场景识别 iii.人脸检测跟踪 iiii.人脸身份认证 b.自然语言处理技术 i.机器翻译 ii.文本识别 iii.聊天对话原创 2021-07-29 10:38:55 · 106 阅读 · 0 评论