神经网络------------ML】
文章平均质量分 90
yichudu
code anything
展开
-
tensorflow 中的 gradient 与 optimizer
Optimizer.`minimize`(self, loss, global_step=None, var_list=None, ...)返回一个 train_op, 运用优化方法求损失函数的极小值. 它其实是以下两个 api(梯度计算与参数更新) 的封装. 当我们想在二者之间做一些自定义操作时, 就可以显式地分开调用原创 2023-07-12 15:29:20 · 1523 阅读 · 0 评论 -
Keras, high-level 的 Neural Network 框架.
一些特点:提供了对 tensorflow low-level api 的高级封装,用户代码更清爽, 简洁.各种新式trick都有,比如Batch normalization,PReLU等等架构灵活,model基于一层层的layer叠加,可插拔性十分强作者简介keras 之父, google brain 研究员 François Chollet, 他也参与了 TensorFlow 的框架研发.一般地, 在build()中创建参数, 在call()原创 2017-10-19 15:52:16 · 1415 阅读 · 0 评论 -
object detection in CV, Faster R-CNN
参考object-detection-guide原创 2021-02-07 16:20:06 · 185 阅读 · 0 评论 -
residual connection, 残差链接
背景更深的网络理论上会有更强的表达能力, 但实际训练中遇到的问题是层数加深后, 训练集误差不降反升.图: layer-20 与 layer-56 的比较, 后者训练集误差更大residual-connection标准实现图: 维度一样, 可以直接相加, 可以是 a+b, 或 tf.add(a,b), 是 element-wise 的op.维度变化论文给出了3中选择.A: ze...原创 2020-03-27 16:01:03 · 13876 阅读 · 0 评论 -
tf predict 模型的预测模式
训练模型就是为了让其作预测. 笔记如下.model_fn预测的原理是, tf 进程构建了预测 mode下的计算图, 然后从 model_dir 中恢复变量, 就绪后作预测.# _model_fn 定义def _model_fn(features, # This is batch_features from input_fn labels, # This is...原创 2020-01-08 15:28:36 · 3629 阅读 · 0 评论 -
tensorflow, 从指定ckpt中恢复variable
用途使用 tf.train.init_from_checkpoint(ckpt_dir_or_file, assignment_map) ,可以从ckpt中导入变量值, 不必自己 initialize.assignment_map描述了 ckpt_var -> current_var 的映射关系.普通 variable当变量不分片时, graph中的name形如shared_emb_...原创 2019-11-28 19:37:29 · 1653 阅读 · 0 评论 -
神经网络概述
简述人工神经网络,Artificial Neural Networks。它是一种模仿动物神经网络行为特征,进行分布式并行信息处理的算法数学模型。这种网络依靠系统的复杂程度,通过调整内部大量节点之间相互连接的关系,从而达到处理信息的目的。 一个神经网络可以表示为一个人工神经元的图,或者说节点和有向边,用来对突触建模。每个神经元是一个处理单元,它将连接到它的节点的输出作为输入。损失函数, l...原创 2017-05-04 14:00:50 · 2368 阅读 · 0 评论 -
神经网络中的多任务学习
简述需求背景 多任务学习的需求比较普遍, 比如给定一篇doc(如 博客, 微博, 短新闻) 的文本信息和数字信息(如 长度, 图片数, 发表日期), 来预测点赞, 转发, 点击率 等若干个回归值.为什么可以多任务训练 有些隐藏特征可以共用, 这是各output可以公用前几层的理论假设. 除了一石二鸟, 训练一次实现多种用途以外, 多个 output 之间也会相互平衡, 像正则项一样, 比单原创 2017-12-11 21:11:15 · 4582 阅读 · 0 评论 -
NLP 预处理及Keras组件
简述NLP 任务的常用处理就是 embedding, 就需要 text_2_sequence 这步预处理. Keras 提供了一些常用的封装, 用于NLP类型的神经网络. from keras.preprocessing import sequence, text, tensorflow 的API里也有它们, 位置在 tf.keras.Tokenizerkeras.prep...原创 2017-11-26 19:37:16 · 1803 阅读 · 0 评论 -
Attention, 神经网络中的注意力机制
简介最近两年,注意力模型(Attention Model)被广泛使用在自然语言处理、图像识别及语音识别等各种不同类型的深度学习任务中,是一个值得关注与深入了解的核心技术。人的注意力机制: 拿到一篇文章时, 会重点关注标题和段落首句, 期望快速得到关键信息. 人群中看到心动女生时, 虽然周围熙熙攘攘的人群都映在了在你的眼帘里, 但你关注的只有那位在意的人, 其他的人仿佛视而不见. 重点关注感兴原创 2017-12-25 11:43:01 · 9104 阅读 · 0 评论 -
tf custom estimator 与 feature column
简介官方 github 源文件例子见参考[2] .不同的神经网络是有共性的, 阶段上分train,eval,pred, 数据上分feature,label,batch_size, 所以官方提倡围绕 Estimator 类来编码, 整个程序由train_input_fn+Feature Columns+ my_model_fn 构成, 风格统一了, 就方便维护与多人交流.train_in...原创 2018-03-14 19:21:06 · 1746 阅读 · 0 评论 -
DSSM, 深度语义匹配模型
简介DSSM, Deep Semantic Similarity Model, 深度语义匹配模型, 它是基于深度神经网络的一项建模技术,可以将具有成对关系的, 不同类型的文本(e.g., < queries , documents > )投射到一个共同的低维语义空间中,进而完成后续的机器学习任务。Word Hashing当语料库规模很大时, vocabulary_si...原创 2017-12-03 19:14:02 · 8358 阅读 · 1 评论 -
tensorflow dataset 与 I/O
简述最简单的办法, 就是在 sess.run(feed_dict=xx) 填入feed_dict参数. 但数据量大到不方便全部放在内存中时, 需要流式输入, 并提供合理的batch_size.tf.datalow-level-api官方文档见这里.# createmy_data = [ [0, 1,], [2, 3,], [4, 5,],...原创 2018-03-13 11:42:16 · 425 阅读 · 0 评论 -
tensorflow (win10 & cuda &anaconda )安装
还是参见官网.以下命令在cmd窗口按顺序执行.2. IDE指定conda环境图2-1 在IDEA中指定对应的conda环境相比于cpu, gpu可以获得高至10倍的加速比!名词约定:图3-1 CUDA我的是1050 Ti.支持型号查看地址: 这里该段记录日期 2018/03/07 ++ + ++ ++ + ++visual studio中只安装 visual c++相关组件即可.cuda toolkit 9.0 安装包大小约1.5G.安装后会自动在 中添加它的路径.figure原创 2017-08-15 10:27:58 · 3089 阅读 · 2 评论 -
tensorflow hook 与 early-stopping
1.4 版本的文档见: https://tensorflow.google.cn/versions/r1.4/api_docs/python/tf/train/SessionRunHook目测要自己写: https://stackoverflow.com/a/46444183原创 2018-04-01 18:54:20 · 4241 阅读 · 0 评论 -
tensorflow logging
一次训练旷日持久, 所以我们需要必要的日志, 在 若干批次 训练后, 将当前的loss, 验证集上的 accuracy 等信息记录下来.常用类tf.logging.set_verbosity(tf.logging.INFO) 设计日志级别.tf.logging.info(msg, *args, **kwargs) 记录INFO级别的日志. args 是配合msg中的...原创 2018-03-28 13:44:30 · 6549 阅读 · 2 评论 -
网络表示学习
简述Network Representation Learning, 网络表示学习. 类似于word2vec, 目标是用低维、稠密、实值的向量表示网络中的节点, 方便下游计算.基本思想仍旧类比于word2vec. 使用DFS/BFS的搜索思想对图进行遍历, 得到一系列 sequence, 类比于语料库中的word sequence, 也就是doc或sentence. 参...原创 2018-06-20 17:02:31 · 1474 阅读 · 0 评论 -
Batch&Layer Normalization, 网络低层输出数据的正规化
1.简介Batch Normalization, 对每一层的输出, 在每一次 mini-batch 传播后做归一化处理, 通过减少上一层的输出变化来加速收敛. 好处: Batch Normalization 让我们可以使用更大的学习率,初值可以更随意。它起到了正则项的作用,在某些情况下,有它就不需要使用Dropout了。 2.原理3.常用库的相应方法3.1 kerasmodel.add(Batc原创 2017-11-15 14:45:59 · 5254 阅读 · 0 评论 -
tensorflow 模型的持久化
简介持久化的意义在于: 1. 可以保存训练的中间结果, 下次从断点开始继续训练. 2. 将模型的训练/预测/在线服务部署 独立开来. 如表格所示, 根据 model-api 与 save-format 的不同, 还有C12∗C12=4C21∗C21=4C_2^1*C_2^1=4种搭配. model-api save-format estimator ch...原创 2017-09-26 17:41:21 · 1027 阅读 · 0 评论 -
GAN 生成式对抗网络
GAN , Generative Adversarial Network, 生成式对抗网络.先介绍一下生成模型(generativemodel),它在机器学习的历史上一直占有举足轻重的地位。当我们拥有大量的数据,例如图像、语音、文本等,如果生成模型可以帮助我们模拟这些高维数据的分布,那么对很多应用将大有裨益。原创 2017-08-08 09:53:22 · 535 阅读 · 0 评论 -
tensorflow 实现游乐场的网络
图1 下面的tf程序用来搭建图中的网络结构, 并用同样的样本分布训练它.# 下面的tf程序用来搭建 playground 中的网络结构, 并用同样的样本分布训练它# http://playground.tensorflow.org/import tensorflow as tffrom sklearn.datasets import make_circlesfrom sklearn.mode原创 2017-08-16 20:21:02 · 1023 阅读 · 0 评论 -
tensorflow 仿真已知简单神经网络
图 1-1 待用tf仿真的已知网络结构"""用tf仿真一个已知的简单神经网络,网络的图片地址: http://img.blog.csdn.net/20170816081420914预期的结果使用ndarray计算, 与tf的输出结果作对比"""import tensorflow as tfimport numpy as npx_mat = [[1, 2]]w1_mat = np.原创 2017-08-16 08:25:29 · 679 阅读 · 0 评论 -
LSTM 简介
1.RNNRNN, Recurrent Neural Network, 循环神经网络. 图 1-1 循环神经网络可以将循环神经网络展开为普通神经网络来理解: 将其展开为多个同样网络的副本, 每个网络将信息传递给继任者. 图1-2 循环神经网络展开1.1 用途Q: 为什么需要循环? A:对读句子而言, 对当前词汇的理解并不是孤立的, 而是基于前文的, 所以神经元需要”记忆” 的功能.用途有:原创 2017-08-05 15:47:13 · 10565 阅读 · 1 评论 -
TensorBoard 计算图的可视化
tensorflow 配套的可视化工具, 将你的计算图画出来.当训练一个巨大的网络的时候, 计算图既复杂又令人困惑. TensorBoard 提供了一系列的组件, 可以看到 learning rate 的变化, 看到 objective function 的变化.tfboard 读取 tf 运行时你记下的 events files, 来进行可视化. 这些 events files 包含了你记下的 summary data, 它是 protobuffer 格式, 并非文本文件.原创 2017-08-30 09:31:50 · 6943 阅读 · 5 评论 -
tensorflow LSTM实现sin(x)预测
hi原创 2017-08-29 09:59:55 · 1803 阅读 · 0 评论 -
前馈神经网络
1.简介Feedforward Neural Network,简称前馈神经网络,是人工神经网络的一种。在此种神经网络中,每层神经元与下层神经元全互联, 神经元之间不存在同层连接与跨层连接。整个网络中无反馈,可用一个有向无环图表示。 2. BP逆误差传播算法误差逆传播算法, BP, error Back Propagation, 是种流行的神经网络训练算法, 可用于训练前馈神经网络.原创 2017-08-08 10:34:22 · 2787 阅读 · 0 评论 -
RNN 简介及LSTM,GRU实现
1. 简介RNN, Recurrent Neural Network, 循环神经网络. 与普通前馈网络最大的区别是, 网络节点在t时刻的输出不仅依赖于t时刻的输入, 还依赖前一时刻的输出与状态. 即 ht,ct=f(ht−1,ct−1,xt)h_t,c_t=f(h_{t-1},c_{t-1},x_t) hh 为cell 输出, cc 为cell 状态.2. time_step因为t, t-1原创 2017-09-25 11:32:59 · 925 阅读 · 0 评论 -
TensorFlow RNN 相关类与方法
RNN又包括LSTM, GRU等.1. RNNtensorflow.python.layers.base.Layer 类, 表示网络中的一层.tensorflow.python.ops.rnn_cell_impl.RNNCell(base_layer.Layer) 抽象类, 表示RNN中的一层. 叫作cell更形象.tensorflow.python.ops.rnn_cell_impl.M原创 2017-09-04 15:00:20 · 1269 阅读 · 0 评论 -
CNN for 图像与视觉
1.简介图像是二维的, 所以卷积, 池化用于提取特征比较直观. 2.LeNet-5LeNet-5 是一种典型的用来识别数字的卷积神经网络, 共有7层(不包含输入),每层都包含可训练参数(连接权重)。原创 2017-09-06 09:07:53 · 637 阅读 · 0 评论 -
深度学习概述
1.简述Deep Learning.为了克服神经网络训练中的问题,采用了与神经网络很不同的训练机制。传统神经网络中,采用的是back propagation的方式进行,简单来讲就是采用迭代的算法来训练整个网络,随机设定初值,计算当前网络的输出,然后根据当前输出和label之间的差去改变前面各层的参数,直到收敛(整体是一个梯度下降法)。而deep learning整体上是一个layer-wise的训练原创 2017-07-27 17:48:41 · 1070 阅读 · 0 评论 -
TensorFlow CNN 相关类与方法
卷积tf.nn.conv2d(input, filter, strides, padding, use_cudnn_on_gpu=None,data_format=None, name=None) 即tensorflow.python.ops.gen_nn_ops.conv2d(), Computes a 2-D convolution given 4-D input and filter t原创 2017-09-05 20:05:46 · 371 阅读 · 0 评论 -
CNN 卷积神经网络
#简介 的 # 卷积原创 2017-09-03 20:06:46 · 467 阅读 · 0 评论 -
适用多元素内容的融合模型
这篇博文是为了分享一个标题党鉴别的实践[1]. 这是一个融合的网络结构, 有语义信息, 有文章各元素的数字特征. 准确率达到了0.99诶.语义信息 title 和 正文的 embedding.文章元素的数字特征 文章长度主标题长度副标题长度段落个数 文中图片个数 图 文章中的网络结构图参考linked-in article, clickbaits-revisited-deep原创 2017-10-17 14:37:37 · 518 阅读 · 0 评论 -
TensorFlow 常用类与方法
在 graph 启动之前, 所有的 var 都可以看作 placeholder, 并没有实际, 具体的值去填充. 所以 session 就是一个让 graph launch 起来的机制.可分为多种, 如 模型的首层输入tensor, 计算得到的tensor, 构建的常量tensor, 及参与训练的 trainable tensor., 重置当前的张量图, 相当于清空所有的张量, 在 jupyter 中可以用到, 比如有些cell 执行过后不满意,就可抹掉执行效果.它也有自己的完全限定名.原创 2017-08-16 09:59:03 · 2283 阅读 · 2 评论 -
NLP 中的embedding layer
词汇是语料库的基本元素, 所以, 使用embedding layer来学习词嵌入, 将一个词映射成为固定维度的稠密向量. 有了这一步, 才能构造矩阵, 实现神经网络的前向传播. 如何使用?从头训练 就像word2vec一样, 这一层是可学习的, 用随机数initialize , 通过BP去调整.pre-trained + fine tuning 用其他网络(如 word2vec) 训练好的现原创 2017-10-29 16:14:30 · 4725 阅读 · 0 评论