神经网络
关于神经网络的一些知识点
SimonChenHere
PhD Candidate,计算机本,人工智能硕,网络安全博。
展开
-
Textual Description for Visualization
《Automatic Annotation Synchronizing with Textual Description for Visualization》待更。论文翻译见下面链接https://blog.csdn.net/algzjh/article/details/109019170原创 2021-05-31 13:20:55 · 97 阅读 · 0 评论 -
LSTM block和cell区别
https://www.cnblogs.com/pomodoro/archive/2004/01/13/9272608.html原创 2020-12-26 17:14:55 · 606 阅读 · 0 评论 -
12个写论文必备的神经网络可视化工具
https://wemp.app/posts/9ee70a73-e840-49e0-909b-bed7ab020628原创 2020-10-17 23:41:43 · 494 阅读 · 0 评论 -
FLOPs & FLOPS
FLOPS 注意全部大写 是floating point of per second的缩写,意指每秒浮点运算次数。用来衡量硬件的性能。FLOPs 是floating point of operations的缩写,是浮点运算次数,可以用来衡量算法/模型复杂度。CUDA 中FLOPS的计算方法如下:(1)统计您每个线程的计算次数(2)将此值乘以您的线程总数(3)统计出总时间(利用profiler或者自己计时),将2中的值(所有线程的计算次数)除以计算时间,您将得到每秒的计算次数。(4)因为3中的值往原创 2020-10-04 10:19:38 · 374 阅读 · 0 评论 -
分组卷积/群卷积(Group Convolution)
群卷积最早出现于AlexNet中。是为了解决显存不够的问题,将网络部署在两张GTX 580显卡上训练,Alex认为group conv的方式能够增加 filter之间的对角相关性,而且能够减少训练参数,不容易过拟合,这类似于正则的效果。https://blog.csdn.net/hhy_csdn/article/details/80030468...转载 2020-10-03 10:20:09 · 1292 阅读 · 0 评论 -
Connectivity Matrices(连通矩阵)
通常将网络中每对节点之间的连通性表示为二维矩阵。在这个矩阵中,每一行和每一列对应一个不同的节点,位于第i行和第j列交叉处的矩阵元素表示节点i和节点j之间连接的信息。这种矩阵表示通常被称为连通矩阵(connectivity matrice)。https://zhuanlan.zhihu.com/p/152489442...转载 2020-10-03 10:12:09 · 3836 阅读 · 0 评论 -
消融实验
“消融研究”这一术语的根源于20世纪60年代和70年代的实验心理学领域,其中动物的大脑部分被移除以研究其对其行为的影响。在机器学习,特别是复杂的深度神经网络的背景下,已经采用“消融研究”来描述去除网络的某些部分的过程,以便更好地理解网络的行为。举例:举个例子:Girshick及其同事描述了一个由三个“模块”组成的物体检测系统:第一个使用选择性搜索算法提出图像区域,在该区域内搜索物体。进入一个大的卷积神经网络(有5个卷积层和2个完全连接的层),进行特征提取,然后进入一组支持向量机进行分类。为了更好.原创 2020-07-12 21:58:30 · 2294 阅读 · 0 评论 -
如何判断过拟合和欠拟合
当过拟合:在训练数据上的得分很高,在测试数据上得分相对比较低。欠拟合:在训练数据上得分比较低,在测试数据上得分相对低。原创 2020-06-21 22:59:48 · 5749 阅读 · 0 评论 -
反向传播和梯度下降的区分
梯度下降 是 找损失函数极小值的一种方法,反向传播 是 求解梯度的一种方法。> https://segmentfault.com/a/1190000019862084原创 2020-06-14 00:46:52 · 4324 阅读 · 0 评论 -
learning rate 学习速率
**在具体实践中,可通过查看损失函数值随时间的变化曲线,来判断学习速率的选取是合适的。****合适的学习速率,损失函数随时间下降,直到一个底部不合适的学习速率,损失函数可能会发生震荡。**...原创 2020-06-13 22:24:12 · 371 阅读 · 0 评论 -
梯度下降
沿着损失函数减小的方向移动,并再次计算梯度值,并重复上述过程,直至梯度的模为0,将到达损失函数的极小值点。这正是我们的目标原创 2020-06-13 22:09:31 · 121 阅读 · 0 评论 -
抑制过拟合的方法
首先必须明确,抑制过拟合的最好方法是增加训练数据,以下方法都是不能增加训练数据时候的辅助措施。原创 2020-06-13 20:49:36 · 636 阅读 · 0 评论 -
softmax多分类 整数编码
import matplotlib.pyplot as pltimport gzipimport numpy as npimport tensorflow as tfdef load_data(path,files): paths = [path+ each for each in files ] with gzip.open(paths[0], 'rb') as lbpath: train_labels = np.frombuffer(lbpath.read()原创 2020-06-12 02:00:04 · 260 阅读 · 0 评论 -
softmax多分类 onehot编码
import matplotlib.pyplot as pltimport gzipimport numpy as npimport osimport tensorflow as tfimport tensorflow.compat.v1 as tftf.disable_v2_behavior()import osos.environ[“CUDA_DEVICE_ORDER”] = “PCI_BUS_ID”os.environ[“CUDA_VISIBLE_DEVICES”] = “1”pr原创 2020-06-12 01:56:47 · 1197 阅读 · 0 评论 -
TENSORFLOW 指定使用GPU跑
#指定第4张import osos.environ["CUDA_DEVICE_ORDER"] = "PCI_BUS_ID"os.environ["CUDA_VISIBLE_DEVICES"] = "3"或import osos.environ["CUDA_DEVICE_ORDER"] = "PCI_BUS_ID"os.environ["CUDA_VISIBLE_DEVICES"] = "0,2,3" ,这样就指定了第1,3,4,张卡跑...原创 2020-06-12 01:55:35 · 1606 阅读 · 1 评论 -
在机器学习中为什么要进行 One-Hot 编码?
什么是类别数据?类别数据是一种只有标签值而没有数值的变量。它的值通常属于一个大小固定且有限的集合。类别变量也常被称为标称值(nominal)。下面举例说明:宠物(pet)变量包含以下几种值:狗(dog)、猫(cat)。颜色(color)变量包含以下几种值:红(red)、绿(green)、蓝(blue)。位次(place)变量包含以下几种值:第一(first)、第二(second)和第三(third)。以上例子中的每个值都代表着一个不同的类别。有些类别彼此间存在一定的自然关系,比如自然的转载 2020-06-11 23:14:20 · 762 阅读 · 0 评论 -
Keras中的两种模型:Sequential和Model
在Keras中有两种深度学习的模型:序列模型(Sequential)和通用模型(Model)。差异在于不同的拓扑结构。序列模型 Sequential序列模型各层之间是依次顺序的线性关系,模型结构通过一个列表来制定。from keras.models import Sequentialfrom keras.layers import Dense, Activationlayers = [Dense(32, input_shape = (784,)), Activatio.原创 2020-06-11 21:33:48 · 4808 阅读 · 0 评论 -
keras中Dense()和Flatten()不同
#Dense 是将一个一维的数据映射到另一个一维的数据,二维的数据不能直接进行Dense运算Flatten层用来将输入“压平”,即把多维的输入一维化,常用在从卷积层到全连接层的过渡。Flatten不影响batch的大小。...原创 2020-06-11 21:26:41 · 10954 阅读 · 0 评论 -
为什么要进行特征归一化/标准化?
Make sure features are on a similar scale数据归一化后,最优解的寻优过程明显会变得平缓,更容易正确的收敛到最优解。什么时候需要feature scaling?涉及或隐含距离计算的算法,比如K-means、KNN、PCA、SVM等,一般需要feature scaling,损失函数中含有正则项时,一般需要feature scaling梯度下降算法,需要feature scaling什么时候不需要Feature Scaling?与距离计算无关的概率模.转载 2020-06-11 21:16:06 · 847 阅读 · 0 评论 -
读取本地fashion_mnist数据集
def load_data(path,files): import gzip import numpy as np paths = [path+ each for each in files ] with gzip.open(paths[0], 'rb') as lbpath: train_labels = np.frombuffer(lbpath.read(), np.uint8, offset=8) with gzip.open(paths[1],原创 2020-06-11 20:28:36 · 1586 阅读 · 1 评论 -
逻辑回归代码实现
#逻辑回归最后要输出一个概率值, import pandas as pd import tensorflow as tf import matplotlib.pyplot as plt data =pd.read_csv(‘dataset/credit-a.csv’,header=None)#这个credit是一个包含个人信用的数据,1代表没有欺诈数据,-1代表有欺诈数据print(data) x = data.iloc[:,:-1] y = data.iloc[:,-1].replace(-1 ,.原创 2020-06-11 20:26:01 · 422 阅读 · 0 评论 -
解释logistic回归为什么要使用sigmoid函数
原创 2020-06-11 14:40:37 · 1454 阅读 · 0 评论 -
激活函数详解/为什么要用激活函数
Rectified Linear Unit(ReLU) - 用于隐层神经元输出Sigmoid - 用于隐层神经元输出Softmax -用于多分类神经网络输出Linear - 用于回归神经网络输出(或二分类问题)原创 2020-06-11 14:20:03 · 1093 阅读 · 0 评论 -
逻辑回归之,sigmoid ,交叉熵
=============================================================================================线性回归预测的是一个连续值,这个是十分明显。而逻辑回归给出的“是”和“否”的回答,是因为输入值经过乘以权重和加上偏差(线性回归的过程)之后得到的特征值,还需要通过一个非线性的激活函数,如sigmoid函数。在进入激活函数运算之后(咦sigmoid函数为例),原来的值会落在0-1之间,当最终的值<0时,逻辑回归输.原创 2020-06-11 00:38:39 · 343 阅读 · 0 评论 -
平方差和交叉熵损失函数分别用在哪些场景?
原创 2020-06-11 00:32:39 · 616 阅读 · 1 评论 -
代码实现多层感知机
实现流程:1.使用pandas读取数据。利用data.iloc()函数来读取csv数据集的各行各列的数据。data.iloc(0:10,1:-1),这个意思,取得数据集的第1行到第9行,这里)0:10是[0:10),-1是指最后一行/列,2.构建模型tf.keras.Sequential()model = tf.keras.Sequential( [ tf.keras.layers.Dense(10,input_shape=(3,),activation='rel原创 2020-06-10 22:16:03 · 703 阅读 · 0 评论 -
激活函数
**如果在最后输出之前,不使用激活函数,不管你用多少层,都是一个线性的问题,因为之前做的都是乘法和加法等操作。不加激活函数的话是拟合不出高阶的输出的。**原创 2020-06-10 14:50:58 · 150 阅读 · 0 评论 -
线性回归(单神经元,多神经元)和多层感知机(多个神经元)对比
下面的图是1层有多个神经元,但是只有一层,没有达到深度学习的“要求”。下图是两层,相对比于线性回归的单层多个神经元和没有层只有一个神经元的模型,深了一些。所以下图的模型就叫做多层感知器。...原创 2020-06-10 14:31:49 · 1135 阅读 · 0 评论 -
区分三个概念:Epoch, Batch, Iteration
https://www.jianshu.com/p/22c50ded4cf7原创 2020-06-03 02:41:14 · 236 阅读 · 0 评论 -
神经网络核心基础:MP Model
MP 模型即mcculloch,pitts两个人提出的模型。是神经网络的基础。大概就输入值乘以一个权重 ,然后∑\sum∑ 求和 再加上偏差bias(b),之后再进入一个非线性函数,最后就是输入一个值。这里需要强调和解释的是,∑\sum∑求和之后进入的非线性函数,而不是线性函数,因为在进入这步之前本身就是线性的,如果再进入线性函数,其实区别不大,能表达信息范围没啥变化,而使用非线性函数就可以有更多表达空间。非线性函数一般是sigmod,tanh ,relu。...原创 2020-06-01 15:13:24 · 5620 阅读 · 0 评论 -
神经网络设计过程
神经网络的设计过程分成四步:准备数据,需要采集大量的数据和标签搭建网络:搭建神经网络结构优化参数:训练网络获取最佳参数(使用反向传播)应用网络:将网络保存为模型,输入新数据,输出分类或预测 结果。这里使用鸢尾花分类的例子进行讲解神经网络设计过程。下面slide讲解的传统的专家系统通过if case 方法也可以完成鸢尾花分类的问题,但这是一种比较机械的方法,实现中,有经验的专家在有丰富经验之后很容易就能辨别鸢尾花的类别。神经网络的设计更加符合情形。对大量的鸢尾花信息(包括花瓣长等信息,即输原创 2020-06-01 14:57:57 · 2698 阅读 · 0 评论 -
训练集、验证集、测试集详解和极其作用
先用一个不恰当的比喻来说明3种数据集之间的关系:训练集相当于上课学知识验证集相当于课后的的练习题,用来纠正和强化学到的知识测试集相当于期末考试,用来最终评估学习效果转载 2020-05-26 00:15:49 · 5433 阅读 · 0 评论